Skip to content

Commit 32d535b

Browse files
committed
Add build tag urfave_cli_no_suggest
Like urfave_cli_no_docs (in docs.go), allow to disable suggestions at build time (and drop dependency on module github.com/xrash/smetrics) with a new 'urfave_cli_no_suggest' build tag: go build -tags urfave_cli_no_suggest,urfave_cli_no_docs
1 parent 1a4c1da commit 32d535b

File tree

6 files changed

+21
-7
lines changed

6 files changed

+21
-7
lines changed

Diff for: app.go

+5-2
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

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

369+
if SuggestFlag == nil {
370+
return "", err
371+
}
369372
suggestion := SuggestFlag(flags, flag, hideHelp)
370373
if len(suggestion) == 0 {
371374
return "", err

Diff for: godoc-current.txt

+2-2
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:

Diff for: help.go

+1-1
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
}

Diff for: suggestions.go

+8
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 (

Diff for: suggestions_test.go

+3
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 (

Diff for: testdata/godoc-v2.x.txt

+2-2
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)