protected override void GenerateBuildScript(Benchmark benchmark, ArtifactsPaths artifactsPaths, IResolver resolver) { var prefix = RuntimeInformation.IsWindows() ? "" : "#!/bin/bash\n"; var list = new List <string>(); if (!RuntimeInformation.IsWindows()) { list.Add("mono"); } list.Add("csc"); list.Add("/noconfig"); list.Add("/target:exe"); list.Add("/optimize"); list.Add("/unsafe"); list.Add("/platform:" + benchmark.Job.ResolveValue(EnvMode.PlatformCharacteristic, resolver).ToConfig()); list.Add("/appconfig:" + artifactsPaths.AppConfigPath.Escape()); var references = GetAllReferences(benchmark).Select(assembly => StringAndTextExtensions.Escape(assembly.Location)); list.Add("/reference:" + string.Join(",", references)); list.Add(Path.GetFileName(artifactsPaths.ProgramCodePath)); File.WriteAllText( artifactsPaths.BuildScriptFilePath, prefix + string.Join(" ", list)); }
public void PrintOptions(ILogger logger, int prefixWidth, int outputWidth) { foreach (var option in configuration) { var optionText = $" {optionPrefix}{option.Key} <{option.Key.ToUpperInvariant()}>"; logger.WriteResult($"{optionText.PadRight(prefixWidth)}"); var parameters = string.Join(", ", option.Value.GetAllOptions.Value); var explanation = $"Allowed values: "; logger.WriteInfo($": {explanation}"); var maxWidth = outputWidth - prefixWidth - explanation.Length - Environment.NewLine.Length - breakText.Length; var lines = StringAndTextExtensions.Wrap(parameters, maxWidth); if (lines.Count == 0) { logger.WriteLine(); continue; } logger.WriteLineInfo($"{lines.First().Trim(trimChars)}"); var padding = new string(' ', prefixWidth); var explanationPadding = new string(' ', explanation.Length); foreach (var line in lines.Skip(1)) { logger.WriteLineInfo($"{padding}{breakText}{explanationPadding}{line.Trim(trimChars)}"); } } }
internal void PrintOptions(int prefixWidth, int outputWidth) { foreach (var option in Configuration) { var optionText = $" {OptionPrefix}{option.Key}=<{option.Key.ToUpperInvariant()}>"; logger.WriteResult($"{optionText.PadRight(prefixWidth)}"); var maxWidth = outputWidth - prefixWidth - System.Environment.NewLine.Length - BreakText.Length; var lines = StringAndTextExtensions.Wrap(option.Value, maxWidth); if (lines.Count == 0) { logger.WriteLine(); continue; } logger.WriteLineInfo($"{BreakText}{lines.First().Trim(TrimChars)}"); var padding = new string(' ', prefixWidth); foreach (var line in lines.Skip(1)) { logger.WriteLineInfo($"{padding}{BreakText}{line.Trim(TrimChars)}"); } } }