Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Tiinusen/cli

Repository files navigation

CLI (wrapper)

Wraps urfave/cli and provides some ease of use functions allowing method chaining pattern

Example

package main
import (
	"fmt"
	"log"
	"os"
	"github.com/tiinusen/cli"
)
func main() {
	app, err := cli.New("name-of-binary", "usage description", "v1.0.0").
		Daemonize("name-of-binary", "service description").
		Config(config{}.Defaults()).
		Command("command", "command description", func(c *cli.Runner, args cli.Args, flags cli.Flags) error {
			log.Println("Hello A: ", flags.Integer("my-int-flag"))
			fmt.Println(c.Config().(config))
			return nil
		}, cli.IntegerFlag("my-int-flag", "flag description")).
		SubCommand("command", "subcommand", "sub command description", func(c *cli.Runner, args cli.Args, flags cli.Flags) error {
			log.Println("Hello B")
			return nil
		}).
		Run(os.Args...)
	if err != nil {
		app.Exit(err)
	}
}
type config struct {
	MyIntVar int `help:"my int help" flag:"my-int-var,miv"`
	MyStringVar string
	MyStringVarWithDefault string
	MyBooleanVar bool
	MyInnerStruct struct {
		MyInnerInt int
		MyInnerString string
	}
}
func (c config) Defaults() (b config) {
	return config{
		MyStringVar: "test",
	}
}

Request

If package is missing some vital feature, one can always request it, but better to do it and submit a pull request

About

Wraps urfave/cli and provides some ease of use functions allowing method chaining pattern

Resources

License

Stars

Watchers

Forks

Packages

Contributors

Languages

AltStyle によって変換されたページ (->オリジナル) /