public void Go(PickAndRollSettings settings = null) { var config = ConfigProcess(settings); var extendedConfig = Pick(config); Roll(config.FilePatterns, extendedConfig); }
private static PickAndRollConfig ConfigProcess(PickAndRollSettings settings) { var pwd = settings.Pwd ?? "."; var parConfigFileName = Path.GetFullPath(Path.Combine(pwd, settings.ParConfigFileName ?? ".parconfig")); var parConfig = GetParConfig(parConfigFileName, settings.Files ?? new string[] { }); var filePatterns = parConfig.Files .Select(f => Path.GetFullPath(Path.Combine(pwd, f))) .Where(File.Exists); var customConfigFileName = string.IsNullOrEmpty(settings.ConfigFileName) ? Environment.MachineName : settings.ConfigFileName; var configFileNames = new[] { "config", customConfigFileName }.Union(settings.ExtraConfigsPath ?? new string[] { }) .Select(f => Path.GetFullPath(Path.Combine(pwd, parConfig.CustomDir, $"{f}.json"))) .Where(f => !string.IsNullOrEmpty(f)) .Where(File.Exists); return(new PickAndRollConfig { FilePatterns = filePatterns, ConfigFileNames = configFileNames }); }