From 615e67934fb5e79233cbe4228b583f907b80e5c5 Mon Sep 17 00:00:00 2001 From: romeo-golf Date: Sun, 8 Jan 2017 19:54:23 +0000 Subject: [PATCH] Initial acarsdec service script installation --- bash/betas/acars.sh | 66 ++++++++++++++++++++++++++++++++++ bash/betas/hab-lora-gateway.sh | 1 + 2 files changed, 67 insertions(+) diff --git a/bash/betas/acars.sh b/bash/betas/acars.sh index 31244a3..f26b097 100755 --- a/bash/betas/acars.sh +++ b/bash/betas/acars.sh @@ -41,6 +41,12 @@ RECEIVER_BUILD_DIRECTORY="${RECIEVER_ROOT_DIRECTORY}/build" BETA_NAME="Acarsdec" BETA_GITHUB_URL="https://github.com/TLeconte/acarsdec.git" +# Decoder service script variables. +BETA_SERVICE_SCRIPT_NAME="acarsdec" +BETA_SERVICE_SCRIPT_URL="" +BETA_SERVICE_SCRIPT_PATH="/etc/init.d/${BETA_SERVICE_SCRIPT_NAME}" +BETA_SERVICE_SCRIPT_CONFIG="/etc/${BETA_SERVICE_SCRIPT_NAME}.conf" + ## INCLUDE EXTERNAL SCRIPTS source ${RECEIVER_BASH_DIRECTORY}/variables.sh @@ -94,6 +100,8 @@ CheckPackage automake CheckPackage libfftw3-3 CheckPackage libfftw3-dev CheckPackage libtool +CheckPackage procserv +CheckPackage telnet echo -e "" echo -e "\e[95m Configuring this device to run the ${BETA_NAME} binaries...\e[97m" echo -e "" @@ -159,6 +167,64 @@ if [[ true ]] ; then cd ${BETA_BUILD_DIRECTORY} fi +### INSTALL AS A SERVICE + +# Install service script. +if [[ -f ${BETA_SERVICE_SCRIPT_NAME} ]] ; then + # Check for local copy of service script. + if [[ `grep -c "conf=${BETA_SERVICE_SCRIPT_CONFIG}" ${BETA_SERVICE_SCRIPT_NAME}` -eq 1 ]] ; then + echo -en "\e[33m Installing service script at \"\e[37m${BETA_SERVICE_SCRIPT_PATH}\e[33m\"...\e[97m" + ACTION=$(cp -v ${BETA_SERVICE_SCRIPT_NAME} ${BETA_SERVICE_SCRIPT_PATH}) + ACTION=$(sudo chmod -v +x ${BETA_SERVICE_SCRIPT_PATH} 2>&1) + else + echo -en "\e[33m Invalid service script \"\e[37m${BETA_SERVICE_SCRIPT_NAME}\e[33m\"...\e[97m" + false + fi +elif [[ -n ${BETA_SERVICE_SCRIPT_URL} ]] ; then + # Otherwise attempt to download service script. + if [[ `echo ${BETA_SERVICE_SCRIPT_URL} | grep -c "^http"` -gt 0 ]] ; then + echo -en "\e[33m Downloading service script to \"\e[37m${BETA_SERVICE_SCRIPT_PATH}\e[33m\"...\e[97m" + ACTION=$(sudo curl ${BETA_SERVICE_SCRIPT_URL} -o ${BETA_SERVICE_SCRIPT_PATH} 2>&1) + ACTION=$(sudo chmod -v +x ${BETA_SERVICE_SCRIPT_PATH} 2>&1) + else + echo -en "\e[33m Invalid service script url \"\e[37m${BETA_SERVICE_SCRIPT_URL}\e[33m\"...\e[97m" + false + fi +else + # Otherwise error if unable to use local or downloaded service script + echo -en "\e[33m Unable to install service script at \"\e[37m${BETA_SERVICE_SCRIPT_PATH}\e[33m\"...\e[97m" + false +fi +CheckReturnCode + +# Generate and install service script configuration file. +if [[ -n ${BETA_SERVICE_SCRIPT_CONFIG} ]] ; then + echo -en "\e[33m Creating service config file \"\e[37m${BETA_SERVICE_SCRIPT_CONFIG}\e[33m\"...\e[97m" + sudo tee ${BETA_SERVICE_SCRIPT_CONFIG} > /dev/null 2>&1 < +#Syntax: +#port user directory command args +50200 root ${BETA_PROJECT_DIRECTORY} /usr/bin/env ./acarsdec +EOF + ACTION=$(chown -v pi:pi ${BETA_SERVICE_SCRIPT_CONFIG}) +else + echo -en "\e[33m Unable to create service config file...\e[97m" + false +fi +CheckReturnCode + +# Configure DECODER as a service. +echo -en "\e[33m Configuring ${BETA_NAME} as a service...\e[97m" +ACTION=$(sudo update-rc.d ${BETA_SERVICE_SCRIPT_NAME} defaults 2>&1) +CheckReturnCode + +# Start the DECODER service. +echo -en "\e[33m Starting the ${BETA_NAME} service...\e[97m" +ACTION=$(sudo /etc/init.d/${BETA_SERVICE_SCRIPT_NAME} start 2>&1) +CheckReturnCode + ## SETUP COMPLETE # Return to the project root directory. diff --git a/bash/betas/hab-lora-gateway.sh b/bash/betas/hab-lora-gateway.sh index 6a48914..7ffab1f 100755 --- a/bash/betas/hab-lora-gateway.sh +++ b/bash/betas/hab-lora-gateway.sh @@ -494,6 +494,7 @@ if [[ -n ${DECODER_SERVICE_SCRIPT_CONFIG} ]] ; then EOF ACTION=$(chown -v pi:pi ${DECODER_SERVICE_SCRIPT_CONFIG}) else + echo -en "\e[33m Unable to create service config file...\e[97m" false fi CheckReturnCode