first changes to docker
This commit is contained in:
149
QPKG/shared/RoonServer.sh
Executable file
149
QPKG/shared/RoonServer.sh
Executable file
@@ -0,0 +1,149 @@
|
||||
#!/bin/sh
|
||||
CONF=/etc/config/qpkg.conf
|
||||
QPKG_NAME="RoonServer"
|
||||
QPKG_ROOT=`/sbin/getcfg $QPKG_NAME Install_Path -f ${CONF}`
|
||||
|
||||
QCS_NAME="container-station"
|
||||
QCS_QPKG_DIR=$(/sbin/getcfg $QCS_NAME Install_Path -f $CONF)
|
||||
DOCKER_CMD=$QCS_QPKG_DIR/bin/system-docker
|
||||
CONT_NAME="qnap-roonserver"
|
||||
|
||||
WEB_PATH="/home/httpd"
|
||||
WEBUI=$(/sbin/getcfg $QPKG_NAME webUI -f ${CONF});
|
||||
|
||||
ROONONNAS_DIR=`/sbin/getcfg $QPKG_NAME DB_Path -f /etc/config/qpkg.conf`
|
||||
ROON_DATAROOT="${ROONONNAS_DIR}/RoonOnNAS"
|
||||
ROON_TMP_DIR="${QPKG_ROOT}/tmp"
|
||||
ROON_ID_DIR="${QPKG_ROOT}/id"
|
||||
|
||||
QNAP_QTS_VER=$(/sbin/getcfg system version)
|
||||
QNAP_QTS_BUILD=$(/sbin/getcfg system 'Build Number')
|
||||
QNAP_MEMTOTAL=`awk '/MemTotal/ {print $2}' /proc/meminfo`
|
||||
QNAP_MEMFREE=`awk '/MemFree/ {print $2}' /proc/meminfo`
|
||||
QPKG_VERSION=`/sbin/getcfg $QPKG_NAME Version -f ${CONF}`
|
||||
MAJOR_QTS_VER=`echo "$QNAP_QTS_VER" | tr -d '.' | cut -c1-2`
|
||||
ARCH=$(uname -m)
|
||||
|
||||
QNAP_MODEL=`/sbin/getsysinfo model`
|
||||
QNAP_SERIAL=`/sbin/get_hwsn`
|
||||
ROON_DATABASE_DIR_FS=`df -PThi "${ROON_DATAROOT}" | awk '{print $2}' | tail -1`
|
||||
ROON_DATABASE_DIR_FREE_INODES=`df -PThi "${ROON_DATAROOT}" | awk '{print $5}' | tail -1`
|
||||
ROON_FFMPEG_DIR="${ROON_DATAROOT}/bin"
|
||||
ROON_LOG_FILE="${ROON_DATAROOT}/RoonOnNAS.log.txt"
|
||||
|
||||
ST_COLOR="\033[38;5;34m"
|
||||
HL_COLOR="\033[38;5;197m"
|
||||
REG_COLOR="\033[0m"
|
||||
|
||||
## Log Function
|
||||
echolog () {
|
||||
TIMESTAMP=$(date +%d.%m.%y-%H:%M:%S)
|
||||
if [[ $# == 2 ]]; then
|
||||
PARAMETER1=$1
|
||||
PARAMETER2=$2
|
||||
echo -e "${ST_COLOR}${TIMESTAMP}${REG_COLOR} --- ${HL_COLOR}${PARAMETER1}:${REG_COLOR} ${PARAMETER2}"
|
||||
echo "${TIMESTAMP} --- ${PARAMETER1}: ${PARAMETER2}" >> "$ROON_LOG_FILE"
|
||||
elif [[ $# == 1 ]]; then
|
||||
PARAMETER1=$1
|
||||
echo -e "${ST_COLOR}${TIMESTAMP}${REG_COLOR} --- ${PARAMETER1}"
|
||||
echo "${TIMESTAMP} --- ${PARAMETER1}" >> "$ROON_LOG_FILE"
|
||||
else
|
||||
echo -e "The echolog function requires 1 or 2 parameters."
|
||||
fi
|
||||
}
|
||||
|
||||
info ()
|
||||
{
|
||||
## Echoing System Info
|
||||
echolog "ROON_DATABASE_DIR" "${ROON_DATAROOT} - [`[ -d \"${ROON_DATAROOT}\" ] && echo \"available\" || echo \"not available\"`]"
|
||||
echolog "ROON_DATABASE_DIR_FS" "${ROON_DATABASE_DIR_FS}"
|
||||
echolog "ROON_ID_DIR" "$ROON_ID_DIR - [`[ -d \"$ROON_ID_DIR\" ] && echo \"available\" || echo \"not available\"`]"
|
||||
echolog "Free Inodes" "${ROON_DATABASE_DIR_FREE_INODES}"
|
||||
echolog "ROON_DIR" "${QPKG_ROOT}"
|
||||
echolog "Model" "${QNAP_MODEL}"
|
||||
echolog "Architecture" "${ARCH}"
|
||||
echolog "Total Memory" "${QNAP_MEMTOTAL}"
|
||||
echolog "Available Memory" "${QNAP_MEMFREE}"
|
||||
echolog "QTS Version" "${QNAP_QTS_VER} - Build: ${QNAP_QTS_BUILD}"
|
||||
echolog "PKG Version" "${QPKG_VERSION}"
|
||||
echolog "Hostname" "${HOSTNAME}"
|
||||
}
|
||||
|
||||
RoonOnNAS_folderCheck ()
|
||||
{
|
||||
if [ -d "${ROONONNAS_DIR}" ]; then
|
||||
[ -d "${ROONONNAS_DIR}/RoonOnNAS" ] || mkdir "${ROONONNAS_DIR}/RoonOnNAS"
|
||||
[ -d "${ROONONNAS_DIR}/RoonOnNAS/bin" ] || mkdir "${ROONONNAS_DIR}/RoonOnNAS/bin"
|
||||
fi
|
||||
}
|
||||
|
||||
start_RoonServer () {
|
||||
if [ "${ROON_DATAROOT}" != "/RoonOnNAS" ] && [ -d "${ROON_DATAROOT}" ]; then
|
||||
|
||||
export ROON_DATAROOT
|
||||
export ROON_ID_DIR
|
||||
|
||||
export QNAP_MODEL
|
||||
export QNAP_SERIAL
|
||||
export QNAP_QTS_VER
|
||||
|
||||
## Creating required directories, if they do not exist
|
||||
[ -d "$ROON_ID_DIR" ] || mkdir "$ROON_ID_DIR"
|
||||
[ -d "$ROON_TMP_DIR" ] || mkdir "$ROON_TMP_DIR"
|
||||
|
||||
${DOCKER_CMD} compose -f $QPKG_ROOT/docker/docker-compose.yml -f $QPKG_ROOT/docker/qnap.yml up -d
|
||||
|
||||
fi
|
||||
|
||||
}
|
||||
|
||||
start_daemon ()
|
||||
{
|
||||
info
|
||||
#Launch the service in the background if RoonServer share exists.
|
||||
ln -sfn "${QPKG_ROOT}/web" "${WEB_PATH}${WEBUI}"
|
||||
start_RoonServer
|
||||
}
|
||||
|
||||
case "$1" in
|
||||
start)
|
||||
ENABLED=$(/sbin/getcfg $QPKG_NAME Enable -u -d FALSE -f $CONF)
|
||||
RoonOnNAS_folderCheck
|
||||
if [ "$ENABLED" != "TRUE" ]; then
|
||||
echolog "$QPKG_NAME is disabled."
|
||||
exit 1
|
||||
fi
|
||||
if [ -z `$DOCKER_CMD compose ps -q $CONT_NAME` ] || [ -z `$DOCKER_CMD ps -q --no-trunc | grep $($DOCKER_CMD compose ps -q $CONT_NAME)` ]; then
|
||||
start_daemon
|
||||
else
|
||||
echolog "${QPKG_NAME} is already running with..."
|
||||
fi
|
||||
;;
|
||||
|
||||
stop)
|
||||
if [ -z `$DOCKER_CMD compose ps -q $CONT_NAME` ] || [ -z `$DOCKER_CMD ps -q --no-trunc | grep $($DOCKER_CMD compose ps -q $CONT_NAME)` ]; then
|
||||
echolog "${QPKG_NAME} is not running."
|
||||
else
|
||||
echolog "Stopping RoonServer..."
|
||||
${DOCKER_CMD} compose -f $QPKG_ROOT/docker/docker-compose.yml -f $QPKG_ROOT/docker/qnap.yml down
|
||||
if [[ $2 != "keepwebalive" ]]; then
|
||||
rm -rf "${QPKG_ROOT}/web/tmp"/*
|
||||
rm "${WEB_PATH}${WEBUI}"
|
||||
fi
|
||||
echolog "RoonServer has been stopped."
|
||||
fi
|
||||
${DOCKER_CMD} compose -f $QPKG_ROOT/docker/docker-compose.yml -f $QPKG_ROOT/docker/qnap.yml down
|
||||
;;
|
||||
|
||||
restart)
|
||||
isRestart=true
|
||||
$0 stop
|
||||
$0 start
|
||||
;;
|
||||
|
||||
*)
|
||||
echo "Usage: $0 {start|stop|restart}"
|
||||
exit 1
|
||||
esac
|
||||
|
||||
exit 0
|
||||
Reference in New Issue
Block a user