Dan Anglin
84091f398d
Summary: - Created a custom CLI schema for Enbas which will act as the Source of Truth for code and document generation. - Created a code generator which uses the schema to generate the executor definitions and code in the internal usage package. Changes: - Created the Enbas CLI schema as the Source of Truth for Enbas. - Created the code generator that generates the executor definitions and code in the usage package. - Regenerated the executor definitions using the code generator. - Moved the custom flag value types to the new internal flag package. - Created a new flag value type for the bool pointer to replace the flag.BoolFunc() used for the sensitive and no-color flags. - Moved the version and build variables to the new internal version package to simplify the version executor. - Created a new usage package and moved the usage functions there. - Changed the type of the account-name flag from string to the internal StringSliceValue type.
36 lines
536 B
Go
36 lines
536 B
Go
package flag
|
|
|
|
import (
|
|
"fmt"
|
|
"strconv"
|
|
)
|
|
|
|
type BoolPtrValue struct {
|
|
Value *bool
|
|
}
|
|
|
|
func NewBoolPtrValue() BoolPtrValue {
|
|
return BoolPtrValue{
|
|
Value: nil,
|
|
}
|
|
}
|
|
|
|
func (b BoolPtrValue) String() string {
|
|
if b.Value == nil {
|
|
return "NOT SET"
|
|
}
|
|
|
|
return strconv.FormatBool(*b.Value)
|
|
}
|
|
|
|
func (b *BoolPtrValue) Set(value string) error {
|
|
boolVar, err := strconv.ParseBool(value)
|
|
if err != nil {
|
|
return fmt.Errorf("unable to parse %q as a boolean value: %w", value, err)
|
|
}
|
|
|
|
b.Value = new(bool)
|
|
*b.Value = boolVar
|
|
|
|
return nil
|
|
}
|