@@ -183,6 +183,7 @@ private void Initialize(
183
183
this . includeRegexList = new List < Regex > ( ) ;
184
184
this . excludeRegexList = new List < Regex > ( ) ;
185
185
186
+ #region ParseProfile
186
187
if ( ! String . IsNullOrWhiteSpace ( profile ) )
187
188
{
188
189
try
@@ -191,9 +192,7 @@ private void Initialize(
191
192
}
192
193
catch
193
194
{
194
- this . outputWriter . WriteError ( new ErrorRecord ( new FileNotFoundException ( ) ,
195
- string . Format ( CultureInfo . CurrentCulture , Strings . FileNotFound , profile ) ,
196
- ErrorCategory . InvalidArgument , this ) ) ;
195
+ this . outputWriter . WriteWarning ( string . Format ( CultureInfo . CurrentCulture , Strings . FileNotFound , profile ) ) ;
197
196
}
198
197
199
198
if ( File . Exists ( profile ) )
@@ -202,15 +201,23 @@ private void Initialize(
202
201
ParseError [ ] parserErrors = null ;
203
202
Ast profileAst = Parser . ParseFile ( profile , out parserTokens , out parserErrors ) ;
204
203
IEnumerable < Ast > hashTableAsts = profileAst . FindAll ( item => item is HashtableAst , false ) ;
205
- foreach ( HashtableAst hashTableAst in hashTableAsts )
204
+
205
+ // no hashtable, raise warning
206
+ if ( hashTableAsts . Count ( ) == 0 )
207
+ {
208
+ this . outputWriter . WriteWarning ( string . Format ( CultureInfo . CurrentCulture , Strings . InvalidProfile , profile ) ) ;
209
+ }
210
+ else
206
211
{
212
+ HashtableAst hashTableAst = hashTableAsts . First ( ) as HashtableAst ;
213
+
207
214
foreach ( var kvp in hashTableAst . KeyValuePairs )
208
215
{
209
216
if ( ! ( kvp . Item1 is StringConstantExpressionAst ) )
210
217
{
211
- this . outputWriter . WriteError ( new ErrorRecord ( new ArgumentException ( ) ,
212
- string . Format ( CultureInfo . CurrentCulture , Strings . WrongKeyFormat , kvp . Item1 . Extent . StartLineNumber , kvp . Item1 . Extent . StartColumnNumber , profile ) ,
213
- ErrorCategory . InvalidArgument , this ) ) ;
218
+ // first item (the key) should be a string
219
+ this . outputWriter . WriteWarning (
220
+ string . Format ( CultureInfo . CurrentCulture , Strings . WrongKeyFormat , kvp . Item1 . Extent . StartLineNumber , kvp . Item1 . Extent . StartColumnNumber , profile ) ) ;
214
221
continue ;
215
222
}
216
223
@@ -257,11 +264,11 @@ private void Initialize(
257
264
{
258
265
foreach ( var element in arrayLitAst . Elements )
259
266
{
267
+ // all the values in the array needs to be string
260
268
if ( ! ( element is StringConstantExpressionAst ) )
261
269
{
262
- this . outputWriter . WriteError ( new ErrorRecord ( new ArgumentException ( ) ,
263
- string . Format ( CultureInfo . CurrentCulture , Strings . WrongValueFormat , element . Extent . StartLineNumber , element . Extent . StartColumnNumber , profile ) ,
264
- ErrorCategory . InvalidArgument , this ) ) ;
270
+ this . outputWriter . WriteWarning (
271
+ string . Format ( CultureInfo . CurrentCulture , Strings . WrongValueFormat , element . Extent . StartLineNumber , element . Extent . StartColumnNumber , profile ) ) ;
265
272
continue ;
266
273
}
267
274
@@ -273,9 +280,8 @@ private void Initialize(
273
280
274
281
if ( rhsList . Count == 0 )
275
282
{
276
- this . outputWriter . WriteError ( new ErrorRecord ( new ArgumentException ( ) ,
277
- string . Format ( CultureInfo . CurrentCulture , Strings . WrongValueFormat , kvp . Item2 . Extent . StartLineNumber , kvp . Item2 . Extent . StartColumnNumber , profile ) ,
278
- ErrorCategory . InvalidArgument , this ) ) ;
283
+ this . outputWriter . WriteWarning (
284
+ string . Format ( CultureInfo . CurrentCulture , Strings . WrongValueFormat , kvp . Item2 . Extent . StartLineNumber , kvp . Item2 . Extent . StartColumnNumber , profile ) ) ;
279
285
break ;
280
286
}
281
287
@@ -312,16 +318,17 @@ private void Initialize(
312
318
}
313
319
break ;
314
320
default :
315
- this . outputWriter . WriteError ( new ErrorRecord ( new ArgumentException ( ) ,
316
- string . Format ( CultureInfo . CurrentCulture , Strings . WrongKey , kvp . Item1 . Extent . StartLineNumber , kvp . Item1 . Extent . StartColumnNumber , profile ) ,
317
- ErrorCategory . InvalidArgument , this ) ) ;
321
+ this . outputWriter . WriteWarning (
322
+ string . Format ( CultureInfo . CurrentCulture , Strings . WrongKey , kvp . Item1 . Extent . StartLineNumber , kvp . Item1 . Extent . StartColumnNumber , profile ) ) ;
318
323
break ;
319
324
}
320
325
}
321
326
}
322
327
}
323
328
}
324
329
330
+ #endregion
331
+
325
332
//Check wild card input for the Include/ExcludeRules and create regex match patterns
326
333
if ( this . includeRule != null )
327
334
{
0 commit comments