aboutsummaryrefslogtreecommitdiff
path: root/cmd/restore.go
diff options
context:
space:
mode:
authorUnknwon <u@gogs.io>2017-06-25 01:16:32 -0400
committerUnknwon <u@gogs.io>2017-06-25 01:16:32 -0400
commitd1a96c25438e1e63c9e2caf77005ae86da14fc72 (patch)
tree684742dd1b11ca9fcb38a5c594cec6ba37cf0fd6 /cmd/restore.go
parent11b1498a6e7e01c32d7d802e4d149393b4efb9a9 (diff)
cmd/restore: skip non existent directories in backup archive (#4413)
Diffstat (limited to 'cmd/restore.go')
-rw-r--r--cmd/restore.go8
1 files changed, 7 insertions, 1 deletions
diff --git a/cmd/restore.go b/cmd/restore.go
index 8e2d2d1f..19c26464 100644
--- a/cmd/restore.go
+++ b/cmd/restore.go
@@ -103,13 +103,19 @@ func runRestore(c *cli.Context) error {
if !c.Bool("database-only") {
os.MkdirAll(setting.AppDataPath, os.ModePerm)
for _, dir := range []string{"attachments", "avatars"} {
+ // Skip if backup archive does not have corresponding data
+ srcPath := path.Join(archivePath, "data", dir)
+ if !com.IsDir(srcPath) {
+ continue
+ }
+
dirPath := path.Join(setting.AppDataPath, dir)
if com.IsExist(dirPath) {
if err = os.Rename(dirPath, dirPath+".bak"); err != nil {
log.Fatal(0, "Fail to backup current 'data': %v", err)
}
}
- if err = os.Rename(path.Join(archivePath, "data", dir), dirPath); err != nil {
+ if err = os.Rename(srcPath, dirPath); err != nil {
log.Fatal(0, "Fail to import 'data': %v", err)
}
}