diff options
author | wxiaoguang <wxiaoguang@gmail.com> | 2023-07-25 16:38:27 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-07-25 16:38:27 +0200 |
commit | 1ce51a55e348a2e2fed623790e933408ec59d662 (patch) | |
tree | 550e0221ae65fa24531479ee5dc59dc68c39b35b /cmd/doctor.go | |
parent | Fix wrong commit status in web ui (#26121) (diff) | |
download | forgejo-1ce51a55e348a2e2fed623790e933408ec59d662.tar.xz forgejo-1ce51a55e348a2e2fed623790e933408ec59d662.zip |
Improve "gitea doctor" sub-command and fix "help" commands (#26072)
Replace #21790
And close #25965 by the way (it needs a separate fix for 1.20)
Major changes:
1. Move "gitea convert" to "gitea doctor conver". The old "gitea doctor"
still works as a hidden sub-command (to avoid breaking)
2. Do not write "doctor.log" by default, it's not useful in most cases
and causes bugs like 25965
3. Improve documents
4. Fix the "help" commands. Before, the "./gitea doctor" can't show the
sub-command help correctly (regression of the last cli/v2 refactoring)
After this PR:
```
./gitea help # show all sub-commands for the app
./gitea doctor # show the sub-commands for the "doctor"
./gitea doctor help # show the sub-commands for the "doctor", as above
```
Diffstat (limited to 'cmd/doctor.go')
-rw-r--r-- | cmd/doctor.go | 34 |
1 files changed, 18 insertions, 16 deletions
diff --git a/cmd/doctor.go b/cmd/doctor.go index f8866c7b97..d040a3af1c 100644 --- a/cmd/doctor.go +++ b/cmd/doctor.go @@ -22,12 +22,11 @@ import ( "xorm.io/xorm" ) -// CmdDoctor represents the available doctor sub-command. -var CmdDoctor = &cli.Command{ - Name: "doctor", +var cmdDoctorCheck = &cli.Command{ + Name: "check", 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, + Action: runDoctorCheck, Flags: []cli.Flag{ &cli.BoolFlag{ Name: "list", @@ -51,7 +50,7 @@ var CmdDoctor = &cli.Command{ }, &cli.StringFlag{ Name: "log-file", - Usage: `Name of the log file (default: "doctor.log"). Set to "-" to output to stdout, set to "" to disable`, + Usage: `Name of the log file (no verbose log output by default). Set to "-" to output to stdout`, }, &cli.BoolFlag{ Name: "color", @@ -59,8 +58,18 @@ var CmdDoctor = &cli.Command{ Usage: "Use color for outputted information", }, }, +} + +// CmdDoctor represents the available doctor sub-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.", + Subcommands: []*cli.Command{ + cmdDoctorCheck, cmdRecreateTable, + cmdDoctorConvert, }, } @@ -133,16 +142,9 @@ func setupDoctorDefaultLogger(ctx *cli.Context, colorize bool) { setupConsoleLogger(log.FATAL, log.CanColorStderr, os.Stderr) logFile := ctx.String("log-file") - if !ctx.IsSet("log-file") { - logFile = "doctor.log" - } - - if len(logFile) == 0 { - // if no doctor log-file is set, do not show any log from default logger - return - } - - if logFile == "-" { + if logFile == "" { + return // if no doctor log-file is set, do not show any log from default logger + } else if logFile == "-" { setupConsoleLogger(log.TRACE, colorize, os.Stdout) } else { logFile, _ = filepath.Abs(logFile) @@ -156,7 +158,7 @@ func setupDoctorDefaultLogger(ctx *cli.Context, colorize bool) { } } -func runDoctor(ctx *cli.Context) error { +func runDoctorCheck(ctx *cli.Context) error { stdCtx, cancel := installSignals() defer cancel() |