protected void StartBuild(string buildName, RequestContext context, RequestArgs args) { if (context != Context) { return; } Build build; var builds = Server.FindBuilds(); if (builds == null) { Server.RaiseCommonError("StartBuild: Failed to load builds directory!", true); return; } if (!builds.TryGetValue(buildName, out build)) { Server.RaiseCommonError("StartBuild: Wrong build name!", false); return; } if (args.Count < build.Args.Count) { Server.RaiseCommonError( $"StartBuild: build required {build.Args.Count} args, but {args.Count - 1} args is provided!", true); return; } var buildArgs = args.ToArray(); if (Server.TryInitBuild(Context, build, buildArgs)) { Server.StartBuild(buildArgs); } }
protected string GetHelpMessage() { var sb = new StringBuilder(); sb.Append($"{Server.Name} ({Server.ServiceName})\n"); sb.Append("Commands:\n"); foreach (var handler in Server.Commands.All) { sb.Append($"- \"{handler.Key}\" - {handler.Value.First().Description}\n"); } sb.Append("Services:\n"); foreach (var service in Server.Services) { sb.Append($"- {service.GetType().Name}\n"); } sb.Append("Builds:\n"); var builds = Server.FindBuilds(); AppendBuildsInfo(sb, builds); return(sb.ToString()); }
void AppendBuildStats(List <BuildStat> stats, string name, StatTable table, bool withTaskDetails) { if (string.IsNullOrEmpty(name)) { var builds = _server.FindBuilds(); foreach (var buildName in builds.Keys) { var statsByName = stats.FindAll(s => IsSameName(s, buildName)); _logger.LogDebug($"Stats for {buildName}: {statsByName.Count}"); AppendBuildStats(statsByName, buildName, table, withTaskDetails); } return; } if (stats.Count > 0) { var statsByName = stats.FindAll(s => IsSameName(s, name)); AppendCommonBuildStats(statsByName, name, table); if (withTaskDetails) { AppendBuildTaskStats(statsByName, table); } } }