run-module.ps1
# ---------------------------------------------------------------------------------- # # Copyright Microsoft Corporation # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # http://www.apache.org/licenses/LICENSE-2.0 # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # ---------------------------------------------------------------------------------- param([switch]$Isolated, [switch]$Code) $ErrorActionPreference = 'Stop' if(-not $Isolated) { Write-Host -ForegroundColor Green 'Creating isolated process...' $pwsh = [System.Diagnostics.Process]::GetCurrentProcess().Path & "$pwsh" -NoExit -NoLogo -NoProfile -File $MyInvocation.MyCommand.Path @PSBoundParameters -Isolated return } $isAzure = $false if($isAzure) { . (Join-Path $PSScriptRoot 'check-dependencies.ps1') -Isolated -Accounts } $localModulesPath = Join-Path $PSScriptRoot 'generated\modules' if(Test-Path -Path $localModulesPath) { $env:PSModulePath = "$localModulesPath$([IO.Path]::PathSeparator)$env:PSModulePath" } $modulePsd1 = Get-Item -Path (Join-Path $PSScriptRoot './CommvaultPowershell.psd1') $modulePath = $modulePsd1.FullName $moduleName = $modulePsd1.BaseName function Prompt { Write-Host -NoNewline -ForegroundColor Green "PS $(Get-Location)" Write-Host -NoNewline -ForegroundColor Gray ' [' Write-Host -NoNewline -ForegroundColor White -BackgroundColor DarkCyan $moduleName ']> ' } # where we would find the launch.json file $vscodeDirectory = New-Item -ItemType Directory -Force -Path (Join-Path $PSScriptRoot '.vscode') $launchJson = Join-Path $vscodeDirectory 'launch.json' # if there is a launch.json file, let's just assume -Code, and update the file if(($Code) -or (test-Path $launchJson) ) { $launchContent = '{ "version": "0.2.0", "configurations":[{ "name":"Attach to PowerShell", "type":"coreclr", "request":"attach", "processId":"' + ([System.Diagnostics.Process]::GetCurrentProcess().Id) + '", "justMyCode":false }] }' Set-Content -Path $launchJson -Value $launchContent if($Code) { # only launch vscode if they say -code code $PSScriptRoot } } Import-Module -Name $modulePath |