From e57d62471bf5f683027b9c59f0a4e3c2b0ffeb74 Mon Sep 17 00:00:00 2001 From: Ziver Koc Date: Thu, 29 Jul 2021 10:30:55 +0100 Subject: [PATCH] Added hal.service file for systemd and updated the run script to support forground execution --- hal.service | 16 ++++++++++++++ run.sh | 60 ++++++++++++++++++++++++++++++++++++++++++++++------- 2 files changed, 69 insertions(+), 7 deletions(-) create mode 100644 hal.service 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