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