Add powershell profile.
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