Refactored run script to not run Hal through gradle.
This commit is contained in:
parent
13b8dc95db
commit
425012517c
1 changed files with 66 additions and 8 deletions
74
run.sh
Executable file → Normal file
74
run.sh
Executable file → Normal file
|
|
@ -18,7 +18,7 @@ Where:
|
||||||
"
|
"
|
||||||
}
|
}
|
||||||
|
|
||||||
MODE="SCREEN"
|
MODE="FOREGROUND"
|
||||||
|
|
||||||
until [[ $# -eq 0 ]]; do
|
until [[ $# -eq 0 ]]; do
|
||||||
case "$1" in
|
case "$1" in
|
||||||
|
|
@ -27,6 +27,11 @@ until [[ $# -eq 0 ]]; do
|
||||||
shift
|
shift
|
||||||
;;
|
;;
|
||||||
|
|
||||||
|
-b|--background)
|
||||||
|
MODE="BACKGROUND"
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
|
||||||
-h|--help)
|
-h|--help)
|
||||||
printHelp
|
printHelp
|
||||||
exit 0
|
exit 0
|
||||||
|
|
@ -43,27 +48,80 @@ until [[ $# -eq 0 ]]; do
|
||||||
shift
|
shift
|
||||||
done
|
done
|
||||||
|
|
||||||
|
# -----------------------------------------------
|
||||||
|
# Functions
|
||||||
|
# -----------------------------------------------
|
||||||
|
|
||||||
|
function startHal {
|
||||||
|
local ARGS=$1
|
||||||
|
local CLASSPATH="$(cd "${INSTALL_DIR}" && find . -name "*.jar" -type f -printf '%p:')"
|
||||||
|
CLASSPATH=${CLASSPATH::-1}
|
||||||
|
|
||||||
|
(set -x && cd "${INSTALL_DIR}" && java -classpath "${CLASSPATH}" se.hal.HalServer ${ARGS})
|
||||||
|
local EXIT_CODE=$?
|
||||||
|
|
||||||
|
return ${EXIT_CODE}
|
||||||
|
}
|
||||||
|
|
||||||
|
function createSymLink {
|
||||||
|
local file=$1
|
||||||
|
|
||||||
|
if [[ -f "./${file}" ]]; then
|
||||||
|
echo "INFO: Creating symlink for: ${file}"
|
||||||
|
ln -s -f "$(realpath "./${file}")" "${INSTALL_DIR}/${file}"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
# -----------------------------------------------
|
# -----------------------------------------------
|
||||||
# Execute
|
# Execute
|
||||||
# -----------------------------------------------
|
# -----------------------------------------------
|
||||||
|
# Prepare execution
|
||||||
|
|
||||||
# gradle returns normally when doing ctr-c so we need to add a
|
# gradle returns normally when doing ctr-c so we need to add a
|
||||||
# trap where the bash script exits instead of continuing.
|
# trap where the bash script exits instead of continuing.
|
||||||
trap 'exit 130' INT
|
trap 'exit 130' INT
|
||||||
|
|
||||||
# Build Hal source
|
INSTALL_DIR="."
|
||||||
./gradlew build
|
|
||||||
|
if [[ -d "./hal-core/src" ]]; then
|
||||||
|
# We are operating on source code so build Hal
|
||||||
|
echo "INFO: Operating in source directory, will build Hal."
|
||||||
|
INSTALL_DIR="./build/install/Hal"
|
||||||
|
|
||||||
|
./gradlew --console=rich installDist
|
||||||
|
EXIT_CODE=$?
|
||||||
|
|
||||||
|
if [[ ${EXIT_CODE} -ne 0 ]]; then
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo ""
|
||||||
|
createSymLink "hal.conf"
|
||||||
|
createSymLink "hal.db"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Execute
|
||||||
|
|
||||||
|
echo ""
|
||||||
|
echo "INFO: Starting Hal in the ${MODE}."
|
||||||
|
|
||||||
if [[ ${MODE} == "FOREGROUND" ]]; then
|
if [[ ${MODE} == "FOREGROUND" ]]; then
|
||||||
./gradlew run
|
EXIT_CODE=200
|
||||||
else
|
|
||||||
|
while [[ ${EXIT_CODE} -eq 200 ]]; do
|
||||||
|
# Restart as long as we have a exit code of 200, this allows the application to restart itself
|
||||||
|
startHal
|
||||||
|
EXIT_CODE=$?
|
||||||
|
done
|
||||||
|
elif [[ ${MODE} == "BACKGROUND" ]]; then
|
||||||
# Kill current session
|
# Kill current session
|
||||||
screen -S hal -X kill
|
screen -S hal -X kill
|
||||||
# Start new session
|
# Start new session
|
||||||
screen -S hal -L -d -m ./gradlew run
|
screen -S hal -L -d -m ./run --foreground
|
||||||
|
|
||||||
echo "-------------------------"
|
echo "-------------------------"
|
||||||
screen -list
|
screen -list
|
||||||
|
else
|
||||||
|
echo "ERROR: Unknown mode: ${MODE}"
|
||||||
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue