package cli
import "github.com/urfave/cli"
Package cli provides a minimal framework for creating and organizing command line Go applications. cli is designed to be easy to understand and write, the most simple cli application can be written as follows:
func main() { cli.NewApp().Run(os.Args) }
Of course this application does not do much, so let's make this an actual application:
func main() { app := cli.NewApp() app.Name = "greet" app.Usage = "say a greeting" app.Action = func(c *cli.Context) { println("Greetings") } app.Run(os.Args) }
Example¶
Code:play
package main import ( "github.com/codegangsta/cli" "os" ) func main() { app := cli.NewApp() app.Name = "todo" app.Usage = "task list on the command line" app.Commands = []cli.Command{ { Name: "add", ShortName: "a", Usage: "add a task to the list", Action: func(c *cli.Context) { println("added task: ", c.Args()[0]) }, }, { Name: "complete", ShortName: "c", Usage: "complete a task on the list", Action: func(c *cli.Context) { println("completed task: ", c.Args()[0]) }, }, } app.Run(os.Args) }
Index ¶
- Variables
- type App
- type BoolFlag
- type Command
- type Context
- func NewContext(app *App, set *flag.FlagSet, globalSet *flag.FlagSet) *Context
- func (c *Context) Args() []string
- func (c *Context) Bool(name string) bool
- func (c *Context) GlobalBool(name string) bool
- func (c *Context) GlobalInt(name string) int
- func (c *Context) GlobalString(name string) string
- func (c *Context) Int(name string) int
- func (c *Context) String(name string) string
- type Flag
- type IntFlag
- type StringFlag
Examples ¶
Variables ¶
var AppHelpTemplate = "" /* 298 byte string literal not displayed */
The text template for the Default help topic. cli.go uses text/template to render templates. You can render custom help text by setting this variable.
var CommandHelpTemplate = "" /* 176 byte string literal not displayed */
The text template for the command help topic. cli.go uses text/template to render templates. You can render custom help text by setting this variable.
Types ¶
type App ¶
type App struct { // The name of the program. Defaults to os.Args[0] Name string // Description of the program. Usage string // Version of the program Version string // List of commands to execute Commands []Command // List of flags to parse Flags []Flag // The action to execute when no subcommands are specified Action func(context *Context) }
Example¶
Code:play
package main
import (
"fmt"
"github.com/codegangsta/cli"
"os"
)
func main() {
// set args for examples sake
os.Args = []string{"greet", "--name", "Jeremy"}
app := cli.NewApp()
app.Name = "greet"
app.Flags = []cli.Flag{
cli.StringFlag{"name", "bob", "a name to say"},
}
app.Action = func(c *cli.Context) {
fmt.Printf("Hello %v\n", c.String("name"))
}
app.Run(os.Args)
}
Output:
Hello Jeremy
func NewApp ¶
func NewApp() *App
func (*App) Run ¶
type BoolFlag ¶
func (BoolFlag) Apply ¶
func (BoolFlag) String ¶
type Command ¶
type Command struct { Name string ShortName string Usage string Description string Action func(context *Context) Flags []Flag }
func (Command) HasName ¶
func (Command) Run ¶
type Context ¶
type Context struct { App *App // contains filtered or unexported fields }
Context is a type that is passed through to each Handler action in a cli application. Context can be used to retrieve context-specific Args and parsed command-line options.
func NewContext ¶
func (*Context) Args ¶
func (*Context) Bool ¶
Looks up the value of a local bool flag, returns false if no bool flag exists
func (*Context) GlobalBool ¶
Looks up the value of a global bool flag, returns false if no bool flag exists
func (*Context) GlobalInt ¶
Looks up the value of a global int flag, returns 0 if no int flag exists
func (*Context) GlobalString ¶
Looks up the value of a global string flag, returns "" if no string flag exists
func (*Context) Int ¶
Looks up the value of a local int flag, returns 0 if no int flag exists
func (*Context) String ¶
Looks up the value of a local string flag, returns "" if no string flag exists
type Flag ¶
type IntFlag ¶
func (IntFlag) Apply ¶
func (IntFlag) String ¶
type StringFlag ¶
func (StringFlag) Apply ¶
func (f StringFlag) Apply(set *flag.FlagSet)
func (StringFlag) String ¶
func (f StringFlag) String() string
Source Files ¶
app.go cli.go command.go context.go flag.go help.go
- Version
- v0.1.0
- Published
- Jul 22, 2013
- Platform
- darwin/amd64
- Imports
- 6 packages
- Last checked
- now –
Tools for package owners.