public ActionResult Build(string id, bool redeploy = false, bool reset = false, string key = null) { string configPath = GetConfigPath(id); var model = JsonStorage.ReadFile <BuildConfig>(configPath); if (!string.IsNullOrWhiteSpace(key)) { if (model.TriggerKey != key) { throw new UnauthorizedAccessException(); } } SaveConfig(id, configPath, model); string buildPath = model.BuildFolder; string commandLine = "id=" + id + " config=\"" + configPath + "\" build=\"" + buildPath + "\""; if (redeploy) { commandLine += " redeploy=true"; } return(new BuildActionResult(model, commandLine, reset, SettingsPath)); }
static void Main(string[] args) { var dictionary = args .Select(x => x.Split(new char[] { '=' }, 2).Select(s => s.Trim())) .Where(x => x.Count() == 2) .ToDictionary(x => x.FirstOrDefault(), x => x.LastOrDefault()); string id = dictionary["id"]; string configPath = dictionary["config"].Trim('"'); string buildFolder = dictionary["build"].Trim('"'); bool redeploy = false; string v; if (dictionary.TryGetValue("redeploy", out v)) { redeploy = v?.Equals("yes", StringComparison.OrdinalIgnoreCase) ?? false; } string configXDT = null; if (args.Length > 2) { configXDT = args[2]; } BuildConfig config = JsonStorage.ReadFile <BuildConfig>(configPath); config.BuildFolder = buildFolder; var lastBuild = Execute(config, redeploy); JsonStorage.WriteFile(lastBuild, config.BuildResult); if (lastBuild.Success) { Console.WriteLine(lastBuild.Log); } else { Console.Error.WriteLine(lastBuild.Error ?? "Something went wrong..."); Environment.ExitCode = lastBuild.ExitCode; } }