diff --git a/cmd/mower.go b/cmd/mower.go index 670d445..64ec911 100644 --- a/cmd/mower.go +++ b/cmd/mower.go @@ -172,7 +172,12 @@ var App = &cli.App{ } }() - // TODO: simulate create events files for current files + // simulate create events to pick up files already created + err = simulateInitialCreate(logDir, watcher.Events) + if err != nil { + promErrWatching.Add(1) + l.Fatal("listing initial log directory", zap.String("name", logDir), zap.Error(err)) + } err = watcher.Add(logDir) if err != nil { @@ -258,3 +263,19 @@ func parseLogName(name string) (m logMeta, ok bool) { return m, true } + +func simulateInitialCreate(dirName string, eventChan chan<- fsnotify.Event) error { + dir, err := os.ReadDir(dirName) + if err != nil { + return err + } + + for _, file := range dir { + eventChan <- fsnotify.Event{ + Name: filepath.Join(dirName, file.Name()), + Op: fsnotify.Create, + } + } + + return nil +} diff --git a/cmd/submit.go b/cmd/submit.go index ef3492e..8bc285a 100644 --- a/cmd/submit.go +++ b/cmd/submit.go @@ -113,7 +113,7 @@ func (s *submitter) shipFileRoutine(ctx context.Context, name string, deleteOk f fi, err := os.Stat(name) if err != nil { - return fmt.Errorf("getting original file size") + return fmt.Errorf("getting original file size: %w", err) } startSize := fi.Size()