public XsdResolveLinksComponent(BuildAssemblerCore assembler) : base(assembler) { var versionInfo = GetVersionInfo(); var message = string.Format(CultureInfo.CurrentCulture, Resources.ComponentLogoFormatted, versionInfo.ProductName, versionInfo.ProductVersion, versionInfo.LegalCopyright); WriteMessage(MessageLevel.Info, message); }
//===================================================================== /// <summary> /// Constructor /// </summary> /// <param name="buildAssembler">A reference to the build assembler</param> protected MultiFormatOutputComponent(BuildAssemblerCore buildAssembler) : base(buildAssembler) { }
//===================================================================== /// <summary> /// Constructor /// </summary> /// <param name="buildAssembler">A reference to the build assembler</param> protected IntelliSenseComponent(BuildAssemblerCore buildAssembler) : base(buildAssembler) { }
//===================================================================== /// <summary> /// Constructor /// </summary> /// <param name="buildAssembler">A reference to the build assembler</param> protected ForEachComponent(BuildAssemblerCore buildAssembler) : base(buildAssembler) { }
//===================================================================== /// <summary> /// Constructor /// </summary> /// <param name="buildAssembler">A reference to the build assembler</param> protected ShowMissingComponent(BuildAssemblerCore buildAssembler) : base(buildAssembler) { }
//===================================================================== /// <summary> /// Constructor /// </summary> /// <param name="buildAssembler">A reference to the build assembler</param> /// <param name="copyComponentFactories">The list of available copy component factory components</param> protected CopyFromIndexComponent(BuildAssemblerCore buildAssembler, List<Lazy<ICopyComponentFactory, ICopyComponentMetadata>> copyComponentFactories) : base(buildAssembler) { this.copyComponentFactories = copyComponentFactories; }
//===================================================================== /// <summary> /// Constructor /// </summary> /// <param name="buildAssembler">A reference to the build assembler</param> protected CopyFromFilesComponent(BuildAssemblerCore buildAssembler) : base(buildAssembler) { }
//===================================================================== /// <summary> /// Constructor /// </summary> /// <param name="buildAssembler">A reference to the build assembler</param> protected SaveComponent(BuildAssemblerCore buildAssembler) : base(buildAssembler) { // No bounded capacity by default documentList = new BlockingCollection<KeyValuePair<string, XmlDocument>>(); }
//===================================================================== /// <summary> /// Constructor /// </summary> /// <param name="buildAssembler">A reference to the build assembler</param> /// <param name="generatorFactories">The list of available syntax generator factory components</param> protected SyntaxComponent(BuildAssemblerCore buildAssembler, List<Lazy<ISyntaxGeneratorFactory, ISyntaxGeneratorMetadata>> generatorFactories) : base(buildAssembler) { this.generatorFactories = generatorFactories; generatorLanguages = new HashSet<string>(StringComparer.OrdinalIgnoreCase); languageSet = new List<ISyntaxGeneratorMetadata>(); languageOrder = new Dictionary<string, int>(); // Generate a list of all possible language IDs for code snippets from the available generators codeSnippetLanguages = new Dictionary<string, ISyntaxGeneratorMetadata>(StringComparer.OrdinalIgnoreCase); foreach(var factory in generatorFactories) { codeSnippetLanguages[factory.Metadata.Id] = factory.Metadata; foreach(string alternateId in (factory.Metadata.AlternateIds ?? String.Empty).Split( new[] { ',', ' ', '\t' }, StringSplitOptions.RemoveEmptyEntries)) { codeSnippetLanguages[alternateId] = factory.Metadata; } } }
//===================================================================== /// <summary> /// Constructor /// </summary> /// <param name="buildAssembler">A reference to the build assembler</param> protected MSHCComponent(BuildAssemblerCore buildAssembler) : base(buildAssembler) { }
//===================================================================== /// <summary> /// Constructor /// </summary> /// <param name="buildAssembler">A reference to the build assembler</param> protected $safeprojectname$Component(BuildAssemblerCore buildAssembler) : base(buildAssembler)
//===================================================================== /// <summary> /// Constructor /// </summary> /// <param name="buildAssembler">A reference to the build assembler</param> protected SharedContentComponent(BuildAssemblerCore buildAssembler) : base(buildAssembler) { }
//===================================================================== /// <summary> /// Constructor /// </summary> /// <param name="buildAssembler">A reference to the build assembler</param> protected LanguageSpecificTextComponent(BuildAssemblerCore buildAssembler) : base(buildAssembler) { }
//===================================================================== /// <summary> /// Constructor /// </summary> /// <param name="buildAssembler">A reference to the build assembler</param> protected ExampleComponent(BuildAssemblerCore buildAssembler) : base(buildAssembler) { }
//===================================================================== /// <summary> /// Constructor /// </summary> /// <param name="buildAssembler">A reference to the build assembler</param> protected IfThenComponent(BuildAssemblerCore buildAssembler) : base(buildAssembler) { }
//===================================================================== /// <summary> /// Constructor /// </summary> /// <param name="buildAssembler">A reference to the build assembler</param> protected ResolveArtLinksComponent(BuildAssemblerCore buildAssembler) : base(buildAssembler) { }
//===================================================================== /// <summary> /// Constructor /// </summary> /// <param name="buildAssembler">A reference to the build assembler</param> protected ResolveConceptualLinksComponent(BuildAssemblerCore buildAssembler) : base(buildAssembler) { }
//===================================================================== /// <summary> /// Constructor /// </summary> /// <param name="buildAssembler">A reference to the build assembler</param> protected AdditionalHeaderResourcesComponent(BuildAssemblerCore buildAssembler) : base(buildAssembler) { }
//===================================================================== /// <summary> /// Constructor /// </summary> /// <param name="buildAssembler">A reference to the build assembler</param> protected TransformComponent(BuildAssemblerCore buildAssembler) : base(buildAssembler) { }
//===================================================================== /// <summary> /// Constructor /// </summary> /// <param name="buildAssembler">A reference to the build assembler</param> protected CodeBlockComponent(BuildAssemblerCore buildAssembler) : base(buildAssembler) { }
/// <summary> /// Main program entry point /// </summary> /// <param name="args">The command line arguments</param> /// <returns>Zero on success or one on failure</returns> public static int Main(string[] args) { int exitCode = 0; ConsoleApplication.WriteBanner(); #region Read command line arguments, and setup config // Specify options OptionCollection options = new OptionCollection(); options.Add(new SwitchOption("?", "Show this help page.")); options.Add(new StringOption("config", "Specify a configuration file.", "configFilePath")); // Process options ParseArgumentsResult results = options.ParseArguments(args); // Process help option if(results.Options["?"].IsPresent) { Console.WriteLine("BuildAssembler [options] manifestFilename"); options.WriteOptionSummary(Console.Out); return 1; } // check for invalid options if(!results.Success) { results.WriteParseErrors(Console.Out); return 1; } // Check for manifest if(results.UnusedArguments.Count != 1) { Console.WriteLine("You must supply exactly one manifest file."); return 1; } string manifest = results.UnusedArguments[0]; // Load the configuration file XPathDocument configuration; try { if(results.Options["config"].IsPresent) configuration = ConsoleApplication.GetConfigurationFile((string)results.Options["config"].Value); else configuration = ConsoleApplication.GetConfigurationFile(); } catch(IOException e) { ConsoleApplication.WriteMessage(LogLevel.Error, "The specified configuration file could not " + "be loaded. The error message is: {0}", e.Message); return 1; } catch(XmlException e) { ConsoleApplication.WriteMessage(LogLevel.Error, "The specified configuration file is not " + "well-formed. The error message is: {0}", e.Message); return 1; } #endregion // Create a build assembler instance to do the work. Messages are logged to the console logger. BuildAssembler = new BuildAssemblerCore((lvl, msg) => ConsoleApplication.WriteMessage(lvl, msg)); try { // Execute it using the given configuration and manifest BuildAssembler.Execute(configuration, manifest); } catch(Exception ex) { // Ignore aggregate exceptions where the inner exception is OperationCanceledException. // These are the result of logging an error message. if(!(ex is AggregateException) || !(ex.InnerException is OperationCanceledException)) { System.Diagnostics.Debug.WriteLine(ex); ConsoleApplication.WriteMessage(LogLevel.Error, ex.GetExceptionMessage()); } exitCode = 1; } finally { BuildAssembler.Dispose(); } return exitCode; }
//===================================================================== /// <summary> /// Constructor /// </summary> /// <param name="buildAssembler">A reference to the build assembler</param> protected BrandingComponent(BuildAssemblerCore buildAssembler) : base(buildAssembler) { }
//===================================================================== /// <summary> /// Constructor /// </summary> /// <param name="buildAssembler">A reference to the build assembler</param> protected HxfGeneratorComponent(BuildAssemblerCore buildAssembler) : base(buildAssembler) { }
//===================================================================== /// <summary> /// Constructor /// </summary> /// <param name="buildAssembler">A reference to the build assembler</param> protected SwitchComponent(BuildAssemblerCore buildAssembler) : base(buildAssembler) { }
//===================================================================== /// <summary> /// Constructor /// </summary> /// <param name="buildAssembler">A reference to the build assembler</param> protected CloneComponent(BuildAssemblerCore buildAssembler) : base(buildAssembler) { }
/// <summary> /// Constructor /// </summary> /// <param name="buildAssembler">A reference to the build assembler</param> protected PlatformsComponent(BuildAssemblerCore buildAssembler) : base(buildAssembler) { }
//===================================================================== /// <summary> /// Constructor /// </summary> /// <param name="buildAssembler">A reference to the build assembler</param> protected ValidateComponent(BuildAssemblerCore buildAssembler) : base(buildAssembler) { }
//===================================================================== /// <summary> /// Constructor /// </summary> /// <param name="buildAssembler">A reference to the build assembler</param> protected SqlCopyFromIndexComponent(BuildAssemblerCore buildAssembler) : base(buildAssembler, null) { }
//===================================================================== /// <summary> /// Constructor /// </summary> /// <param name="buildAssembler">A reference to the build assembler</param> protected SqlResolveReferenceLinksComponent(BuildAssemblerCore buildAssembler) : base(buildAssembler) { }
//===================================================================== /// <summary> /// Constructor /// </summary> /// <param name="buildAssembler">A reference to the build assembler</param> protected DisplayComponent(BuildAssemblerCore buildAssembler) : base(buildAssembler) { }