protected override void BeginProcessing() { #if DEBUG if (attachAndDebug) { if (System.Diagnostics.Debugger.IsAttached) { System.Diagnostics.Debugger.Break(); } else { System.Diagnostics.Debugger.Launch(); } } #endif try { inputSettings = PSSASettings.Create(Settings, null, this); if (inputSettings == null) { inputSettings = new PSSASettings( defaultSettingsPreset, PSSASettings.GetSettingPresetFilePath); } } catch { this.WriteWarning(String.Format(CultureInfo.CurrentCulture, Strings.SettingsNotParsable)); return; } }
protected override void BeginProcessing() { #if DEBUG if (attachAndDebug) { if (System.Diagnostics.Debugger.IsAttached) { System.Diagnostics.Debugger.Break(); } else { System.Diagnostics.Debugger.Launch(); } } #endif this.range = Range == null ? null : new Range(Range[0], Range[1], Range[2], Range[3]); try { inputSettings = PSSASettings.Create(Settings, this.MyInvocation.PSScriptRoot, this, GetResolvedProviderPathFromPSPath); } catch (Exception e) { this.ThrowTerminatingError(new ErrorRecord( e, "SETTINGS_ERROR", ErrorCategory.InvalidData, Settings)); } if (inputSettings == null) { this.ThrowTerminatingError(new ErrorRecord( new ArgumentException(String.Format( CultureInfo.CurrentCulture, Strings.SettingsNotParsable)), "SETTINGS_ERROR", ErrorCategory.InvalidArgument, Settings)); } }
/// <summary> /// Imports all known rules and loggers. /// </summary> protected override void BeginProcessing() { // Initialize helper #if DEBUG if (attachAndDebug) { if (System.Diagnostics.Debugger.IsAttached) { System.Diagnostics.Debugger.Break(); } else { System.Diagnostics.Debugger.Launch(); } } #endif Helper.Instance = new Helper( SessionState.InvokeCommand, this); Helper.Instance.Initialize(); var psVersionTable = this.SessionState.PSVariable.GetValue("PSVersionTable") as Hashtable; if (psVersionTable != null) { Helper.Instance.SetPSVersionTable(psVersionTable); } string[] rulePaths = Helper.ProcessCustomRulePaths( customRulePath, this.SessionState, recurseCustomRulePath); if (IsFileParameterSet()) { ProcessPath(); } string[] combRulePaths = null; var combRecurseCustomRulePath = RecurseCustomRulePath.IsPresent; var combIncludeDefaultRules = IncludeDefaultRules.IsPresent; try { var settingsObj = PSSASettings.Create( settings, processedPaths == null || processedPaths.Count == 0 ? null : processedPaths[0], this); if (settingsObj != null) { ScriptAnalyzer.Instance.UpdateSettings(settingsObj); // For includeDefaultRules and RecurseCustomRulePath we override the value in the settings file by // command line argument. combRecurseCustomRulePath = OverrideSwitchParam( settingsObj.RecurseCustomRulePath, "RecurseCustomRulePath"); combIncludeDefaultRules = OverrideSwitchParam( settingsObj.IncludeDefaultRules, "IncludeDefaultRules"); } // Ideally we should not allow the parameter to be set from settings and command line // simultaneously. But since, this was done before with IncludeRules, ExcludeRules and Severity, // we use the same strategy for CustomRulePath. So, we take the union of CustomRulePath provided in // the settings file and if provided on command line. var settingsCustomRulePath = Helper.ProcessCustomRulePaths( settingsObj?.CustomRulePath?.ToArray(), this.SessionState, combRecurseCustomRulePath); combRulePaths = rulePaths == null ? settingsCustomRulePath : settingsCustomRulePath == null ? rulePaths : rulePaths.Concat(settingsCustomRulePath).ToArray(); } catch { this.WriteWarning(String.Format(CultureInfo.CurrentCulture, Strings.SettingsNotParsable)); stopProcessing = true; return; } ScriptAnalyzer.Instance.Initialize( this, combRulePaths, this.includeRule, this.excludeRule, this.severity, combRulePaths == null || combIncludeDefaultRules, this.suppressedOnly); }
/// <summary> /// Imports all known rules and loggers. /// </summary> protected override void BeginProcessing() { // Initialize helper #if DEBUG if (attachAndDebug) { if (System.Diagnostics.Debugger.IsAttached) { System.Diagnostics.Debugger.Break(); } else { System.Diagnostics.Debugger.Launch(); } } #endif Helper.Instance = new Helper( SessionState.InvokeCommand, this); Helper.Instance.Initialize(); var psVersionTable = this.SessionState.PSVariable.GetValue("PSVersionTable") as Hashtable; if (psVersionTable != null) { Helper.Instance.SetPSVersionTable(psVersionTable); } string[] rulePaths = Helper.ProcessCustomRulePaths( customRulePath, this.SessionState, recurseCustomRulePath); if (IsFileParameterSet() && Path != null) { // just used to obtain the directory to use to find settings below ProcessPath(); } string[] combRulePaths = null; var combRecurseCustomRulePath = RecurseCustomRulePath.IsPresent; var combIncludeDefaultRules = IncludeDefaultRules.IsPresent; try { var settingsObj = PSSASettings.Create( settings, processedPaths == null || processedPaths.Count == 0 ? CurrentProviderLocation("FileSystem").ProviderPath : processedPaths[0], this, GetResolvedProviderPathFromPSPath); if (settingsObj != null) { ScriptAnalyzer.Instance.UpdateSettings(settingsObj); // For includeDefaultRules and RecurseCustomRulePath we override the value in the settings file by // command line argument. combRecurseCustomRulePath = OverrideSwitchParam( settingsObj.RecurseCustomRulePath, "RecurseCustomRulePath"); combIncludeDefaultRules = OverrideSwitchParam( settingsObj.IncludeDefaultRules, "IncludeDefaultRules"); } // Ideally we should not allow the parameter to be set from settings and command line // simultaneously. But since, this was done before with IncludeRules, ExcludeRules and Severity, // we use the same strategy for CustomRulePath. So, we take the union of CustomRulePath provided in // the settings file and if provided on command line. var settingsCustomRulePath = Helper.ProcessCustomRulePaths( settingsObj?.CustomRulePath?.ToArray(), this.SessionState, combRecurseCustomRulePath); combRulePaths = rulePaths == null ? settingsCustomRulePath : settingsCustomRulePath == null ? rulePaths : rulePaths.Concat(settingsCustomRulePath).ToArray(); } catch (Exception exception) { this.ThrowTerminatingError(new ErrorRecord( exception, "SETTINGS_ERROR", ErrorCategory.InvalidData, this.settings)); } SuppressionPreference suppressionPreference = SuppressedOnly ? SuppressionPreference.SuppressedOnly : IncludeSuppressed ? SuppressionPreference.Include : SuppressionPreference.Omit; ScriptAnalyzer.Instance.Initialize( this, combRulePaths, this.includeRule, this.excludeRule, this.severity, combRulePaths == null || combIncludeDefaultRules, suppressionPreference); }
/// <summary> /// Imports all known rules and loggers. /// </summary> protected override void BeginProcessing() { // Initialize helper #if DEBUG if (attachAndDebug) { if (System.Diagnostics.Debugger.IsAttached) { System.Diagnostics.Debugger.Break(); } else { System.Diagnostics.Debugger.Launch(); } } #endif Helper.Instance = new Helper( SessionState.InvokeCommand, this); Helper.Instance.Initialize(); var psVersionTable = this.SessionState.PSVariable.GetValue("PSVersionTable") as Hashtable; if (psVersionTable != null) { Helper.Instance.SetPSVersionTable(psVersionTable); } string[] rulePaths = Helper.ProcessCustomRulePaths( customRulePath, this.SessionState, recurseCustomRulePath); if (IsFileParameterSet()) { ProcessPath(); } try { var settingsObj = PSSASettings.Create( settings, processedPaths == null || processedPaths.Count == 0 ? null : processedPaths[0], this); if (settingsObj != null) { ScriptAnalyzer.Instance.UpdateSettings(settingsObj); } } catch { this.WriteWarning(String.Format(CultureInfo.CurrentCulture, Strings.SettingsNotParsable)); stopProcessing = true; return; } ScriptAnalyzer.Instance.Initialize( this, rulePaths, this.includeRule, this.excludeRule, this.severity, null == rulePaths ? true : this.includeDefaultRules, this.suppressedOnly); }