You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by to...@apache.org on 2022/03/12 10:42:24 UTC

[lucene] branch branch_9x updated: LUCENE-10461: fix windows launch script for luke so that it works with integration tests AND actual command line. Cmd escaping rules and start command line is absolutely insane. (#743)

This is an automated email from the ASF dual-hosted git repository.

tomoko pushed a commit to branch branch_9x
in repository https://gitbox.apache.org/repos/asf/lucene.git


The following commit(s) were added to refs/heads/branch_9x by this push:
     new a34072c  LUCENE-10461: fix windows launch script for luke so that it works with integration tests AND actual command line. Cmd escaping rules and start command line is absolutely insane. (#743)
a34072c is described below

commit a34072c816d9992e7c04849f83f36b7a3231dcc3
Author: Dawid Weiss <da...@carrotsearch.com>
AuthorDate: Sat Mar 12 11:39:31 2022 +0100

    LUCENE-10461: fix windows launch script for luke so that it works with integration tests AND actual command line. Cmd escaping rules and start command line is absolutely insane. (#743)
---
 lucene/distribution/src/binary-release/bin/luke.cmd | 18 ++++++++++++------
 1 file changed, 12 insertions(+), 6 deletions(-)

diff --git a/lucene/distribution/src/binary-release/bin/luke.cmd b/lucene/distribution/src/binary-release/bin/luke.cmd
index bd1f66a..648cade 100644
--- a/lucene/distribution/src/binary-release/bin/luke.cmd
+++ b/lucene/distribution/src/binary-release/bin/luke.cmd
@@ -13,24 +13,30 @@
 @rem See the License for the specific language governing permissions and
 @rem limitations under the License.
 
-@echo off
+@ECHO OFF
 
 SETLOCAL
 SET MODULES=%~dp0..
 
 IF DEFINED LAUNCH_CMD GOTO testing
-SET LAUNCH_CMD=start javaw
+REM Windows 'start' command takes the first quoted argument to be the title of the started window. Since we
+REM quote the LAUNCH_CMD (because it can contain spaces), it misinterprets it as the title and fails to run.
+REM force the window title here.
+SET LAUNCH_START=start "Lucene Luke"
+SET LAUNCH_CMD=javaw
 SET LAUNCH_OPTS=
 goto launch
 
 :testing
-REM For distribution testing we don't use start and pass an explicit launch ('java') command,
-REM otherwise we can't block on luke invocation and can't intercept the return status.
-REM We also force UTF-8 encoding.
+REM For distribution testing we don't use start and pass an explicit java command path,
+REM This is required because otherwise we can't block on luke invocation and can't intercept
+REM the return status. We also force UTF-8 encoding so that we don't have to interpret the output in
+REM an unknown local platform encoding.
+SET LAUNCH_START=
 SET LAUNCH_OPTS=-Dfile.encoding=UTF-8
 
 :launch
-"%LAUNCH_CMD%" %LAUNCH_OPTS% --module-path "%MODULES%\modules;%MODULES%\modules-thirdparty" --module org.apache.lucene.luke %*
+%LAUNCH_START% "%LAUNCH_CMD%" %LAUNCH_OPTS% --module-path "%MODULES%\modules;%MODULES%\modules-thirdparty" --module org.apache.lucene.luke %*
 SET EXITVAL=%errorlevel%
 EXIT /b %EXITVAL%
 ENDLOCAL