Add command dump and move to cmd did
This commit is contained in:
		
							parent
							
								
									cd2020429a
								
							
						
					
					
						commit
						3bd5fc6d6f
					
				
					 7 changed files with 68 additions and 15 deletions
				
			
		
							
								
								
									
										52
									
								
								cmd/dump.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										52
									
								
								cmd/dump.go
									
									
									
									
									
										Normal file
									
								
							|  | @ -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!") | ||||||
|  | } | ||||||
|  | @ -2,7 +2,7 @@ | ||||||
| // Use of this source code is governed by a MIT-style
 | // Use of this source code is governed by a MIT-style
 | ||||||
| // license that can be found in the LICENSE file.
 | // license that can be found in the LICENSE file.
 | ||||||
| 
 | 
 | ||||||
| package main | package cmd | ||||||
| 
 | 
 | ||||||
| import ( | import ( | ||||||
| 	"fmt" | 	"fmt" | ||||||
|  | @ -2,7 +2,7 @@ | ||||||
| // Use of this source code is governed by a MIT-style
 | // Use of this source code is governed by a MIT-style
 | ||||||
| // license that can be found in the LICENSE file.
 | // license that can be found in the LICENSE file.
 | ||||||
| 
 | 
 | ||||||
| package main | package cmd | ||||||
| 
 | 
 | ||||||
| import ( | import ( | ||||||
| 	//"container/list"
 | 	//"container/list"
 | ||||||
|  | @ -36,9 +36,9 @@ var ( | ||||||
| 
 | 
 | ||||||
| var CmdServ = cli.Command{ | var CmdServ = cli.Command{ | ||||||
| 	Name:  "serv", | 	Name:  "serv", | ||||||
| 	Usage: "This command just should be called by ssh shell", | 	Usage: "This command should only be called by SSH shell", | ||||||
| 	Description: ` | 	Description: ` | ||||||
| gogs serv provide access auth for repositories`, | Serv provide access auth for repositories`, | ||||||
| 	Action: runServ, | 	Action: runServ, | ||||||
| 	Flags:  []cli.Flag{}, | 	Flags:  []cli.Flag{}, | ||||||
| } | } | ||||||
|  | @ -2,7 +2,7 @@ | ||||||
| // Use of this source code is governed by a MIT-style
 | // Use of this source code is governed by a MIT-style
 | ||||||
| // license that can be found in the LICENSE file.
 | // license that can be found in the LICENSE file.
 | ||||||
| 
 | 
 | ||||||
| package main | package cmd | ||||||
| 
 | 
 | ||||||
| import ( | import ( | ||||||
| 	"os" | 	"os" | ||||||
|  | @ -18,9 +18,9 @@ import ( | ||||||
| 
 | 
 | ||||||
| var CmdUpdate = cli.Command{ | var CmdUpdate = cli.Command{ | ||||||
| 	Name:  "update", | 	Name:  "update", | ||||||
| 	Usage: "This command just should be called by ssh shell", | 	Usage: "This command should only be called by SSH shell", | ||||||
| 	Description: ` | 	Description: ` | ||||||
| gogs 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{}, | ||||||
| } | } | ||||||
|  | @ -2,7 +2,7 @@ | ||||||
| // Use of this source code is governed by a MIT-style
 | // Use of this source code is governed by a MIT-style
 | ||||||
| // license that can be found in the LICENSE file.
 | // license that can be found in the LICENSE file.
 | ||||||
| 
 | 
 | ||||||
| package main | package cmd | ||||||
| 
 | 
 | ||||||
| import ( | import ( | ||||||
| 	"fmt" | 	"fmt" | ||||||
|  | @ -29,9 +29,9 @@ import ( | ||||||
| 
 | 
 | ||||||
| var CmdWeb = cli.Command{ | var CmdWeb = cli.Command{ | ||||||
| 	Name:  "web", | 	Name:  "web", | ||||||
| 	Usage: "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{}, | ||||||
							
								
								
									
										10
									
								
								gogs.go
									
									
									
									
									
								
							
							
						
						
									
										10
									
								
								gogs.go
									
									
									
									
									
								
							|  | @ -13,6 +13,7 @@ import ( | ||||||
| 
 | 
 | ||||||
| 	"github.com/codegangsta/cli" | 	"github.com/codegangsta/cli" | ||||||
| 
 | 
 | ||||||
|  | 	"github.com/gogits/gogs/cmd" | ||||||
| 	"github.com/gogits/gogs/modules/base" | 	"github.com/gogits/gogs/modules/base" | ||||||
| ) | ) | ||||||
| 
 | 
 | ||||||
|  | @ -32,10 +33,11 @@ func main() { | ||||||
| 	app.Usage = "Go Git Service" | 	app.Usage = "Go Git Service" | ||||||
| 	app.Version = APP_VER | 	app.Version = APP_VER | ||||||
| 	app.Commands = []cli.Command{ | 	app.Commands = []cli.Command{ | ||||||
| 		CmdWeb, | 		cmd.CmdWeb, | ||||||
| 		CmdServ, | 		// cmd.CmdFix,
 | ||||||
| 		CmdUpdate, | 		cmd.CmdDump, | ||||||
| 		// CmdFix,
 | 		cmd.CmdServ, | ||||||
|  | 		cmd.CmdUpdate, | ||||||
| 	} | 	} | ||||||
| 	app.Flags = append(app.Flags, []cli.Flag{}...) | 	app.Flags = append(app.Flags, []cli.Flag{}...) | ||||||
| 	app.Run(os.Args) | 	app.Run(os.Args) | ||||||
|  |  | ||||||
|  | @ -303,7 +303,6 @@ func newNotifyMailService() { | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| func NewConfigContext() { | func NewConfigContext() { | ||||||
| 	//var err error
 |  | ||||||
| 	workDir, err := ExecDir() | 	workDir, err := ExecDir() | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
| 		qlog.Fatalf("Fail to get work directory: %s\n", err) | 		qlog.Fatalf("Fail to get work directory: %s\n", err) | ||||||
|  |  | ||||||
		Loading…
	
		Reference in a new issue