diff options
author | Unknown <joe2010xtmf@163.com> | 2014-05-01 21:21:46 -0400 |
---|---|---|
committer | Unknown <joe2010xtmf@163.com> | 2014-05-01 21:21:46 -0400 |
commit | 3bd5fc6d6f5e1a04acf93929808f982417031e2e (patch) | |
tree | d3215d8549d7bf6a8da784abf7ac67697d07d6aa /cmd/dump.go | |
parent | cd2020429a8331fc4a2a4d9afa72be756343a51b (diff) | |
download | gitea-3bd5fc6d6f5e1a04acf93929808f982417031e2e.tar.gz gitea-3bd5fc6d6f5e1a04acf93929808f982417031e2e.zip |
Add command dump and move to cmd did
Diffstat (limited to 'cmd/dump.go')
-rw-r--r-- | cmd/dump.go | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/cmd/dump.go b/cmd/dump.go new file mode 100644 index 0000000000..c385d586fd --- /dev/null +++ b/cmd/dump.go @@ -0,0 +1,52 @@ +// Copyright 2014 The Gogs Authors. All rights reserved. +// Use of this source code is governed by a MIT-style +// license that can be found in the LICENSE file. + +package cmd + +import ( + "log" + "os" + "path" + + "github.com/Unknwon/cae/zip" + "github.com/codegangsta/cli" + + "github.com/gogits/gogs/modules/base" +) + +var CmdDump = cli.Command{ + Name: "dump", + Usage: "Dump Gogs files except database", + Description: ` +Dump compresses all related files into zip file except database, +it can be used for backup and capture Gogs server image to send +to maintainer`, + Action: runDump, + Flags: []cli.Flag{}, +} + +func runDump(*cli.Context) { + base.NewConfigContext() + + log.Printf("Dumping local repositories...%s", base.RepoRootPath) + zip.Verbose = false + defer os.Remove("gogs-repo.zip") + if err := zip.PackTo(base.RepoRootPath, "gogs-repo.zip", true); err != nil { + log.Fatalf("Fail to dump local repositories: %v", err) + } + + z, err := zip.Create("gogs-dump.zip") + if err != nil { + os.Remove("gogs-dump.zip") + log.Fatalf("Fail to create gogs-dump.zip: %v", err) + } + + execDir, _ := base.ExecDir() + z.AddFile("gogs-repo.zip", path.Join(execDir, "gogs-repo.zip")) + z.AddFile("custom/conf/app.ini", path.Join(execDir, "custom/conf/app.ini")) + z.AddDir("log", path.Join(execDir, "log")) + z.Close() + + log.Println("Finish dumping!") +} |