mirror of
https://github.com/genuinetools/reg.git
synced 2024-09-28 11:46:20 -04:00
fix moveFile
Signed-off-by: Jess Frazelle <acidburn@google.com>
This commit is contained in:
parent
598f9e670f
commit
ec0de5f029
1 changed files with 20 additions and 18 deletions
|
@ -43,28 +43,30 @@ func preload(c *cli.Context) (err error) {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func moveFile(src, dst string) (err error) {
|
func moveFile(src, dest string) (err error) {
|
||||||
in, err := os.Open(src)
|
srcfile, err := os.Open(src)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
defer in.Close()
|
defer srcfile.Close()
|
||||||
tmp, err := ioutil.TempFile(filepath.Dir(dst), "")
|
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
_, err = io.Copy(tmp, in)
|
|
||||||
if err != nil {
|
|
||||||
tmp.Close()
|
|
||||||
os.Remove(tmp.Name())
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
if err = tmp.Close(); err != nil {
|
|
||||||
os.Remove(tmp.Name())
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
defer os.Remove(src)
|
defer os.Remove(src)
|
||||||
return os.Rename(tmp.Name(), dst)
|
|
||||||
|
destfile, err := os.Create(dest)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
defer destfile.Close()
|
||||||
|
|
||||||
|
if _, err := io.Copy(destfile, srcfile); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
srcinfo, err := os.Stat(src)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
return os.Chmod(dest, srcinfo.Mode())
|
||||||
}
|
}
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
|
|
Loading…
Reference in a new issue