func main()

in ec2-macos-init.go [71:120]


func main() {
	// Set up logging
	logger, err := ec2macosinit.NewLogger(loggingTag, true, true)
	if err != nil {
		log.Fatalf("Unable to start logging: %s", err)
	}

	// Check runtime OS
	if !(runtime.GOOS == "darwin") {
		logger.Fatal(1, "Can only be run from macOS!")
	}

	// Check that this is being run by a user with root permissions
	root, err := checkRootPermissions()
	if err != nil {
		logger.Fatalf(71, "Error while checking root permissions: %s", err)
	}
	if !root {
		logger.Fatal(64, "Must be run with root permissions!")
	}

	// Check for no command
	if len(os.Args) < 2 {
		logger.Info("Must provide a command!")
		printUsage()
		os.Exit(2)
	}

	// Setup InitConfig
	config := &ec2macosinit.InitConfig{
		HistoryPath:     path.Join(baseDir, instanceHistoryDir),
		HistoryFilename: historyFileName,
		Log:             logger,
	}

	// Command switch
	switch command := os.Args[1]; command {
	case "run":
		run(config)
	case "clean":
		clean(config)
	case "version":
		printVersion()
		os.Exit(0)
	default:
		logger.Errorf("%s is not a valid command", command)
		printUsage()
		os.Exit(2)
	}
}