From e53def7f8490e31800f6f11cae46daa971c16423 Mon Sep 17 00:00:00 2001 From: Demian Katz <demian.katz@villanova.edu> Date: Thu, 26 Jul 2018 09:47:39 -0400 Subject: [PATCH] Improve Windows batch file path/environment handling. --- import-marc.bat | 18 +++++++++++------- index-alphabetic-browse.bat | 19 +++++++++++-------- solr.bat | 13 ++++++++----- 3 files changed, 30 insertions(+), 20 deletions(-) diff --git a/import-marc.bat b/import-marc.bat index 5b2257f1686..c4322107e00 100644 --- a/import-marc.bat +++ b/import-marc.bat @@ -60,17 +60,20 @@ set EXTRA_SOLRMARC_SETTINGS=%EXTRA_SOLRMARC_SETTINGS% -Dsolr.core.name=%SOLRCOR rem ################################################## rem # Set VUFIND_HOME rem ################################################## -if not "!%VUFIND_HOME%!"=="!!" goto vufindhomefound +if not (!%VUFIND_HOME%!)==(!!) goto vufindhomefound rem VUFIND_HOME not set -- try to call env.bat to rem fix the problem before we give up completely if exist env.bat goto useenvbat rem If env.bat doesn't exist, the user hasn't run the installer yet. -echo ERROR: env.bat does not exist -- could not set up environment. +echo WARNING: env.bat does not exist -- trying default environment settings. echo Please run "php install.php" to correct this problem. -goto end +rem Extract path from current batch file and trim trailing slash: +set VUFIND_HOME=%~dp0% +set VUFIND_HOME=%VUFIND_HOME:~0,-1% +goto vufindhomefound :useenvbat call env > nul -if not "!%VUFIND_HOME%!"=="!!" goto vufindhomefound +if not (!%VUFIND_HOME%!)==(!!) goto vufindhomefound echo You need to set the VUFIND_HOME environmental variable before running this script. goto end :vufindhomefound @@ -78,11 +81,11 @@ goto end rem ##################################################### rem # Build java command rem ##################################################### -if not "!%JAVA_HOME%!"=="!!" goto javahomefound +if not (!%JAVA_HOME%!)==(!!) goto javahomefound set JAVA=java goto javaset :javahomefound -set JAVA="%JAVA_HOME%\bin\java" +set JAVA=%JAVA_HOME%\bin\java :javaset rem ################################################## @@ -93,6 +96,7 @@ if not exist %VUFIND_LOCAL_DIR%\import\import.properties goto nolocalproperties set PROPERTIES_FILE=%VUFIND_LOCAL_DIR%\import\import.properties goto propertiesfound :nolocalproperties +echo WARNING: VUFIND_LOCAL_DIR environment variable is not set. Is this intentional? set PROPERTIES_FILE=%VUFIND_HOME%\import\import.properties :propertiesfound @@ -112,4 +116,4 @@ echo %RUN_CMD% :end rem We're all done -- close down the local environment. -endlocal \ No newline at end of file +endlocal diff --git a/index-alphabetic-browse.bat b/index-alphabetic-browse.bat index 315f0406982..ceccbb467fa 100644 --- a/index-alphabetic-browse.bat +++ b/index-alphabetic-browse.bat @@ -12,32 +12,35 @@ goto end rem ################################################## rem # Set SOLR_HOME rem ################################################## -if not "!%VUFIND_HOME%!"=="!!" goto vufindhomefound +if not (!%VUFIND_HOME%!)==(!!) goto vufindhomefound rem VUFIND_HOME not set -- try to call env.bat to rem fix the problem before we give up completely if exist env.bat goto useenvbat rem If env.bat doesn't exist, the user hasn't run the installer yet. -echo ERROR: env.bat does not exist -- could not set up environment. -echo Please run install.php to correct this problem. -goto end +echo WARNING: env.bat does not exist -- trying default environment settings. +echo Please run "php install.php" to correct this problem. +rem Extract path from current batch file and trim trailing slash: +set VUFIND_HOME=%~dp0% +set VUFIND_HOME=%VUFIND_HOME:~0,-1% +goto vufindhomefound :useenvbat call env > nul -if not "!%VUFIND_HOME%!"=="!!" goto vufindhomefound +if not (!%VUFIND_HOME%!)==(!!) goto vufindhomefound echo You need to set the VUFIND_HOME environmental variable before running this script. goto end :vufindhomefound -if not "!%SOLR_HOME%!"=="!!" goto solrhomefound +if not (!%SOLR_HOME%!)==(!!) goto solrhomefound set SOLR_HOME=%VUFIND_HOME%\solr\vufind :solrhomefound rem ##################################################### rem # Build java command rem ##################################################### -if not "!%JAVA_HOME%!"=="!!" goto javahomefound +if not (!%JAVA_HOME%!)==(!!) goto javahomefound set JAVA=java goto javaset :javahomefound -set JAVA="%JAVA_HOME%\bin\java" +set JAVA=%JAVA_HOME%\bin\java :javaset cd %VUFIND_HOME%\import diff --git a/solr.bat b/solr.bat index eb6c9b4a403..fbce82ff4b6 100644 --- a/solr.bat +++ b/solr.bat @@ -40,17 +40,20 @@ rem Unrecognized action -- display help text if "!%1!"=="!!" goto usage rem Set VUFIND_HOME (if not already set) -if not "!%VUFIND_HOME%!"=="!!" goto vufindhomefound -rem VUFIND_HOME not set -- try to call env.bat to +if not (!%VUFIND_HOME%!)==(!!) goto vufindhomefound +rem VUFIND_HOME not set -- try to call env.bat to rem fix the problem before we give up completely if exist env.bat goto useenvbat rem If env.bat doesn't exist, the user hasn't run the installer yet. -echo ERROR: env.bat does not exist -- could not set up environment. +echo WARNING: env.bat does not exist -- trying default environment settings. echo Please run "php install.php" to correct this problem. -goto end +rem Extract path from current batch file and trim trailing slash: +set VUFIND_HOME=%~dp0% +set VUFIND_HOME=%VUFIND_HOME:~0,-1% +goto vufindhomefound :useenvbat call env > nul -if not "!%VUFIND_HOME%!"=="!!" goto vufindhomefound +if not (!%VUFIND_HOME%!)==(!!) goto vufindhomefound echo You need to set the VUFIND_HOME environmental variable before running this script. goto end :vufindhomefound -- GitLab