Skip to content

Commit 9c77f52

Browse files
committed
replace batch files with kvm
1 parent 45f361d commit 9c77f52

File tree

3 files changed

+187
-48
lines changed

3 files changed

+187
-48
lines changed

GetRuntime.cmd

Lines changed: 0 additions & 18 deletions
This file was deleted.

K.cmd

Lines changed: 0 additions & 30 deletions
This file was deleted.

kvm.cmd

Lines changed: 187 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,187 @@
1+
@ECHO OFF
2+
IF "%1"=="" (
3+
CALL :cmd_help
4+
) ELSE (
5+
CALL :cmd_%1 %*
6+
IF ERRORLEVEL 1 CALL:cmd_help
7+
)
8+
GOTO:EOF
9+
10+
11+
:cmd_setup
12+
SET "_KVM_PATH=%USERPROFILE%\.k\"
13+
SET "_TEMP_PATH=%PATH%"
14+
15+
IF /I NOT "%~dp0"=="%_KVM_PATH%" (
16+
IF NOT EXIST "%_KVM_PATH%" MKDIR "%_KVM_PATH%"
17+
COPY "%~f0" "%_KVM_PATH%kvm.cmd"
18+
)
19+
20+
:PARSE_START
21+
@IF "%_TEMP_PATH%"=="" GOTO PARSE_END
22+
@FOR /F "tokens=1* delims=;" %%a in ("%_TEMP_PATH%") Do @IF "%%a"=="%_KVM_PATH%" GOTO:end_setup
23+
@FOR /F "tokens=1* delims=;" %%a in ("%_TEMP_PATH%") Do @SET _TEMP_PATH=%%b
24+
@GOTO PARSE_START
25+
:PARSE_END
26+
27+
SET "PATH=%PATH%;%_KVM_PATH%"
28+
powershell -NoProfile -ExecutionPolicy unrestricted -Command "[Environment]::SetEnvironmentVariable('PATH',[Environment]::GetEnvironmentVariable('PATH','user')+';%_KVM_PATH%','user');"
29+
30+
31+
:end_setup
32+
CALL "%_KVM_PATH%kvm.cmd" upgrade
33+
@ECHO Running crossgen, see crossgen.log for results
34+
CALL "%_KVM_PATH%k.cmd" crossgen --in %_KVM_PATH%packages\ProjectK.%_KVM_VERSION%\tools\k10 >crossgen.log 2>crossgen.err.log
35+
SET _KVM_PATH=
36+
SET _TEMP_PATH=
37+
GOTO:EOF
38+
39+
40+
:cmd_upgrade
41+
CALL:cmd_install install
42+
CALL:cmd_alias alias default %_KVM_VERSION%
43+
GOTO:EOF
44+
45+
46+
:cmd_install
47+
IF NOT EXIST "%~dp0.nuget\NuGet.exe" (
48+
IF NOT EXIST "%~dp0.nuget" MKDIR "%~dp0.nuget"
49+
ECHO Downloading latest version of NuGet.exe...
50+
@powershell -NoProfile -ExecutionPolicy unrestricted -Command "((new-object net.webclient).DownloadFile('https://nuget.org/nuget.exe', '%~dp0.nuget\NuGet.exe'))"
51+
)
52+
53+
IF NOT EXIST "%~dp0.nuget\NuGet.config" (
54+
echo ^<configuration^> >"%~dp0.nuget\NuGet.config"
55+
echo ^<packageSources^> >>"%~dp0.nuget\NuGet.config"
56+
echo ^<add key="AspNetVNext" value="https://www.myget.org/F/aspnetvnext/api/v2" /^> >>"%~dp0.nuget\NuGet.config"
57+
echo ^</packageSources^> >>"%~dp0.nuget\NuGet.config"
58+
echo ^<packageSourceCredentials^> >>"%~dp0.nuget\NuGet.config"
59+
echo ^<AspNetVNext^> >>"%~dp0.nuget\NuGet.config"
60+
echo ^<add key="Username" value="aspnetreadonly" /^> >>"%~dp0.nuget\NuGet.config"
61+
echo ^<add key="ClearTextPassword" value="4d8a2d9c-7b80-4162-9978-47e918c9658c" /^> >>"%~dp0.nuget\NuGet.config"
62+
echo ^</AspNetVNext^> >>"%~dp0.nuget\NuGet.config"
63+
echo ^</packageSourceCredentials^> >>"%~dp0.nuget\NuGet.config"
64+
echo ^</configuration^> >>"%~dp0.nuget\NuGet.config"
65+
)
66+
67+
IF "%2"=="" (
68+
echo Finding latest version
69+
FOR /f "tokens=1,2" %%G in ('"%~dp0.nuget\NuGet.exe" list ProjectK -Prerelease -ConfigFile %~dp0.nuget\NuGet.config') DO (
70+
IF "%%G"=="ProjectK" (
71+
SET _KVM_VERSION=%%H
72+
)
73+
)
74+
) ELSE (
75+
SET "_KVM_VERSION=%2"
76+
)
77+
78+
ECHO Downloading version %_KVM_VERSION%
79+
"%~dp0.nuget\NuGet.exe" install ProjectK -Version %_KVM_VERSION% -OutputDirectory "%~dp0packages" -ConfigFile "%~dp0.nuget\NuGet.config"
80+
81+
CALL:cmd_use use %_KVM_VERSION%
82+
GOTO:EOF
83+
84+
85+
:cmd_use
86+
IF NOT EXIST "%~dp0k.cmd" (
87+
ECHO @CALL %%~dp0kvm.cmd k %%* >%~dp0k.cmd
88+
)
89+
IF EXIST "%~dp0alias\%2.txt" (
90+
FOR /F %%G IN (%~dp0alias\%2.txt) DO (
91+
ECHO Setting _KVM_VERSION to '%%G'
92+
SET "_KVM_VERSION=%%G"
93+
)
94+
) ELSE (
95+
IF NOT EXIST "%~dp0packages\ProjectK.%2\tools\k.cmd" (
96+
ECHO Version '%2' not found.
97+
ECHO You may need to run 'kvm install %2'
98+
GOTO:EOF
99+
)
100+
ECHO Setting _KVM_VERSION to '%2'
101+
SET "_KVM_VERSION=%2"
102+
)
103+
GOTO:EOF
104+
105+
106+
:cmd_alias
107+
IF NOT EXIST "%~dp0alias" (
108+
MKDIR "%~dp0alias"
109+
)
110+
IF "%3"=="" (
111+
IF "%2"=="" (
112+
DIR "%~dp0alias" /b
113+
) ELSE (
114+
ECHO Alias '%2' is
115+
TYPE "%~dp0alias\%2.txt"
116+
)
117+
) ELSE (
118+
IF NOT EXIST "%~dp0packages\ProjectK.%3\tools\k.cmd" (
119+
ECHO Version '%3' not found.
120+
ECHO You may need to run 'kvm install %3'
121+
GOTO:EOF
122+
)
123+
124+
ECHO Setting alias '%2' to '%3'
125+
ECHO %3>%~dp0alias\%2.txt
126+
)
127+
GOTO:EOF
128+
129+
130+
:cmd_list
131+
dir /b "%~dp0packages\ProjectK*"
132+
GOTO:EOF
133+
134+
135+
:cmd_k
136+
@REM find k.cmd in local paths
137+
138+
@REM read _KVM_VERSION.txt if _KVM_VERSION not set
139+
IF "%_KVM_VERSION%" == "" (
140+
FOR /F %%G IN (%~dp0alias\default.txt) DO (
141+
SET "_KVM_VERSION=%%G"
142+
)
143+
)
144+
IF NOT EXIST "%~dp0packages\ProjectK.%_KVM_VERSION%\tools\k.cmd" (
145+
ECHO Version '%_KVM_VERSION%' not found.
146+
ECHO You may need to run 'kvm install %_KVM_VERSION%'
147+
) ELSE (
148+
CALL "%~dp0packages\ProjectK.%_KVM_VERSION%\tools\k.cmd" %2 %3 %4 %5 %6 %7 %8 %9
149+
)
150+
GOTO:EOF
151+
152+
153+
:cmd_help
154+
ECHO kvm ^<command^> [args...]
155+
ECHO k version manager
156+
ECHO .
157+
ECHO kvm help
158+
ECHO displays this help
159+
ECHO .
160+
ECHO kvm upgrade
161+
ECHO install latest k version and make it the default
162+
ECHO .
163+
ECHO kvm install ^<version^>
164+
ECHO install and use specific k version
165+
ECHO .
166+
ECHO kvm list
167+
ECHO list installed k versions
168+
ECHO .
169+
ECHO kvm use ^<version^>^|^<alias^>
170+
ECHO use a version or alias within the current command prompt
171+
ECHO .
172+
ECHO kvm alias ^<alias^> ^<version^>
173+
ECHO create alias to a specific version
174+
ECHO alias names may be passed to 'kvm use ^<alias^>'
175+
ECHO the alias 'default' determines the default k version
176+
ECHO when kvm use is not called
177+
ECHO .
178+
ECHO kvm alias ^<alias^>
179+
ECHO show the version of an alias
180+
ECHO .
181+
ECHO kvm alias
182+
ECHO list aliases
183+
ECHO .
184+
185+
GOTO:EOF
186+
187+

0 commit comments

Comments
 (0)