github.com/rohankumardubey/nomad@v0.11.8/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  }