diff --git a/src/java2yaml/Configs/excludeConfigs.txt b/src/java2yaml/Configs/excludeConfigs.txt new file mode 100644 index 0000000..f4b1ab8 --- /dev/null +++ b/src/java2yaml/Configs/excludeConfigs.txt @@ -0,0 +1 @@ +.*implementation.* \ No newline at end of file diff --git a/src/java2yaml/Constants/Constants.cs b/src/java2yaml/Constants/Constants.cs index e590a41..4bb31f1 100644 --- a/src/java2yaml/Constants/Constants.cs +++ b/src/java2yaml/Constants/Constants.cs @@ -17,6 +17,7 @@ public static class Constants public const string InputPaths = "inputPaths"; public const string ExcludePaths = "excludePaths"; public const string ExcludePackages = "excludePackages"; + public const string ExcludePackagesPath = "src/java2yaml/Configs/excludeConfigs.txt"; public const string DocletPath = "docletPath"; public const string Src = @"src\"; diff --git a/src/java2yaml/Steps/RunJavadoc.cs b/src/java2yaml/Steps/RunJavadoc.cs index 34fcba6..999db3b 100644 --- a/src/java2yaml/Steps/RunJavadoc.cs +++ b/src/java2yaml/Steps/RunJavadoc.cs @@ -1,5 +1,6 @@ namespace Microsoft.Content.Build.Java2Yaml { + using System; using System.Collections.Generic; using System.IO; using System.Linq; @@ -8,10 +9,11 @@ public class RunJavadoc : IStep { + public RunJavadoc(string path, Package package) { RepositoryPath = path; - ExcludePackages = package.ExcludePackages; + ExcludePackages = loadExcludeRegexes(package.ExcludePackages); } public string StepName => "RunJavadoc"; @@ -21,6 +23,7 @@ public RunJavadoc(string path, Package package) private static ConfigModel _config; + public Task RunAsync(ConfigModel config) { return Task.Run(() => @@ -94,7 +97,7 @@ private string GenerateOptions(string repositoryPath, string excludePackages) options += " -excludePackages " + excludePackages; } - return options; + return options; } private string GetDependencies(string repositoryPath) @@ -150,5 +153,30 @@ private bool InExcludePaths(string dir) { return _config.ExcludePaths.Any(p => dir.StartsWith(p)); } + + private string loadExcludeRegexes(string excludePackages) + { + StringBuilder excludeStringBuilder = new(); + + // Silent on any exception thrown by IO. + try + { + string[] lines = File.ReadAllLines(Constants.ExcludePackagesPath); + foreach (string line in lines) + { + excludeStringBuilder.Append(line + ":"); + } + } + catch + { + return excludePackages; + } + + if (excludeStringBuilder.Length > 0) + { + excludePackages += ":" + excludeStringBuilder.ToString(); + } + return excludePackages; + } } }