Add powershell profile. default tip
authorFabien Ninoles <fninoles@genvidtech.com>
Mon, 23 Jan 2017 07:21:24 -0500
changeset 20 b0af77bc62ec
parent 19 aa5a250ec992
Add powershell profile.
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