Merge pull request #1562 from dearchap/issue_1114

Fix:(issue_1114) Add SkipFlagParsing to app to allow --
This commit is contained in:
dearchap 2022-11-02 14:47:03 -04:00 committed by GitHub
commit d0aeb4d55d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 25 additions and 0 deletions

3
app.go
View File

@ -116,6 +116,8 @@ type App struct {
// Allows global flags set by libraries which use flag.XXXVar(...) directly
// to be parsed through this library
AllowExtFlags bool
// Treat all flags as normal arguments if true
SkipFlagParsing bool
didSetup bool
@ -285,6 +287,7 @@ func (a *App) newRootCommand() *Command {
HelpName: a.HelpName,
CustomHelpTemplate: a.CustomAppHelpTemplate,
categories: a.categories,
SkipFlagParsing: a.SkipFlagParsing,
isRoot: true,
}
}

View File

@ -813,6 +813,24 @@ func TestApp_CommandWithNoFlagBeforeTerminator(t *testing.T) {
expect(t, args.Get(2), "notAFlagAtAll")
}
func TestApp_SkipFlagParsing(t *testing.T) {
var args Args
app := &App{
SkipFlagParsing: true,
Action: func(c *Context) error {
args = c.Args()
return nil
},
}
_ = app.Run([]string{"", "--", "my-arg", "notAFlagAtAll"})
expect(t, args.Get(0), "--")
expect(t, args.Get(1), "my-arg")
expect(t, args.Get(2), "notAFlagAtAll")
}
func TestApp_VisibleCommands(t *testing.T) {
app := &App{
Commands: []*Command{

View File

@ -327,6 +327,8 @@ type App struct {
// Allows global flags set by libraries which use flag.XXXVar(...) directly
// to be parsed through this library
AllowExtFlags bool
// Treat all flags as normal arguments if true
SkipFlagParsing bool
// Has unexported fields.
}

View File

@ -327,6 +327,8 @@ type App struct {
// Allows global flags set by libraries which use flag.XXXVar(...) directly
// to be parsed through this library
AllowExtFlags bool
// Treat all flags as normal arguments if true
SkipFlagParsing bool
// Has unexported fields.
}