author | Fabien Ninoles <fninoles@genvidtech.com> |
Mon, 23 Jan 2017 07:21:24 -0500 | |
changeset 20 | b0af77bc62ec |
permissions | -rw-r--r-- |
20
b0af77bc62ec
Add powershell profile.
Fabien Ninoles <fninoles@genvidtech.com>
parents:
diff
changeset
|
1 |
function Remove-Directory |
b0af77bc62ec
Add powershell profile.
Fabien Ninoles <fninoles@genvidtech.com>
parents:
diff
changeset
|
2 |
{ |
b0af77bc62ec
Add powershell profile.
Fabien Ninoles <fninoles@genvidtech.com>
parents:
diff
changeset
|
3 |
param( |
b0af77bc62ec
Add powershell profile.
Fabien Ninoles <fninoles@genvidtech.com>
parents:
diff
changeset
|
4 |
[Parameter(Mandatory=$true)] |
b0af77bc62ec
Add powershell profile.
Fabien Ninoles <fninoles@genvidtech.com>
parents:
diff
changeset
|
5 |
[string]$Path, |
b0af77bc62ec
Add powershell profile.
Fabien Ninoles <fninoles@genvidtech.com>
parents:
diff
changeset
|
6 |
[switch]$Force |
b0af77bc62ec
Add powershell profile.
Fabien Ninoles <fninoles@genvidtech.com>
parents:
diff
changeset
|
7 |
) |
b0af77bc62ec
Add powershell profile.
Fabien Ninoles <fninoles@genvidtech.com>
parents:
diff
changeset
|
8 |
# [io.directory]::Delete($Path, $Force) |
b0af77bc62ec
Add powershell profile.
Fabien Ninoles <fninoles@genvidtech.com>
parents:
diff
changeset
|
9 |
if ($Force) { |
b0af77bc62ec
Add powershell profile.
Fabien Ninoles <fninoles@genvidtech.com>
parents:
diff
changeset
|
10 |
cmd /C rd /s /q $Path |
b0af77bc62ec
Add powershell profile.
Fabien Ninoles <fninoles@genvidtech.com>
parents:
diff
changeset
|
11 |
} else { |
b0af77bc62ec
Add powershell profile.
Fabien Ninoles <fninoles@genvidtech.com>
parents:
diff
changeset
|
12 |
cmd /C rd /s $Path |
b0af77bc62ec
Add powershell profile.
Fabien Ninoles <fninoles@genvidtech.com>
parents:
diff
changeset
|
13 |
} |
b0af77bc62ec
Add powershell profile.
Fabien Ninoles <fninoles@genvidtech.com>
parents:
diff
changeset
|
14 |
} |
b0af77bc62ec
Add powershell profile.
Fabien Ninoles <fninoles@genvidtech.com>
parents:
diff
changeset
|
15 |
|
b0af77bc62ec
Add powershell profile.
Fabien Ninoles <fninoles@genvidtech.com>
parents:
diff
changeset
|
16 |
function Get-VirtualEnv |
b0af77bc62ec
Add powershell profile.
Fabien Ninoles <fninoles@genvidtech.com>
parents:
diff
changeset
|
17 |
{ |
b0af77bc62ec
Add powershell profile.
Fabien Ninoles <fninoles@genvidtech.com>
parents:
diff
changeset
|
18 |
dir $env:WORKON_HOME | select Name, FullName |
b0af77bc62ec
Add powershell profile.
Fabien Ninoles <fninoles@genvidtech.com>
parents:
diff
changeset
|
19 |
} |
b0af77bc62ec
Add powershell profile.
Fabien Ninoles <fninoles@genvidtech.com>
parents:
diff
changeset
|
20 |
|
b0af77bc62ec
Add powershell profile.
Fabien Ninoles <fninoles@genvidtech.com>
parents:
diff
changeset
|
21 |
function Activate-VirtualEnv |
b0af77bc62ec
Add powershell profile.
Fabien Ninoles <fninoles@genvidtech.com>
parents:
diff
changeset
|
22 |
{ |
b0af77bc62ec
Add powershell profile.
Fabien Ninoles <fninoles@genvidtech.com>
parents:
diff
changeset
|
23 |
param([string]$venv) |
b0af77bc62ec
Add powershell profile.
Fabien Ninoles <fninoles@genvidtech.com>
parents:
diff
changeset
|
24 |
if ($venv) |
b0af77bc62ec
Add powershell profile.
Fabien Ninoles <fninoles@genvidtech.com>
parents:
diff
changeset
|
25 |
{ |
b0af77bc62ec
Add powershell profile.
Fabien Ninoles <fninoles@genvidtech.com>
parents:
diff
changeset
|
26 |
. "$env:WORKON_HOME\$venv\Scripts\activate.ps1" |
b0af77bc62ec
Add powershell profile.
Fabien Ninoles <fninoles@genvidtech.com>
parents:
diff
changeset
|
27 |
} |
b0af77bc62ec
Add powershell profile.
Fabien Ninoles <fninoles@genvidtech.com>
parents:
diff
changeset
|
28 |
else |
b0af77bc62ec
Add powershell profile.
Fabien Ninoles <fninoles@genvidtech.com>
parents:
diff
changeset
|
29 |
{ |
b0af77bc62ec
Add powershell profile.
Fabien Ninoles <fninoles@genvidtech.com>
parents:
diff
changeset
|
30 |
Get-VirtualEnv |
b0af77bc62ec
Add powershell profile.
Fabien Ninoles <fninoles@genvidtech.com>
parents:
diff
changeset
|
31 |
} |
b0af77bc62ec
Add powershell profile.
Fabien Ninoles <fninoles@genvidtech.com>
parents:
diff
changeset
|
32 |
} |
b0af77bc62ec
Add powershell profile.
Fabien Ninoles <fninoles@genvidtech.com>
parents:
diff
changeset
|
33 |
|
b0af77bc62ec
Add powershell profile.
Fabien Ninoles <fninoles@genvidtech.com>
parents:
diff
changeset
|
34 |
function Get-Project |
b0af77bc62ec
Add powershell profile.
Fabien Ninoles <fninoles@genvidtech.com>
parents:
diff
changeset
|
35 |
{ |
b0af77bc62ec
Add powershell profile.
Fabien Ninoles <fninoles@genvidtech.com>
parents:
diff
changeset
|
36 |
dir $env:PROJECT_REPO | select Name, FullName |
b0af77bc62ec
Add powershell profile.
Fabien Ninoles <fninoles@genvidtech.com>
parents:
diff
changeset
|
37 |
} |
b0af77bc62ec
Add powershell profile.
Fabien Ninoles <fninoles@genvidtech.com>
parents:
diff
changeset
|
38 |
|
b0af77bc62ec
Add powershell profile.
Fabien Ninoles <fninoles@genvidtech.com>
parents:
diff
changeset
|
39 |
function Activate-Project |
b0af77bc62ec
Add powershell profile.
Fabien Ninoles <fninoles@genvidtech.com>
parents:
diff
changeset
|
40 |
{ |
b0af77bc62ec
Add powershell profile.
Fabien Ninoles <fninoles@genvidtech.com>
parents:
diff
changeset
|
41 |
param([string]$project) |
b0af77bc62ec
Add powershell profile.
Fabien Ninoles <fninoles@genvidtech.com>
parents:
diff
changeset
|
42 |
if ($project) |
b0af77bc62ec
Add powershell profile.
Fabien Ninoles <fninoles@genvidtech.com>
parents:
diff
changeset
|
43 |
{ |
b0af77bc62ec
Add powershell profile.
Fabien Ninoles <fninoles@genvidtech.com>
parents:
diff
changeset
|
44 |
if (!$env:SAVED_PATH) |
b0af77bc62ec
Add powershell profile.
Fabien Ninoles <fninoles@genvidtech.com>
parents:
diff
changeset
|
45 |
{ |
b0af77bc62ec
Add powershell profile.
Fabien Ninoles <fninoles@genvidtech.com>
parents:
diff
changeset
|
46 |
$env:SAVED_PATH=$env:Path |
b0af77bc62ec
Add powershell profile.
Fabien Ninoles <fninoles@genvidtech.com>
parents:
diff
changeset
|
47 |
} |
b0af77bc62ec
Add powershell profile.
Fabien Ninoles <fninoles@genvidtech.com>
parents:
diff
changeset
|
48 |
$env:PROJECT_ACTIVE = $project |
b0af77bc62ec
Add powershell profile.
Fabien Ninoles <fninoles@genvidtech.com>
parents:
diff
changeset
|
49 |
$env:Path = "$env:PROJECT_REPO\$project\bin;$env:SAVED_PATH" |
b0af77bc62ec
Add powershell profile.
Fabien Ninoles <fninoles@genvidtech.com>
parents:
diff
changeset
|
50 |
set-alias py python |
b0af77bc62ec
Add powershell profile.
Fabien Ninoles <fninoles@genvidtech.com>
parents:
diff
changeset
|
51 |
Activate-VirtualEnv $project |
b0af77bc62ec
Add powershell profile.
Fabien Ninoles <fninoles@genvidtech.com>
parents:
diff
changeset
|
52 |
cd $env:PROJECT_REPO\$project |
b0af77bc62ec
Add powershell profile.
Fabien Ninoles <fninoles@genvidtech.com>
parents:
diff
changeset
|
53 |
} |
b0af77bc62ec
Add powershell profile.
Fabien Ninoles <fninoles@genvidtech.com>
parents:
diff
changeset
|
54 |
else |
b0af77bc62ec
Add powershell profile.
Fabien Ninoles <fninoles@genvidtech.com>
parents:
diff
changeset
|
55 |
{ |
b0af77bc62ec
Add powershell profile.
Fabien Ninoles <fninoles@genvidtech.com>
parents:
diff
changeset
|
56 |
Get-Project |
b0af77bc62ec
Add powershell profile.
Fabien Ninoles <fninoles@genvidtech.com>
parents:
diff
changeset
|
57 |
} |
b0af77bc62ec
Add powershell profile.
Fabien Ninoles <fninoles@genvidtech.com>
parents:
diff
changeset
|
58 |
} |
b0af77bc62ec
Add powershell profile.
Fabien Ninoles <fninoles@genvidtech.com>
parents:
diff
changeset
|
59 |
|
b0af77bc62ec
Add powershell profile.
Fabien Ninoles <fninoles@genvidtech.com>
parents:
diff
changeset
|
60 |
function Quit-Project |
b0af77bc62ec
Add powershell profile.
Fabien Ninoles <fninoles@genvidtech.com>
parents:
diff
changeset
|
61 |
{ |
b0af77bc62ec
Add powershell profile.
Fabien Ninoles <fninoles@genvidtech.com>
parents:
diff
changeset
|
62 |
if ($env:PROJECT_ACTIVE) |
b0af77bc62ec
Add powershell profile.
Fabien Ninoles <fninoles@genvidtech.com>
parents:
diff
changeset
|
63 |
{ |
b0af77bc62ec
Add powershell profile.
Fabien Ninoles <fninoles@genvidtech.com>
parents:
diff
changeset
|
64 |
Write-Verbose "Quitting $env:PROJECT_ACTIVE" |
b0af77bc62ec
Add powershell profile.
Fabien Ninoles <fninoles@genvidtech.com>
parents:
diff
changeset
|
65 |
del Env:\PROJECT_ACTIVE |
b0af77bc62ec
Add powershell profile.
Fabien Ninoles <fninoles@genvidtech.com>
parents:
diff
changeset
|
66 |
deactivate |
b0af77bc62ec
Add powershell profile.
Fabien Ninoles <fninoles@genvidtech.com>
parents:
diff
changeset
|
67 |
if ($env:SAVED_PATH) |
b0af77bc62ec
Add powershell profile.
Fabien Ninoles <fninoles@genvidtech.com>
parents:
diff
changeset
|
68 |
{ |
b0af77bc62ec
Add powershell profile.
Fabien Ninoles <fninoles@genvidtech.com>
parents:
diff
changeset
|
69 |
$env:PATH=$env:SAVED_PATH |
b0af77bc62ec
Add powershell profile.
Fabien Ninoles <fninoles@genvidtech.com>
parents:
diff
changeset
|
70 |
} |
b0af77bc62ec
Add powershell profile.
Fabien Ninoles <fninoles@genvidtech.com>
parents:
diff
changeset
|
71 |
remove-item alias:py |
b0af77bc62ec
Add powershell profile.
Fabien Ninoles <fninoles@genvidtech.com>
parents:
diff
changeset
|
72 |
} |
b0af77bc62ec
Add powershell profile.
Fabien Ninoles <fninoles@genvidtech.com>
parents:
diff
changeset
|
73 |
else |
b0af77bc62ec
Add powershell profile.
Fabien Ninoles <fninoles@genvidtech.com>
parents:
diff
changeset
|
74 |
{ |
b0af77bc62ec
Add powershell profile.
Fabien Ninoles <fninoles@genvidtech.com>
parents:
diff
changeset
|
75 |
Write-Verbose "No project active" |
b0af77bc62ec
Add powershell profile.
Fabien Ninoles <fninoles@genvidtech.com>
parents:
diff
changeset
|
76 |
} |
b0af77bc62ec
Add powershell profile.
Fabien Ninoles <fninoles@genvidtech.com>
parents:
diff
changeset
|
77 |
} |
b0af77bc62ec
Add powershell profile.
Fabien Ninoles <fninoles@genvidtech.com>
parents:
diff
changeset
|
78 |
|
b0af77bc62ec
Add powershell profile.
Fabien Ninoles <fninoles@genvidtech.com>
parents:
diff
changeset
|
79 |
function Create-Project |
b0af77bc62ec
Add powershell profile.
Fabien Ninoles <fninoles@genvidtech.com>
parents:
diff
changeset
|
80 |
{ |
b0af77bc62ec
Add powershell profile.
Fabien Ninoles <fninoles@genvidtech.com>
parents:
diff
changeset
|
81 |
param( |
b0af77bc62ec
Add powershell profile.
Fabien Ninoles <fninoles@genvidtech.com>
parents:
diff
changeset
|
82 |
[string]$Project, |
b0af77bc62ec
Add powershell profile.
Fabien Ninoles <fninoles@genvidtech.com>
parents:
diff
changeset
|
83 |
[string]$Repo = "prototype", |
b0af77bc62ec
Add powershell profile.
Fabien Ninoles <fninoles@genvidtech.com>
parents:
diff
changeset
|
84 |
[string]$Revision = "default" |
b0af77bc62ec
Add powershell profile.
Fabien Ninoles <fninoles@genvidtech.com>
parents:
diff
changeset
|
85 |
) |
b0af77bc62ec
Add powershell profile.
Fabien Ninoles <fninoles@genvidtech.com>
parents:
diff
changeset
|
86 |
|
b0af77bc62ec
Add powershell profile.
Fabien Ninoles <fninoles@genvidtech.com>
parents:
diff
changeset
|
87 |
if ($Project) |
b0af77bc62ec
Add powershell profile.
Fabien Ninoles <fninoles@genvidtech.com>
parents:
diff
changeset
|
88 |
{ |
b0af77bc62ec
Add powershell profile.
Fabien Ninoles <fninoles@genvidtech.com>
parents:
diff
changeset
|
89 |
hg clone -u $Revision ssh://hg@bitbucket.org/genvidtech/$Repo $env:PROJECT_REPO\$Project |
b0af77bc62ec
Add powershell profile.
Fabien Ninoles <fninoles@genvidtech.com>
parents:
diff
changeset
|
90 |
setvenv $Project |
b0af77bc62ec
Add powershell profile.
Fabien Ninoles <fninoles@genvidtech.com>
parents:
diff
changeset
|
91 |
} |
b0af77bc62ec
Add powershell profile.
Fabien Ninoles <fninoles@genvidtech.com>
parents:
diff
changeset
|
92 |
else |
b0af77bc62ec
Add powershell profile.
Fabien Ninoles <fninoles@genvidtech.com>
parents:
diff
changeset
|
93 |
{ |
b0af77bc62ec
Add powershell profile.
Fabien Ninoles <fninoles@genvidtech.com>
parents:
diff
changeset
|
94 |
Get-Project |
b0af77bc62ec
Add powershell profile.
Fabien Ninoles <fninoles@genvidtech.com>
parents:
diff
changeset
|
95 |
} |
b0af77bc62ec
Add powershell profile.
Fabien Ninoles <fninoles@genvidtech.com>
parents:
diff
changeset
|
96 |
} |
b0af77bc62ec
Add powershell profile.
Fabien Ninoles <fninoles@genvidtech.com>
parents:
diff
changeset
|
97 |
|
b0af77bc62ec
Add powershell profile.
Fabien Ninoles <fninoles@genvidtech.com>
parents:
diff
changeset
|
98 |
function Remove-Project |
b0af77bc62ec
Add powershell profile.
Fabien Ninoles <fninoles@genvidtech.com>
parents:
diff
changeset
|
99 |
{ |
b0af77bc62ec
Add powershell profile.
Fabien Ninoles <fninoles@genvidtech.com>
parents:
diff
changeset
|
100 |
param([string]$project) |
b0af77bc62ec
Add powershell profile.
Fabien Ninoles <fninoles@genvidtech.com>
parents:
diff
changeset
|
101 |
if ($project) |
b0af77bc62ec
Add powershell profile.
Fabien Ninoles <fninoles@genvidtech.com>
parents:
diff
changeset
|
102 |
{ |
b0af77bc62ec
Add powershell profile.
Fabien Ninoles <fninoles@genvidtech.com>
parents:
diff
changeset
|
103 |
$path = (Get-Project | Where-Object { $_.Name -eq $project }).FullName |
b0af77bc62ec
Add powershell profile.
Fabien Ninoles <fninoles@genvidtech.com>
parents:
diff
changeset
|
104 |
$venv = "$env:WORKON_HOME\$project" |
b0af77bc62ec
Add powershell profile.
Fabien Ninoles <fninoles@genvidtech.com>
parents:
diff
changeset
|
105 |
Remove-Directory -Path $path -Force |
b0af77bc62ec
Add powershell profile.
Fabien Ninoles <fninoles@genvidtech.com>
parents:
diff
changeset
|
106 |
Remove-Directory -Path $venv -Force |
b0af77bc62ec
Add powershell profile.
Fabien Ninoles <fninoles@genvidtech.com>
parents:
diff
changeset
|
107 |
} |
b0af77bc62ec
Add powershell profile.
Fabien Ninoles <fninoles@genvidtech.com>
parents:
diff
changeset
|
108 |
else |
b0af77bc62ec
Add powershell profile.
Fabien Ninoles <fninoles@genvidtech.com>
parents:
diff
changeset
|
109 |
{ |
b0af77bc62ec
Add powershell profile.
Fabien Ninoles <fninoles@genvidtech.com>
parents:
diff
changeset
|
110 |
Get-Project |
b0af77bc62ec
Add powershell profile.
Fabien Ninoles <fninoles@genvidtech.com>
parents:
diff
changeset
|
111 |
} |
b0af77bc62ec
Add powershell profile.
Fabien Ninoles <fninoles@genvidtech.com>
parents:
diff
changeset
|
112 |
|
b0af77bc62ec
Add powershell profile.
Fabien Ninoles <fninoles@genvidtech.com>
parents:
diff
changeset
|
113 |
} |
b0af77bc62ec
Add powershell profile.
Fabien Ninoles <fninoles@genvidtech.com>
parents:
diff
changeset
|
114 |
|
b0af77bc62ec
Add powershell profile.
Fabien Ninoles <fninoles@genvidtech.com>
parents:
diff
changeset
|
115 |
function Activate-Docker |
b0af77bc62ec
Add powershell profile.
Fabien Ninoles <fninoles@genvidtech.com>
parents:
diff
changeset
|
116 |
{ |
b0af77bc62ec
Add powershell profile.
Fabien Ninoles <fninoles@genvidtech.com>
parents:
diff
changeset
|
117 |
param([string]$docker) |
b0af77bc62ec
Add powershell profile.
Fabien Ninoles <fninoles@genvidtech.com>
parents:
diff
changeset
|
118 |
|
b0af77bc62ec
Add powershell profile.
Fabien Ninoles <fninoles@genvidtech.com>
parents:
diff
changeset
|
119 |
if (!$docker) |
b0af77bc62ec
Add powershell profile.
Fabien Ninoles <fninoles@genvidtech.com>
parents:
diff
changeset
|
120 |
{ |
b0af77bc62ec
Add powershell profile.
Fabien Ninoles <fninoles@genvidtech.com>
parents:
diff
changeset
|
121 |
$docker = $env:DOCKER_MACHINE_NAME |
b0af77bc62ec
Add powershell profile.
Fabien Ninoles <fninoles@genvidtech.com>
parents:
diff
changeset
|
122 |
} |
b0af77bc62ec
Add powershell profile.
Fabien Ninoles <fninoles@genvidtech.com>
parents:
diff
changeset
|
123 |
|
b0af77bc62ec
Add powershell profile.
Fabien Ninoles <fninoles@genvidtech.com>
parents:
diff
changeset
|
124 |
& docker-machine env $docker | Invoke-Expression |
b0af77bc62ec
Add powershell profile.
Fabien Ninoles <fninoles@genvidtech.com>
parents:
diff
changeset
|
125 |
} |
b0af77bc62ec
Add powershell profile.
Fabien Ninoles <fninoles@genvidtech.com>
parents:
diff
changeset
|
126 |
|
b0af77bc62ec
Add powershell profile.
Fabien Ninoles <fninoles@genvidtech.com>
parents:
diff
changeset
|
127 |
remove-item alias:curl |
b0af77bc62ec
Add powershell profile.
Fabien Ninoles <fninoles@genvidtech.com>
parents:
diff
changeset
|
128 |
remove-item alias:wget |
b0af77bc62ec
Add powershell profile.
Fabien Ninoles <fninoles@genvidtech.com>
parents:
diff
changeset
|
129 |
remove-item alias:rd |
b0af77bc62ec
Add powershell profile.
Fabien Ninoles <fninoles@genvidtech.com>
parents:
diff
changeset
|
130 |
set-alias workon Activate-Project |
b0af77bc62ec
Add powershell profile.
Fabien Ninoles <fninoles@genvidtech.com>
parents:
diff
changeset
|
131 |
set-alias which Get-Command |
b0af77bc62ec
Add powershell profile.
Fabien Ninoles <fninoles@genvidtech.com>
parents:
diff
changeset
|
132 |
set-alias rd Remove-Directory |