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:39:40 UTC
[lucene] branch main 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 main
in repository https://gitbox.apache.org/repos/asf/lucene.git
The following commit(s) were added to refs/heads/main by this push:
new 25c4310 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)
25c4310 is described below
commit 25c4310bd56fee8d7474f041f2eebb54c6133c42
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