Public/Enable-Virtualenv.ps1
Function Enable-Virtualenv { <# .SYNOPSIS To enable Virtualenv on your PowerShell console .PARAMETER Path Specifies the absolute path of your Virtualenv .EXAMPLE Enable-Virtualenv Enable-Virtualenv -Path 'c:\project\env' .NOTES Version: 1.0.0 Author: Thomas ILLIET Creation Date: 22/07/2018 #> [CmdletBinding(DefaultParameterSetName='ByName')] Param( [Parameter(Mandatory = $False, ParameterSetName = 'ByName')] [string]$Name, [Parameter(Mandatory = $False, ParameterSetName = 'ByPath')] [string]$Path ) Try { # Define Virtualenv Path switch ($PsCmdlet.ParameterSetName){ "ByName" { if([string]::IsNullOrEmpty($Name)){ $VirtualenvPath = Join-Path -Path (get-location) -ChildPath 'venv' } else { $VirtualenvPath = Join-Path -Path (get-location) -ChildPath $Name } } "ByPath" { $VirtualenvPath = $Path } } # Determine if the directory exists if(Test-Path -Path $VirtualenvPath) { # Get Folder Object $FolderObject = Get-Item -Path $VirtualenvPath # Set Variable to unlock function New-Variable -Scope 'Script' -Name 'VirtualenvFolder' -Value $FolderObject.FullName -Force New-Variable -Scope 'Script' -Name 'VirtualenvName' -Value $FolderObject.BaseName -Force # Overide Prompt Set-Item Function:\prompt -Value Set-Prompt } else { Write-Error "Unable to find Virtualenv directory" } } Catch { Write-Error "Unable to enable Virtualenv : $($_.Exception.Message)" } } |