Public/Get-PropertySetFolder.ps1

#requires -Module Configuration
function Get-PropertySetFolder {
    [CmdletBinding()]
    param ()

    begin {
        if ($null -eq $script:GatekeeperConfiguration) {
            Import-GatekeeperConfig
        }
        if (-not $script:GatekeeperConfiguration.FilePaths.ContainsKey('PropertySet')) {
            Write-Verbose "Property Set folder not set, creating default path..."
            # Set the default flag
            # Uses the Configuration module command to create the path
            $folder = Get-ConfigurationPath -Scope 'Machine'
            $propertySetFolder = Join-Path $folder 'PropertySet'
            if (-not (Test-Path -Path $propertySetFolder)) {
                New-Item -Path $propertySetFolder -ItemType Directory | Out-Null
            }
            $script:GatekeeperConfiguration.FilePaths['PropertySet'] = $propertySetFolder
            # Export the configuration to ensure the new path is saved
            Export-GatekeeperConfig
        }
    }
    process {
        $propertySetFolder = $script:GatekeeperConfiguration.FilePaths.PropertySet
        if (-not (Test-Path -Path $propertySetFolder)) {
            throw "Feature flag folder '$propertySetFolder' does not exist."
        }
    }
    end {
        return $propertySetFolder
    }
}