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/manager.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/manager.go')
-rw-r--r-- | cmd/manager.go | 40 |
1 files changed, 20 insertions, 20 deletions
diff --git a/cmd/manager.go b/cmd/manager.go index 2024d5ebbd..bd2da8edc7 100644 --- a/cmd/manager.go +++ b/cmd/manager.go @@ -9,16 +9,16 @@ import ( "code.gitea.io/gitea/modules/private" - "github.com/urfave/cli" + "github.com/urfave/cli/v2" ) var ( // CmdManager represents the manager command - CmdManager = cli.Command{ + CmdManager = &cli.Command{ Name: "manager", Usage: "Manage the running gitea process", Description: "This is a command for managing the running gitea process", - Subcommands: []cli.Command{ + Subcommands: []*cli.Command{ subcmdShutdown, subcmdRestart, subcmdReloadTemplates, @@ -27,80 +27,80 @@ var ( subCmdProcesses, }, } - subcmdShutdown = cli.Command{ + subcmdShutdown = &cli.Command{ Name: "shutdown", Usage: "Gracefully shutdown the running process", Flags: []cli.Flag{ - cli.BoolFlag{ + &cli.BoolFlag{ Name: "debug", }, }, Action: runShutdown, } - subcmdRestart = cli.Command{ + subcmdRestart = &cli.Command{ Name: "restart", Usage: "Gracefully restart the running process - (not implemented for windows servers)", Flags: []cli.Flag{ - cli.BoolFlag{ + &cli.BoolFlag{ Name: "debug", }, }, Action: runRestart, } - subcmdReloadTemplates = cli.Command{ + subcmdReloadTemplates = &cli.Command{ Name: "reload-templates", Usage: "Reload template files in the running process", Flags: []cli.Flag{ - cli.BoolFlag{ + &cli.BoolFlag{ Name: "debug", }, }, Action: runReloadTemplates, } - subcmdFlushQueues = cli.Command{ + subcmdFlushQueues = &cli.Command{ Name: "flush-queues", Usage: "Flush queues in the running process", Action: runFlushQueues, Flags: []cli.Flag{ - cli.DurationFlag{ + &cli.DurationFlag{ Name: "timeout", Value: 60 * time.Second, Usage: "Timeout for the flushing process", }, - cli.BoolFlag{ + &cli.BoolFlag{ Name: "non-blocking", Usage: "Set to true to not wait for flush to complete before returning", }, - cli.BoolFlag{ + &cli.BoolFlag{ Name: "debug", }, }, } - subCmdProcesses = cli.Command{ + subCmdProcesses = &cli.Command{ Name: "processes", Usage: "Display running processes within the current process", Action: runProcesses, Flags: []cli.Flag{ - cli.BoolFlag{ + &cli.BoolFlag{ Name: "debug", }, - cli.BoolFlag{ + &cli.BoolFlag{ Name: "flat", Usage: "Show processes as flat table rather than as tree", }, - cli.BoolFlag{ + &cli.BoolFlag{ Name: "no-system", Usage: "Do not show system processes", }, - cli.BoolFlag{ + &cli.BoolFlag{ Name: "stacktraces", Usage: "Show stacktraces", }, - cli.BoolFlag{ + &cli.BoolFlag{ Name: "json", Usage: "Output as json", }, - cli.StringFlag{ + &cli.StringFlag{ Name: "cancel", Usage: "Process PID to cancel. (Only available for non-system processes.)", }, |