summaryrefslogtreecommitdiffstats
path: root/cmd/main.go
diff options
context:
space:
mode:
Diffstat (limited to 'cmd/main.go')
-rw-r--r--cmd/main.go21
1 files changed, 14 insertions, 7 deletions
diff --git a/cmd/main.go b/cmd/main.go
index b4a38a4523..e44f9382b7 100644
--- a/cmd/main.go
+++ b/cmd/main.go
@@ -11,6 +11,7 @@ import (
"code.gitea.io/gitea/modules/log"
"code.gitea.io/gitea/modules/setting"
+ "code.gitea.io/gitea/modules/util"
"github.com/urfave/cli/v2"
)
@@ -23,9 +24,13 @@ func cmdHelp() *cli.Command {
Usage: "Shows a list of commands or help for one command",
ArgsUsage: "[command]",
Action: func(c *cli.Context) (err error) {
- args := c.Args()
- if args.Present() {
- err = cli.ShowCommandHelp(c, args.First())
+ lineage := c.Lineage() // The order is from child to parent: help, doctor, Gitea, {Command:nil}
+ targetCmdIdx := 0
+ if c.Command.Name == "help" {
+ targetCmdIdx = 1
+ }
+ if lineage[targetCmdIdx+1].Command != nil {
+ err = cli.ShowCommandHelp(lineage[targetCmdIdx+1], lineage[targetCmdIdx].Command.Name)
} else {
err = cli.ShowAppHelp(c)
}
@@ -94,9 +99,8 @@ func prepareSubcommandWithConfig(command *cli.Command, globalFlags []cli.Flag) {
func prepareWorkPathAndCustomConf(action cli.ActionFunc) func(ctx *cli.Context) error {
return func(ctx *cli.Context) error {
var args setting.ArgWorkPathAndCustomConf
- ctxLineage := ctx.Lineage()
- for i := len(ctxLineage) - 1; i >= 0; i-- {
- curCtx := ctxLineage[i]
+ // from children to parent, check the global flags
+ for _, curCtx := range ctx.Lineage() {
if curCtx.IsSet("work-path") && args.WorkPath == "" {
args.WorkPath = curCtx.String("work-path")
}
@@ -159,7 +163,6 @@ func NewMainApp() *cli.App {
CmdAdmin,
CmdMigrate,
CmdKeys,
- CmdConvert,
CmdDoctor,
CmdManager,
CmdEmbedded,
@@ -170,6 +173,10 @@ func NewMainApp() *cli.App {
cmdHelp(), // the "help" sub-command was used to show the more information for "work path" and "custom config"
}
+ cmdConvert := util.ToPointer(*cmdDoctorConvert)
+ cmdConvert.Hidden = true // still support the legacy "./gitea doctor" by the hidden sub-command, remove it in next release
+ subCmdWithConfig = append(subCmdWithConfig, cmdConvert)
+
// these sub-commands do not need the config file, and they do not depend on any path or environment variable.
subCmdStandalone := []*cli.Command{
CmdCert,