51 lines
862 B
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
|
|
}
|