private List <Language> Parse() { var file = $"{_appOptions.ConfigDir}/langs.yaml"; var(data, _) = YamlRead.ReadFromFile <List <Language> >(file); return(data); }
private SettingsConfig ParseSettingConfigOrDefault(string settingsConfig) { // parse settings.yaml if (!File.Exists(settingsConfig)) { return(null); } var(data, _) = YamlRead.ReadFromFile <SettingsConfig>(settingsConfig); return(data); }
private CourseYearConfig ParseCourseYear(Course course, string yearDir) { try { var yearConfig = Path.Combine(yearDir, "config.yaml"); var settingsConfig = Path.Combine(yearDir, "settings.yaml"); var groupsConfig = Path.Combine(yearDir, "groups.yaml"); var year = new CourseYearConfig { Year = Path.GetFileName(yearDir) }; // 1) required config.yaml if (!File.Exists(yearConfig)) { return(null); } (year.Problems, year.Yaml) = YamlRead.ReadFromFile <List <CourseProblem> >(yearConfig); // 2) optional settings.yaml if (File.Exists(settingsConfig)) { var settConf = YamlRead.ReadFromFile <SettingsConfig>(settingsConfig); year.SettingsConfig = settConf.data; } else { year.SettingsConfig = new SettingsConfig(); } // 3) optional groups.yaml if (File.Exists(groupsConfig)) { var groupConf = YamlRead.ReadFromFile <CourseGroup>(groupsConfig); year.CourseGroup = groupConf.data; } else { year.CourseGroup = new CourseGroup(); } return(year); } catch (DetailedException e) { var msg = $"Error while parsing file {e.File}: "; course.Errors.Add(msg); course.Errors.AddRange(e.Messages); Console.Error.WriteLine(msg); return(null); } }
public void SetupProjects() { foreach (var project in _appOptions.Projects) { _logger.LogInformation("Processing project {project} ({url})", project.Name, project.Url); var location = new DirectoryInfo(Path.Combine(".", "..", ".tmp", $".{project.Name.ToLower()}.gitinfo")).FullName; if (!Repository.IsValid(location)) { _logger.LogInformation("Cloning repository {project} to {url}", project.Name, project.Url); Repository.Clone(project.Url, location); } _logger.LogInformation("Reading repo {location}", location); if (project.Name == "bench_data") { var configYaml = Path.Combine(location, "cihpc", "frontend-config.yaml"); if (File.Exists(configYaml)) { FrontendConfig = YamlRead.Read <FrontendConfig>(configYaml); } var benchmarksYaml = Path.Combine(location, "cihpc", "benchmarks.yaml"); if (File.Exists(benchmarksYaml)) { var data = YamlRead.Read <BenchmarksConfig>(benchmarksYaml); var benchmarks = new List <IndexInfo>(); foreach (var matrix in data) { var vals = matrix.Matrix.Select(i => i.Items).ToList(); var product = vals.CrossProduct().ToList(); benchmarks.AddRange(product.Select(i => new IndexInfo { Test = i[0], Mesh = i[1], Cpus = i[2], Benchmark = i[3], })); } BenchmarkList = benchmarks .OrderBy(i => i.Test) .ThenBy(i => i.Benchmark) .ThenBy(i => i.Mesh) .ToList(); } } } }
private Course ParseCourse(string dir) { var config = Path.Combine(dir, "config.yaml"); if (!File.Exists(config)) { return(null); } var course = new Course { CourseDir = dir }; (course.CourseConfig, course.Yaml) = YamlRead.ReadFromFile <CourseConfig>(config); try { course.CourseYears = ParseCourseYears(dir); } catch (DetailedException e) { var msg = $"Error while parsing course {course.CourseConfig.Name} year config {dir}: "; course.Errors.AddRange(e.Messages); _logger.LogError(msg); } catch (Exception e) { var msg = $"Error while parsing course {course.CourseConfig.Name} year config {dir}: "; course.Errors.AddRange(new[] { msg, e.Message }); _logger.LogError(msg); } finally { course.CourseYears ??= new List <CourseYearConfig>(); } if (!course.CourseConfig.Disabled) { return(course); } _logger.LogInformation("Ignoring course {Course}", course.Name); return(null); }
private void ParseCourseYear(string yearDir, List <CourseYearConfig> result) { var yearConfig = Path.Combine(yearDir, "config.yaml"); var settingsConfig = Path.Combine(yearDir, "settings.yaml"); if (File.Exists(yearConfig)) { // parse config.yaml var cfg = new CourseYearConfig { Year = Path.GetFileName(yearDir) }; (cfg.Problems, cfg.Yaml) = YamlRead.ReadFromFile <List <CourseProblem> >(yearConfig); cfg.SettingsConfig = ParseSettingConfigOrDefault(settingsConfig); result.Add(cfg); } }
private Course ParseCourse(string dir) { var config = Path.Combine(dir, "config.yaml"); if (!File.Exists(config)) { return(null); } var course = new Course { CourseDir = dir }; try { (course.CourseConfig, course.Yaml) = YamlRead.ReadFromFile <CourseConfig>(config); return(course); } catch (Exception e) { Console.Error.WriteLine($"Failed to parse config.yaml {e}"); return(null); } }