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/doctor.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/doctor.go')
-rw-r--r-- | cmd/doctor.go | 29 |
1 files changed, 15 insertions, 14 deletions
diff --git a/cmd/doctor.go b/cmd/doctor.go index cd5f125e20..f8866c7b97 100644 --- a/cmd/doctor.go +++ b/cmd/doctor.go @@ -18,57 +18,58 @@ import ( "code.gitea.io/gitea/modules/log" "code.gitea.io/gitea/modules/setting" - "github.com/urfave/cli" + "github.com/urfave/cli/v2" "xorm.io/xorm" ) // CmdDoctor represents the available doctor sub-command. -var CmdDoctor = cli.Command{ +var CmdDoctor = &cli.Command{ Name: "doctor", Usage: "Diagnose and optionally fix problems", Description: "A command to diagnose problems with the current Gitea instance according to the given configuration. Some problems can optionally be fixed by modifying the database or data storage.", Action: runDoctor, Flags: []cli.Flag{ - cli.BoolFlag{ + &cli.BoolFlag{ Name: "list", Usage: "List the available checks", }, - cli.BoolFlag{ + &cli.BoolFlag{ Name: "default", Usage: "Run the default checks (if neither --run or --all is set, this is the default behaviour)", }, - cli.StringSliceFlag{ + &cli.StringSliceFlag{ Name: "run", Usage: "Run the provided checks - (if --default is set, the default checks will also run)", }, - cli.BoolFlag{ + &cli.BoolFlag{ Name: "all", Usage: "Run all the available checks", }, - cli.BoolFlag{ + &cli.BoolFlag{ Name: "fix", Usage: "Automatically fix what we can", }, - cli.StringFlag{ + &cli.StringFlag{ Name: "log-file", Usage: `Name of the log file (default: "doctor.log"). Set to "-" to output to stdout, set to "" to disable`, }, - cli.BoolFlag{ - Name: "color, H", - Usage: "Use color for outputted information", + &cli.BoolFlag{ + Name: "color", + Aliases: []string{"H"}, + Usage: "Use color for outputted information", }, }, - Subcommands: []cli.Command{ + Subcommands: []*cli.Command{ cmdRecreateTable, }, } -var cmdRecreateTable = cli.Command{ +var cmdRecreateTable = &cli.Command{ Name: "recreate-table", Usage: "Recreate tables from XORM definitions and copy the data.", ArgsUsage: "[TABLE]... : (TABLEs to recreate - leave blank for all)", Flags: []cli.Flag{ - cli.BoolFlag{ + &cli.BoolFlag{ Name: "debug", Usage: "Print SQL commands sent", }, |