aboutsummaryrefslogtreecommitdiffstats
path: root/cmd
diff options
context:
space:
mode:
authorwxiaoguang <wxiaoguang@gmail.com>2022-07-01 15:47:44 +0800
committerGitHub <noreply@github.com>2022-07-01 15:47:44 +0800
commit7c1f18a2bb409e2ed669c5e0e6ef8abc9e1a534b (patch)
treecaaed0b4fc68cf6ad13fa32e2f900cce72a608d5 /cmd
parent2eb713bacc202662c875e48c1954e3dd0b73c7b3 (diff)
downloadgitea-7c1f18a2bb409e2ed669c5e0e6ef8abc9e1a534b.tar.gz
gitea-7c1f18a2bb409e2ed669c5e0e6ef8abc9e1a534b.zip
Fix cli command restore-repo: "units" should be splitted to string slice, to match the old behavior and match the dump-repo's behavior (#20183)
Diffstat (limited to 'cmd')
-rw-r--r--cmd/dump_repo.go6
-rw-r--r--cmd/restore_repo.go14
2 files changed, 14 insertions, 6 deletions
diff --git a/cmd/dump_repo.go b/cmd/dump_repo.go
index be0171c9f7..c9d24c6c83 100644
--- a/cmd/dump_repo.go
+++ b/cmd/dump_repo.go
@@ -134,7 +134,9 @@ func runDumpRepository(ctx *cli.Context) error {
} else {
units := strings.Split(ctx.String("units"), ",")
for _, unit := range units {
- switch strings.ToLower(unit) {
+ switch strings.ToLower(strings.TrimSpace(unit)) {
+ case "":
+ continue
case "wiki":
opts.Wiki = true
case "issues":
@@ -151,6 +153,8 @@ func runDumpRepository(ctx *cli.Context) error {
opts.Comments = true
case "pull_requests":
opts.PullRequests = true
+ default:
+ return errors.New("invalid unit: " + unit)
}
}
}
diff --git a/cmd/restore_repo.go b/cmd/restore_repo.go
index c3081279df..2256cc61ab 100644
--- a/cmd/restore_repo.go
+++ b/cmd/restore_repo.go
@@ -7,6 +7,7 @@ package cmd
import (
"errors"
"net/http"
+ "strings"
"code.gitea.io/gitea/modules/log"
"code.gitea.io/gitea/modules/private"
@@ -37,10 +38,10 @@ var CmdRestoreRepository = cli.Command{
Value: "",
Usage: "Restore destination repository name",
},
- cli.StringSliceFlag{
+ cli.StringFlag{
Name: "units",
- Value: nil,
- Usage: `Which items will be restored, one or more units should be repeated with this flag.
+ Value: "",
+ Usage: `Which items will be restored, one or more units should be separated as comma.
wiki, issues, labels, releases, release_assets, milestones, pull_requests, comments are allowed. Empty means all units.`,
},
cli.BoolFlag{
@@ -55,13 +56,16 @@ func runRestoreRepository(c *cli.Context) error {
defer cancel()
setting.LoadFromExisting()
-
+ var units []string
+ if s := c.String("units"); s != "" {
+ units = strings.Split(s, ",")
+ }
statusCode, errStr := private.RestoreRepo(
ctx,
c.String("repo_dir"),
c.String("owner_name"),
c.String("repo_name"),
- c.StringSlice("units"),
+ units,
c.Bool("validation"),
)
if statusCode == http.StatusOK {