func main()

in ecs-init/ecs-init.go [39:82]


func main() {
	defer log.Flush()
	flag.Parse()
	args := flag.Args()

	if len(args) == 0 {
		usage(actions(nil))
		os.Exit(1)
	}

	logger, err := log.LoggerFromConfigAsString(config.Logger())
	if err != nil {
		die(err, engine.DefaultInitErrorExitCode)
	}
	log.ReplaceLogger(logger)

	if args[0] == VERSION {
		err := version.PrintVersion()
		if err != nil {
			log.Errorf("failed print version info, err: %v", err)
		}
		return
	}

	init, err := engine.New()
	if err != nil {
		die(err, engine.DefaultInitErrorExitCode)
	}
	log.Info(args[0])
	actions := actions(init)
	action, ok := actions[args[0]]
	if !ok {
		usage(actions)
		os.Exit(1)
	}
	err = action.function()

	if err != nil {
		if err, ok := err.(*engine.TerminalError); ok {
			die(err, engine.TerminalFailureAgentExitCode)
		}
		die(err, engine.DefaultInitErrorExitCode)
	}
}