Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
View Source
var Command = &cli.Command{ Name: "develop", Flags: []cli.Flag{ &cli.StringFlag{ Name: "addr", EnvVars: []string{"KARTUSCHE_ADDR"}, Value: "localhost:5001", }, }, Action: func(c *cli.Context) (err error) { defer func() { if err != nil { err = cli.Exit(fmt.Errorf("while running dev server: %w", err), 1) } }() dl, err := zap.NewDevelopment() if err != nil { return fmt.Errorf("while starting logger: %w", err) } defer dl.Sync() log := zapr.NewLogger(dl) dir := "." if err != nil { return err } serverBaseURL, err := serverurl.BaseServerURL(c.Args().First()) if err != nil { return err } log.Info("syncing with server", "server", serverBaseURL) w, err := fsnotify.NewWatcher() if err != nil { return fmt.Errorf("while creating fs notify watcher") } names := make(chan string, 20) names <- "." done := make(chan error) go watch(dir, w, names, done) for name := range names { allNames := []string{name} inner: for { select { case name = <-names: allNames = append(allNames, name) case <-time.NewTimer(100 * time.Millisecond).C: break inner } } log.Info("updating server", "changedFiles", allNames) err := UpdateServerCode(dir, serverBaseURL) if err != nil { log.Error(err, "failed to update server") continue } log.Info("updated server") } return nil }, }
Functions ¶
func UpdateServerCode ¶
Types ¶
This section is empty.
Click to show internal directories.
Click to hide internal directories.