aboutsummaryrefslogtreecommitdiff
path: root/activator.bat
diff options
context:
space:
mode:
authorPacien TRAN-GIRARD2015-01-22 20:58:09 +0100
committerPacien TRAN-GIRARD2015-01-22 20:58:09 +0100
commit2f6780969318c08c7a0a0e8e52a7dad33ff53786 (patch)
tree893d9356b0fd02b40124712bfa88128f02cd7b53 /activator.bat
downloadminibay-2f6780969318c08c7a0a0e8e52a7dad33ff53786.tar.gz
Bootstrap Play Scala project
Diffstat (limited to 'activator.bat')
-rwxr-xr-xactivator.bat227
1 files changed, 227 insertions, 0 deletions
diff --git a/activator.bat b/activator.bat
new file mode 100755
index 0000000..d078287
--- /dev/null
+++ b/activator.bat
@@ -0,0 +1,227 @@
1@REM activator launcher script
2@REM
3@REM Envioronment:
4@REM JAVA_HOME - location of a JDK home dir (optional if java on path)
5@REM CFG_OPTS - JVM options (optional)
6@REM Configuration:
7@REM activatorconfig.txt found in the ACTIVATOR_HOME or ACTIVATOR_HOME/ACTIVATOR_VERSION
8@setlocal enabledelayedexpansion
9
10@echo off
11
12set "var1=%~1"
13if defined var1 (
14 if "%var1%"=="help" (
15 echo.
16 echo Usage activator [options] [command]
17 echo.
18 echo Commands:
19 echo ui Start the Activator UI
20 echo new [name] [template-id] Create a new project with [name] using template [template-id]
21 echo list-templates Print all available template names
22 echo help Print this message
23 echo.
24 echo Options:
25 echo -jvm-debug [port] Turn on JVM debugging, open at the given port. Defaults to 9999 if no port given.
26 echo.
27 echo Environment variables ^(read from context^):
28 echo JAVA_OPTS Environment variable, if unset uses ""
29 echo SBT_OPTS Environment variable, if unset uses ""
30 echo ACTIVATOR_OPTS Environment variable, if unset uses ""
31 echo.
32 goto :end
33 )
34)
35
36if "%ACTIVATOR_HOME%"=="" (
37 set "ACTIVATOR_HOME=%~dp0"
38 @REM remove trailing "\" from path
39 set ACTIVATOR_HOME=!ACTIVATOR_HOME:~0,-1!
40)
41
42set ERROR_CODE=0
43set APP_VERSION=1.2.12
44set ACTIVATOR_LAUNCH_JAR=activator-launch-%APP_VERSION%.jar
45
46rem Detect if we were double clicked, although theoretically A user could
47rem manually run cmd /c
48for %%x in (%cmdcmdline%) do if %%~x==/c set DOUBLECLICKED=1
49
50rem FIRST we load a config file of extra options (if there is one)
51set "CFG_FILE_HOME=%UserProfile%\.activator\activatorconfig.txt"
52set "CFG_FILE_VERSION=%UserProfile%\.activator\%APP_VERSION%\activatorconfig.txt"
53set CFG_OPTS=
54if exist %CFG_FILE_VERSION% (
55 FOR /F "tokens=* eol=# usebackq delims=" %%i IN ("%CFG_FILE_VERSION%") DO (
56 set DO_NOT_REUSE_ME=%%i
57 rem ZOMG (Part #2) WE use !! here to delay the expansion of
58 rem CFG_OPTS, otherwise it remains "" for this loop.
59 set CFG_OPTS=!CFG_OPTS! !DO_NOT_REUSE_ME!
60 )
61)
62if "%CFG_OPTS%"=="" (
63 if exist %CFG_FILE_HOME% (
64 FOR /F "tokens=* eol=# usebackq delims=" %%i IN ("%CFG_FILE_HOME%") DO (
65 set DO_NOT_REUSE_ME=%%i
66 rem ZOMG (Part #2) WE use !! here to delay the expansion of
67 rem CFG_OPTS, otherwise it remains "" for this loop.
68 set CFG_OPTS=!CFG_OPTS! !DO_NOT_REUSE_ME!
69 )
70 )
71)
72
73rem We use the value of the JAVACMD environment variable if defined
74set _JAVACMD=%JAVACMD%
75
76if "%_JAVACMD%"=="" (
77 if not "%JAVA_HOME%"=="" (
78 if exist "%JAVA_HOME%\bin\java.exe" set "_JAVACMD=%JAVA_HOME%\bin\java.exe"
79
80 rem if there is a java home set we make sure it is the first picked up when invoking 'java'
81 SET "PATH=%JAVA_HOME%\bin;%PATH%"
82 )
83)
84
85if "%_JAVACMD%"=="" set _JAVACMD=java
86
87rem Detect if this java is ok to use.
88for /F %%j in ('"%_JAVACMD%" -version 2^>^&1') do (
89 if %%~j==Java set JAVAINSTALLED=1
90)
91
92rem Detect the same thing about javac
93if "%_JAVACCMD%"=="" (
94 if not "%JAVA_HOME%"=="" (
95 if exist "%JAVA_HOME%\bin\javac.exe" set "_JAVACCMD=%JAVA_HOME%\bin\javac.exe"
96 )
97)
98if "%_JAVACCMD%"=="" set _JAVACCMD=javac
99for /F %%j in ('"%_JAVACCMD%" -version 2^>^&1') do (
100 if %%~j==javac set JAVACINSTALLED=1
101)
102
103rem BAT has no logical or, so we do it OLD SCHOOL! Oppan Redmond Style
104set JAVAOK=true
105if not defined JAVAINSTALLED set JAVAOK=false
106if not defined JAVACINSTALLED set JAVAOK=false
107
108if "%JAVAOK%"=="false" (
109 echo.
110 echo A Java JDK is not installed or can't be found.
111 if not "%JAVA_HOME%"=="" (
112 echo JAVA_HOME = "%JAVA_HOME%"
113 )
114 echo.
115 echo Please go to
116 echo http://www.oracle.com/technetwork/java/javase/downloads/index.html
117 echo and download a valid Java JDK and install before running Activator.
118 echo.
119 echo If you think this message is in error, please check
120 echo your environment variables to see if "java.exe" and "javac.exe" are
121 echo available via JAVA_HOME or PATH.
122 echo.
123 if defined DOUBLECLICKED pause
124 exit /B 1
125)
126
127rem Check what Java version is being used to determine what memory options to use
128for /f "tokens=3" %%g in ('java -version 2^>^&1 ^| findstr /i "version"') do (
129 set JAVA_VERSION=%%g
130)
131
132rem Strips away the " characters
133set JAVA_VERSION=%JAVA_VERSION:"=%
134
135rem TODO Check if there are existing mem settings in JAVA_OPTS/CFG_OPTS and use those instead of the below
136for /f "delims=. tokens=1-3" %%v in ("%JAVA_VERSION%") do (
137 set MAJOR=%%v
138 set MINOR=%%w
139 set BUILD=%%x
140
141 set META_SIZE=-XX:MetaspaceSize=64M -XX:MaxMetaspaceSize=256M
142 if "!MINOR!" LSS "8" (
143 set META_SIZE=-XX:PermSize=64M -XX:MaxPermSize=256M
144 )
145
146 set MEM_OPTS=!META_SIZE!
147 )
148
149rem We use the value of the JAVA_OPTS environment variable if defined, rather than the config.
150set _JAVA_OPTS=%JAVA_OPTS%
151if "%_JAVA_OPTS%"=="" set _JAVA_OPTS=%CFG_OPTS%
152
153set DEBUG_OPTS=
154
155rem Loop through the arguments, building remaining args in args variable
156set args=
157:argsloop
158if not "%~1"=="" (
159 rem Checks if the argument contains "-D" and if true, adds argument 1 with 2 and puts an equal sign between them.
160 rem This is done since batch considers "=" to be a delimiter so we need to circumvent this behavior with a small hack.
161 set arg1=%~1
162 if "!arg1:~0,2!"=="-D" (
163 set "args=%args% "%~1"="%~2""
164 shift
165 shift
166 goto argsloop
167 )
168
169 if "%~1"=="-jvm-debug" (
170 if not "%~2"=="" (
171 rem This piece of magic somehow checks that an argument is a number
172 for /F "delims=0123456789" %%i in ("%~2") do (
173 set var="%%i"
174 )
175 if defined var (
176 rem Not a number, assume no argument given and default to 9999
177 set JPDA_PORT=9999
178 ) else (
179 rem Port was given, shift arguments
180 set JPDA_PORT=%~2
181 shift
182 )
183 ) else (
184 set JPDA_PORT=9999
185 )
186 shift
187
188 set DEBUG_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=!JPDA_PORT!
189 goto argsloop
190 )
191 rem else
192 set "args=%args% "%~1""
193 shift
194 goto argsloop
195)
196
197:run
198
199if "!args!"=="" (
200 if defined DOUBLECLICKED (
201 set CMDS="ui"
202 ) else set CMDS=!args!
203) else set CMDS=!args!
204
205rem We add a / in front, so we get file:///C: instead of file://C:
206rem Java considers the later a UNC path.
207rem We also attempt a solid effort at making it URI friendly.
208rem We don't even bother with UNC paths.
209set JAVA_FRIENDLY_HOME_1=/!ACTIVATOR_HOME:\=/!
210set JAVA_FRIENDLY_HOME=/!JAVA_FRIENDLY_HOME_1: =%%20!
211
212rem Checks if the command contains spaces to know if it should be wrapped in quotes or not
213set NON_SPACED_CMD=%_JAVACMD: =%
214if "%_JAVACMD%"=="%NON_SPACED_CMD%" %_JAVACMD% %DEBUG_OPTS% %MEM_OPTS% %ACTIVATOR_OPTS% %SBT_OPTS% %_JAVA_OPTS% "-Dactivator.home=%JAVA_FRIENDLY_HOME%" -jar "%ACTIVATOR_HOME%\%ACTIVATOR_LAUNCH_JAR%" %CMDS%
215if NOT "%_JAVACMD%"=="%NON_SPACED_CMD%" "%_JAVACMD%" %DEBUG_OPTS% %MEM_OPTS% %ACTIVATOR_OPTS% %SBT_OPTS% %_JAVA_OPTS% "-Dactivator.home=%JAVA_FRIENDLY_HOME%" -jar "%ACTIVATOR_HOME%\%ACTIVATOR_LAUNCH_JAR%" %CMDS%
216
217if ERRORLEVEL 1 goto error
218goto end
219
220:error
221set ERROR_CODE=1
222
223:end
224
225@endlocal
226
227exit /B %ERROR_CODE%