diff options
author | wxiaoguang <wxiaoguang@gmail.com> | 2023-07-21 17:28:19 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-07-21 17:28:19 +0800 |
commit | d0dbe52e76f3038777c3b50066e3636105387ca3 (patch) | |
tree | 4c159ed98a365300b6145bde03a06c29dcd21794 /cmd/dump.go | |
parent | 840830b655a65c0763e3fd4bd0ced9256d2081a5 (diff) | |
download | gitea-d0dbe52e76f3038777c3b50066e3636105387ca3.tar.gz gitea-d0dbe52e76f3038777c3b50066e3636105387ca3.zip |
Refactor to use urfave/cli/v2 (#25959)
Replace #10912
And there are many new tests to cover the CLI behavior
There were some concerns about the "option order in hook scripts"
(https://github.com/go-gitea/gitea/pull/10912#issuecomment-1137543314),
it's not a problem now. Because the hook script uses `/gitea hook
--config=/app.ini pre-receive` format. The "config" is a global option,
it can appear anywhere.
----
## ⚠️ BREAKING ⚠️
This PR does it best to avoid breaking anything. The major changes are:
* `gitea` itself won't accept web's options: `--install-port` / `--pid`
/ `--port` / `--quiet` / `--verbose` .... They are `web` sub-command's
options.
* Use `./gitea web --pid ....` instead
* `./gitea` can still run the `web` sub-command as shorthand, with
default options
* The sub-command's options must follow the sub-command
* Before: `./gitea --sub-opt subcmd` might equal to `./gitea subcmd
--sub-opt` (well, might not ...)
* After: only `./gitea subcmd --sub-opt` could be used
* The global options like `--config` are not affected
Diffstat (limited to 'cmd/dump.go')
-rw-r--r-- | cmd/dump.go | 69 |
1 files changed, 38 insertions, 31 deletions
diff --git a/cmd/dump.go b/cmd/dump.go index b1aed8aef4..9b5259b86f 100644 --- a/cmd/dump.go +++ b/cmd/dump.go @@ -22,7 +22,7 @@ import ( "gitea.com/go-chi/session" "github.com/mholt/archiver/v3" - "github.com/urfave/cli" + "github.com/urfave/cli/v2" ) func addReader(w archiver.Writer, r io.ReadCloser, info os.FileInfo, customName string, verbose bool) error { @@ -96,64 +96,71 @@ var outputTypeEnum = &outputType{ } // CmdDump represents the available dump sub-command. -var CmdDump = cli.Command{ +var CmdDump = &cli.Command{ Name: "dump", Usage: "Dump Gitea files and database", Description: `Dump compresses all related files and database into zip file. It can be used for backup and capture Gitea server image to send to maintainer`, Action: runDump, Flags: []cli.Flag{ - cli.StringFlag{ - Name: "file, f", - Value: fmt.Sprintf("gitea-dump-%d.zip", time.Now().Unix()), - Usage: "Name of the dump file which will be created. Supply '-' for stdout. See type for available types.", + &cli.StringFlag{ + Name: "file", + Aliases: []string{"f"}, + Value: fmt.Sprintf("gitea-dump-%d.zip", time.Now().Unix()), + Usage: "Name of the dump file which will be created. Supply '-' for stdout. See type for available types.", }, - cli.BoolFlag{ - Name: "verbose, V", - Usage: "Show process details", + &cli.BoolFlag{ + Name: "verbose", + Aliases: []string{"V"}, + Usage: "Show process details", }, - cli.BoolFlag{ - Name: "quiet, q", - Usage: "Only display warnings and errors", + &cli.BoolFlag{ + Name: "quiet", + Aliases: []string{"q"}, + Usage: "Only display warnings and errors", }, - cli.StringFlag{ - Name: "tempdir, t", - Value: os.TempDir(), - Usage: "Temporary dir path", + &cli.StringFlag{ + Name: "tempdir", + Aliases: []string{"t"}, + Value: os.TempDir(), + Usage: "Temporary dir path", }, - cli.StringFlag{ - Name: "database, d", - Usage: "Specify the database SQL syntax", + &cli.StringFlag{ + Name: "database", + Aliases: []string{"d"}, + Usage: "Specify the database SQL syntax", }, - cli.BoolFlag{ - Name: "skip-repository, R", - Usage: "Skip the repository dumping", + &cli.BoolFlag{ + Name: "skip-repository", + Aliases: []string{"R"}, + Usage: "Skip the repository dumping", }, - cli.BoolFlag{ - Name: "skip-log, L", - Usage: "Skip the log dumping", + &cli.BoolFlag{ + Name: "skip-log", + Aliases: []string{"L"}, + Usage: "Skip the log dumping", }, - cli.BoolFlag{ + &cli.BoolFlag{ Name: "skip-custom-dir", Usage: "Skip custom directory", }, - cli.BoolFlag{ + &cli.BoolFlag{ Name: "skip-lfs-data", Usage: "Skip LFS data", }, - cli.BoolFlag{ + &cli.BoolFlag{ Name: "skip-attachment-data", Usage: "Skip attachment data", }, - cli.BoolFlag{ + &cli.BoolFlag{ Name: "skip-package-data", Usage: "Skip package data", }, - cli.BoolFlag{ + &cli.BoolFlag{ Name: "skip-index", Usage: "Skip bleve index data", }, - cli.GenericFlag{ + &cli.GenericFlag{ Name: "type", Value: outputTypeEnum, Usage: fmt.Sprintf("Dump output format: %s", outputTypeEnum.Join()), |