Files
docker-prowlarr/scripts/start-server.sh

123 lines
5.6 KiB
Bash

#!/bin/bash
if [ "$PROWLARR_REL" == "latest" ]; then
LAT_V="$(wget -qO- https://api.github.com/repos/Prowlarr/Prowlarr/releases/latest | jq -r '.tag_name' | sed 's/^v//')"
elif [ "$PROWLARR_REL" == "nightly" ]; then
LAT_V="$(wget -qO- https://api.github.com/repos/Prowlarr/Prowlarr/releases | jq -r '[.[] | select(.prerelease == true)] | first | .tag_name' | sed 's/^v//')"
else
echo "---Version manually set to: $PROWLARR_REL"
LAT_V="$PROWLARR_REL"
fi
if [ ! -f ${DATA_DIR}/Prowlarr/release_info ]; then
CUR_V=""
else
CUR_V="$(cat ${DATA_DIR}/Prowlarr/release_info | grep "ReleaseVersion" | cut -d '=' -f2)"
fi
if [ -z $LAT_V ]; then
if [ -z $CUR_V ]; then
echo "---Can't get latest version of Prowlarr, putting container into sleep mode!---"
sleep infinity
else
echo "---Can't get latest version of Prowlarr, falling back to v$CUR_V---"
LAT_V="$CUR_V"
fi
fi
rm ${DATA_DIR}/Prowlarr-v*.tar.gz
echo "---Version Check---"
if [ "$PROWLARR_REL" == "nightly" ]; then
if [ -z "$CUR_V" ]; then
echo "---Prowlarr not found, downloading and installing v$LAT_V...---"
cd ${DATA_DIR}
if wget -q -nc --show-progress --progress=bar:force:noscroll -O ${DATA_DIR}/Prowlarr-v$LAT_V.tar.gz "https://github.com/Prowlarr/Prowlarr/releases/download/v${LAT_V}/Prowlarr.develop.${LAT_V}.linux-core-x64.tar.gz" ; then
echo "---Successfully downloaded Prowlarr v$LAT_V---"
else
rm ${DATA_DIR}/Prowlarr-v$LAT_V.tar.gz
echo "---Something went wrong, can't download Prowlarr v$LAT_V, putting container into sleep mode!---"
sleep infinity
fi
mkdir ${DATA_DIR}/Prowlarr
tar -C ${DATA_DIR}/Prowlarr --strip-components=1 -xf ${DATA_DIR}/Prowlarr-v$LAT_V.tar.gz
if [ ! -f ${DATA_DIR}/Prowlarr/release_info ]; then
echo "ReleaseVersion=$LAT_V" > ${DATA_DIR}/Prowlarr/release_info
fi
rm ${DATA_DIR}/Prowlarr-v$LAT_V.tar.gz
elif [ "$CUR_V" != "$LAT_V" ]; then
echo "---Version missmatch, installed v$CUR_V, downloading and installing latest v$LAT_V...---"
cd ${DATA_DIR}
if wget -q -nc --show-progress --progress=bar:force:noscroll -O ${DATA_DIR}/Prowlarr-v$LAT_V.tar.gz "https://github.com/Prowlarr/Prowlarr/releases/download/v${LAT_V}/Prowlarr.develop.${LAT_V}.linux-core-x64.tar.gz" ; then
echo "---Successfully downloaded Prowlarr v$LAT_V---"
else
rm ${DATA_DIR}/Prowlarr-v$LAT_V.tar.gz
echo "---Something went wrong, can't download Prowlarr v$LAT_V, falling back to v$CUR_V!---"
EXIT_STATUS=1
fi
if [ "${EXIT_STATUS}" != "1" ]; then
rm -R ${DATA_DIR}/Prowlarr
mkdir ${DATA_DIR}/Prowlarr
tar -C ${DATA_DIR}/Prowlarr --strip-components=1 -xf ${DATA_DIR}/Prowlarr-v$LAT_V.tar.gz
if [ ! -f ${DATA_DIR}/Prowlarr/release_info ]; then
echo "ReleaseVersion=$LAT_V" > ${DATA_DIR}/Prowlarr/release_info
elif [ "$(cat ${DATA_DIR}/Prowlarr/release_info | grep "ReleaseVersion" | cut -d '=' -f2)" != "${LAT_V}" ]; then
sed -i "/^ReleaseVersion=/c\ReleaseVersion=$LAT_V" ${DATA_DIR}/Prowlarr/release_info
fi
rm ${DATA_DIR}/Prowlarr-v$LAT_V.tar.gz
fi
elif [ "$CUR_V" == "$LAT_V" ]; then
echo "---Prowlarr v$CUR_V up-to-date---"
fi
else
if [ -z "$CUR_V" ]; then
echo "---Prowlarr not found, downloading and installing v$LAT_V...---"
cd ${DATA_DIR}
if wget -q -nc --show-progress --progress=bar:force:noscroll -O ${DATA_DIR}/Prowlarr-v$LAT_V.tar.gz "https://github.com/Prowlarr/Prowlarr/releases/download/v${LAT_V}/Prowlarr.master.${LAT_V}.linux-core-x64.tar.gz" ; then
echo "---Successfully downloaded Prowlarr v$LAT_V---"
else
echo "---Something went wrong, can't download Prowlarr v$LAT_V, putting container into sleep mode!---"
sleep infinity
fi
mkdir ${DATA_DIR}/Prowlarr
tar -C ${DATA_DIR}/Prowlarr --strip-components=1 -xf ${DATA_DIR}/Prowlarr-v$LAT_V.tar.gz
if [ ! -f ${DATA_DIR}/Prowlarr/release_info ]; then
echo "ReleaseVersion=$LAT_V" > ${DATA_DIR}/Prowlarr/release_info
fi
rm ${DATA_DIR}/Prowlarr-v$LAT_V.tar.gz
elif [ "$CUR_V" != "$LAT_V" ]; then
echo "---Version missmatch, installed v$CUR_V, downloading and installing latest v$LAT_V...---"
cd ${DATA_DIR}
if wget -q -nc --show-progress --progress=bar:force:noscroll -O ${DATA_DIR}/Prowlarr-v$LAT_V.tar.gz "https://github.com/Prowlarr/Prowlarr/releases/download/v${LAT_V}/Prowlarr.master.${LAT_V}.linux-core-x64.tar.gz" ; then
echo "---Successfully downloaded Prowlarr v$LAT_V---"
else
rm ${DATA_DIR}/Prowlarr-v$LAT_V.tar.gz
echo "---Something went wrong, can't download Prowlarr v$LAT_V, falling back to v$CUR_V!---"
EXIT_STATUS=1
fi
if [ "${EXIT_STATUS}" != "1" ]; then
rm -R ${DATA_DIR}/Prowlarr
mkdir ${DATA_DIR}/Prowlarr
tar -C ${DATA_DIR}/Prowlarr --strip-components=1 -xf ${DATA_DIR}/Prowlarr-v$LAT_V.tar.gz
if [ ! -f ${DATA_DIR}/Prowlarr/release_info ]; then
echo "ReleaseVersion=$LAT_V" > ${DATA_DIR}/Prowlarr/release_info
elif [ "$(cat ${DATA_DIR}/Prowlarr/release_info | grep "ReleaseVersion" | cut -d '=' -f2)" != "${LAT_V}" ]; then
sed -i "/^ReleaseVersion=/c\ReleaseVersion=$LAT_V" ${DATA_DIR}/Prowlarr/release_info
fi
rm ${DATA_DIR}/Prowlarr-v$LAT_V.tar.gz
fi
elif [ "$CUR_V" == "$LAT_V" ]; then
echo "---Prowlarr v$CUR_V up-to-date---"
fi
fi
echo "---Preparing Server---"
chmod -R ${DATA_PERM} ${DATA_DIR}
echo "---Starting Prowlarr---"
cd ${DATA_DIR}
if [ -f ${DATA_DIR}/Prowlarr/Prowlarr ]; then
${DATA_DIR}/Prowlarr/Prowlarr -nobrowser -data=${DATA_DIR} ${START_PARAMS}
else
echo "---Something went wrong, can't find executable, putting container into sleep mode!"
sleep infinity
fi