@@ -20,7 +20,6 @@ import (
2020 "code.gitea.io/gitea/modules/util"
2121
2222 "gitea.com/go-chi/session"
23- "github.com/mholt/archiver/v3"
2423 "github.com/urfave/cli/v3"
2524)
2625
@@ -146,22 +145,18 @@ func runDump(ctx context.Context, cmd *cli.Command) error {
146145 return err
147146 }
148147
149- archiverGeneric , err := archiver . ByExtension ( "." + outType )
148+ dumper , err := dump . NewDumper ( ctx , outType , outFile )
150149 if err != nil {
151- fatal ("Unable to get archiver for extension: %v" , err )
152- }
153-
154- archiverWriter := archiverGeneric .(archiver.Writer )
155- if err := archiverWriter .Create (outFile ); err != nil {
156- fatal ("Creating archiver.Writer failed: %v" , err )
157- }
158- defer archiverWriter .Close ()
159-
160- dumper := & dump.Dumper {
161- Writer : archiverWriter ,
162- Verbose : verbose ,
150+ fatal ("Failed to create archive %q: %v" , outFile , err )
151+ return err
163152 }
153+ dumper .Verbose = verbose
164154 dumper .GlobalExcludeAbsPath (outFileName )
155+ defer func () {
156+ if err := dumper .Close (); err != nil {
157+ fatal ("Failed to save archive %q: %v" , outFileName , err )
158+ }
159+ }()
165160
166161 if cmd .IsSet ("skip-repository" ) && cmd .Bool ("skip-repository" ) {
167162 log .Info ("Skip dumping local repositories" )
@@ -180,7 +175,7 @@ func runDump(ctx context.Context, cmd *cli.Command) error {
180175 if err != nil {
181176 return err
182177 }
183- return dumper .AddReader (object , info , path .Join ("data" , "lfs" , objPath ))
178+ return dumper .AddFileByReader (object , info , path .Join ("data" , "lfs" , objPath ))
184179 }); err != nil {
185180 fatal ("Failed to dump LFS objects: %v" , err )
186181 }
@@ -218,13 +213,13 @@ func runDump(ctx context.Context, cmd *cli.Command) error {
218213 fatal ("Failed to dump database: %v" , err )
219214 }
220215
221- if err = dumper .AddFile ("gitea-db.sql" , dbDump .Name ()); err != nil {
216+ if err = dumper .AddFileByPath ("gitea-db.sql" , dbDump .Name ()); err != nil {
222217 fatal ("Failed to include gitea-db.sql: %v" , err )
223218 }
224219 }
225220
226221 log .Info ("Adding custom configuration file from %s" , setting .CustomConf )
227- if err = dumper .AddFile ("app.ini" , setting .CustomConf ); err != nil {
222+ if err = dumper .AddFileByPath ("app.ini" , setting .CustomConf ); err != nil {
228223 fatal ("Failed to include specified app.ini: %v" , err )
229224 }
230225
@@ -283,7 +278,7 @@ func runDump(ctx context.Context, cmd *cli.Command) error {
283278 if err != nil {
284279 return err
285280 }
286- return dumper .AddReader (object , info , path .Join ("data" , "attachments" , objPath ))
281+ return dumper .AddFileByReader (object , info , path .Join ("data" , "attachments" , objPath ))
287282 }); err != nil {
288283 fatal ("Failed to dump attachments: %v" , err )
289284 }
@@ -297,7 +292,7 @@ func runDump(ctx context.Context, cmd *cli.Command) error {
297292 if err != nil {
298293 return err
299294 }
300- return dumper .AddReader (object , info , path .Join ("data" , "packages" , objPath ))
295+ return dumper .AddFileByReader (object , info , path .Join ("data" , "packages" , objPath ))
301296 }); err != nil {
302297 fatal ("Failed to dump packages: %v" , err )
303298 }
@@ -322,10 +317,6 @@ func runDump(ctx context.Context, cmd *cli.Command) error {
322317 if outFileName == "-" {
323318 log .Info ("Finish dumping to stdout" )
324319 } else {
325- if err = archiverWriter .Close (); err != nil {
326- _ = os .Remove (outFileName )
327- fatal ("Failed to save %q: %v" , outFileName , err )
328- }
329320 if err = os .Chmod (outFileName , 0o600 ); err != nil {
330321 log .Info ("Can't change file access permissions mask to 0600: %v" , err )
331322 }
0 commit comments