/// <summary> /// Renders the output of an artifact directory. /// </summary> /// <param name="directory"> /// The directory. /// </param> /// <param name="outputWhitelist"> /// The output Whitelist. /// </param> /// <param name="isArtifactContainer"> /// A flag indicating whether the directory is a container for artifacts. /// </param> /// <returns> /// The rendered output in markdown format. /// </returns> public string RenderArtifact(DirectoryPath directory, OutputWhitelist outputWhitelist, bool isArtifactContainer) { this.context.Log.Information($"Rendering content of directory '{directory}'"); var stringBuilder = new StringBuilder(); stringBuilder.Append("## Content"); if (isArtifactContainer) { var container = this.context.FileSystem.GetDirectory(directory); var folders = container.GetDirectories("*", SearchScope.Current); foreach (var folder in folders) { stringBuilder.AppendLine(); stringBuilder.AppendLine(); stringBuilder.AppendLine($"### {folder.Path.GetDirectoryName()}"); var artifact = this.GetArtifact(folder.Path, outputWhitelist); RenderArtifactContent(stringBuilder, artifact); } } else { var artifact = this.GetArtifact(directory, outputWhitelist); RenderArtifactContent(stringBuilder, artifact); } return(stringBuilder.ToString()); }
public static string RenderArtifact( this ICakeContext context, DirectoryPath directory, OutputWhitelist outputWhitelist, bool isArtifactContainer) { var tools = new ReleaseTools(context); return(tools.RenderArtifact(directory, outputWhitelist, isArtifactContainer)); }
private ReleaseArtifact GetArtifact(DirectoryPath directory, OutputWhitelist outputWhitelist) { var artifact = new ReleaseArtifact(); var files = ImmutableArray <ArtifactFile> .Empty; this.context.Log.Information($"Output white list includes {outputWhitelist.Include.Length} item(s)"); foreach (var include in outputWhitelist.Include) { this.context.Log.Information($"Getting artifacts for include filter '{include}'"); var artifactFiles = this.context.GetFiles(directory + "/" + include) .Select(filePath => this.GetArtifactFile(directory, filePath)); files = files.AddRange( artifactFiles); } artifact.Files = files.ToList(); return(artifact); }