github.com/bigcommerce/nomad@v0.9.3-bc/e2e/cli/main.go (about) 1 package main 2 3 import ( 4 "os" 5 6 hclog "github.com/hashicorp/go-hclog" 7 "github.com/hashicorp/nomad/e2e/cli/command" 8 "github.com/mitchellh/cli" 9 ) 10 11 const ( 12 NomadE2ECli = "nomad-e2e" 13 NomadE2ECliVersion = "0.0.1" 14 ) 15 16 func main() { 17 18 ui := &cli.BasicUi{ 19 Reader: os.Stdin, 20 Writer: os.Stdout, 21 ErrorWriter: os.Stderr, 22 } 23 24 logger := hclog.New(&hclog.LoggerOptions{ 25 Name: NomadE2ECli, 26 Output: &cli.UiWriter{Ui: ui}, 27 }) 28 29 c := cli.NewCLI(NomadE2ECli, NomadE2ECliVersion) 30 c.Args = os.Args[1:] 31 32 meta := command.NewMeta(ui, logger) 33 c.Commands = map[string]cli.CommandFactory{ 34 "provision": command.ProvisionCommandFactory(meta), 35 "run": command.RunCommandFactory(meta), 36 } 37 38 exitStatus, err := c.Run() 39 if err != nil { 40 logger.Error("command exited with non-zero status", "status", exitStatus, "error", err) 41 } 42 os.Exit(exitStatus) 43 }