buildx/util/cobrautil/boolfunc.go
Jonathan A. Sternberg ef4a165e48
commands: add an alias for --check to be the same as --call=check
This adds an alias for `--check` that causes it to behave the same as
`--call=check`. This is done using `BoolFunc` to call a function when
the option is seen and to set it to the correct value. This should allow
command line flags like `--check --call=targets` to work correctly (even
though they conflict) by making it so the first invocation sets the
print function to `check` and the second overwrites the first. This is
the expected behavior for these types of boolean flags.

`BoolFunc` itself is part of the standard library flags package, but
never seems to have made it into pflag possibly because it was added in
go 1.21.

https://pkg.go.dev/flag#FlagSet.BoolFunc

Signed-off-by: Jonathan A. Sternberg <jonathan.sternberg@docker.com>
2024-06-03 13:25:21 -05:00

12 lines
285 B
Go

package cobrautil
type BoolFuncValue func(string) error
func (f BoolFuncValue) Set(s string) error { return f(s) }
func (f BoolFuncValue) String() string { return "" }
func (f BoolFuncValue) Type() string { return "bool" }
func (f BoolFuncValue) IsBoolFlag() bool { return true }