Пример #1
0
        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);
            }
        }
Пример #2
0
        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());
        }
Пример #3
0
 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);
         }
     }
 }