diff --git a/pkg/fsutil/file.go b/pkg/fsutil/file.go index 1bf982666..918c45d89 100644 --- a/pkg/fsutil/file.go +++ b/pkg/fsutil/file.go @@ -59,9 +59,9 @@ func SafeMove(src, dst string) error { err := os.Rename(src, dst) if err != nil { - err = CopyFile(src, dst) - if err != nil { - return err + copyErr := CopyFile(src, dst) + if copyErr != nil { + return fmt.Errorf("copying file during SaveMove failed with: '%w'; renaming file failed previously with: '%v'", copyErr, err) } err = os.Remove(src) diff --git a/pkg/scene/generate/generator.go b/pkg/scene/generate/generator.go index 49568fb2a..70f6857ea 100644 --- a/pkg/scene/generate/generator.go +++ b/pkg/scene/generate/generator.go @@ -97,7 +97,7 @@ func (g Generator) generateFile(lockCtx *fsutil.LockContext, p Paths, pattern st } if err := fsutil.SafeMove(tmpFn, output); err != nil { - return fmt.Errorf("moving %s to %s", tmpFn, output) + return fmt.Errorf("moving %s to %s failed: %w", tmpFn, output, err) } return nil