Skip to content

Commit

Permalink
Merge pull request #2882 from mavasani/EditorConfigFiles
Browse files Browse the repository at this point in the history
Generate editorconfig based rule configuration files in NuGet packages
  • Loading branch information
mavasani committed Oct 1, 2019
2 parents 4bc7bc6 + 17bf198 commit 6c05175
Show file tree
Hide file tree
Showing 5 changed files with 355 additions and 210 deletions.
31 changes: 23 additions & 8 deletions eng/GenerateAnalyzerNuspec.csx
@@ -1,3 +1,5 @@
using System.IO;

string nuspecFile = Args[0];
string assetsDir = Args[1];
string projectDir = Args[2];
Expand All @@ -10,14 +12,15 @@ var assemblyList = Args[8].Split(new[] { ';' }, StringSplitOptions.RemoveEmptyEn
var dependencyList = Args[9].Split(new[] { ';' }, StringSplitOptions.RemoveEmptyEntries);
var libraryList = Args[10].Split(new[] { ';' }, StringSplitOptions.RemoveEmptyEntries);
var rulesetsDir = Args[11];
var legacyRulesets = Args[12].Split(new[] { ';' }, StringSplitOptions.RemoveEmptyEntries);
var artifactsBinDir = Args[13];
var analyzerDocumentationFileDir = Args[14];
var analyzerDocumentationFileName = Args[15];
var analyzerSarifFileDir = Args[16];
var analyzerSarifFileName = Args[17];
var analyzerConfigurationFileDir = Args[18];
var analyzerConfigurationFileName = Args[19];
var editorconfigsDir = Args[12];
var legacyRulesets = Args[13].Split(new[] { ';' }, StringSplitOptions.RemoveEmptyEntries);
var artifactsBinDir = Args[14];
var analyzerDocumentationFileDir = Args[15];
var analyzerDocumentationFileName = Args[16];
var analyzerSarifFileDir = Args[17];
var analyzerSarifFileName = Args[18];
var analyzerConfigurationFileDir = Args[19];
var analyzerConfigurationFileName = Args[20];

var result = new StringBuilder();

Expand Down Expand Up @@ -187,6 +190,18 @@ if (rulesetsDir.Length > 0 && Directory.Exists(rulesetsDir))
}
}

if (editorconfigsDir.Length > 0 && Directory.Exists(editorconfigsDir))
{
foreach (string directory in Directory.EnumerateDirectories(editorconfigsDir))
{
var directoryName = new DirectoryInfo(directory).Name;
foreach (string editorconfig in Directory.EnumerateFiles(directory))
{
result.AppendLine(FileElement(Path.Combine(directory, editorconfig), $"editorconfig\\{directoryName}"));
}
}
}

