@ -1,4 +1,5 @@ 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					// Copyright 2014 The Gogs Authors. All rights reserved.
  
					 
					 
					 
					// Copyright 2014 The Gogs Authors. All rights reserved.
  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					// Copyright 2016 The Gitea Authors. All rights reserved.
  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					// 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.
  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					
 
					 
					 
					 
					
 
				
			 
			
		
	
	
		
		
			
				
					
						
						
						
							
								 
							 
						
					 
					 
					@ -21,9 +22,9 @@ import ( 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					// CmdDump represents the available dump sub-command.
  
					 
					 
					 
					// CmdDump represents the available dump sub-command.
  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					var  CmdDump  =  cli . Command {  
					 
					 
					 
					var  CmdDump  =  cli . Command {  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
						Name :   "dump" ,   
					 
					 
					 
						Name :   "dump" ,   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
						Usage :  "Dump Gogs  files and database" ,   
					 
					 
					 
						Usage :  "Dump Gitea  files and database" ,   
				
			 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 
					 
					 
						Description :  ` Dump  compresses  all  related  files  and  database  into  zip  file .   
					 
					 
					 
						Description :  ` Dump  compresses  all  related  files  and  database  into  zip  file .   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					It  can  be  used  for  backup  and  capture  Gogs   server  image  to  send  to  maintainer ` ,  
					 
					 
					 
					It  can  be  used  for  backup  and  capture  Gitea   server  image  to  send  to  maintainer ` ,  
				
			 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 
					 
					 
						Action :  runDump ,   
					 
					 
					 
						Action :  runDump ,   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
						Flags :  [ ] cli . Flag {   
					 
					 
					 
						Flags :  [ ] cli . Flag {   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
							cli . StringFlag {   
					 
					 
					 
							cli . StringFlag {   
				
			 
			
		
	
	
		
		
			
				
					
						
							
								 
							 
						
						
							
								 
							 
						
						
					 
					 
					@ -55,14 +56,14 @@ func runDump(ctx *cli.Context) error { 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
						if  _ ,  err  :=  os . Stat ( tmpDir ) ;  os . IsNotExist ( err )  {   
					 
					 
					 
						if  _ ,  err  :=  os . Stat ( tmpDir ) ;  os . IsNotExist ( err )  {   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
							log . Fatalf ( "Path does not exist: %s" ,  tmpDir )   
					 
					 
					 
							log . Fatalf ( "Path does not exist: %s" ,  tmpDir )   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
						}   
					 
					 
					 
						}   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
						TmpWorkDir ,  err  :=  ioutil . TempDir ( tmpDir ,  "gogs -dump-" )   
					 
					 
					 
						TmpWorkDir ,  err  :=  ioutil . TempDir ( tmpDir ,  "gitea -dump-" )   
				
			 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 
					 
					 
						if  err  !=  nil  {   
					 
					 
					 
						if  err  !=  nil  {   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
							log . Fatalf ( "Fail to create tmp work directory: %v" ,  err )   
					 
					 
					 
							log . Fatalf ( "Fail to create tmp work directory: %v" ,  err )   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
						}   
					 
					 
					 
						}   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
						log . Printf ( "Creating tmp work dir: %s" ,  TmpWorkDir )   
					 
					 
					 
						log . Printf ( "Creating tmp work dir: %s" ,  TmpWorkDir )   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					
 
					 
					 
					 
					
 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
						reposDump  :=  path . Join ( TmpWorkDir ,  "gogs -repo.zip" )   
					 
					 
					 
						reposDump  :=  path . Join ( TmpWorkDir ,  "gitea -repo.zip" )   
				
			 
			
				
				
			
		
	
		
		
			
				
					
					 
					 
					 
						dbDump  :=  path . Join ( TmpWorkDir ,  "gogs -db.sql" )   
					 
					 
					 
						dbDump  :=  path . Join ( TmpWorkDir ,  "gitea -db.sql" )   
				
			 
			
				
				
			
		
	
		
		
	
		
		
	
		
		
			
				
					
					 
					 
					 
					
 
					 
					 
					 
					
 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
						log . Printf ( "Dumping local repositories...%s" ,  setting . RepoRootPath )   
					 
					 
					 
						log . Printf ( "Dumping local repositories...%s" ,  setting . RepoRootPath )   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
						zip . Verbose  =  ctx . Bool ( "verbose" )   
					 
					 
					 
						zip . Verbose  =  ctx . Bool ( "verbose" )   
				
			 
			
		
	
	
		
		
			
				
					
						
						
						
							
								 
							 
						
					 
					 
					@ -75,18 +76,18 @@ func runDump(ctx *cli.Context) error { 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
							log . Fatalf ( "Fail to dump database: %v" ,  err )   
					 
					 
					 
							log . Fatalf ( "Fail to dump database: %v" ,  err )   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
						}   
					 
					 
					 
						}   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					
 
					 
					 
					 
					
 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
						fileName  :=  fmt . Sprintf ( "gogs -dump-%d.zip" ,  time . Now ( ) . Unix ( ) )   
					 
					 
					 
						fileName  :=  fmt . Sprintf ( "gitea -dump-%d.zip" ,  time . Now ( ) . Unix ( ) )   
				
			 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 
					 
					 
						log . Printf ( "Packing dump files..." )   
					 
					 
					 
						log . Printf ( "Packing dump files..." )   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
						z ,  err  :=  zip . Create ( fileName )   
					 
					 
					 
						z ,  err  :=  zip . Create ( fileName )   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
						if  err  !=  nil  {   
					 
					 
					 
						if  err  !=  nil  {   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
							log . Fatalf ( "Fail to create %s: %v" ,  fileName ,  err )   
					 
					 
					 
							log . Fatalf ( "Fail to create %s: %v" ,  fileName ,  err )   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
						}   
					 
					 
					 
						}   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					
 
					 
					 
					 
					
 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
						if  err  :=  z . AddFile ( "gogs -repo.zip" ,  reposDump ) ;  err  !=  nil  {   
					 
					 
					 
						if  err  :=  z . AddFile ( "gitea -repo.zip" ,  reposDump ) ;  err  !=  nil  {   
				
			 
			
				
				
			
		
	
		
		
			
				
					
					 
					 
					 
							log . Fatalf ( "Fail to include gogs -repo.zip: %v" ,  err )   
					 
					 
					 
							log . Fatalf ( "Fail to include gitea -repo.zip: %v" ,  err )   
				
			 
			
				
				
			
		
	
		
		
	
		
		
	
		
		
			
				
					
					 
					 
					 
						}   
					 
					 
					 
						}   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
						if  err  :=  z . AddFile ( "gogs -db.sql" ,  dbDump ) ;  err  !=  nil  {   
					 
					 
					 
						if  err  :=  z . AddFile ( "gitea -db.sql" ,  dbDump ) ;  err  !=  nil  {   
				
			 
			
				
				
			
		
	
		
		
			
				
					
					 
					 
					 
							log . Fatalf ( "Fail to include gogs -db.sql: %v" ,  err )   
					 
					 
					 
							log . Fatalf ( "Fail to include gitea -db.sql: %v" ,  err )   
				
			 
			
				
				
			
		
	
		
		
	
		
		
	
		
		
			
				
					
					 
					 
					 
						}   
					 
					 
					 
						}   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
						customDir ,  err  :=  os . Stat ( setting . CustomPath )   
					 
					 
					 
						customDir ,  err  :=  os . Stat ( setting . CustomPath )   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
						if  err  ==  nil  &&  customDir . IsDir ( )  {   
					 
					 
					 
						if  err  ==  nil  &&  customDir . IsDir ( )  {