diff --git a/cmd/dump.go b/cmd/dump.go index bbefda63e..a89578529 100644 --- a/cmd/dump.go +++ b/cmd/dump.go @@ -48,6 +48,10 @@ It can be used for backup and capture Gitea server image to send to maintainer`, Name: "database, d", Usage: "Specify the database SQL syntax", }, + cli.BoolFlag{ + Name: "skip-repository, R", + Usage: "Skip the repository dumping", + }, }, } @@ -79,13 +83,27 @@ func runDump(ctx *cli.Context) error { os.Setenv("TMPDIR", tmpWorkDir) } - reposDump := path.Join(tmpWorkDir, "gitea-repo.zip") dbDump := path.Join(tmpWorkDir, "gitea-db.sql") - log.Printf("Dumping local repositories...%s", setting.RepoRootPath) + fileName := fmt.Sprintf("gitea-dump-%d.zip", time.Now().Unix()) + log.Printf("Packing dump files...") + z, err := zip.Create(fileName) + if err != nil { + log.Fatalf("Failed to create %s: %v", fileName, err) + } zip.Verbose = ctx.Bool("verbose") - if err := zip.PackTo(setting.RepoRootPath, reposDump, true); err != nil { - log.Fatalf("Failed to dump local repositories: %v", err) + + if ctx.IsSet("skip-repository") { + log.Printf("Skip dumping local repositories") + } else { + log.Printf("Dumping local repositories...%s", setting.RepoRootPath) + reposDump := path.Join(tmpWorkDir, "gitea-repo.zip") + if err := zip.PackTo(setting.RepoRootPath, reposDump, true); err != nil { + log.Fatalf("Failed to dump local repositories: %v", err) + } + if err := z.AddFile("gitea-repo.zip", reposDump); err != nil { + log.Fatalf("Failed to include gitea-repo.zip: %v", err) + } } targetDBType := ctx.String("database") @@ -99,16 +117,6 @@ func runDump(ctx *cli.Context) error { log.Fatalf("Failed to dump database: %v", err) } - fileName := fmt.Sprintf("gitea-dump-%d.zip", time.Now().Unix()) - log.Printf("Packing dump files...") - z, err := zip.Create(fileName) - if err != nil { - log.Fatalf("Failed to create %s: %v", fileName, err) - } - - if err := z.AddFile("gitea-repo.zip", reposDump); err != nil { - log.Fatalf("Failed to include gitea-repo.zip: %v", err) - } if err := z.AddFile("gitea-db.sql", dbDump); err != nil { log.Fatalf("Failed to include gitea-db.sql: %v", err) } diff --git a/docs/content/doc/usage/command-line.md b/docs/content/doc/usage/command-line.md index ed08e24a4..7c2fd5a46 100644 --- a/docs/content/doc/usage/command-line.md +++ b/docs/content/doc/usage/command-line.md @@ -149,6 +149,8 @@ in the current directory. - Options: - `--config path`, `-c path`: Gitea configuration file path. Optional. (default: custom/conf/app.ini). - `--tempdir path`, `-t path`: Path to the temporary directory used. Optional. (default: /tmp). + - `--skip-repository`, `-R`: Skip the repository dumping. Optional. + - `--database`, `-d`: Specify the database SQL syntax. Optional. - `--verbose`, `-v`: If provided, shows additional details. Optional. - Examples: - `gitea dump`