diff --git a/cmd/dump.go b/cmd/dump.go index 14f9a00b58..f6924270cf 100644 --- a/cmd/dump.go +++ b/cmd/dump.go @@ -122,7 +122,6 @@ It can be used for backup and capture Forgejo server image to send to maintainer &cli.StringFlag{ Name: "tempdir", Aliases: []string{"t"}, - Value: os.TempDir(), Usage: "Temporary dir path", }, &cli.StringFlag{ @@ -288,18 +287,31 @@ func runDump(ctx *cli.Context) error { } tmpDir := ctx.String("tempdir") + if tmpDir == "" { + tmpDir, err = os.MkdirTemp("", "forgejo-dump-*") + if err != nil { + fatal("Failed to create temporary directory: %v", err) + } + + defer func() { + if err := util.Remove(tmpDir); err != nil { + log.Warn("Failed to remove temporary directory: %s: Error: %v", tmpDir, err) + } + }() + } + if _, err := os.Stat(tmpDir); os.IsNotExist(err) { fatal("Path does not exist: %s", tmpDir) } dbDump, err := os.CreateTemp(tmpDir, "forgejo-db.sql") if err != nil { - fatal("Failed to create tmp file: %v", err) + fatal("Failed to create temporary file: %v", err) } defer func() { _ = dbDump.Close() if err := util.Remove(dbDump.Name()); err != nil { - log.Warn("Failed to remove temporary file: %s: Error: %v", dbDump.Name(), err) + log.Warn("Failed to remove temporary database file: %s: Error: %v", dbDump.Name(), err) } }()