private static void ApplyCommandSettings(Engine engine, BuildCommand.Settings commandSettings) { // Set folders DirectoryPath currentDirectory = Environment.CurrentDirectory; engine.FileSystem.RootPath = string.IsNullOrEmpty(commandSettings.RootPath) ? currentDirectory : currentDirectory.Combine(commandSettings.RootPath); if (commandSettings.InputPaths?.Length > 0) { // Clear existing default paths if new ones are set // and reverse the inputs so the last one is first to match the semantics of multiple occurrence single options engine.FileSystem.InputPaths.Clear(); engine.FileSystem.InputPaths.AddRange(commandSettings.InputPaths.Select(x => new DirectoryPath(x)).Reverse()); } if (!string.IsNullOrEmpty(commandSettings.OutputPath)) { engine.FileSystem.OutputPath = commandSettings.OutputPath; } if (commandSettings.NoClean) { engine.Settings[Keys.CleanOutputPath] = false; } // Set no cache if requested if (commandSettings.NoCache) { engine.Settings[Keys.UseCache] = false; } // Get the standard input stream if (commandSettings.StdIn) { using (StreamReader reader = new StreamReader(Console.OpenStandardInput(), Console.InputEncoding)) { engine.ApplicationInput = reader.ReadToEnd(); } } // Add settings if (commandSettings.MetadataSettings?.Length > 0) { foreach (KeyValuePair <string, object> metadata in MetadataParser.Parse(commandSettings.MetadataSettings)) { engine.Settings.Add(metadata); } } }
private static void ApplyCommandSettings(Engine engine, IDictionary <string, string> settings, EngineCommandSettings commandSettings) { // Set folders DirectoryPath currentDirectory = Environment.CurrentDirectory; engine.FileSystem.RootPath = string.IsNullOrEmpty(commandSettings.RootPath) ? currentDirectory : currentDirectory.Combine(commandSettings.RootPath); if (commandSettings.InputPaths?.Length > 0) { // Clear existing default paths if new ones are set // and reverse the inputs so the last one is first to match the semantics of multiple occurrence single options engine.FileSystem.InputPaths.Clear(); engine.FileSystem.InputPaths.AddRange(commandSettings.InputPaths.Select(x => new DirectoryPath(x)).Reverse()); } if (!string.IsNullOrEmpty(commandSettings.OutputPath)) { engine.FileSystem.OutputPath = commandSettings.OutputPath; } if (commandSettings.NoClean) { settings[Keys.CleanOutputPath] = "false"; } // Set no cache if requested if (commandSettings.NoCache) { settings[Keys.UseCache] = "false"; } // Set serial mode if (commandSettings.SerialExecution) { engine.SerialExecution = true; } // Add settings if (commandSettings.MetadataSettings?.Length > 0) { foreach (KeyValuePair <string, string> setting in MetadataParser.Parse(commandSettings.MetadataSettings)) { settings[setting.Key] = setting.Value; } } }