cmd/flags/string.go

51 lines
862 B
Go

package flags
type StringFlag struct {
name string
shortName string
description string
value string
}
var _ Flag = (*StringFlag)(nil)
func NewStringFlag(name, shortName, description, defaultValue string) *StringFlag {
return &StringFlag{
name: name,
shortName: shortName,
description: description,
value: defaultValue,
}
}
// Description implements Flag.
func (f *StringFlag) Description() string {
return f.description
}
// Name implements Flag.
func (f *StringFlag) Name() string {
return f.name
}
// ShortName implements Flag.
func (f *StringFlag) ShortName() string {
return f.shortName
}
// Value implements Flag.
func (f *StringFlag) Parse(raw string) (any, error) {
if raw == "" {
return f.value, nil
}
f.value = raw
return raw, nil
}
func (f *StringFlag) Value() string {
return f.value
}