Functions/Set-BT_RunbookEnvironment.ps1
<#
.SYNOPSIS This function sets up the BitTitan Runbook environment. #> function Set-BT_RunbookEnvironment { [CmdletBinding(PositionalBinding=$false)] param ( # The BitTitan environment. [Parameter(Mandatory=$true)] [ValidateSet("BT", "Beta")] [String]$environment, # Select whether the current environment is on a local machine or on MSPComplete. [Parameter(Mandatory=$true)] [ValidateNotNull()] [Bool]$isRunningOnLocalMachine ) # Set the BT environment Write-Verbose "Setting BT Environment to '$($environment)'." if (!$Global:PSDefaultParameterValues.ContainsKey("*-BT_*:Environment")) { $Global:PSDefaultParameterValues.Add("*-BT_*:Environment", $environment) } else { $Global:PSDefaultParameterValues["*-BT_*:Environment"] = $environment } # Set the local machine setting Write-Verbose "Setting IsRunningOnLocalMachine to '$($isRunningOnLocalMachine)'." if (!$Global:PSDefaultParameterValues.ContainsKey("*-BT_*:IsRunningOnLocalMachine")) { $Global:PSDefaultParameterValues.Add("*-BT_*:IsRunningOnLocalMachine", $isRunningOnLocalMachine) } else { $Global:PSDefaultParameterValues["*-BT_*:IsRunningOnLocalMachine"] = $isRunningOnLocalMachine } # Set the PSModulePath if running on the local machine if ($isRunningOnLocalMachine) { # Retrieve the BtEnvGitHome if available if (![String]::IsNullOrWhiteSpace($env:BtEnvGitHome)) { $btDir = $env:BtEnvGitHome } # Check in the current directory else { $btDir = Get-Location | Split-Path -Parent } $modulesFolder = "$($btDir)\Runbooks\Modules" $betaModulesFolder = "$($btDir)\Runbooks\BetaModules" $modulesFolderRegex = $modulesFolder.Replace("\", "\\") $betaModulesFolderRegex = $betaModulesFolder.Replace("\", "\\") # BT environment if ($environment -eq "BT") { Write-Verbose "Setting PSModulePath to use '$($modulesFolder)'." if ($env:PSModulePath -match ";$($betaModulesFolderRegex)") { $env:PSModulePath = $env:PSModulePath -replace ";$($betaModulesFolderRegex)", "" } if ($env:PSModulePath -notMatch "$($modulesFolderRegex)") { $env:PSModulePath += ";$($modulesFolder)" } } # Beta environment else { Write-Verbose "Setting PSModulePath to use '$($betaModulesFolder)'." if ($env:PSModulePath -match ";$($modulesFolderRegex)") { $env:PSModulePath = $env:PSModulePath -replace ";$($modulesFolderRegex)", "" } if ($env:PSModulePath -notMatch "$($betaModulesFolderRegex)") { $env:PSModulePath += ";$($betaModulesFolder)" } } } } |