protected override void GenerateHelper() { var psCmdletType = typeof(PSCmdlet); CmdletTypes = CmdletAssembly.GetTypes() .Where(t => psCmdletType.IsAssignableFrom(t) && t.IsPublic && !t.IsAbstract) .ToList(); LoadExamplesCache(); LoadLinksCache(); }
private void CreateVersionInfoFile(string path) { if (!Directory.Exists(path)) { Directory.CreateDirectory(path); } // write the json file containing the assembly version; this can then // be injected onto each page using load-time script var v = CmdletAssembly.GetName().Version.ToString(); var assemblyVersionsContent = string.Format("{{ \"awspowershell.dll\" : \"{0}\" }}", v); File.WriteAllText(Path.Combine(path, "assemblyversions.json"), assemblyVersionsContent); }
protected override void GenerateHelper() { base.GenerateHelper(); if (string.IsNullOrEmpty(SDKHelpRoot)) { SDKHelpRoot = "http://docs.aws.amazon.com/sdkfornet/v3/apidocs/"; } else if (!SDKHelpRoot.EndsWith("/")) { SDKHelpRoot = SDKHelpRoot + "/"; } Console.WriteLine("Generating web help documentation:"); Console.WriteLine(".... SDK help base URI set to {0}", SDKHelpRoot); Console.WriteLine(".... writing doc output to {0}", OutputFolder); var buildLogsPath = Path.Combine(this.Options.RootPath, "logs"); if (!Directory.Exists(buildLogsPath)) { Directory.CreateDirectory(buildLogsPath); } ServiceCmdletBaseClass = CmdletAssembly.GetType("Amazon.PowerShell.Common.ServiceCmdlet"); var logFile = Path.Combine(buildLogsPath, Name + ".dll-WebHelp.log"); var oldWriter = Console.Out; try { using (var consoleWriter = new StreamWriter(File.OpenWrite(logFile))) { Console.SetOut(consoleWriter); CleanWebHelpOutputFolder(OutputFolder); CopyWebHelpStaticFiles(OutputFolder); CreateVersionInfoFile(Path.Combine(OutputFolder, "items")); var tocWriter = new TOCWriter(Options, OutputFolder); tocWriter.AddFixedSection(); foreach (var cmdletType in CmdletTypes) { var(moduleName, serviceName) = DetermineCmdletServiceOwner(cmdletType); InspectCmdletAttributes(cmdletType); string synopsis = null; if (AWSCmdletAttribute == null) { Console.WriteLine("Unable to find AWSCmdletAttribute for type " + cmdletType.FullName); } else { var cmdletReturnAttributeType = AWSCmdletAttribute.GetType(); synopsis = cmdletReturnAttributeType.GetProperty("Synopsis").GetValue(AWSCmdletAttribute, null) as string; } foreach (var cmdletAttribute in CmdletAttributes) { var hasDynamicParams = DynamicParamsType.IsAssignableFrom(cmdletType); var typeDocumentation = DocumentationUtils.GetTypeDocumentation(cmdletType, AssemblyDocumentation); typeDocumentation = DocumentationUtils.FormatXMLForPowershell(typeDocumentation, true); Console.WriteLine("Cmdlet = {0}", cmdletType.FullName); if (hasDynamicParams) { Console.WriteLine("This cmdlet has dynamic parameters!"); } Console.WriteLine("Documentation = {0}", typeDocumentation); var cmdletName = cmdletAttribute.VerbName + "-" + cmdletAttribute.NounName; var allProperties = GetRootSimpleProperties(cmdletType); var parameterPartitioning = new CmdletParameterSetPartitions(allProperties, cmdletAttribute.DefaultParameterSetName); var serviceAbbreviation = GetServiceAbbreviation(cmdletType); var cmdletPageWriter = new CmdletPageWriter(Options, OutputFolder, serviceName, moduleName, cmdletName); WriteDetails(cmdletPageWriter, typeDocumentation, synopsis); WriteSyntax(cmdletPageWriter, cmdletName, parameterPartitioning); WriteParameters(cmdletPageWriter, cmdletName, allProperties, false); WriteParameters(cmdletPageWriter, cmdletName, allProperties, true); WriteOutputs(cmdletPageWriter, AWSCmdletOutputAttributes); WriteNotes(cmdletPageWriter); WriteExamples(cmdletPageWriter, cmdletName); WriteRelatedLinks(cmdletPageWriter, serviceAbbreviation, cmdletName); cmdletPageWriter.Write(); var legacyAlias = InspectForLegacyAliasAttribution(moduleName, cmdletName); tocWriter.AddServiceCmdlet(moduleName, serviceName, cmdletName, cmdletPageWriter.GetTOCID(), synopsis, legacyAlias); } } tocWriter.Write(); WriteLegacyAliasesPage(); } } finally { Console.SetOut(oldWriter); } }