diff --git a/hal.service b/hal.service new file mode 100644 index 00000000..47b63b84 --- /dev/null +++ b/hal.service @@ -0,0 +1,16 @@ +# This is a SystemD configuration for the Hal Server. +# +# To activate the service run: +# - sudo cp hal.service /lib/systemd/system/ +# - sudo systemctl enable hal.service +# + +[Unit] +Description=Hal Server + +[Service] +Type=idle +ExecStart=/home/pi/repo/hal/run.sh --forground + +[Install] +WantedBy=multi-user.target diff --git a/run.sh b/run.sh index 12b096a5..6d5bd599 100755 --- a/run.sh +++ b/run.sh @@ -1,12 +1,58 @@ #!/bin/bash -#ant clean +# ----------------------------------------------- +# User input +# ----------------------------------------------- + +function printHelp() { + echo "Run code analysis through SonarQube. +Usage: + + $(basename $0) + [-f|--foreground] + [-h|--help] + +Where: + --foreground Run Hal Server in the foreground instead of detatching a new screen. + --help Print this help message. + " +} + +MODE="SCREEN" + +until [[ $# -eq 0 ]]; do + case "$1" in + -f|--forground) + MODE="FORGROUND" + shift + ;; + + *) + echo "ERROR: Unknown input parameter: $1=$2" + exit 1 + ;; + esac + + shift +done + +# ----------------------------------------------- +# Execute +# ----------------------------------------------- + +# Build Hal source ./gradlew build -# Kill current session -screen -S hal -X kill -# Start new session -screen -S hal -L -d -m ./gradlew run +if [[ ${MODE} == "FORGROUND" ]]; then + ./gradlew run +else + # Kill current session + screen -S hal -X kill + # Start new session + screen -S hal -L -d -m ./gradlew run + + echo "-------------------------" + screen -list +fi + -echo "-----------------" -screen -list