Beispiel #1
0
        public void Go(PickAndRollSettings settings = null)
        {
            var config         = ConfigProcess(settings);
            var extendedConfig = Pick(config);

            Roll(config.FilePatterns, extendedConfig);
        }
Beispiel #2
0
        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
            });
        }