aboutsummaryrefslogtreecommitdiffstats
path: root/cmd/dump.go
diff options
context:
space:
mode:
authorwxiaoguang <wxiaoguang@gmail.com>2023-07-21 17:28:19 +0800
committerGitHub <noreply@github.com>2023-07-21 17:28:19 +0800
commitd0dbe52e76f3038777c3b50066e3636105387ca3 (patch)
tree4c159ed98a365300b6145bde03a06c29dcd21794 /cmd/dump.go
parent840830b655a65c0763e3fd4bd0ced9256d2081a5 (diff)
downloadgitea-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.go69
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()),