Browse Source

command dump

pull/168/head
Unknown 11 years ago
parent
commit
a641854cad
  1. 24
      cmd/dump.go
  2. 11
      cmd/fix.go
  3. 11
      cmd/serve.go
  4. 11
      cmd/update.go
  5. 5
      cmd/web.go
  6. 5
      models/models.go
  7. 4
      modules/base/tool.go

24
cmd/dump.go

@ -12,22 +12,23 @@ import (
"github.com/Unknwon/cae/zip" "github.com/Unknwon/cae/zip"
"github.com/codegangsta/cli" "github.com/codegangsta/cli"
"github.com/gogits/gogs/models"
"github.com/gogits/gogs/modules/base" "github.com/gogits/gogs/modules/base"
) )
var CmdDump = cli.Command{ var CmdDump = cli.Command{
Name: "dump", Name: "dump",
Usage: "Dump Gogs files except database", Usage: "Dump Gogs files and database",
Description: ` Description: `Dump compresses all related files and database into zip file.
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`,
it can be used for backup and capture Gogs server image to send
to maintainer`,
Action: runDump, Action: runDump,
Flags: []cli.Flag{}, Flags: []cli.Flag{},
} }
func runDump(*cli.Context) { func runDump(*cli.Context) {
base.NewConfigContext() base.NewConfigContext()
models.LoadModelsConfig()
models.SetEngine()
log.Printf("Dumping local repositories...%s", base.RepoRootPath) log.Printf("Dumping local repositories...%s", base.RepoRootPath)
zip.Verbose = false zip.Verbose = false
@ -36,6 +37,13 @@ func runDump(*cli.Context) {
log.Fatalf("Fail to dump local repositories: %v", err) log.Fatalf("Fail to dump local repositories: %v", err)
} }
log.Printf("Dumping database...")
defer os.Remove("gogs-db.sql")
if err := models.DumpDatabase("gogs-db.sql"); err != nil {
log.Fatalf("Fail to dump database: %v", err)
}
log.Printf("Packing dump files...")
z, err := zip.Create("gogs-dump.zip") z, err := zip.Create("gogs-dump.zip")
if err != nil { if err != nil {
os.Remove("gogs-dump.zip") os.Remove("gogs-dump.zip")
@ -44,9 +52,13 @@ func runDump(*cli.Context) {
execDir, _ := base.ExecDir() execDir, _ := base.ExecDir()
z.AddFile("gogs-repo.zip", path.Join(execDir, "gogs-repo.zip")) z.AddFile("gogs-repo.zip", path.Join(execDir, "gogs-repo.zip"))
z.AddFile("gogs-db.sql", path.Join(execDir, "gogs-db.sql"))
z.AddFile("custom/conf/app.ini", path.Join(execDir, "custom/conf/app.ini")) z.AddFile("custom/conf/app.ini", path.Join(execDir, "custom/conf/app.ini"))
z.AddDir("log", path.Join(execDir, "log")) z.AddDir("log", path.Join(execDir, "log"))
z.Close() if err = z.Close(); err != nil {
os.Remove("gogs-dump.zip")
log.Fatalf("Fail to save gogs-dump.zip: %v", err)
}
log.Println("Finish dumping!") log.Println("Finish dumping!")
} }

11
cmd/fix.go

@ -14,12 +14,11 @@ import (
) )
var CmdFix = cli.Command{ var CmdFix = cli.Command{
Name: "fix", Name: "fix",
Usage: "This command for upgrade from old version", Usage: "This command for upgrade from old version",
Description: ` Description: `Fix provide upgrade from old version`,
gogs fix provide upgrade from old version`, Action: runFix,
Action: runFix, Flags: []cli.Flag{},
Flags: []cli.Flag{},
} }
func runFix(k *cli.Context) { func runFix(k *cli.Context) {

11
cmd/serve.go

@ -35,12 +35,11 @@ var (
) )
var CmdServ = cli.Command{ var CmdServ = cli.Command{
Name: "serv", Name: "serv",
Usage: "This command should only be called by SSH shell", Usage: "This command should only be called by SSH shell",
Description: ` Description: `Serv provide access auth for repositories`,
Serv provide access auth for repositories`, Action: runServ,
Action: runServ, Flags: []cli.Flag{},
Flags: []cli.Flag{},
} }
func newLogger(execDir string) { func newLogger(execDir string) {

11
cmd/update.go

@ -17,12 +17,11 @@ import (
) )
var CmdUpdate = cli.Command{ var CmdUpdate = cli.Command{
Name: "update", Name: "update",
Usage: "This command should only be called by SSH shell", Usage: "This command should only be called by SSH shell",
Description: ` Description: `Update get pushed info and insert into database`,
Update get pushed info and insert into database`, Action: runUpdate,
Action: runUpdate, Flags: []cli.Flag{},
Flags: []cli.Flag{},
} }
func newUpdateLogger(execDir string) { func newUpdateLogger(execDir string) {

5
cmd/web.go

@ -30,8 +30,7 @@ import (
var CmdWeb = cli.Command{ var CmdWeb = cli.Command{
Name: "web", Name: "web",
Usage: "Start Gogs web server", Usage: "Start Gogs web server",
Description: ` Description: `Gogs web server is the only thing you need to run,
Gogs web server is the only thing you need to run,
and it takes care of all the other things for you`, and it takes care of all the other things for you`,
Action: runWeb, Action: runWeb,
Flags: []cli.Flag{}, Flags: []cli.Flag{},
@ -153,7 +152,7 @@ func runWeb(*cli.Context) {
r.Get("/settings/collaboration", repo.Collaboration) r.Get("/settings/collaboration", repo.Collaboration)
r.Post("/settings/collaboration", repo.CollaborationPost) r.Post("/settings/collaboration", repo.CollaborationPost)
r.Get("/settings/hooks", repo.WebHooks) r.Get("/settings/hooks", repo.WebHooks)
r.Get("/settings/hooks/add",repo.WebHooksAdd) r.Get("/settings/hooks/add", repo.WebHooksAdd)
r.Get("/action/:action", repo.Action) r.Get("/action/:action", repo.Action)
r.Get("/issues/new", repo.CreateIssue) r.Get("/issues/new", repo.CreateIssue)
r.Post("/issues/new", bindIgnErr(auth.CreateIssueForm{}), repo.CreateIssuePost) r.Post("/issues/new", bindIgnErr(auth.CreateIssueForm{}), repo.CreateIssuePost)

5
models/models.go

@ -160,3 +160,8 @@ func GetStatistic() (stats Statistic) {
stats.Counter.Release, _ = orm.Count(new(Release)) stats.Counter.Release, _ = orm.Count(new(Release))
return return
} }
// DumpDatabase dumps all data from database to file system.
func DumpDatabase(filePath string) error {
return orm.DumpAllToFile(filePath)
}

4
modules/base/tool.go

@ -140,7 +140,9 @@ func CreateTimeLimitCode(data string, minutes int, startInf interface{}) string
// AvatarLink returns avatar link by given e-mail. // AvatarLink returns avatar link by given e-mail.
func AvatarLink(email string) string { func AvatarLink(email string) string {
if Service.EnableCacheAvatar { if DisableGravatar {
return "/img/avatar_default.jpg"
} else if Service.EnableCacheAvatar {
return "/avatar/" + EncodeMd5(email) return "/avatar/" + EncodeMd5(email)
} }
return "//1.gravatar.com/avatar/" + EncodeMd5(email) return "//1.gravatar.com/avatar/" + EncodeMd5(email)

Loading…
Cancel
Save