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)
}
}