cmd/nodeadm/main.go (53 lines of code) (raw):

package main import ( "os" "github.com/integrii/flaggy" "go.uber.org/zap" "github.com/aws/eks-hybrid/cmd/nodeadm/config" "github.com/aws/eks-hybrid/cmd/nodeadm/debug" initcmd "github.com/aws/eks-hybrid/cmd/nodeadm/init" "github.com/aws/eks-hybrid/cmd/nodeadm/install" "github.com/aws/eks-hybrid/cmd/nodeadm/uninstall" "github.com/aws/eks-hybrid/cmd/nodeadm/upgrade" "github.com/aws/eks-hybrid/cmd/nodeadm/version" "github.com/aws/eks-hybrid/internal/cli" "github.com/aws/eks-hybrid/internal/errors" ) func main() { flaggy.SetName("nodeadm") flaggy.SetDescription("From zero to Node faster than you can say Elastic Kubernetes Service") flaggy.SetVersion(version.GitVersion) flaggy.DefaultParser.AdditionalHelpPrepend = "http://github.com/aws/eks-hybrid" flaggy.DefaultParser.AdditionalHelpAppend = "Documentation:\n https://docs.aws.amazon.com/eks/latest/userguide/hybrid-nodes-nodeadm.html" flaggy.DefaultParser.ShowHelpOnUnexpected = true opts := cli.NewGlobalOptions() log := cli.NewLogger(opts) if err := flaggy.DefaultParser.SetHelpTemplate(cli.HelpTemplate); err != nil { log.Fatal("Failed to set help template:", zap.Error(err)) } cmds := []cli.Command{ config.NewConfigCommand(), initcmd.NewInitCommand(), install.NewCommand(), uninstall.NewCommand(), upgrade.NewUpgradeCommand(), debug.NewCommand(), } for _, cmd := range cmds { flaggy.AttachSubcommand(cmd.Flaggy(), 1) } flaggy.Parse() for _, cmd := range cmds { if cmd.Flaggy().Used { err := cmd.Run(log, opts) if err != nil { if errors.IsSilent(err) { os.Exit(1) } log.Fatal("Command failed", zap.Error(err)) } return } } flaggy.ShowHelpAndExit("No command specified") }