diff --git a/Java/scripts/build.sh b/Java/scripts/build.sh index 613d20e..c5b6b67 100755 --- a/Java/scripts/build.sh +++ b/Java/scripts/build.sh @@ -5,5 +5,13 @@ javac -source ${SOURCE_VERSION} -target ${TARGET_VERSION} -Xlint:unchecked -cp $ printf "\n\n\nRunning Program...\n\n" ORIGINAL_LOC=$(pwd) cd $OUT_DIR -java -cp .:../lib/bin -Djava.library.path="${LIBRARY_PATH}" ${MAIN_CLASS} "$@" +if java ${CUSTOM_PARAMS} -cp .:../lib/bin/ -XX:+UseZGC -Djava.library.path="${LIBRARY_PATH}" ${MAIN_CLASS} "$@"; then + ${ORIGINAL_LOC}/${LANGUAGE}/scripts/clean.sh + exit +fi +if java ${CUSTOM_PARAMS} -cp .:../lib/bin/ -XX:+UnlockExperimentalVMOptions -XX:+UseZGC -Djava.library.path="${LIBRARY_PATH}" ${MAIN_CLASS} "$@"; then + ${ORIGINAL_LOC}/${LANGUAGE}/scripts/clean.sh + exit +fi +java ${CUSTOM_PARAMS} -cp .:../lib/bin/ -XX:+PrintCommandLineFlags -Djava.library.path="${LIBRARY_PATH}" ${MAIN_CLASS} "$@" ${ORIGINAL_LOC}/${LANGUAGE}/scripts/clean.sh \ No newline at end of file diff --git a/Java/scripts/build2.sh b/Java/scripts/build2.sh new file mode 100644 index 0000000..53fe062 --- /dev/null +++ b/Java/scripts/build2.sh @@ -0,0 +1,17 @@ +#Builds and runs the project for Windows. +#Java +source ${LANGUAGE}/scripts/version_info +javac -source ${SOURCE_VERSION} -target ${TARGET_VERSION} -Xlint:unchecked -cp ${CLASS_PATH_WINDOWS} -d ${OUT_DIR} ${PROJECT_DIR}/*.java +printf "\n\n\nRunning Program...\n\n" +ORIGINAL_LOC=$(pwd) +cd $OUT_DIR +if java ${CUSTOM_PARAMS} -cp ".;../lib/bin/" -XX:+UseZGC "-Djava.library.path=${LIBRARY_PATH}" ${MAIN_CLASS} "$@"; then + ${ORIGINAL_LOC}/${LANGUAGE}/scripts/clean.sh + exit +fi +if java ${CUSTOM_PARAMS} -cp ".;../lib/bin/" -XX:+UnlockExperimentalVMOptions -XX:+UseZGC "-Djava.library.path=${LIBRARY_PATH}" ${MAIN_CLASS} "$@"; then + ${ORIGINAL_LOC}/${LANGUAGE}/scripts/clean.sh + exit +fi +java ${CUSTOM_PARAMS} -cp ".;../lib/bin/" -XX:+PrintCommandLineFlags "-Djava.library.path=${LIBRARY_PATH}" ${MAIN_CLASS} "$@" +${ORIGINAL_LOC}/${LANGUAGE}/scripts/clean.sh \ No newline at end of file diff --git a/Java/scripts/filelist b/Java/scripts/filelist index 455d98e..9e5004d 100644 --- a/Java/scripts/filelist +++ b/Java/scripts/filelist @@ -1,7 +1,10 @@ +build2.sh build.sh clean.sh commit.sh +jar2.sh jar.sh release.sh update.sh version_info +zip.sh diff --git a/Java/scripts/jar.sh b/Java/scripts/jar.sh index d201c59..61d1759 100755 --- a/Java/scripts/jar.sh +++ b/Java/scripts/jar.sh @@ -5,13 +5,13 @@ rm -Rf bin/* javac -source ${SOURCE_VERSION} -target ${TARGET_VERSION} -Xlint:unchecked -cp ${CLASS_PATH} -d ${OUT_DIR} ${PROJECT_DIR}/${PROJECT_NAME}.java printf "\n\n\nGenerating Manifest...\n\n" touch manifest -echo "Main-Class: ${MAIN_CLASS}" >> manifest +echo "Main-Class: ${MAIN_CLASS}" > manifest printf "\n\n\nCreating Jar...\n\n" ORIGINAL_LOC=$(pwd) cd ${OUT_DIR} jar cfm ${PROJECT_NAME}.jar ${ORIGINAL_LOC}/manifest sig jar uf ${PROJECT_NAME}.jar -C ../lib/bin/ . printf "\n\n\nRunning Program...\n\n" -java -cp .:../lib/bin -Djava.library.path="${LIBRARY_PATH}" -jar ${PROJECT_NAME}.jar "$@" -../${LANGUAGE}/scripts/clean.sh +java ${CUSTOM_PARAMS} -cp .:../lib/bin -Djava.library.path="${LIBRARY_PATH}" -jar ${PROJECT_NAME}.jar "$@" +${ORIGINAL_LOC}/${LANGUAGE}/scripts/clean.sh cd .. diff --git a/Java/scripts/jar2.sh b/Java/scripts/jar2.sh new file mode 100644 index 0000000..9167bb8 --- /dev/null +++ b/Java/scripts/jar2.sh @@ -0,0 +1,17 @@ +#Builds a runnable jar file using ${MAIN_CLASS} as an entry point and then runs the newly generated jar for Windows. +#Java +source ${LANGUAGE}/scripts/version_info +rm -Rf bin/* +javac -source ${SOURCE_VERSION} -target ${TARGET_VERSION} -Xlint:unchecked -cp ${CLASS_PATH_WINDOWS} -d ${OUT_DIR} ${PROJECT_DIR}/${PROJECT_NAME}.java +printf "\n\n\nGenerating Manifest...\n\n" +touch manifest +echo "Main-Class: ${MAIN_CLASS}" > manifest +printf "\n\n\nCreating Jar...\n\n" +ORIGINAL_LOC=$(pwd) +cd ${OUT_DIR} +jar cfm ${PROJECT_NAME}.jar ${ORIGINAL_LOC}/manifest sig +jar uf ${PROJECT_NAME}.jar -C ../lib/bin/ . +printf "\n\n\nRunning Program...\n\n" +java ${CUSTOM_PARAMS} -cp .;../lib/bin "-Djava.library.path=${LIBRARY_PATH}" -jar ${PROJECT_NAME}.jar "$@" +${ORIGINAL_LOC}/${LANGUAGE}/scripts/clean.sh +cd .. diff --git a/Java/scripts/md5 b/Java/scripts/md5 index 6ae0752..b2c3eed 100644 --- a/Java/scripts/md5 +++ b/Java/scripts/md5 @@ -1,6 +1,9 @@ -build.sh:22308eae5fd9c88aa16fef54cf03ae21 - +build2.sh:b1c6b7c6b2eb19ba54be6824bda8805b - +build.sh:5df470d49036bf7565493739aeebeaa8 - clean.sh:668a2f9b568c55f6a044a509315032f6 - commit.sh:5e4448db9ad48e72ec3a1ff4f5763b41 - -jar.sh:343cf505530401fb696296bc25a9b090 - -release.sh:b1b62203411b18d0fec1db3dc2e5a061 - +jar2.sh:7977fc138ee5db798d08c34734f0be93 - +jar.sh:821d5a109324d405f05c35c4bb129375 - +release.sh:027178aa6da76180401a188d8f03af64 - update.sh:3be721658983183efa395984acd96b03 - +zip.sh:273f5a83b80a8e54022d60514dfeec0a - diff --git a/Java/scripts/release.sh b/Java/scripts/release.sh index 0f7389c..fca8c4b 100644 --- a/Java/scripts/release.sh +++ b/Java/scripts/release.sh @@ -1,14 +1,28 @@ -#Creates a zip file containing all project contents. +#Use ./sig release to create a custom installer based on OS. #Java source ${LANGUAGE}/scripts/version_info -TARGET_FILE="${PROJECT_NAME}_${RELEASE_VERSION}.zip" FILES=$(cat ${LANGUAGE}/scripts/.package.files) -echo "Creating Package $TARGET_FILE..." -for f in $FILES -do - zip -ur $TARGET_FILE $f -done -echo "Complete!" -echo "" -echo "" -echo "" \ No newline at end of file +if [ "$1" = "windows" ];then + echo "Creating a package for Windows..." + echo "Not implemented yet." +elif [ "$1" = "mac" ];then + echo "Creating a package for Mac..." + echo "Not implemented yet." +elif [ "$1" = "linux" ];then + echo "Creating a package for Linux..." + cd .. + mkdir -vp RabiCloneOut/in + for f in $FILES + do + cp -Rv --parents $PROJECT_NAME/$f RabiCloneOut/in + done + jpackage --verbose --input RabiCloneOut/in/RabiClone --main-jar bin/RabiClone.jar --main-class sig.RabiClone --type app-image --dest RabiCloneOut + cp -Rv RabiCloneOut/RabiClone/lib/app/* RabiCloneOut/RabiClone + jpackage --verbose --app-image RabiCloneOut/RabiClone --name RabiClone + rm -Rfv RabiCloneOut + cd RabiClone + echo "Done!" +else + echo "Usage: " + echo " ./sig release " +fi \ No newline at end of file diff --git a/Java/scripts/zip.sh b/Java/scripts/zip.sh new file mode 100644 index 0000000..4de5b1a --- /dev/null +++ b/Java/scripts/zip.sh @@ -0,0 +1,14 @@ +#Create a zip folder containing all dependencies. For quick release. +#Java +source ${LANGUAGE}/scripts/version_info +TARGET_FILE="${PROJECT_NAME}_${RELEASE_VERSION}.zip" +FILES=$(cat ${LANGUAGE}/scripts/.package.files) +echo "Creating Package $TARGET_FILE..." +for f in $FILES +do + zip -ur $TARGET_FILE $f +done +echo "Complete!" +echo "" +echo "" +echo "" \ No newline at end of file diff --git a/sig b/sig index e4830e8..605eed4 100755 --- a/sig +++ b/sig @@ -6,6 +6,10 @@ define PROJECT_NAME "JavaProjectTemplate" define PROJECT_DIR "src/sig" define MAIN_CLASS "sig.${PROJECT_NAME}" define OUT_DIR "bin" +define LIBRARY_PATH "../lib" +define CLASS_PATH "${PROJECT_DIR}/..:lib/bin" +define CLASS_PATH_WINDOWS "${PROJECT_DIR}/..;lib/bin" +define CUSTOM_PARAMS "" define LANGUAGE "Java" source utils/main.sh \ No newline at end of file diff --git a/utils/.updateDirectories b/utils/.updateDirectories index e4dde11..0c078d1 100644 --- a/utils/.updateDirectories +++ b/utils/.updateDirectories @@ -1,3 +1,4 @@ Java/ +C/ scripts/ utils/ \ No newline at end of file diff --git a/utils/main.sh b/utils/main.sh index d299d6b..0a4c92a 100644 --- a/utils/main.sh +++ b/utils/main.sh @@ -25,4 +25,4 @@ if [ -z "$1" ] exit fi -./$LANGUAGE/scripts/$1.sh "${*:2}" \ No newline at end of file +./$LANGUAGE/scripts/$1.sh "${@:2}" \ No newline at end of file diff --git a/utils/md5 b/utils/md5 index baa339d..b8c2ada 100644 --- a/utils/md5 +++ b/utils/md5 @@ -1,4 +1,4 @@ define.sh:3ecab0dffe2adfb950f3eb7c7061b750 - -main.sh:d3d1bd0b56d8114eb7479964227f8576 - +main.sh:4e6e9f0650ec790ce2c4364db94f0caa - search.sh:81d08f5ff48e8a44b5f68387d426da05 - -.updateDirectories:0ede00461e947494545e694040787b3f - +.updateDirectories:fa5e95db12be22ae8aed7ecbc560e38c -