Files
hassio-addons/joal/rootfs/run.sh
2021-05-13 07:30:00 +02:00

62 lines
1.9 KiB
Bash

#!/usr/bin/env bashio
bashio::log.info "Starting addon..."
#################
# NGINX SETTING #
#################
declare port
declare certfile
declare ingress_interface
declare ingress_port
declare keyfile
port=$(bashio::addon.port 80)
ingress_port=$(bashio::addon.ingress_port)
ingress_interface=$(bashio::addon.ip_address)
sed -i "s/%%port%%/${ingress_port}/g" /etc/nginx/servers/ingress.conf
sed -i "s/%%interface%%/${ingress_interface}/g" /etc/nginx/servers/ingress.conf
################
# JOAL SETTING #
################
declare TOKEN
TOKEN=$(bashio::config 'secret_token')
UPSTREAM=$(bashio::config 'upstream')
mv -f /data/joal/config.json / || true
wget -O /tmp/joal.tar.gz "https://github.com/anthonyraymond/joal/releases/download/${UPSTREAM}/joal.tar.gz"
mkdir -p /data/joal
tar zxvf /tmp/joal.tar.gz -C /data/joal >/dev/null
chown -R $(id -u):$(id -g) /data/joal
rm /data/joal/jack-of*
bashio::log.info "... Joal updated"
mv -f /config.json /data/joal/ || true
###############
# LAUNCH APPS #
###############
nohup java -jar /joal/joal.jar --joal-conf=/data/joal --spring.main.web-environment=true --server.port="8081" --joal.ui.path.prefix="joal" --joal.ui.secret-token=$TOKEN \
& bashio::log.info "... Joal started with secret token $TOKEN"
# Wait for transmission to become available
bashio::net.wait_for 8081 localhost 900 || true
exec nginx || bashio::log.fatal "... Nginx not started, only access through webui available" \
& bashio::log.info "... Nginx started for Ingress"
###########
# TIMEOUT #
###########
if bashio::config.has_value 'run_for_hours'; then
RUNTIME=$(bashio::config 'run_for_hours')
bashio::log.info "... Addon will stop after $RUNTIME hours"
sleep $TIMEOUT && \
kill "$PID" && \
bashio::log.info "... Timeout achieved, addon will stop !"
else
bashio::log.info "... run_for_hours option not defined, addon will run continuously"
fi"