all repos — erl @ e5e5bb052c81d45ecf7ce4201056921074d049c1

Execute Reload Loop

feat: add verbose flag

Alan Pearce
commit

e5e5bb052c81d45ecf7ce4201056921074d049c1

parent

ad8f97f9fb886a7c2e7ef7ef8a738ae7f0c9ddf5

1 file changed, 13 insertions(+), 5 deletions(-)

changed files
M main.gomain.go
@@ -21,11 +21,12 @@ "alin.ovh/erl/watcher"
) var ( - Exec = flag.String("exec", "", "command to execute on file change") - Quiet = flag.Bool("quiet", false, "suppress own output") + Exec = flag.String("exec", "", "command to execute on file change") + Quiet = flag.Bool("quiet", false, "suppress own output") + Verbose = flag.Bool("verbose", false, "verbose output (print events)") ) -func Start(ctx context.Context, w watcher.Watcher, sm *state.StateMachine) { +func Start(ctx context.Context, verbose *log.Logger, w watcher.Watcher, sm *state.StateMachine) { var wg sync.WaitGroup wg.Add(1)
@@ -48,7 +49,7 @@ if event.Op == fsnotify.Chmod {
continue } - log.Printf("event: %s %s\n", event.Name, event.Op.String()) + verbose.Printf("event: %s %s\n", event.Name, event.Op.String()) if event.Op.Has(fsnotify.Create) { stat, err := os.Stat(event.Name) if err != nil {
@@ -135,7 +136,14 @@ if *Quiet {
copts.Output = io.Discard } + var logger *log.Logger + if *Verbose { + logger = log.New(os.Stderr, "", 0) + } else { + logger = log.New(io.Discard, "", 0) + } + cmd := command.New(program, args, copts) sm := state.New(cmd, log.New(os.Stderr, "state: ", log.Lmsgprefix)) - Start(ctx, watcher, sm) + Start(ctx, logger, watcher, sm) }