diff options
Diffstat (limited to 'backup/restore.go')
-rw-r--r-- | backup/restore.go | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/backup/restore.go b/backup/restore.go index 6a03200..3a384a9 100644 --- a/backup/restore.go +++ b/backup/restore.go @@ -7,6 +7,7 @@ import ( "code.laria.me/petrific/storage" "fmt" "io" + "math/rand" "os" ) @@ -48,21 +49,22 @@ func RestoreDir(s storage.Storage, id objects.ObjectId, root fs.Dir) error { for name, file_info := range tree { switch file_info.Type() { case objects.TETFile: - tmpname := fmt.Sprintf(".petrific-%d-%s", os.Getpid(), id) + tmpname := fmt.Sprintf(".petrific-%d-%08x%08x%08x%08x", os.Getpid(), rand.Uint32(), rand.Uint32(), rand.Uint32(), rand.Uint32()) new_file, err := root.CreateChildFile(tmpname, execBitFromACL(file_info.ACL())) if err != nil { return err } - rwc, err := new_file.Open() + + wc, err := new_file.OpenWritable() if err != nil { return err } - if err := RestoreFile(s, file_info.(objects.TreeEntryFile).Ref, rwc); err != nil { - rwc.Close() + if err := RestoreFile(s, file_info.(objects.TreeEntryFile).Ref, wc); err != nil { + wc.Close() return err } - rwc.Close() + wc.Close() if err := root.RenameChild(tmpname, name); err != nil { return err |