Documentation
¶
Overview ¶
Example ¶
package main
import (
"fmt"
"codeberg.org/ungo/untools/flagx"
)
func main() {
fs := flagx.New("myapp")
host := fs.String("host", "H", "localhost", "server host")
port := fs.Int("port", "p", 8080, "server port")
verbose := fs.Bool("verbose", "v", false, "enable verbose output")
fs.AddExamples(map[string]string{
"run server": "myapp --host 0.0.0.0 --port 9090",
})
err := fs.Parse([]string{"--host", "example.com", "-p", "3000", "--verbose"})
if err != nil {
fmt.Println("Error:", err)
return
}
fmt.Println(*host)
fmt.Println(*port)
fmt.Println(*verbose)
}
Output: example.com 3000 true
Index ¶
- type CLI
- type Command
- type FlagMeta
- type FlagSet
- func (fs *FlagSet) AddExamples(examples map[string]string)
- func (fs *FlagSet) Alias(flag, alias string)
- func (fs *FlagSet) AutoBindEnv()
- func (fs *FlagSet) BindEnv(name, envVar string)
- func (fs *FlagSet) Bool(name, shorthand string, value bool, usage string) *bool
- func (fs *FlagSet) BoolSlice(name, shorthand string, usage string) *[]bool
- func (fs *FlagSet) Completion(shell string) string
- func (fs *FlagSet) Custom(name string, fn func(string) error)
- func (fs *FlagSet) Deprecate(flag, message string)
- func (fs *FlagSet) Dir(name, shorthand, value, usage string) *string
- func (fs *FlagSet) DirExists(name string)
- func (fs *FlagSet) Duration(name, shorthand string, value time.Duration, usage string) *time.Duration
- func (fs *FlagSet) Email(name string)
- func (fs *FlagSet) Enum(name, shorthand, value string, allowed []string, usage string) *string
- func (fs *FlagSet) File(name, shorthand, value, usage string) *string
- func (fs *FlagSet) FileExists(name string)
- func (fs *FlagSet) FlagGroup(name string) []string
- func (fs *FlagSet) Float64(name, shorthand string, value float64, usage string) *float64
- func (fs *FlagSet) Group(name string, flags ...string)
- func (fs *FlagSet) Groups() []string
- func (fs *FlagSet) Help() string
- func (fs *FlagSet) HelpColor() string
- func (fs *FlagSet) Hidden(names ...string)
- func (fs *FlagSet) IP(name string)
- func (fs *FlagSet) Int(name, shorthand string, value int, usage string) *int
- func (fs *FlagSet) Int64(name, shorthand string, value int64, usage string) *int64
- func (fs *FlagSet) IntSlice(name, shorthand string, usage string) *[]int
- func (fs *FlagSet) IsSet(name string) bool
- func (fs *FlagSet) LoadConfig(path string) error
- func (fs *FlagSet) LoadConfigAuto() error
- func (fs *FlagSet) MapString(name, shorthand string, usage string) *map[string]string
- func (fs *FlagSet) Markdown() string
- func (fs *FlagSet) Max(name string, max int)
- func (fs *FlagSet) MaxLength(name string, n int)
- func (fs *FlagSet) Min(name string, min int)
- func (fs *FlagSet) MinLength(name string, n int)
- func (fs *FlagSet) Mutex(name string, flags ...string)
- func (fs *FlagSet) Name() string
- func (fs *FlagSet) OneOf(name string, values ...string)
- func (fs *FlagSet) Parse(args []string) error
- func (fs *FlagSet) ParseArgs(args []string) error
- func (fs *FlagSet) Parsed() bool
- func (fs *FlagSet) Pattern(name, pattern string)
- func (fs *FlagSet) Port(name string)
- func (fs *FlagSet) PrintHelp()
- func (fs *FlagSet) Regexp(name, shorthand string, value *regexp.Regexp, usage string) *regexp.Regexp
- func (fs *FlagSet) Required(name string)
- func (fs *FlagSet) SaveConfig(path string) error
- func (fs *FlagSet) SetCalled(fn func(name string))
- func (fs *FlagSet) SetCompletion(name string, fn func() []string)
- func (fs *FlagSet) SetOutput(w io.Writer)
- func (fs *FlagSet) SetSuggestions(name string, suggestions []string)
- func (fs *FlagSet) String(name, shorthand, value, usage string) *string
- func (fs *FlagSet) StringSlice(name, shorthand string, usage string) *[]string
- func (fs *FlagSet) Time(name, shorthand string, value time.Time, layout, usage string) *time.Time
- func (fs *FlagSet) URL(name, shorthand, value, usage string) *url.URL
- func (fs *FlagSet) URLFlag(name string)
- func (fs *FlagSet) Uint(name, shorthand string, value uint, usage string) *uint
- func (fs *FlagSet) Unset(name string)
- func (fs *FlagSet) Var(name, shorthand string, value flag.Value, usage string)
- func (fs *FlagSet) Version(version, sha, date string)
- func (fs *FlagSet) WriteHelp(w *os.File)
Examples ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type CLI ¶
type CLI struct {
Root *Command
// contains filtered or unexported fields
}
Example ¶
package main
import (
"fmt"
"codeberg.org/ungo/untools/flagx"
)
func main() {
cli := flagx.NewCLI("app")
serveCmd := &flagx.Command{
Name: "serve",
Description: "start the server",
Flags: flagx.New("serve"),
Run: func(args []string) error {
fmt.Println("server started")
return nil
},
}
serveCmd.Flags.String("port", "p", "8080", "listen port")
cli.AddCommand(serveCmd)
cli.Run([]string{"serve", "--port", "9090"})
}
Output: server started
func (*CLI) AddCommand ¶
func (*CLI) GlobalFlags ¶
type FlagSet ¶
func (*FlagSet) AddExamples ¶
func (*FlagSet) AutoBindEnv ¶
func (fs *FlagSet) AutoBindEnv()
func (*FlagSet) BindEnv ¶
Example ¶
package main
import (
"fmt"
"codeberg.org/ungo/untools/flagx"
)
func main() {
fs := flagx.New("app")
fs.String("db-host", "", "localhost", "database host")
fs.BindEnv("db-host", "DB_HOST")
fmt.Println(fs.IsSet("db-host"))
}
Output: false
func (*FlagSet) Completion ¶
func (*FlagSet) FileExists ¶
func (*FlagSet) Group ¶
Example ¶
package main
import (
"fmt"
"codeberg.org/ungo/untools/flagx"
)
func main() {
fs := flagx.New("app")
fs.String("host", "H", "localhost", "server host")
fs.Int("port", "p", 8080, "server port")
fs.Bool("verbose", "v", false, "verbose output")
fs.Group("Server", "host", "port")
fmt.Println(fs.FlagGroup("Server"))
}
Output: [host port]
func (*FlagSet) LoadConfig ¶
func (*FlagSet) LoadConfigAuto ¶
func (*FlagSet) Mutex ¶
Example ¶
package main
import (
"fmt"
"codeberg.org/ungo/untools/flagx"
)
func main() {
fs := flagx.New("app")
fs.Bool("json", "", false, "output as json")
fs.Bool("yaml", "", false, "output as yaml")
fs.Mutex("format", "json", "yaml")
err := fs.Parse([]string{"--json", "--yaml"})
fmt.Println(err != nil)
}
Output: true
func (*FlagSet) Required ¶
Example ¶
package main
import (
"fmt"
"codeberg.org/ungo/untools/flagx"
)
func main() {
fs := flagx.New("app")
fs.String("name", "n", "", "your name")
fs.Required("name")
err := fs.Parse(nil)
fmt.Println(err != nil)
}
Output: true
func (*FlagSet) SaveConfig ¶
func (*FlagSet) SetCompletion ¶
func (*FlagSet) SetSuggestions ¶
func (*FlagSet) StringSlice ¶
Click to show internal directories.
Click to hide internal directories.