-
Notifications
You must be signed in to change notification settings - Fork 76
Expand file tree
/
Copy pathGet-DuplicateRules.ps1
More file actions
47 lines (38 loc) · 981 Bytes
/
Get-DuplicateRules.ps1
File metadata and controls
47 lines (38 loc) · 981 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
#!/usr/bin/env pwsh
param(
[ValidateSet('c', 'cpp', 'all')]
[string]
$Language = 'all',
[switch]
$CIMode
)
Import-Module -Name "$PSScriptRoot/../PSCodingStandards/CodingStandards"
# load the rules.
$rules = Get-RulesFromCSV -Language $Language
# find out duplicates
$counter = @{}
foreach($rule in $rules){
$key = "$($rule.Language):$($rule.Standard):$($rule.ID)"
if($counter.Contains($key)){
$counter[$key] += $rule
}else{
$counter[$key] = @()
$counter[$key] += $rule
}
}
$duplicates = @()
$numDuplicates = 0
foreach($k in $counter.Keys){
if($counter[$k].Count -gt 1){
$numDuplicates = $numDuplicates + 1
foreach($v in $counter[$k]){
$duplicates += $v
}
}
}
$duplicates | Format-Table
if(($CIMode) -and ($numDuplicates -gt 0)){
throw "Found $numDuplicates duplicate Rule IDs"
}else{
Write-Host "Found $numDuplicates duplicate Rule IDs"
}