Skip to content

Commit 080e872

Browse files
author
Kapil Borle
committed
Move settings method to Settings.cs
1 parent d7b23a9 commit 080e872

File tree

2 files changed

+74
-73
lines changed

2 files changed

+74
-73
lines changed

Engine/Commands/InvokeScriptAnalyzerCommand.cs

Lines changed: 5 additions & 73 deletions
Original file line numberDiff line numberDiff line change
@@ -238,7 +238,11 @@ protected override void BeginProcessing()
238238
}
239239

240240
object settingsFound;
241-
var settingsMode = FindSettingsMode(out settingsFound);
241+
var settingsMode = Generic.Settings.FindSettingsMode(
242+
this.settings,
243+
processedPaths == null || processedPaths.Count == 0 ? null : processedPaths[0],
244+
out settingsFound);
245+
242246
switch (settingsMode)
243247
{
244248
case SettingsMode.Auto:
@@ -253,9 +257,6 @@ protected override void BeginProcessing()
253257
break;
254258

255259
case SettingsMode.Preset:
256-
settingsFound = Generic.Settings.GetSettingPresetFilePath(this.settings as string);
257-
goto case SettingsMode.File;
258-
259260
case SettingsMode.File:
260261
this.WriteVerbose(String.Format("Using settings file at {0}", (string)settingsFound));
261262
break;
@@ -344,17 +345,6 @@ protected override void StopProcessing()
344345

345346
#region Private Methods
346347

347-
private static bool IsBuiltinSettingPreset(object settingPreset)
348-
{
349-
var preset = settingPreset as string;
350-
if (preset != null)
351-
{
352-
return Generic.Settings.GetSettingPresets().Contains(preset, StringComparer.OrdinalIgnoreCase);
353-
}
354-
355-
return false;
356-
}
357-
358348
private void ProcessInput()
359349
{
360350
IEnumerable<DiagnosticRecord> diagnosticsList = Enumerable.Empty<DiagnosticRecord>();
@@ -399,64 +389,6 @@ private bool IsFileParameterSet()
399389
return String.Equals(this.ParameterSetName, "File", StringComparison.OrdinalIgnoreCase);
400390
}
401391

402-
private SettingsMode FindSettingsMode(out object settingsFound)
403-
{
404-
var settingsMode = SettingsMode.None;
405-
settingsFound = this.settings;
406-
if (settingsFound == null)
407-
{
408-
if (processedPaths != null && processedPaths.Count == 1)
409-
{
410-
// add a directory separator character because if there is no trailing separator character, it will return the parent
411-
var directory = processedPaths[0].TrimEnd(System.IO.Path.DirectorySeparatorChar);
412-
if (File.Exists(directory))
413-
{
414-
// if given path is a file, get its directory
415-
directory = System.IO.Path.GetDirectoryName(directory);
416-
}
417-
418-
if (Directory.Exists(directory))
419-
{
420-
// if settings are not provided explicitly, look for it in the given path
421-
// check if pssasettings.psd1 exists
422-
var settingsFilename = "PSScriptAnalyzerSettings.psd1";
423-
var settingsFilePath = System.IO.Path.Combine(directory, settingsFilename);
424-
settingsFound = settingsFilePath;
425-
if (File.Exists(settingsFilePath))
426-
{
427-
settingsMode = SettingsMode.Auto;
428-
}
429-
}
430-
}
431-
}
432-
else
433-
{
434-
var settingsFilePath = settingsFound as String;
435-
if (settingsFilePath != null)
436-
{
437-
if (IsBuiltinSettingPreset(settingsFilePath))
438-
{
439-
settingsMode = SettingsMode.Preset;
440-
settingsFound = Generic.Settings.GetSettingPresetFilePath(settingsFilePath);
441-
}
442-
else
443-
{
444-
settingsMode = SettingsMode.File;
445-
settingsFound = settingsFilePath;
446-
}
447-
}
448-
else
449-
{
450-
if (settingsFound is Hashtable)
451-
{
452-
settingsMode = SettingsMode.Hashtable;
453-
}
454-
}
455-
}
456-
457-
return settingsMode;
458-
}
459-
460392
#endregion // Private Methods
461393
}
462394
}

Engine/Generic/Settings.cs

Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -546,5 +546,74 @@ private void ThrowInvalidDataException(IScriptExtent extent)
546546
extent.StartColumnNumber,
547547
extent.File ?? ""));
548548
}
549+
550+
private static bool IsBuiltinSettingPreset(object settingPreset)
551+
{
552+
var preset = settingPreset as string;
553+
if (preset != null)
554+
{
555+
return Generic.Settings.GetSettingPresets().Contains(preset, StringComparer.OrdinalIgnoreCase);
556+
}
557+
558+
return false;
559+
}
560+
561+
internal static SettingsMode FindSettingsMode(object settings, string path, out object settingsFound)
562+
{
563+
var settingsMode = SettingsMode.None;
564+
settingsFound = settings;
565+
if (settingsFound == null)
566+
{
567+
if (path != null)
568+
{
569+
// add a directory separator character because if there is no trailing separator character, it will return the parent
570+
var directory = path.TrimEnd(System.IO.Path.DirectorySeparatorChar);
571+
if (File.Exists(directory))
572+
{
573+
// if given path is a file, get its directory
574+
directory = Path.GetDirectoryName(directory);
575+
}
576+
577+
if (Directory.Exists(directory))
578+
{
579+
// if settings are not provided explicitly, look for it in the given path
580+
// check if pssasettings.psd1 exists
581+
var settingsFilename = "PSScriptAnalyzerSettings.psd1";
582+
var settingsFilePath = Path.Combine(directory, settingsFilename);
583+
settingsFound = settingsFilePath;
584+
if (File.Exists(settingsFilePath))
585+
{
586+
settingsMode = SettingsMode.Auto;
587+
}
588+
}
589+
}
590+
}
591+
else
592+
{
593+
var settingsFilePath = settingsFound as String;
594+
if (settingsFilePath != null)
595+
{
596+
if (IsBuiltinSettingPreset(settingsFilePath))
597+
{
598+
settingsMode = SettingsMode.Preset;
599+
settingsFound = GetSettingPresetFilePath(settingsFilePath);
600+
}
601+
else
602+
{
603+
settingsMode = SettingsMode.File;
604+
settingsFound = settingsFilePath;
605+
}
606+
}
607+
else
608+
{
609+
if (settingsFound is Hashtable)
610+
{
611+
settingsMode = SettingsMode.Hashtable;
612+
}
613+
}
614+
}
615+
616+
return settingsMode;
617+
}
549618
}
550619
}

0 commit comments

Comments
 (0)