winget-cli

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | README | LICENSE

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 }