Example #1
0
File: main.go Project: tucnak/kamu
func main() {
	kamu := climax.New("kamu")
	kamu.Brief = "Camus is a modern content writing suite."
	kamu.Version = "devel"

	kamu.AddCommand(commandInit)
	kamu.AddCommand(commandContents)
	kamu.AddCommand(commandNew)

	kamu.Run()
}
Example #2
0
File: cli.go Project: vsco/dcdr
// Run bind commands and run
func (c *CLI) Run() {
	dcdr := climax.New("dcdr")
	dcdr.Brief = "Decider: CLI for decider feature flags."
	dcdr.Version = Version

	cmds := c.Commands()

	for _, cmd := range cmds {
		dcdr.AddCommand(cmd)
	}

	dcdr.Run()
}
Example #3
0
func Example_application() {
	demo := climax.New("demo")
	demo.Brief = "Demo is a funky demonstation of Climax capabilities."
	demo.Version = "stable"

	joinCmd := climax.Command{
		Name:  "join",
		Brief: "merges the strings given",
		Usage: `[-s=] "a few" distinct strings`,
		Help:  `Lorem ipsum dolor sit amet amet sit todor...`,

		Flags: []climax.Flag{
			{
				Name:     "separator",
				Short:    "s",
				Usage:    `--separator="."`,
				Help:     `Put some separating string between all the strings given.`,
				Variable: true,
			},
		},

		Examples: []climax.Example{
			{
				Usecase:     `-s . "google" "com"`,
				Description: `Results in "google.com"`,
			},
		},

		Handle: func(ctx climax.Context) int {
			var separator string
			if sep, ok := ctx.Get("separator"); ok {
				separator = sep
			}

			fmt.Println(strings.Join(ctx.Args, separator))

			return 0
		},
	}

	demo.AddCommand(joinCmd)
	demo.Run()
}