public void BeforeCompile(IBeforeCompileContext context) { JObject rawProjectFile = null; using (var fs = File.OpenRead(context.ProjectContext.ProjectFilePath)) { rawProjectFile = JObject.Load(new JsonTextReader(new StreamReader(fs))); } var excludePatterns = PatternsCollectionHelper.GetPatternsCollection( rawProjectFile, context.ProjectContext.ProjectDirectory, context.ProjectContext.ProjectFilePath, "exclude", DefaultExcludePatterns); var matcher = new Matcher(); matcher.AddInclude("**/*.resx").AddExcludePatterns(excludePatterns); var resXFiles = matcher.GetResultsInFullPath(context.ProjectContext.ProjectDirectory); foreach (var resXFile in resXFiles) { WriteResourceFile(resXFile); } }
private bool ScanForProjects() { _logger.LogInformation(string.Format("Scanning '{0}' for DNX projects", _env.Path)); var anyProjects = false; // Single project in this folder var projectInThisFolder = Path.Combine(_env.Path, "project.json"); if (File.Exists(projectInThisFolder)) { if (_context.TryAddProject(projectInThisFolder)) { _logger.LogInformation(string.Format("Found project '{0}'.", projectInThisFolder)); anyProjects = true; } } else { IEnumerable<string> paths; #if DNX451 if (_options.Dnx.Projects != "**/project.json") { var matcher = new Matcher(); matcher.AddIncludePatterns(_options.Dnx.Projects.Split(';')); paths = matcher.GetResultsInFullPath(_env.Path); } else { paths = _directoryEnumerator.SafeEnumerateFiles(_env.Path, "project.json"); } #else // The matcher works on CoreCLR but Omnisharp still targets aspnetcore50 instead of // dnxcore50 paths = _directoryEnumerator.SafeEnumerateFiles(_env.Path, "project.json"); #endif foreach (var path in paths) { string projectFile = null; if (Path.GetFileName(path) == "project.json") { projectFile = path; } else { projectFile = Path.Combine(path, "project.json"); if (!File.Exists(projectFile)) { projectFile = null; } } if (string.IsNullOrEmpty(projectFile)) { continue; } if (!_context.TryAddProject(projectFile)) { continue; } _logger.LogInformation(string.Format("Found project '{0}'.", projectFile)); anyProjects = true; } } return anyProjects; }