Skip to content

Instantly share code, notes, and snippets.

@hawx
Created March 12, 2013 10:18
Show Gist options
  • Save hawx/5141785 to your computer and use it in GitHub Desktop.
Save hawx/5141785 to your computer and use it in GitHub Desktop.
Test of hadfield.
package main
import (
"github.com/hawx/hadfield"
"fmt"
"os"
)
var cmdGreet = &hadfield.Command{
Usage: "greet [options]",
Short: "displays a greeting",
Long: `
Greet displays a formatted greeting to a person in the language specified.
--person <name> # Name of person to greet
--lang <en|fr> # Language to use, English or French
`,
}
func runGreet(cmd *hadfield.Command, args []string) {
switch greetLang {
case "en":
fmt.Println("Hello", greetPerson)
case "fr":
fmt.Println("Bonjour", greetPerson)
default:
os.Exit(2)
}
}
var greetPerson, greetLang string
func init() {
cmdGreet.Run = runGreet
cmdGreet.Flag.StringVar(&greetPerson, "person", "", "")
cmdGreet.Flag.StringVar(&greetLang, "lang", "en", "")
}
var commands = hadfield.Commands{
cmdGreet,
}
var templates = hadfield.Templates{
Usage: `usage: test [command] [arguments]
This is a test.
Commands: {{range .}}
{{.Name | printf "%-15s"}} # {{.Short}}{{end}}
`,
Help: `Usage: test {{.Usage}}
{{.Long}}
`,
}
func main() {
hadfield.Run(commands, templates)
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment