func main() { flag.Parse() projectInit.SetWorkingDir(*workingDir) initPackageFlags() validGaugeProject := true err := config.SetProjectRoot(flag.Args()) if err != nil { validGaugeProject = false } env.LoadEnv(*currentEnv) logger.Initialize(*logLevel) if *gaugeVersion { printVersion() } else if *initialize != "" { projectInit.InitializeProject(*initialize) } else if *installZip != "" && *installPlugin != "" { install.InstallPluginZip(*installZip, *installPlugin) } else if *installPlugin != "" { install.DownloadAndInstallPlugin(*installPlugin, *pluginVersion, "Successfully installed plugin => %s") } else if *uninstallPlugin != "" { install.UninstallPlugin(*uninstallPlugin, *pluginVersion) } else if *installAll { install.InstallAllPlugins() } else if *update != "" { install.DownloadAndInstallPlugin(*update, *pluginVersion, "Successfully updated plugin => %s") } else if *updateAll { install.UpdatePlugins() } else if *checkUpdates { install.PrintUpdateInfoWithDetails() } else if *addPlugin != "" { install.AddPluginToProject(*addPlugin, *pluginArgs) } else if *listTemplates { projectInit.ListTemplates() } else if flag.NFlag() == 0 && len(flag.Args()) == 0 { printUsage() os.Exit(0) } else if validGaugeProject { if *refactorSteps != "" { startChan := api.StartAPI() if len(flag.Args()) != 1 { logger.Error("flag needs two arguments: --refactor\n.Usage : gauge --refactor {old step} {new step}") os.Exit(1) } refactor.RefactorSteps(*refactorSteps, flag.Args()[0], startChan) } else if *daemonize { api.RunInBackground(*apiPort) } else if *specFilesToFormat != "" { formatter.FormatSpecFilesIn(*specFilesToFormat) } else if *validate { execution.Validate(flag.Args()) } else { exitCode := execution.ExecuteSpecs(flag.Args()) os.Exit(exitCode) } } else { logger.Error(err.Error()) os.Exit(1) } }
func main() { flag.Parse() projectInit.SetWorkingDir(*workingDir) initPackageFlags() validGaugeProject := true err := config.SetProjectRoot(flag.Args()) if err != nil { validGaugeProject = false } env.LoadEnv(true) logger.Initialize(*verbosity, *logLevel) if *gaugeVersion { version.PrintVersion() } else if *daemonize { if validGaugeProject { api.RunInBackground(*apiPort) } else { logger.Error(err.Error()) } } else if *specFilesToFormat != "" { if validGaugeProject { formatter.FormatSpecFilesIn(*specFilesToFormat) } else { logger.Error(err.Error()) } } else if *initialize != "" { projectInit.InitializeProject(*initialize) } else if *installZip != "" && *installPlugin != "" { install.InstallPluginZip(*installZip, *installPlugin) } else if *installPlugin != "" { install.DownloadAndInstallPlugin(*installPlugin, *pluginVersion, "Successfully installed plugin => %s") } else if *uninstallPlugin != "" { install.UninstallPlugin(*uninstallPlugin, *pluginVersion) } else if *installAll { install.InstallAllPlugins() } else if *update != "" { install.DownloadAndInstallPlugin(*update, *pluginVersion, "Successfully updated plugin => %s") } else if *updateAll { install.UpdatePlugins() } else if *checkUpdates { install.PrintUpdateInfoWithDetails() } else if *addPlugin != "" { install.AddPluginToProject(*addPlugin, *pluginArgs) } else if *refactorSteps != "" { if validGaugeProject { startChan := api.StartAPI() refactor.RefactorSteps(*refactorSteps, newStepName(), startChan) } else { logger.Error(err.Error()) } } else if *check { if validGaugeProject { execution.CheckSpecs(flag.Args()) } else { logger.Error(err.Error()) } } else { if len(flag.Args()) == 0 { printUsage() } if validGaugeProject { exitCode := execution.ExecuteSpecs(*parallel, flag.Args()) os.Exit(exitCode) } else { logger.Error(err.Error()) } } }