in src/PSDocs.Azure/Pipeline/TemplatePipeline.cs [77:117]
private void ProcessTemplateFile(string templateFile)
{
try
{
var rootedTemplateFile = PSDocumentOption.GetRootedPath(templateFile);
// Check if metadata property exists
if (!TryTemplateFile(rootedTemplateFile, out var version, out var metadata))
return;
var templateLink = new TemplateLink(rootedTemplateFile, version);
// Populate remaining properties
if (TryStringProperty(metadata, PROPERTYNAME_NAME, out var name))
templateLink.Name = name;
if (TryStringProperty(metadata, PROPERTYNAME_DESCRIPTION, out var description))
templateLink.Description = description;
if (TryMetadata(metadata, out var meta))
templateLink.Metadata = meta;
// var pso = PSObject.AsPSObject(templateLink);
// var instanceNameProp = new PSNoteProperty("InstanceName", string.Concat(templateLink.Name, "_v", templateLink.Version.Major));
// pso.Members.Add(new PSMemberSet("PSDocs", new PSMemberInfo[] { instanceNameProp }));
Writer.WriteObject(templateLink, false);
}
catch (InvalidOperationException ex)
{
Writer.WriteError(ex, nameof(InvalidOperationException), ErrorCategory.InvalidOperation, templateFile);
}
catch (FileNotFoundException ex)
{
Writer.WriteError(ex, nameof(FileNotFoundException), ErrorCategory.ObjectNotFound, templateFile);
}
catch (PipelineException ex)
{
Writer.WriteError(ex, nameof(PipelineException), ErrorCategory.WriteError, templateFile);
}
}