mirror of
https://github.com/foomo/posh.git
synced 2025-10-16 12:45:38 +00:00
38 lines
642 B
Go
38 lines
642 B
Go
package readline
|
|
|
|
import (
|
|
"github.com/spf13/pflag"
|
|
)
|
|
|
|
type Flags []*pflag.Flag
|
|
|
|
func (f Flags) Remove(name string) (*pflag.Flag, Flags) {
|
|
for i, v := range f {
|
|
if v.Name == name {
|
|
return v, f.Splice(i, 1)
|
|
}
|
|
}
|
|
return nil, f
|
|
}
|
|
|
|
func (f Flags) Slice(start, end int) Flags {
|
|
return append(f[:start], f[end:]...)
|
|
}
|
|
|
|
func (f Flags) Splice(start, num int) Flags {
|
|
return append(f[:start], f[start+num:]...)
|
|
}
|
|
|
|
func (f Flags) Args() Args {
|
|
var ret Args
|
|
for _, v := range f {
|
|
switch v.Value.Type() {
|
|
case "bool":
|
|
ret = append(ret, "--"+v.Name)
|
|
default:
|
|
ret = append(ret, "--"+v.Name, v.Value.String())
|
|
}
|
|
}
|
|
return ret
|
|
}
|