# HG changeset patch # User Fabien Ninoles # Date 1485174084 18000 # Node ID b0af77bc62ece45d53cf4d0d80daf6e7a173be11 # Parent aa5a250ec992802d380fd05ec33c63fb6f5457d0 Add powershell profile. diff -r aa5a250ec992 -r b0af77bc62ec powershell/Profile.ps1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/powershell/Profile.ps1 Mon Jan 23 07:21:24 2017 -0500 @@ -0,0 +1,132 @@ +function Remove-Directory +{ + param( + [Parameter(Mandatory=$true)] + [string]$Path, + [switch]$Force + ) + # [io.directory]::Delete($Path, $Force) + if ($Force) { + cmd /C rd /s /q $Path + } else { + cmd /C rd /s $Path + } +} + +function Get-VirtualEnv +{ + dir $env:WORKON_HOME | select Name, FullName +} + +function Activate-VirtualEnv +{ + param([string]$venv) + if ($venv) + { + . "$env:WORKON_HOME\$venv\Scripts\activate.ps1" + } + else + { + Get-VirtualEnv + } +} + +function Get-Project +{ + dir $env:PROJECT_REPO | select Name, FullName +} + +function Activate-Project +{ + param([string]$project) + if ($project) + { + if (!$env:SAVED_PATH) + { + $env:SAVED_PATH=$env:Path + } + $env:PROJECT_ACTIVE = $project + $env:Path = "$env:PROJECT_REPO\$project\bin;$env:SAVED_PATH" + set-alias py python + Activate-VirtualEnv $project + cd $env:PROJECT_REPO\$project + } + else + { + Get-Project + } +} + +function Quit-Project +{ + if ($env:PROJECT_ACTIVE) + { + Write-Verbose "Quitting $env:PROJECT_ACTIVE" + del Env:\PROJECT_ACTIVE + deactivate + if ($env:SAVED_PATH) + { + $env:PATH=$env:SAVED_PATH + } + remove-item alias:py + } + else + { + Write-Verbose "No project active" + } +} + +function Create-Project +{ + param( + [string]$Project, + [string]$Repo = "prototype", + [string]$Revision = "default" + ) + + if ($Project) + { + hg clone -u $Revision ssh://hg@bitbucket.org/genvidtech/$Repo $env:PROJECT_REPO\$Project + setvenv $Project + } + else + { + Get-Project + } +} + +function Remove-Project +{ + param([string]$project) + if ($project) + { + $path = (Get-Project | Where-Object { $_.Name -eq $project }).FullName + $venv = "$env:WORKON_HOME\$project" + Remove-Directory -Path $path -Force + Remove-Directory -Path $venv -Force + } + else + { + Get-Project + } + +} + +function Activate-Docker +{ + param([string]$docker) + + if (!$docker) + { + $docker = $env:DOCKER_MACHINE_NAME + } + + & docker-machine env $docker | Invoke-Expression +} + +remove-item alias:curl +remove-item alias:wget +remove-item alias:rd +set-alias workon Activate-Project +set-alias which Get-Command +set-alias rd Remove-Directory \ No newline at end of file