mirror of
				https://github.com/go-gitea/gitea.git
				synced 2025-10-29 10:57:44 +09:00 
			
		
		
		
	Fix incorrect CLI exit code and duplicate error message (#26346)
Follow the CLI refactoring, and add tests.
This commit is contained in:
		
							
								
								
									
										22
									
								
								cmd/main.go
									
									
									
									
									
								
							
							
						
						
									
										22
									
								
								cmd/main.go
									
									
									
									
									
								
							| @@ -6,6 +6,7 @@ package cmd | ||||
| import ( | ||||
| 	"fmt" | ||||
| 	"os" | ||||
| 	"strings" | ||||
|  | ||||
| 	"code.gitea.io/gitea/modules/log" | ||||
| 	"code.gitea.io/gitea/modules/setting" | ||||
| @@ -117,8 +118,12 @@ func prepareWorkPathAndCustomConf(action cli.ActionFunc) func(ctx *cli.Context) | ||||
| 	} | ||||
| } | ||||
|  | ||||
| func NewMainApp() *cli.App { | ||||
| func NewMainApp(version, versionExtra string) *cli.App { | ||||
| 	app := cli.NewApp() | ||||
| 	app.Name = "Gitea" | ||||
| 	app.Usage = "A painless self-hosted Git service" | ||||
| 	app.Description = `By default, Gitea will start serving using the web-server with no argument, which can alternatively be run by running the subcommand "web".` | ||||
| 	app.Version = version + versionExtra | ||||
| 	app.EnableBashCompletion = true | ||||
|  | ||||
| 	// these sub-commands need to use config file | ||||
| @@ -166,3 +171,18 @@ func NewMainApp() *cli.App { | ||||
|  | ||||
| 	return app | ||||
| } | ||||
|  | ||||
| func RunMainApp(app *cli.App, args ...string) error { | ||||
| 	err := app.Run(args) | ||||
| 	if err == nil { | ||||
| 		return nil | ||||
| 	} | ||||
| 	if strings.HasPrefix(err.Error(), "flag provided but not defined:") { | ||||
| 		// the cli package should already have output the error message, so just exit | ||||
| 		cli.OsExiter(1) | ||||
| 		return err | ||||
| 	} | ||||
| 	_, _ = fmt.Fprintf(app.ErrWriter, "Command error: %v\n", err) | ||||
| 	cli.OsExiter(1) | ||||
| 	return err | ||||
| } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user