if (analyzerDocumentationFileDir.Length > 0 && Directory.Exists(analyzerDocumentationFileDir) && analyzerDocumentationFileName.Length > 0)
{
var fileWithPath = Path.Combine(analyzerDocumentationFileDir, analyzerDocumentationFileName);
Expand Down
5 changes: 3 additions & 2 deletions eng/GenerateAnalyzerNuspec.targets
Expand Up @@ -26,6 +26,7 @@

<PropertyGroup>
<_GeneratedRulesetsDir>$(IntermediateOutputPath)Rulesets</_GeneratedRulesetsDir>
<_GeneratedEditorconfigsDir>$(IntermediateOutputPath)Editorconfig</_GeneratedEditorconfigsDir>
<ContainsPortedFxCopRules Condition="'$(ContainsPortedFxCopRules)' == ''">false</ContainsPortedFxCopRules>
<GeneratePackagePropsFile Condition="'$(GeneratePackagePropsFile)' == ''">true</GeneratePackagePropsFile>
<DevelopmentDependency Condition="'@(AnalyzerNupkgAssembly)' != '' or '@(AnalyzerNupkgDependency)' != ''">true</DevelopmentDependency>
Expand Down Expand Up @@ -65,7 +66,7 @@
<AnalyzerRulesetAssembly Condition="'@(AnalyzerNupkgAssembly)' != '' and '@(AnalyzerRulesetAssembly)' == ''" Include="@(AnalyzerNupkgAssembly)"/>
</ItemGroup>

<Exec Command='"$(DotNetRoot)dotnet.exe" "$(_GenerateAnalyzerRulesetsPath)" "$(_GeneratedRulesetsDir)" "$(ArtifactsBinDir)\" "$(Configuration)" "$(TargetFramework)" "@(AnalyzerRulesetAssembly)" "$(PackagePropsFileDir)" "$(PackagePropsFileName)" "$(AnalyzerSarifFileDir)" "$(AnalyzerDocumentationFileName)" "$(AnalyzerSarifFileDir)" "$(AnalyzerSarifFileName)" "$(VersionPrefix)" $(ContainsPortedFxCopRules)' />
<Exec Command='"$(DotNetRoot)dotnet.exe" "$(_GenerateAnalyzerRulesetsPath)" "$(_GeneratedRulesetsDir)" "$(_GeneratedEditorconfigsDir)" "$(ArtifactsBinDir)\" "$(Configuration)" "$(TargetFramework)" "@(AnalyzerRulesetAssembly)" "$(PackagePropsFileDir)" "$(PackagePropsFileName)" "$(AnalyzerSarifFileDir)" "$(AnalyzerDocumentationFileName)" "$(AnalyzerSarifFileDir)" "$(AnalyzerSarifFileName)" "$(VersionPrefix)" $(NuspecPackageId) $(ContainsPortedFxCopRules)' />
</Target>

<Target Name="GenerateAnalyzerNuspecFile"
Expand Down Expand Up @@ -99,6 +100,6 @@
<_CscToolPath Condition="!HasTrailingSlash('$(_CscToolPath)')">$(_CscToolPath)\</_CscToolPath>
</PropertyGroup>

<Exec Command='"$(_CscToolPath)csi.exe" "$(RepoRoot)eng\GenerateAnalyzerNuspec.csx" "$(NuspecFile)" "$(AssetsDir)\" "$(MSBuildProjectDirectory)" "$(Configuration)" "$(TargetFramework)" "@(_NuspecMetadata)" "@(AnalyzerNupkgFile)" "@(AnalyzerNupkgFolder)" "@(AnalyzerNupkgAssembly)" "@(AnalyzerNupkgDependency)" "@(AnalyzerNupkgLibrary)" "$(_GeneratedRulesetsDir)" "@(AnalyzerLegacyRuleset)" "$(ArtifactsBinDir)\" "$(AnalyzerDocumentationFileDir)" "$(AnalyzerDocumentationFileName)" "$(AnalyzerSarifFileDir)" "$(AnalyzerSarifFileName)" "$(AnalyzerConfigurationFileDir)" "$(AnalyzerConfigurationFileName)"' />
<Exec Command='"$(_CscToolPath)csi.exe" "$(RepoRoot)eng\GenerateAnalyzerNuspec.csx" "$(NuspecFile)" "$(AssetsDir)\" "$(MSBuildProjectDirectory)" "$(Configuration)" "$(TargetFramework)" "@(_NuspecMetadata)" "@(AnalyzerNupkgFile)" "@(AnalyzerNupkgFolder)" "@(AnalyzerNupkgAssembly)" "@(AnalyzerNupkgDependency)" "@(AnalyzerNupkgLibrary)" "$(_GeneratedRulesetsDir)" "$(_GeneratedEditorconfigsDir)" "@(AnalyzerLegacyRuleset)" "$(ArtifactsBinDir)\" "$(AnalyzerDocumentationFileDir)" "$(AnalyzerDocumentationFileName)" "$(AnalyzerSarifFileDir)" "$(AnalyzerSarifFileName)" "$(AnalyzerConfigurationFileDir)" "$(AnalyzerConfigurationFileName)"' />
</Target>
</Project>

0 comments on commit 6c05175

Please sign in to comment.