ProcessorRunSettings.cs (2478B)
1 // ----------------------------------------------------------------------------- 2 // <copyright file="ProcessorRunSettings.cs" company="Microsoft Corporation"> 3 // Copyright (c) Microsoft Corporation. Licensed under the MIT License. 4 // </copyright> 5 // ----------------------------------------------------------------------------- 6 7 namespace Microsoft.Management.Configuration.Processor.DSCv3.Helpers 8 { 9 using System.Collections.Generic; 10 using System.IO; 11 using System.Linq; 12 using System.Text; 13 using Microsoft.Management.Configuration.Processor.DSCv3.Model; 14 using Microsoft.Management.Configuration.Processor.Helpers; 15 16 /// <summary> 17 /// Contains settings for the DSC v3 processor components to share. 18 /// </summary> 19 internal class ProcessorRunSettings 20 { 21 /// <summary> 22 /// Gets the paths for finding DSC resources and executables. 23 /// </summary> 24 public string ResourceSearchPaths { get; private set; } = string.Empty; 25 26 /// <summary> 27 /// Gets a value indicating whether the resource search paths are exclusive. 28 /// </summary> 29 public bool ResourceSearchPathsExclusive { get; private set; } = false; 30 31 /// <summary> 32 /// Creates ProcessorRunSettings from FindUnitProcessorsOptions. 33 /// </summary> 34 /// <param name="findOptions">The find unit processors options.</param> 35 /// <returns>A ProcessorRunSettings.</returns> 36 public static ProcessorRunSettings CreateFromFindUnitProcessorsOptions(FindUnitProcessorsOptions findOptions) 37 { 38 return new ProcessorRunSettings 39 { 40 ResourceSearchPaths = findOptions.SearchPaths, 41 ResourceSearchPathsExclusive = findOptions.SearchPathsExclusive, 42 }; 43 } 44 45 /// <summary> 46 /// Creates ProcessorRunSettings from a ResourceDetails. 47 /// </summary> 48 /// <param name="resourceDetails">The resource details to be used.</param> 49 /// <returns>A ProcessorRunSettings.</returns> 50 public static ProcessorRunSettings CreateFromResourceDetails(ResourceDetails? resourceDetails) 51 { 52 return new ProcessorRunSettings 53 { 54 ResourceSearchPaths = Path.GetDirectoryName(resourceDetails?.Path) ?? string.Empty, 55 ResourceSearchPathsExclusive = false, 56 }; 57 } 58 } 59 }