From bb1d56c950f0ff8ef05e9c309e1f194fdd2ba9ee Mon Sep 17 00:00:00 2001 From: PhatPhuckDave Date: Wed, 1 Oct 2025 14:05:20 +0200 Subject: [PATCH] Use absolute paths Thanks windows --- main.go | 23 +++++++++++------------ 1 file changed, 11 insertions(+), 12 deletions(-) diff --git a/main.go b/main.go index 567f765..35c04d8 100644 --- a/main.go +++ b/main.go @@ -44,6 +44,7 @@ func (dp *DateParserISO) Parse(s string) (time.Time, error) { func main() { flag.Parse() logger.InitFlag() + logger.Default = logger.Default.ToFile("dategrouper.log") if flag.NArg() == 0 { logger.Error("no files provided") @@ -57,7 +58,6 @@ func main() { files := flag.Args() - cyutils.WithWorkers(10, files, func(worker int, _ int, file string) { workerlog := logger.Default.WithPrefix(fmt.Sprintf("worker=%d", worker)) filelog := workerlog.WithPrefix(fmt.Sprintf("file=%q", file)) @@ -68,25 +68,23 @@ func main() { return } filelog.Info("date: %s", date) - - datedir := fmt.Sprintf("%04d-%02d-%02d", date.Year(), date.Month(), date.Day()) - dest := filepath.Join(datedir, file) + + dir := filepath.Dir(file) + datedir := filepath.Join(dir, fmt.Sprintf("%04d-%02d-%02d", date.Year(), date.Month(), date.Day())) + dest := filepath.Join(datedir, filepath.Base(file)) filelog.Info("dest: %s", dest) err = os.MkdirAll(datedir, 0755) if err != nil { filelog.Error("error creating directory: %s", err) return } - // Make sure file doesn't exist destfile, err := os.Stat(dest) if err == nil { filelog.Info("dest file already exists: %s", destfile.Name()) return - } else { - if !os.IsNotExist(err) { - filelog.Error("error checking dest file: %s", err) - return - } + } else if !os.IsNotExist(err) { + filelog.Error("error checking dest file: %s", err) + return } filelog.Debug("opening input file") @@ -99,16 +97,17 @@ func main() { out, err := os.Create(dest) if err != nil { filelog.Error("error creating dest file: %s", err) + in.Close() return } filelog.Info("copying file") _, err = io.Copy(out, in) + in.Close() + out.Close() if err != nil { filelog.Error("error copying file: %s", err) return } - in.Close() - out.Close() filelog.Info("removing original file") err = os.Remove(file)