diff --git a/main.go b/main.go index 6c75331..567f765 100644 --- a/main.go +++ b/main.go @@ -3,6 +3,7 @@ package main import ( "flag" "fmt" + "io" "os" "path/filepath" "regexp" @@ -87,9 +88,32 @@ func main() { return } } - err = os.Rename(file, dest) + + filelog.Debug("opening input file") + in, err := os.Open(file) 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 } filelog.Info("moved to %q", dest)