Copy and remove instead of move

Bit safer
This commit is contained in:
2025-10-01 13:58:20 +02:00
parent e4139dab87
commit ce8ff24684

28
main.go
View File

@@ -3,6 +3,7 @@ package main
import ( import (
"flag" "flag"
"fmt" "fmt"
"io"
"os" "os"
"path/filepath" "path/filepath"
"regexp" "regexp"
@@ -87,9 +88,32 @@ func main() {
return return
} }
} }
err = os.Rename(file, dest)
filelog.Debug("opening input file")
in, err := os.Open(file)
if err != nil { if err != nil {
filelog.Error("error renaming file: %s", err) filelog.Error("error opening file: %s", err)
return
}
filelog.Debug("opening output file %s", dest)
out, err := os.Create(dest)
if err != nil {
filelog.Error("error creating dest file: %s", err)
return
}
filelog.Info("copying file")
_, err = io.Copy(out, in)
if err != nil {
filelog.Error("error copying file: %s", err)
return
}
in.Close()
out.Close()
filelog.Info("removing original file")
err = os.Remove(file)
if err != nil {
filelog.Error("error removing original file: %s", err)
return return
} }
filelog.Info("moved to %q", dest) filelog.Info("moved to %q", dest)