aboutsummaryrefslogtreecommitdiffstats
path: root/pkg
diff options
context:
space:
mode:
authorDmitry Vyukov <dvyukov@google.com>2017-06-19 16:35:52 +0200
committerDmitry Vyukov <dvyukov@google.com>2017-06-19 16:35:52 +0200
commit7e63cfac7fbdb4b8f819d5ac870f2a6fce69d53a (patch)
tree65740c16af3a826d742ca9215c9051e9616e0b45 /pkg
parent261cdc2564653b62f966466332e5d145364b4073 (diff)
pkg/fileutil: improve CopyFile
- check Close error - preserve modification time
Diffstat (limited to 'pkg')
-rw-r--r--pkg/fileutil/fileutil.go10
1 files changed, 10 insertions, 0 deletions
diff --git a/pkg/fileutil/fileutil.go b/pkg/fileutil/fileutil.go
index c244204a9..eae069e01 100644
--- a/pkg/fileutil/fileutil.go
+++ b/pkg/fileutil/fileutil.go
@@ -21,6 +21,10 @@ func CopyFile(oldFile, newFile string) error {
return err
}
defer oldf.Close()
+ stat, err := oldf.Stat()
+ if err != nil {
+ return err
+ }
newf, err := os.Create(newFile)
if err != nil {
return err
@@ -30,6 +34,12 @@ func CopyFile(oldFile, newFile string) error {
if err != nil {
return err
}
+ if err := newf.Close(); err != nil {
+ return err
+ }
+ if err := os.Chtimes(newFile, stat.ModTime(), stat.ModTime()); err != nil {
+ return err
+ }
return nil
}