public static Config Provide(string workingDirectory, IFileSystem fileSystem, ConfigFileLocator configFileLocator, bool applyDefaults = true, Config overrideConfig = null) { var readConfig = configFileLocator.ReadConfig(workingDirectory, fileSystem); VerifyConfiguration(readConfig); if (applyDefaults) { ApplyDefaultsTo(readConfig); } if (null != overrideConfig) { ApplyOverridesTo(readConfig, overrideConfig); } return(readConfig); }
public static void Init(string workingDirectory, IFileSystem fileSystem, IConsole console, ConfigFileLocator configFileLocator) { var configFilePath = configFileLocator.GetConfigFilePath(workingDirectory, fileSystem); var currentConfiguration = Provide(workingDirectory, fileSystem, applyDefaults: false, configFileLocator: configFileLocator); var config = new ConfigInitWizard(console, fileSystem).Run(currentConfiguration, workingDirectory); if (config == null) { return; } using (var stream = fileSystem.OpenWrite(configFilePath)) using (var writer = new StreamWriter(stream)) { Logger.WriteInfo("Saving config file"); ConfigSerialiser.Write(config, writer); stream.Flush(); } }
public static Config Provide(GitPreparer gitPreparer, IFileSystem fileSystem, ConfigFileLocator configFileLocator, bool applyDefaults = true, Config overrideConfig = null, string configFilePath = null) { var workingDirectory = gitPreparer.WorkingDirectory; var projectRootDirectory = gitPreparer.GetProjectRootDirectory(); if (configFileLocator.HasConfigFileAt(workingDirectory, fileSystem)) { return(Provide(workingDirectory, fileSystem, configFileLocator, applyDefaults, overrideConfig)); } return(Provide(projectRootDirectory, fileSystem, configFileLocator, applyDefaults, overrideConfig)); }
public static string GetEffectiveConfigAsString(string workingDirectory, IFileSystem fileSystem, ConfigFileLocator configFileLocator) { var config = Provide(workingDirectory, fileSystem, configFileLocator); var stringBuilder = new StringBuilder(); using (var stream = new StringWriter(stringBuilder)) { ConfigSerialiser.Write(config, stream); stream.Flush(); } return(stringBuilder.ToString()); }