TFSwitchPS.psm1
#Region Test for Chocolatey Repository Usage $choco = Invoke-Expression "choco list terraform -le" if ( $choco ){ $chocoPackageInstalls = $choco | Where-Object {$_ -match "\d{1,} packages installed" } [int]$packageCount = $chocoPackageInstalls.Substring(0,2).trim() if ( $packageCount ) { Write-Warning "Chocolatey Terraform Packages detected. Uninstall in order to use tfswitch." $choco exit 1 } } #endregion #region LoadFunctions $PublicFunctions = @( Get-ChildItem -Path "$PSScriptRoot/Public/*.ps1" -ErrorAction SilentlyContinue ) $PrivateFunctions = @( Get-ChildItem -Path "$PSScriptRoot/Private/*.ps1" -ErrorAction SilentlyContinue ) # Dot source the functions foreach ($file in @($PublicFunctions + $PrivateFunctions)) { try { . $file.FullName } catch { $exception = ([System.ArgumentException]"Function not found") $errorId = "Load.Function" $errorCategory = 'ObjectNotFound' $errorTarget = $file $errorItem = New-Object -TypeName System.Management.Automation.ErrorRecord $exception, $errorId, $errorCategory, $errorTarget $errorItem.ErrorDetails = "Failed to import function $($file.BaseName)" throw $errorItem } } # Export-ModuleMember -Function $PublicFunctions.BaseName -Alias * #endregion |