package main import ( "flag" "fmt" "github.com/dballard/warren/lib/warren" "os" "text/template" ) var BuildGitHash string var BuildGitBranch string var BuildDate string var usagePrefix = ` warren is a tool for building, deploying and running multiple versions of a Go server Usage: warren command [args] ` var usageTmpl = template.Must(template.New("usage").Parse(` Commands:{{range .}} {{.Name | printf "%-10s"}} {{.Summary}}{{end}} `)) func usage() { fmt.Println(BuildGitBranch, " ", BuildGitHash, " ", BuildDate) fmt.Print(usagePrefix) warren.PrintCommandUsage() } func main() { warren.RegisterCommand(buildCmd) warren.RegisterCommand(deployCmd) warren.RegisterCommand(runCmd) flag.Usage = usage flag.Parse() args := flag.Args() if len(args) == 0 || args[0] == "-h" { flag.Usage() return } name := args[0] var cmd *warren.Command = warren.GetCommand(name) if cmd == nil { fmt.Printf("error: unknown command %q\n", name) flag.Usage() os.Exit(1) } cmd.Exec(args[1:]) }