diff options
author | wxiaoguang <wxiaoguang@gmail.com> | 2022-07-01 15:47:44 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-07-01 15:47:44 +0800 |
commit | 7c1f18a2bb409e2ed669c5e0e6ef8abc9e1a534b (patch) | |
tree | caaed0b4fc68cf6ad13fa32e2f900cce72a608d5 /cmd | |
parent | 2eb713bacc202662c875e48c1954e3dd0b73c7b3 (diff) | |
download | gitea-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.go | 6 | ||||
-rw-r--r-- | cmd/restore_repo.go | 14 |
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 { |