Public/Get-FeatureFlagFolder.ps1

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

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