From 572704fd7306bc94c3a1bf418b9e478a3e782db6 Mon Sep 17 00:00:00 2001 From: Zukero Date: Fri, 3 Mar 2017 17:15:16 +0100 Subject: [PATCH] v0.5.2 ! Upped the bash & batch game. Can run from any directory, auto-adaptation to jar files in lib, creation, use, and preservation upon update or reinstall of a startup customization file (Max JVM memory, custom java binary and custom JVM options as environment variables). This is valid for all OS types (bash or batch startup) and all installation methods (zip and nsis). Robustified a stupid version management for workspace settings. --- ATCS_JAR.jardesc | 10 ------ packaging/Linux/ATCS/ATCS.cmd | 21 ++++++++++++- packaging/Linux/ATCS/ATCS.sh | 22 ++++++++++++- packaging/Windows/ATCS.cmd | 21 ++++++++++++- packaging/Windows/ATCS_Installer.nsi | 31 ++++++++++++++++--- .../model/WorkspaceSettings.java | 10 +++--- 6 files changed, 93 insertions(+), 22 deletions(-) diff --git a/ATCS_JAR.jardesc b/ATCS_JAR.jardesc index 7edd0c3..319aa94 100644 --- a/ATCS_JAR.jardesc +++ b/ATCS_JAR.jardesc @@ -11,18 +11,8 @@ - - - - - - - - - - diff --git a/packaging/Linux/ATCS/ATCS.cmd b/packaging/Linux/ATCS/ATCS.cmd index 0344c30..4192378 100644 --- a/packaging/Linux/ATCS/ATCS.cmd +++ b/packaging/Linux/ATCS/ATCS.cmd @@ -1 +1,20 @@ -start "" "javaw.exe" -Xmx512M -cp "lib\ATCS_v0.5.1.jar;lib\jide-oss.jar;lib\ui.jar;lib\junit-4.10.jar;lib\json_simple-1.1.jar;lib\rsyntaxtextarea.jar;lib\prefuse.jar;lib\AndorsTrainer_v0.1.3.jar;lib\bsh-2.0b4.jar" com.gpl.rpg.atcontentstudio.ATContentStudio +@echo off + +set ATCS_DIR=%~dp0 +set MAX_MEM=512M +set CP=%ATCS_DIR%lib\* +set JAVA=javaw.exe +set JAVA_OPTS= +set ENV_FILE=%ATCS_DIR%ATCS.env.bat +set MAIN_CLASS=com.gpl.rpg.atcontentstudio.ATContentStudio + +if exist %ENV_FILE% ( + call %ENV_FILE% +) else ( + echo REM set MAX_MEM=%MAX_MEM% > %ENV_FILE% + echo REM set JAVA=%JAVA% >> %ENV_FILE% + echo REM set JAVA_OPTS=%JAVA_OPTS% >> %ENV_FILE% + echo. >> %ENV_FILE% +) + +start "" "%JAVA%" %JAVA_OPTS% -Xmx%MAX_MEM% -cp "%CP%" %MAIN_CLASS% diff --git a/packaging/Linux/ATCS/ATCS.sh b/packaging/Linux/ATCS/ATCS.sh index 5260845..2d21f4d 100644 --- a/packaging/Linux/ATCS/ATCS.sh +++ b/packaging/Linux/ATCS/ATCS.sh @@ -1,2 +1,22 @@ #!/bin/bash -java -Xmx512M -cp lib/AndorsTrainer_v0.1.3.jar:lib/ATCS_v0.5.1.jar:lib/prefuse.jar:lib/json_simple-1.1.jar:lib/jide-oss.jar:lib/ui.jar:lib/junit-4.10.jar:lib/rsyntaxtextarea.jar:lib/bsh-2.0b4.jar com.gpl.rpg.atcontentstudio.ATContentStudio +ATCS_DIR=$(dirname $(readlink -f "$0" || greadlink -f "$0" || stat -f "$0")) +MAX_MEM=512M +CP=$(find ${ATCS_DIR}/lib/ -name '*.jar' | paste -sd: -) +JAVA=java +JAVA_OPTS= +ENV_FILE=${ATCS_DIR}/ATCS.env +MAIN_CLASS=com.gpl.rpg.atcontentstudio.ATContentStudio + +if [ -f ${ENV_FILE} ] +then + source ${ENV_FILE} +else + echo "#MAX_MEM=${MAX_MEM}" > ${ENV_FILE} + echo "#JAVA=${JAVA}" >> ${ENV_FILE} + echo "#JAVA_OPTS=${JAVA_OPTS}" >> ${ENV_FILE} + echo "" >> ${ENV_FILE} +fi + +export ENV_FILE + +$JAVA ${JAVA_OPTS} -Xmx${MAX_MEM} -cp ${CP} ${MAIN_CLASS} diff --git a/packaging/Windows/ATCS.cmd b/packaging/Windows/ATCS.cmd index cbce53a..4192378 100644 --- a/packaging/Windows/ATCS.cmd +++ b/packaging/Windows/ATCS.cmd @@ -1 +1,20 @@ -start "" "javaw.exe" -Xmx512M -cp "lib\ATCS_v0.5.0.jar;lib\jide-oss.jar;lib\ui.jar;lib\junit-4.10.jar;lib\json_simple-1.1.jar;lib\rsyntaxtextarea.jar;lib\prefuse.jar;lib\AndorsTrainer_v0.1.2.jar;lib\bsh-2.0b4.jar" com.gpl.rpg.atcontentstudio.ATContentStudio +@echo off + +set ATCS_DIR=%~dp0 +set MAX_MEM=512M +set CP=%ATCS_DIR%lib\* +set JAVA=javaw.exe +set JAVA_OPTS= +set ENV_FILE=%ATCS_DIR%ATCS.env.bat +set MAIN_CLASS=com.gpl.rpg.atcontentstudio.ATContentStudio + +if exist %ENV_FILE% ( + call %ENV_FILE% +) else ( + echo REM set MAX_MEM=%MAX_MEM% > %ENV_FILE% + echo REM set JAVA=%JAVA% >> %ENV_FILE% + echo REM set JAVA_OPTS=%JAVA_OPTS% >> %ENV_FILE% + echo. >> %ENV_FILE% +) + +start "" "%JAVA%" %JAVA_OPTS% -Xmx%MAX_MEM% -cp "%CP%" %MAIN_CLASS% diff --git a/packaging/Windows/ATCS_Installer.nsi b/packaging/Windows/ATCS_Installer.nsi index e79c66f..eeb3272 100644 --- a/packaging/Windows/ATCS_Installer.nsi +++ b/packaging/Windows/ATCS_Installer.nsi @@ -1,7 +1,8 @@ !include MUI2.nsh -!define VERSION "0.5.1" -!define JAVA_BIN "java" +!define VERSION "0.5.2" +!define TRAINER_VERSION "0.1.3" +!define JAVA_BIN "javaw" Name "Andor's Trail Content Studio v${VERSION}" OutFile "ATCS_v${VERSION}_Setup.exe" @@ -57,13 +58,32 @@ Section install Call GetJRE Pop $R0 FileOpen $9 "ATCS.cmd" w - FileWrite $9 'start "" "$R0" -Xmx512M -cp "lib\AndorsTrainer_v0.1.1.jar;lib\jide-oss.jar;lib\ui.jar;lib\junit-4.10.jar;lib\json_simple-1.1.jar;lib\rsyntaxtextarea.jar;lib\prefuse.jar;lib\bsh-2.0b4.jar;lib\ATCS_v${VERSION}.jar" com.gpl.rpg.atcontentstudio.ATContentStudio' + FileWrite $9 '@echo off' + FileWrite $9 '' + FileWrite $9 'set ATCS_DIR=%~dp0' + FileWrite $9 'set MAX_MEM=512M' + FileWrite $9 'set CP=%ATCS_DIR%lib\*' + FileWrite $9 'set JAVA=$R0' + FileWrite $9 'set JAVA_OPTS=' + FileWrite $9 'set ENV_FILE=%ATCS_DIR%ATCS.env.bat' + FileWrite $9 'set MAIN_CLASS=com.gpl.rpg.atcontentstudio.ATContentStudio' + FileWrite $9 '' + FileWrite $9 'if exist %ENV_FILE% (' + FileWrite $9 ' call %ENV_FILE%' + FileWrite $9 ') else (' + FileWrite $9 ' echo REM set MAX_MEM=%MAX_MEM% > %ENV_FILE%' + FileWrite $9 ' echo REM set JAVA=%JAVA% >> %ENV_FILE%' + FileWrite $9 ' echo REM set JAVA_OPTS=%JAVA_OPTS% >> %ENV_FILE%' + FileWrite $9 ' echo. >> %ENV_FILE%' + FileWrite $9 ')' + FileWrite $9 '' + FileWrite $9 'start "" "%JAVA%" %JAVA_OPTS% -Xmx%MAX_MEM% -cp "%CP%" %MAIN_CLASS%' FileClose $9 SetOutPath "$INSTDIR\lib\" file "jide-oss.jar" file "ui.jar" - file "AndorsTrainer_v0.1.3.jar" + file "AndorsTrainer_v${TRAINER_VERSION}.jar" file "junit-4.10.jar" file "json_simple-1.1.jar" file "ATCS_v${VERSION}.jar" @@ -93,7 +113,7 @@ Section uninstall Delete "$INSTDIR\lib\ui.jar" Delete "$INSTDIR\lib\junit-4.10.jar" Delete "$INSTDIR\lib\json_simple-1.1.jar" - Delete "$INSTDIR\lib\AndorsTrainer_v0.1.3.jar" + Delete "$INSTDIR\lib\AndorsTrainer_v${TRAINER_VERSION}.jar" Delete "$INSTDIR\lib\ATCS_v${VERSION}.jar" Delete "$INSTDIR\lib\rsyntaxtextarea.jar" Delete "$INSTDIR\lib\prefuse.jar" @@ -101,6 +121,7 @@ Section uninstall RMDir "$INSTDIR\lib\" Delete "$INSTDIR\ATCS.ico" Delete "$INSTDIR\ATCS.cmd" + Delete "$INSTDIR\ATCS.env.bat" Delete "$INSTDIR\Uninstall.exe" diff --git a/src/com/gpl/rpg/atcontentstudio/model/WorkspaceSettings.java b/src/com/gpl/rpg/atcontentstudio/model/WorkspaceSettings.java index 397804e..37c9329 100644 --- a/src/com/gpl/rpg/atcontentstudio/model/WorkspaceSettings.java +++ b/src/com/gpl/rpg/atcontentstudio/model/WorkspaceSettings.java @@ -23,6 +23,8 @@ public class WorkspaceSettings { public static final String VERSION_KEY = "ATCS_Version"; public static final String FILENAME = "workspace_settings.json"; + + public static final int SETTINGS_VERSION = 1; public Workspace parent; public File file; @@ -61,10 +63,10 @@ public class WorkspaceSettings { reader = new FileReader(f); @SuppressWarnings("rawtypes") Map jsonSettings = (Map) parser.parse(reader); - String version = (String) jsonSettings.get(VERSION_KEY); + Integer version = (Integer) jsonSettings.get(VERSION_KEY); if (version != null) { - if ("v0.5.2".equals(version)) { - loadv052(jsonSettings); + if (version >= 1) { + loadv1(jsonSettings); } } @@ -88,7 +90,7 @@ public class WorkspaceSettings { } @SuppressWarnings("rawtypes") - private void loadv052(Map jsonSettings) { + private void loadv1(Map jsonSettings) { for (Setting s : settings) { s.readFromJson(jsonSettings); }