@@ -84,33 +84,47 @@ public void Analyze(
84
84
85
85
foreach ( var directory in probingDirectories )
86
86
{
87
- var index = Path . GetFileName ( directory ) . IndexOf ( "." ) ;
88
- var service = Path . GetFileName ( directory ) . Substring ( index + 1 ) ;
87
+ var service = Path . GetFileName ( directory ) ;
89
88
90
- var helpFiles = Directory . EnumerateFiles ( directory , "*.dll-Help.xml" )
91
- . Where ( f => ! processedHelpFiles . Contains ( Path . GetFileName ( f ) ,
92
- StringComparer . OrdinalIgnoreCase ) ) . ToList ( ) ;
89
+ var manifestFiles = Directory . EnumerateFiles ( directory , "*.psd1" ) . ToList ( ) ;
93
90
94
- if ( helpFiles . Count > 1 )
91
+ if ( manifestFiles . Count > 1 )
95
92
{
96
- helpFiles = helpFiles . Where ( f => Path . GetFileName ( f ) . IndexOf ( service ) >= 0 ) . ToList ( ) ;
93
+ manifestFiles = manifestFiles . Where ( f => Path . GetFileName ( f ) . IndexOf ( service ) >= 0 ) . ToList ( ) ;
97
94
}
98
95
99
- if ( helpFiles . Any ( ) )
96
+ if ( manifestFiles . Count == 0 )
97
+ {
98
+ continue ;
99
+ }
100
+
101
+ var psd1 = manifestFiles . FirstOrDefault ( ) ;
102
+
103
+ var parentDirectory = Directory . GetParent ( psd1 ) ;
104
+ var psd1FileName = Path . GetFileName ( psd1 ) ;
105
+
106
+ PowerShell powershell = PowerShell . Create ( ) ;
107
+ powershell . AddScript ( "Import-LocalizedData -BaseDirectory " + parentDirectory +
108
+ " -FileName " + psd1FileName +
109
+ " -BindingVariable ModuleMetadata; $ModuleMetadata.NestedModules" ) ;
110
+
111
+ var cmdletResult = powershell . Invoke ( ) ;
112
+ var cmdletFiles = cmdletResult . Select ( c => c . ToString ( ) . Substring ( 2 ) ) ;
113
+
114
+ if ( cmdletFiles . Any ( ) )
100
115
{
101
116
Directory . SetCurrentDirectory ( directory ) ;
102
- foreach ( var helpFile in helpFiles )
117
+ foreach ( var cmdletFile in cmdletFiles )
103
118
{
104
- var cmdletFile = helpFile . Substring ( 0 , helpFile . Length - "-Help.xml" . Length ) ;
105
- var helpFileName = Path . GetFileName ( helpFile ) ;
119
+ var helpFileName = Path . GetFileName ( cmdletFile ) ;
106
120
var cmdletFileName = Path . GetFileName ( cmdletFile ) ;
107
121
if ( File . Exists ( cmdletFile ) )
108
122
{
109
123
issueLogger . Decorator . AddDecorator ( a => a . AssemblyFileName = cmdletFileName , "AssemblyFileName" ) ;
110
124
processedHelpFiles . Add ( helpFileName ) ;
111
125
var proxy =
112
126
EnvironmentHelpers . CreateProxy < CmdletBreakingChangeLoader > ( directory , out _appDomain ) ;
113
- var newModuleMetadata = proxy . GetModuleMetadata ( cmdletFile ) ;
127
+ var newModuleMetadata = proxy . GetModuleMetadata ( Path . GetFullPath ( cmdletFile ) ) ;
114
128
115
129
string fileName = cmdletFileName + ".json" ;
116
130
string executingPath =
@@ -129,8 +143,28 @@ public void Analyze(
129
143
130
144
if ( cmdletFilter != null )
131
145
{
146
+ string output = "Before filter\n Old module cmdlet count: " + oldModuleMetadata . Cmdlets . Count +
147
+ "\n New module cmdlet count: " + newModuleMetadata . Cmdlets . Count ;
148
+
149
+ output += "\n Cmdlet file: " + Path . GetFullPath ( cmdletFile ) ;
150
+
132
151
oldModuleMetadata . FilterCmdlets ( cmdletFilter ) ;
133
152
newModuleMetadata . FilterCmdlets ( cmdletFilter ) ;
153
+
154
+ output += "\n After filter\n Old module cmdlet count: " + oldModuleMetadata . Cmdlets . Count +
155
+ "\n New module cmdlet count: " + newModuleMetadata . Cmdlets . Count ;
156
+
157
+ foreach ( var cmdlet in oldModuleMetadata . Cmdlets )
158
+ {
159
+ output += "\n \t Old cmdlet - " + cmdlet . Name ;
160
+ }
161
+
162
+ foreach ( var cmdlet in newModuleMetadata . Cmdlets )
163
+ {
164
+ output += "\n \t New cmdlet - " + cmdlet . Name ;
165
+ }
166
+
167
+ issueLogger . WriteMessage ( output + "\n " ) ;
134
168
}
135
169
136
170
RunBreakingChangeChecks ( oldModuleMetadata , newModuleMetadata , issueLogger ) ;
0 commit comments