示例#1
0
文件: main.go 项目: crisidev/maestro
// Command switch for commands requiring a config to be loaded
func ConfigCommandSwitch(args string, err error) (exitCode int) {
	config = maestro.BuildMaestroConfig(*flagConfigFile)
	switch kingpin.MustParse(args, err) {
	case flagConfig.FullCommand():
		config.Print()
	case flagUser.FullCommand():
		config.GetUsername()
	case flagBuildUnits.FullCommand():
		maestro.MaestroBuildLocalUnits()
	case flagBuildImages.FullCommand():
		exitCode = maestro.MaestroBuildContainers(*flagBuildImagesUnit)
	case flagBuildStatus.FullCommand():
		exitCode = maestro.MaestroBuildStatus(*flagBuildStatusUnit)
	case flagBuildNuke.FullCommand():
		exitCode = maestro.MaestroBuildNuke(*flagBuildNukeUnit)
	case flagStatus.FullCommand():
		exitCode = maestro.MaestroStatus("")
	case flagJournal.FullCommand():
		exitCode = maestro.MaestroJournal("", *flagJournalFollow, *flagJournalAll)
	case flagRun.FullCommand():
		exitCode = maestro.MaestroRun(*flagRunUnit)
	case flagStop.FullCommand():
		exitCode = maestro.MaestroStop("")
	case flagNuke.FullCommand():
		exitCode = maestro.MaestroNuke("")
	}
	return
}
示例#2
0
文件: main.go 项目: crisidev/maestro
// Initial switch for commands not requiring a configuration
func NoConfigCommandSwitch(args string, err error) (exitCode int) {
	exitCode = -1
	switch kingpin.MustParse(app.Parse(os.Args[1:])) {
	case flagCoreStatus.FullCommand():
		exitCode = maestro.MaestroCoreStatus()
	case flagExec.FullCommand():
		output := make(chan string)
		exit := make(chan int)
		go maestro.FleetExec(*flagExecArgs, output, exit)
		exitCode = maestro.FleetProcessOutput(output, exit)
	case flagEtcd.FullCommand():
		exitCode = maestro.EtcdPullKeys(*flagEtcdSkydns, *flagEtcdAll, *flagEtcdKey)
	case flagNuke.FullCommand():
		if *flagNukeAll {
			exitCode = maestro.MaestroNukeAll()
		} else if *flagNukeUnit != "" {
			exitCode = maestro.MaestroNuke(*flagNukeUnit)
		}
	case flagStatus.FullCommand():
		if *flagStatusUnit != "" {
			exitCode = maestro.MaestroStatus(*flagStatusUnit)
		}
	case flagJournal.FullCommand():
		if *flagJournalUnit != "" {
			exitCode = maestro.MaestroJournal(*flagJournalUnit, *flagJournalFollow, *flagJournalAll)
		}
	case flagStop.FullCommand():
		if *flagStopUnit != "" {
			exitCode = maestro.MaestroStop(*flagStopUnit)
		}
	}
	return
}