Use absolute paths

Thanks windows
This commit is contained in:
2025-10-01 14:05:20 +02:00
parent 882713359d
commit bb1d56c950

21
main.go
View File

@@ -44,6 +44,7 @@ func (dp *DateParserISO) Parse(s string) (time.Time, error) {
func main() { func main() {
flag.Parse() flag.Parse()
logger.InitFlag() logger.InitFlag()
logger.Default = logger.Default.ToFile("dategrouper.log")
if flag.NArg() == 0 { if flag.NArg() == 0 {
logger.Error("no files provided") logger.Error("no files provided")
@@ -57,7 +58,6 @@ func main() {
files := flag.Args() files := flag.Args()
cyutils.WithWorkers(10, files, func(worker int, _ int, file string) { cyutils.WithWorkers(10, files, func(worker int, _ int, file string) {
workerlog := logger.Default.WithPrefix(fmt.Sprintf("worker=%d", worker)) workerlog := logger.Default.WithPrefix(fmt.Sprintf("worker=%d", worker))
filelog := workerlog.WithPrefix(fmt.Sprintf("file=%q", file)) filelog := workerlog.WithPrefix(fmt.Sprintf("file=%q", file))
@@ -69,24 +69,22 @@ func main() {
} }
filelog.Info("date: %s", date) filelog.Info("date: %s", date)
datedir := fmt.Sprintf("%04d-%02d-%02d", date.Year(), date.Month(), date.Day()) dir := filepath.Dir(file)
dest := filepath.Join(datedir, 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) filelog.Info("dest: %s", dest)
err = os.MkdirAll(datedir, 0755) err = os.MkdirAll(datedir, 0755)
if err != nil { if err != nil {
filelog.Error("error creating directory: %s", err) filelog.Error("error creating directory: %s", err)
return return
} }
// Make sure file doesn't exist
destfile, err := os.Stat(dest) destfile, err := os.Stat(dest)
if err == nil { if err == nil {
filelog.Info("dest file already exists: %s", destfile.Name()) filelog.Info("dest file already exists: %s", destfile.Name())
return return
} else { } else if !os.IsNotExist(err) {
if !os.IsNotExist(err) { filelog.Error("error checking dest file: %s", err)
filelog.Error("error checking dest file: %s", err) return
return
}
} }
filelog.Debug("opening input file") filelog.Debug("opening input file")
@@ -99,16 +97,17 @@ func main() {
out, err := os.Create(dest) out, err := os.Create(dest)
if err != nil { if err != nil {
filelog.Error("error creating dest file: %s", err) filelog.Error("error creating dest file: %s", err)
in.Close()
return return
} }
filelog.Info("copying file") filelog.Info("copying file")
_, err = io.Copy(out, in) _, err = io.Copy(out, in)
in.Close()
out.Close()
if err != nil { if err != nil {
filelog.Error("error copying file: %s", err) filelog.Error("error copying file: %s", err)
return return
} }
in.Close()
out.Close()
filelog.Info("removing original file") filelog.Info("removing original file")
err = os.Remove(file) err = os.Remove(file)