Skip to content

Commit 0c6b4f5

Browse files
making the Windows shell scripts more robust about handling spaces (#1405)
1 parent 0a342ac commit 0c6b4f5

File tree

1 file changed

+44
-34
lines changed

1 file changed

+44
-34
lines changed

installer/src/main/bin/shared.cmd

+44-34
Original file line numberDiff line numberDiff line change
@@ -20,22 +20,22 @@ GOTO :ENDFUNCTIONS
2020
@rem Make sure that the JAVA_HOME environment variable is set to point to a
2121
@rem JDK with the specified level or higher (and that it isn't OpenJDK).
2222

23-
SET MIN_JDK_VERSION=%1
24-
SET QUIET_ARG=%2
23+
SET "MIN_JDK_VERSION=%1"
24+
SET "QUIET_ARG=%2"
2525

2626
IF NOT DEFINED JAVA_HOME (
2727
ECHO Please set the JAVA_HOME environment variable to point to a Java 8 installation >&2
2828
EXIT /B 2
29-
) ELSE (
30-
IF NOT EXIST "%JAVA_HOME%" (
31-
ECHO Your JAVA_HOME environment variable to points to a non-existent directory: %JAVA_HOME% >&2
32-
EXIT /B 2
33-
)
3429
)
3530
FOR %%i IN ("%JAVA_HOME%") DO SET JAVA_HOME=%%~fsi
3631
IF %JAVA_HOME:~-1%==\ SET JAVA_HOME=%JAVA_HOME:~0,-1%
3732

38-
IF EXIST %JAVA_HOME%\bin\java.exe (
33+
IF NOT EXIST "%JAVA_HOME%" (
34+
ECHO Your JAVA_HOME environment variable to points to a non-existent directory: %JAVA_HOME% >&2
35+
EXIT /B 2
36+
)
37+
38+
IF EXIST "%JAVA_HOME%\bin\java.exe" (
3939
FOR %%i IN ("%JAVA_HOME%\bin\java.exe") DO SET JAVA_EXE=%%~fsi
4040
) ELSE (
4141
ECHO Java executable does not exist at %JAVA_HOME%\bin\java.exe >&2
@@ -140,7 +140,7 @@ GOTO :EOF
140140
)
141141

142142
IF "%firstArg%" == "-oracle_home" (
143-
SET ORACLE_HOME_ARG=%2
143+
SET "ORACLE_HOME_ARG=%2"
144144
SHIFT
145145
GOTO arg_continue
146146
)
@@ -151,7 +151,7 @@ GOTO :EOF
151151
)
152152

153153
IF "%firstArg%" == "-wlst_path" (
154-
SET WLST_PATH_DIR=%2
154+
SET "WLST_PATH_DIR=%2"
155155
SHIFT
156156
GOTO arg_continue
157157
)
@@ -164,14 +164,14 @@ GOTO :EOF
164164
)
165165

166166
IF NOT "%ORACLE_HOME_ARG%" == "" (
167-
SET ORACLE_HOME=%ORACLE_HOME_ARG%
167+
SET "ORACLE_HOME=%ORACLE_HOME_ARG%"
168168
) ELSE (
169169
@REM if -oracle_home argument was not found, but ORACLE_HOME was set in environment,
170170
@REM add the -oracle_home argument with the environment value.
171171
@REM put it at the beginning to protect trailing arguments.
172172

173173
IF NOT "%ORACLE_HOME%" == "" (
174-
SET SCRIPT_ARGS= -oracle_home %ORACLE_HOME% %SCRIPT_ARGS%
174+
SET "SCRIPT_ARGS= -oracle_home %ORACLE_HOME% %SCRIPT_ARGS%"
175175
)
176176
)
177177

@@ -188,7 +188,7 @@ GOTO :EOF
188188
@REM set the WLSDEPLOY_HOME variable. if it was already set, verify that it is valid
189189

190190
IF NOT DEFINED WLSDEPLOY_HOME (
191-
SET WLSDEPLOY_HOME=%SCRIPT_PATH%\..
191+
SET "WLSDEPLOY_HOME=%SCRIPT_PATH%\.."
192192
) ELSE (
193193
IF NOT EXIST "%WLSDEPLOY_HOME%" (
194194
ECHO Specified WLSDEPLOY_HOME of "%WLSDEPLOY_HOME%" does not exist >&2
@@ -203,10 +203,10 @@ GOTO :EOF
203203
SET LOG_CONFIG_CLASS=oracle.weblogic.deploy.logging.WLSDeployLoggingConfig
204204

205205
IF NOT DEFINED WLSDEPLOY_LOG_PROPERTIES (
206-
SET WLSDEPLOY_LOG_PROPERTIES=%WLSDEPLOY_HOME%\etc\logging.properties
206+
SET "WLSDEPLOY_LOG_PROPERTIES=%WLSDEPLOY_HOME%\etc\logging.properties"
207207
)
208208
IF NOT DEFINED WLSDEPLOY_LOG_DIRECTORY (
209-
SET WLSDEPLOY_LOG_DIRECTORY=%WLSDEPLOY_HOME%\logs
209+
SET "WLSDEPLOY_LOG_DIRECTORY=%WLSDEPLOY_HOME%\logs"
210210
)
211211
GOTO :EOF
212212

@@ -220,7 +220,7 @@ GOTO :EOF
220220

221221
:runWlst
222222
@REM run a WLST script.
223-
SET WLST_SCRIPT=%1
223+
SET "WLST_SCRIPT=%1"
224224

225225
CALL :variableSetup
226226
if %ERRORLEVEL% NEQ 0 (
@@ -243,7 +243,7 @@ GOTO :EOF
243243
ECHO WLST executable !WLST! not found under -wlst_path directory %WLST_PATH_DIR% >&2
244244
EXIT /B 98
245245
)
246-
SET CLASSPATH=%WLSDEPLOY_HOME%\lib\weblogic-deploy-core.jar
246+
SET "CLASSPATH=%WLSDEPLOY_HOME%\lib\weblogic-deploy-core.jar"
247247
IF DEFINED WLST_EXT_CLASSPATH (
248248
SET "WLST_EXT_CLASSPATH=%WLSDEPLOY_HOME%\lib\weblogic-deploy-core.jar;%WLST_EXT_CLASSPATH%"
249249
) ELSE (
@@ -253,11 +253,15 @@ GOTO :EOF
253253
)
254254

255255
@rem if WLST_PATH_DIR was not set, find the WLST executable in one of the known ORACLE_HOME locations.
256+
IF DEFINED ORACLE_HOME (
257+
FOR %%i IN ("%ORACLE_HOME%") DO SET ORACLE_HOME=%%~fsi
258+
IF %ORACLE_HOME:~-1%==\ SET ORACLE_HOME=%ORACLE_HOME:~0,-1%
259+
)
256260

257261
SET WLST=
258262
IF EXIST "%ORACLE_HOME%\oracle_common\common\bin\wlst.cmd" (
259-
SET WLST=%ORACLE_HOME%\oracle_common\common\bin\wlst.cmd
260-
SET CLASSPATH=%WLSDEPLOY_HOME%\lib\weblogic-deploy-core.jar
263+
SET "WLST=%ORACLE_HOME%\oracle_common\common\bin\wlst.cmd"
264+
SET "CLASSPATH=%WLSDEPLOY_HOME%\lib\weblogic-deploy-core.jar"
261265
IF DEFINED WLST_EXT_CLASSPATH (
262266
SET "WLST_EXT_CLASSPATH=%WLSDEPLOY_HOME%\lib\weblogic-deploy-core.jar;%WLST_EXT_CLASSPATH%"
263267
) ELSE (
@@ -266,20 +270,20 @@ GOTO :EOF
266270
GOTO found_wlst
267271
)
268272
IF EXIST "%ORACLE_HOME%\wlserver_10.3\common\bin\wlst.cmd" (
269-
SET WLST=%ORACLE_HOME%\wlserver_10.3\common\bin\wlst.cmd
270-
SET CLASSPATH=%WLSDEPLOY_HOME%\lib\weblogic-deploy-core.jar
273+
SET "WLST=%ORACLE_HOME%\wlserver_10.3\common\bin\wlst.cmd"
274+
SET "CLASSPATH=%WLSDEPLOY_HOME%\lib\weblogic-deploy-core.jar"
271275
GOTO found_wlst
272276
)
273277
IF EXIST "%ORACLE_HOME%\wlserver_12.1\common\bin\wlst.cmd" (
274-
SET WLST=%ORACLE_HOME%\wlserver_12.1\common\bin\wlst.cmd
275-
SET CLASSPATH=%WLSDEPLOY_HOME%\lib\weblogic-deploy-core.jar
278+
SET "WLST=%ORACLE_HOME%\wlserver_12.1\common\bin\wlst.cmd"
279+
SET "CLASSPATH=%WLSDEPLOY_HOME%\lib\weblogic-deploy-core.jar"
276280
GOTO found_wlst
277281
)
278282
IF EXIST "%ORACLE_HOME%\wlserver\common\bin\wlst.cmd" (
279283
IF EXIST "%ORACLE_HOME%\wlserver\.product.properties" (
280284
@rem WLS 12.1.2 or WLS 12.1.3
281-
SET WLST=%ORACLE_HOME%\wlserver\common\bin\wlst.cmd
282-
SET CLASSPATH=%WLSDEPLOY_HOME%\lib\weblogic-deploy-core.jar
285+
SET "WLST=%ORACLE_HOME%\wlserver\common\bin\wlst.cmd"
286+
SET "CLASSPATH=%WLSDEPLOY_HOME%\lib\weblogic-deploy-core.jar"
283287
)
284288
GOTO found_wlst
285289
)
@@ -301,7 +305,7 @@ GOTO :EOF
301305
ECHO CLASSPATH = %CLASSPATH%
302306
ECHO WLST_PROPERTIES = %WLST_PROPERTIES%
303307

304-
SET PY_SCRIPTS_PATH=%WLSDEPLOY_HOME%\lib\python
308+
SET "PY_SCRIPTS_PATH=%WLSDEPLOY_HOME%\lib\python"
305309

306310
ECHO %WLST% %PY_SCRIPTS_PATH%\%WLST_SCRIPT% %SCRIPT_ARGS%
307311

@@ -313,18 +317,24 @@ GOTO :EOF
313317

314318
:runJython
315319
@REM run a jython script, without WLST.
316-
SET JYTHON_SCRIPT=%1
320+
SET "JYTHON_SCRIPT=%1"
317321

318322
@REM set up Oracle directory, logger, classpath
323+
IF DEFINED ORACLE_HOME (
324+
FOR %%i IN ("%ORACLE_HOME%") DO SET ORACLE_HOME=%%~fsi
325+
IF %ORACLE_HOME:~-1%==\ SET ORACLE_HOME=%ORACLE_HOME:~0,-1%
326+
)
319327

320328
SET ORACLE_SERVER_DIR=
321329
IF EXIST "%ORACLE_HOME%\wlserver_10.3" (
322-
SET ORACLE_SERVER_DIR=%ORACLE_HOME%\wlserver_10.3
330+
SET "ORACLE_SERVER_DIR=%ORACLE_HOME%\wlserver_10.3"
323331
) ELSE IF EXIST "%ORACLE_HOME%\wlserver_12.1" (
324-
SET ORACLE_SERVER_DIR=%ORACLE_HOME%\wlserver_12.1
332+
SET "ORACLE_SERVER_DIR=%ORACLE_HOME%\wlserver_12.1"
325333
) ELSE (
326-
SET ORACLE_SERVER_DIR=%ORACLE_HOME%\wlserver
334+
SET "ORACLE_SERVER_DIR=%ORACLE_HOME%\wlserver"
327335
)
336+
FOR %%i IN ("%ORACLE_SERVER_DIR%") DO SET ORACLE_SERVER_DIR=%%~fsi
337+
IF %ORACLE_SERVER_DIR:~-1%==\ SET ORACLE_SERVER_DIR=%ORACLE_SERVER_DIR:~0,-1%
328338

329339
CALL :variableSetup
330340
if %ERRORLEVEL% NEQ 0 (
@@ -337,24 +347,24 @@ GOTO :EOF
337347
SET "JAVA_PROPERTIES=%JAVA_PROPERTIES% -Dpython.console="
338348
SET "JAVA_PROPERTIES=%JAVA_PROPERTIES% %WLSDEPLOY_PROPERTIES%"
339349

340-
SET CLASSPATH=%WLSDEPLOY_HOME%\lib\weblogic-deploy-core.jar
341-
SET CLASSPATH=%CLASSPATH%;%ORACLE_SERVER_DIR%\server\lib\weblogic.jar
350+
SET "CLASSPATH=%WLSDEPLOY_HOME%\lib\weblogic-deploy-core.jar"
351+
SET "CLASSPATH=%CLASSPATH%;%ORACLE_SERVER_DIR%\server\lib\weblogic.jar"
342352

343353
@REM print the configuration, and run the script
344354

345355
ECHO JAVA_HOME = %JAVA_HOME%
346356
ECHO CLASSPATH = %CLASSPATH%
347357
ECHO JAVA_PROPERTIES = %JAVA_PROPERTIES%
348358

349-
SET PY_SCRIPTS_PATH=%WLSDEPLOY_HOME%\lib\python
359+
SET "PY_SCRIPTS_PATH=%WLSDEPLOY_HOME%\lib\python"
350360

351361
ECHO ^
352362
%JAVA_HOME%/bin/java -cp %CLASSPATH% ^
353363
%JAVA_PROPERTIES% ^
354364
org.python.util.jython ^
355365
"%PY_SCRIPTS_PATH%\%JYTHON_SCRIPT%" %SCRIPT_ARGS%
356366

357-
%JAVA_HOME%/bin/java -cp %CLASSPATH% ^
367+
%JAVA_HOME%/bin/java -cp "%CLASSPATH%" ^
358368
%JAVA_PROPERTIES% ^
359369
org.python.util.jython ^
360370
"%PY_SCRIPTS_PATH%\%JYTHON_SCRIPT%" %SCRIPT_ARGS%

0 commit comments

Comments
 (0)