Skip to content

Commit 7656c5f

Browse files
authored
Merge pull request #1847 from dolmen/build-flag-disable-suggest
v2: Add build tag urfave_cli_no_suggest
2 parents 83ffe99 + 32d535b commit 7656c5f

File tree

6 files changed

+21
-7
lines changed

6 files changed

+21
-7
lines changed

app.go

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,8 @@ var (
2323
fmt.Sprintf("See %s", appActionDeprecationURL), 2)
2424
ignoreFlagPrefix = "test." // this is to ignore test flags when adding flags from other packages
2525

26-
SuggestFlag SuggestFlagFunc = suggestFlag
27-
SuggestCommand SuggestCommandFunc = suggestCommand
26+
SuggestFlag SuggestFlagFunc = nil // initialized in suggestions.go unless built with urfave_cli_no_suggest
27+
SuggestCommand SuggestCommandFunc = nil // initialized in suggestions.go unless built with urfave_cli_no_suggest
2828
SuggestDidYouMeanTemplate string = suggestDidYouMeanTemplate
2929
)
3030

@@ -368,6 +368,9 @@ func (a *App) suggestFlagFromError(err error, command string) (string, error) {
368368
hideHelp = hideHelp || cmd.HideHelp
369369
}
370370

371+
if SuggestFlag == nil {
372+
return "", err
373+
}
371374
suggestion := SuggestFlag(flags, flag, hideHelp)
372375
if len(suggestion) == 0 {
373376
return "", err

godoc-current.txt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,8 +27,8 @@ application:
2727
VARIABLES
2828

2929
var (
30-
SuggestFlag SuggestFlagFunc = suggestFlag
31-
SuggestCommand SuggestCommandFunc = suggestCommand
30+
SuggestFlag SuggestFlagFunc = nil // initialized in suggestions.go unless built with urfave_cli_no_suggest
31+
SuggestCommand SuggestCommandFunc = nil // initialized in suggestions.go unless built with urfave_cli_no_suggest
3232
SuggestDidYouMeanTemplate string = suggestDidYouMeanTemplate
3333
)
3434
var AppHelpTemplate = `NAME:

help.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -278,7 +278,7 @@ func ShowCommandHelp(ctx *Context, command string) error {
278278

279279
if ctx.App.CommandNotFound == nil {
280280
errMsg := fmt.Sprintf("No help topic for '%v'", command)
281-
if ctx.App.Suggest {
281+
if ctx.App.Suggest && SuggestCommand != nil {
282282
if suggestion := SuggestCommand(ctx.Command.Subcommands, command); suggestion != "" {
283283
errMsg += ". " + suggestion
284284
}

suggestions.go

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,6 @@
1+
//go:build !urfave_cli_no_suggest
2+
// +build !urfave_cli_no_suggest
3+
14
package cli
25

36
import (
@@ -6,6 +9,11 @@ import (
69
"github.com/xrash/smetrics"
710
)
811

12+
func init() {
13+
SuggestFlag = suggestFlag
14+
SuggestCommand = suggestCommand
15+
}
16+
917
func jaroWinkler(a, b string) float64 {
1018
// magic values are from https://github.com/xrash/smetrics/blob/039620a656736e6ad994090895784a7af15e0b80/jaro-winkler.go#L8
1119
const (

suggestions_test.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,6 @@
1+
//go:build !urfave_cli_no_suggest
2+
// +build !urfave_cli_no_suggest
3+
14
package cli
25

36
import (

testdata/godoc-v2.x.txt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,8 +27,8 @@ application:
2727
VARIABLES
2828

2929
var (
30-
SuggestFlag SuggestFlagFunc = suggestFlag
31-
SuggestCommand SuggestCommandFunc = suggestCommand
30+
SuggestFlag SuggestFlagFunc = nil // initialized in suggestions.go unless built with urfave_cli_no_suggest
31+
SuggestCommand SuggestCommandFunc = nil // initialized in suggestions.go unless built with urfave_cli_no_suggest
3232
SuggestDidYouMeanTemplate string = suggestDidYouMeanTemplate
3333
)
3434
var AppHelpTemplate = `NAME:

0 commit comments

Comments
 (0)