Adding more error handling in dump cmd
The dump cmd did not check the return value of the z.AddFile or z.AddDir when building the final archive. It caused the dump command to succeed even if an error occurred. The resulted dump archive could be corrupted/empty. (errors could be various: removal by a concurrent process, disk full, bugs in the dump cmd itself)
This commit is contained in:
		
							parent
							
								
									aaa3f1b2b9
								
							
						
					
					
						commit
						f86afb04a2
					
				
					 1 changed files with 12 additions and 4 deletions
				
			
		
							
								
								
									
										16
									
								
								cmd/dump.go
									
									
									
									
									
								
							
							
						
						
									
										16
									
								
								cmd/dump.go
									
									
									
									
									
								
							|  | @ -60,10 +60,18 @@ func runDump(ctx *cli.Context) { | |||
| 	} | ||||
| 
 | ||||
| 	workDir, _ := setting.WorkDir() | ||||
| 	z.AddFile("gogs-repo.zip", path.Join(workDir, "gogs-repo.zip")) | ||||
| 	z.AddFile("gogs-db.sql", path.Join(workDir, "gogs-db.sql")) | ||||
| 	z.AddDir("custom", path.Join(workDir, "custom")) | ||||
| 	z.AddDir("log", path.Join(workDir, "log")) | ||||
| 	if err := z.AddFile("gogs-repo.zip", path.Join(workDir, "gogs-repo.zip")); err !=nil { | ||||
| 		log.Fatalf("Fail to include gogs-repo.zip: %v", err) | ||||
| 	} | ||||
| 	if err := z.AddFile("gogs-db.sql", path.Join(workDir, "gogs-db.sql")); err !=nil { | ||||
| 		log.Fatalf("Fail to include gogs-db.sql: %v", err) | ||||
| 	} | ||||
| 	if err := z.AddDir("custom", path.Join(workDir, "custom")); err !=nil { | ||||
| 		log.Fatalf("Fail to include custom: %v", err) | ||||
| 	} | ||||
| 	if err := z.AddDir("log", path.Join(workDir, "log")); err !=nil { | ||||
| 		log.Fatalf("Fail to include log: %v", err) | ||||
| 	} | ||||
| 	// FIXME: SSH key file.
 | ||||
| 	if err = z.Close(); err != nil { | ||||
| 		os.Remove(fileName) | ||||
|  |  | |||
		Loading…
	
		Reference in a new issue