cciget.psm1
|
# cciget.psm1 # Loads functions from .\src, exports public ones (those not starting with '_'). # Mirrors the loader convention used by Cci.Vmware / Cci.Common. Set-StrictMode -Version Latest # PS 5.1 default protocol is SSL3/TLS1.0. PSGallery + AzDO require TLS 1.2+. try { [Net.ServicePointManager]::SecurityProtocol = [Net.ServicePointManager]::SecurityProtocol -bor [Net.SecurityProtocolType]::Tls12 } catch { Write-Verbose "[cciget] Could not raise SecurityProtocol to TLS 1.2: $_" } $moduleName = $ExecutionContext.SessionState.Module.Name $srcPath = Join-Path -Path $PSScriptRoot -ChildPath 'src' Write-Verbose "[$moduleName] Import starting. PSScriptRoot=$PSScriptRoot src=$srcPath" if (-not (Test-Path -LiteralPath $srcPath)) { Write-Warning "[$moduleName] Source folder not found: $srcPath." return } $allFiles = Get-ChildItem -LiteralPath $srcPath -Filter *.ps1 -Recurse | Sort-Object FullName $privateFiles = $allFiles | Where-Object { $_.BaseName -match '^_' } $publicFiles = $allFiles | Where-Object { $_.BaseName -notmatch '^_' } foreach ($file in @($privateFiles + $publicFiles)) { Write-Verbose "[$moduleName] Loading $($file.FullName)" . $file.FullName } $publicNames = $publicFiles.BaseName | Sort-Object -Unique if ($publicNames) { Export-ModuleMember -Function $publicNames Write-Verbose "[$moduleName] Exported: $($publicNames -join ', ')" } |