update
This commit is contained in:
@@ -1,12 +1,12 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
VERS='4.04202023'
|
VERS='4.04212023'
|
||||||
|
|
||||||
MMFOLDER="/opt/idssys/mediamanager"
|
MMFOLDER="/opt/idssys/mediamanager"
|
||||||
MMSRV=$(/sbin/ip -o -4 addr list eth0 | awk '{print $4}' | cut -d/ -f1)
|
MMSRV=$(/sbin/ip -o -4 addr list eth0 | awk '{print $4}' | cut -d/ -f1)
|
||||||
|
|
||||||
UPDATESERVICES=radarr,lidarr,jackett,bazarr
|
UPDATESERVICES=radarr,lidarr,jackett,bazarr,ombi,sonarr
|
||||||
BETA_SERVICES=" radarr "
|
BETA_SERVICES=" "
|
||||||
|
|
||||||
IFS=,
|
IFS=,
|
||||||
UPDATE_SERVICES=(${UPDATESERVICES})
|
UPDATE_SERVICES=(${UPDATESERVICES})
|
||||||
@@ -45,8 +45,10 @@ MM_SERVICE_PORTS['bazarr']='6767'
|
|||||||
|
|
||||||
declare -A MM_UPDATE_REPO
|
declare -A MM_UPDATE_REPO
|
||||||
#MM_UPDATE_REPO['ombi']='Ombi-app'
|
#MM_UPDATE_REPO['ombi']='Ombi-app'
|
||||||
|
MM_UPDATE_REPO['ombi']='systemd'
|
||||||
MM_UPDATE_REPO['radarr']='radarr'
|
MM_UPDATE_REPO['radarr']='radarr'
|
||||||
#MM_UPDATE_REPO['sonarr']='sonarr'
|
#MM_UPDATE_REPO['sonarr']='sonarr'
|
||||||
|
MM_UPDATE_REPO['sonarr']='systemd'
|
||||||
MM_UPDATE_REPO['lidarr']='lidarr'
|
MM_UPDATE_REPO['lidarr']='lidarr'
|
||||||
MM_UPDATE_REPO['jackett']='jackett'
|
MM_UPDATE_REPO['jackett']='jackett'
|
||||||
MM_UPDATE_REPO['bazarr']='morpheus65535'
|
MM_UPDATE_REPO['bazarr']='morpheus65535'
|
||||||
|
|||||||
179
mm-scripts.sh
179
mm-scripts.sh
@@ -650,92 +650,117 @@ UPDATESERVICE(){
|
|||||||
echo -e "${idsCL[Green]}Updating ${usrvc^} Service${idsCL[Default]}"
|
echo -e "${idsCL[Green]}Updating ${usrvc^} Service${idsCL[Default]}"
|
||||||
DIVIDER . lightGreen
|
DIVIDER . lightGreen
|
||||||
|
|
||||||
msg="Stopping service and preparing"
|
if [[ " ${UPDATE_SERVICES[*]} " =~ " ${usrvc} " ]]; then
|
||||||
c=0; spc=''; spc1=$((${cw_spc}-${#msg}))
|
|
||||||
until [ $c = ${spc1} ]; do spc="${spc} "; c=`expr $c + 1`; done
|
|
||||||
echo -en "${idsCL[White]}${msg}${spc} : ${idsCL[Default]}"
|
|
||||||
|
|
||||||
rm -f ${MMFOLDER}/logs/update.${usrvc}
|
msg="Stopping service and preparing"
|
||||||
touch ${MMFOLDER}/logs/update.${usrvc}
|
c=0; spc=''; spc1=$((${cw_spc}-${#msg}))
|
||||||
|
until [ $c = ${spc1} ]; do spc="${spc} "; c=`expr $c + 1`; done
|
||||||
|
echo -en "${idsCL[White]}${msg}${spc} : ${idsCL[Default]}"
|
||||||
|
|
||||||
/bin/systemctl stop ${usrvc} >> ${MMFOLDER}/logs/update.${usrvc}
|
rm -f ${MMFOLDER}/logs/update.${usrvc}
|
||||||
[ "${usrvc}" == "radarr" ] && [[ " ${SERVICES_CHECK[*]} " =~ " radarr3d " ]] && /bin/systemctl stop radarr3d >> ${MMFOLDER}/logs/update.${usrvc}
|
touch ${MMFOLDER}/logs/update.${usrvc}
|
||||||
|
|
||||||
tmpfile=/tmp/${usrvc}-update.tar.gz
|
/bin/systemctl stop ${usrvc} >> ${MMFOLDER}/logs/update.${usrvc}
|
||||||
bak=/opt/${usrvc}.bak.tgz
|
[ "${usrvc}" == "radarr" ] && [[ " ${SERVICES_CHECK[*]} " =~ " radarr3d " ]] && /bin/systemctl stop radarr3d >> ${MMFOLDER}/logs/update.${usrvc}
|
||||||
[[ -f ${bak} ]] && rm -f "${bak}" &>/dev/null
|
|
||||||
[[ -f ${tmpfile} ]] && rm -f "${tmpfile}" &>/dev/null
|
|
||||||
|
|
||||||
echo -e "${idsCL[Green]}Done${idsCL[Default]}"
|
tmpfile=/tmp/${usrvc}-update.tar.gz
|
||||||
|
bak=/opt/${usrvc}.bak.tgz
|
||||||
|
[[ -f ${bak} ]] && rm -f "${bak}" &>/dev/null
|
||||||
|
[[ -f ${tmpfile} ]] && rm -f "${tmpfile}" &>/dev/null
|
||||||
|
|
||||||
msg="Finding latest update url"
|
|
||||||
c=0; spc=''; spc1=$((${cw_spc}-${#msg}))
|
|
||||||
until [ $c = ${spc1} ]; do spc="${spc} "; c=`expr $c + 1`; done
|
|
||||||
echo -en "${idsCL[White]}${msg}${spc} : ${idsCL[Default]}"
|
|
||||||
|
|
||||||
if [[ $BETA_SERVICES == *${usrvc}* ]]; then
|
|
||||||
latest_release_url=`curl -s https://api.github.com/repos/${MM_UPDATE_REPO[${usrvc}]}/${usrvc}/releases | jq -r '.[0].assets[].browser_download_url' | grep "${MM_UPDATE_REPO_GREP[${usrvc}]}" | cut -d '"' -f 4 | grep -i 'https://'`
|
|
||||||
echo "$(date) - Updating Service (${usrvc}) : BETA UPDATEURL = ${latest_release_url}" >> $logfile
|
|
||||||
beta="BETA "
|
|
||||||
else
|
|
||||||
latest_release_url=`curl -s https://api.github.com/repos/${MM_UPDATE_REPO[${usrvc}]}/${usrvc}/releases/latest | jq -r '.assets[].browser_download_url' | grep "${MM_UPDATE_REPO_GREP[${usrvc}]}" | cut -d '"' -f 4 | grep -i 'https://'`
|
|
||||||
echo "$(date) - Updating Service (${usrvc}) : UPDATEURL = ${latest_release_url}" >> $logfile
|
|
||||||
beta=""
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo -e "${idsCL[Green]}Done${idsCL[Default]}"
|
|
||||||
echo -e "${idsCL[LightCyan]}${beta}Download URL: ${idsCL[LightGreen]}${latest_release_url}${idsCL[Default]}"
|
|
||||||
echo
|
|
||||||
|
|
||||||
msg="Downloading and updating"
|
|
||||||
c=0; spc=''; spc1=$((${cw_spc}-${#msg}))
|
|
||||||
until [ $c = ${spc1} ]; do spc="${spc} "; c=`expr $c + 1`; done
|
|
||||||
echo -en "${idsCL[White]}${msg}${spc} : ${idsCL[Default]}"
|
|
||||||
|
|
||||||
if curl --output /dev/null --silent --head --fail $latest_release_url; then
|
|
||||||
wget -qO ${tmpfile} $latest_release_url >> ${MMFOLDER}/logs/update.${usrvc}
|
|
||||||
if [[ ( $? -eq 0 ) && ( -f ${tmpfile} ) ]]; then
|
|
||||||
if [ "${usrvc}" != "bazarr" ]; then
|
|
||||||
rm -Rf /opt/${usrvc^} >> ${MMFOLDER}/logs/update.${usrvc}
|
|
||||||
mkdir /opt/${usrvc^} >> ${MMFOLDER}/logs/update.${usrvc}
|
|
||||||
fi
|
|
||||||
/bin/tar -cpPf $bak /opt/${usrvc^} >> ${MMFOLDER}/logs/update.${usrvc}
|
|
||||||
|
|
||||||
if [ "${usrvc}" == "ombi" ]; then
|
|
||||||
/bin/tar xfP ${tmpfile} -C /opt/${usrvc^} >> ${MMFOLDER}/logs/update.${usrvc}
|
|
||||||
elif [ "${usrvc}" == "bazarr" ]; then
|
|
||||||
/usr/bin/unzip -oqq ${tmpfile} -d /opt/${usrvc^}
|
|
||||||
else
|
|
||||||
/bin/tar xfP ${tmpfile} -C /opt >> ${MMFOLDER}/logs/update.${usrvc}
|
|
||||||
fi
|
|
||||||
chown -R user:users /opt/${usrvc^} >> ${MMFOLDER}/logs/update.${usrvc}
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo -e "${idsCL[Green]}Done${idsCL[Default]}"
|
|
||||||
|
|
||||||
rm -f ${tmpfile} &>/dev/null
|
|
||||||
|
|
||||||
msg="Starting service back up"
|
|
||||||
c=0; spc=''; spc1=$((${cw_spc}-${#msg}))
|
|
||||||
until [ $c = ${spc1} ]; do spc="${spc} "; c=`expr $c + 1`; done
|
|
||||||
echo -en "${idsCL[White]}${msg}${spc} : ${idsCL[Default]}"
|
|
||||||
|
|
||||||
OUT=$(ip link | grep "$VPN_INTERFACE") >/dev/null 2>&1
|
|
||||||
if [ ${#OUT} -ne 0 ] && [ ! -f ${MMFOLDER}/mm.stop ] && [ ! -f ${MMFOLDER}/mm.noservices ] && [[ " ${SERVICES_CHECK[*]} " =~ " ${usrvc} " ]]; then
|
|
||||||
/bin/systemctl start ${usrvc} >> ${MMFOLDER}/logs/update.${usrvc}
|
|
||||||
[ "${usrvc}" == "radarr" ] && [[ " ${SERVICES_CHECK[*]} " =~ " radarr3d " ]] && /bin/systemctl start radarr3d >> ${MMFOLDER}/logs/update.${usrvc}
|
|
||||||
echo -e "${idsCL[Green]}Done${idsCL[Default]}"
|
echo -e "${idsCL[Green]}Done${idsCL[Default]}"
|
||||||
|
|
||||||
|
if [ "${MM_UPDATE_REPO[${usrvc}]}" != "" ] && [ "${MM_UPDATE_REPO[${usrvc}]}" != "systemd" ]; then
|
||||||
|
|
||||||
|
msg="Finding latest update url"
|
||||||
|
c=0; spc=''; spc1=$((${cw_spc}-${#msg}))
|
||||||
|
until [ $c = ${spc1} ]; do spc="${spc} "; c=`expr $c + 1`; done
|
||||||
|
echo -en "${idsCL[White]}${msg}${spc} : ${idsCL[Default]}"
|
||||||
|
|
||||||
|
if [[ $BETA_SERVICES == *${usrvc}* ]]; then
|
||||||
|
latest_release_url=`curl -s https://api.github.com/repos/${MM_UPDATE_REPO[${usrvc}]}/${usrvc}/releases | jq -r '.[0].assets[].browser_download_url' | grep "${MM_UPDATE_REPO_GREP[${usrvc}]}" | cut -d '"' -f 4 | grep -i 'https://'`
|
||||||
|
echo "$(date) - Updating Service (${usrvc}) : BETA UPDATEURL = ${latest_release_url}" >> $logfile
|
||||||
|
beta="BETA "
|
||||||
|
else
|
||||||
|
latest_release_url=`curl -s https://api.github.com/repos/${MM_UPDATE_REPO[${usrvc}]}/${usrvc}/releases/latest | jq -r '.assets[].browser_download_url' | grep "${MM_UPDATE_REPO_GREP[${usrvc}]}" | cut -d '"' -f 4 | grep -i 'https://'`
|
||||||
|
echo "$(date) - Updating Service (${usrvc}) : UPDATEURL = ${latest_release_url}" >> $logfile
|
||||||
|
beta=""
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo -e "${idsCL[Green]}Done${idsCL[Default]}"
|
||||||
|
echo -e "${idsCL[LightCyan]}${beta}Download URL: ${idsCL[LightGreen]}${latest_release_url}${idsCL[Default]}"
|
||||||
|
echo
|
||||||
|
|
||||||
|
msg="Downloading and updating"
|
||||||
|
c=0; spc=''; spc1=$((${cw_spc}-${#msg}))
|
||||||
|
until [ $c = ${spc1} ]; do spc="${spc} "; c=`expr $c + 1`; done
|
||||||
|
echo -en "${idsCL[White]}${msg}${spc} : ${idsCL[Default]}"
|
||||||
|
|
||||||
|
if curl --output /dev/null --silent --head --fail $latest_release_url; then
|
||||||
|
wget -qO ${tmpfile} $latest_release_url >> ${MMFOLDER}/logs/update.${usrvc}
|
||||||
|
if [[ ( $? -eq 0 ) && ( -f ${tmpfile} ) ]]; then
|
||||||
|
if [ "${usrvc}" != "bazarr" ]; then
|
||||||
|
rm -Rf /opt/${usrvc^} >> ${MMFOLDER}/logs/update.${usrvc}
|
||||||
|
mkdir /opt/${usrvc^} >> ${MMFOLDER}/logs/update.${usrvc}
|
||||||
|
fi
|
||||||
|
/bin/tar -cpPf $bak /opt/${usrvc^} >> ${MMFOLDER}/logs/update.${usrvc}
|
||||||
|
|
||||||
|
if [ "${usrvc}" == "ombi" ]; then
|
||||||
|
/bin/tar xfP ${tmpfile} -C /opt/${usrvc^} >> ${MMFOLDER}/logs/update.${usrvc}
|
||||||
|
elif [ "${usrvc}" == "bazarr" ]; then
|
||||||
|
/usr/bin/unzip -oqq ${tmpfile} -d /opt/${usrvc^}
|
||||||
|
else
|
||||||
|
/bin/tar xfP ${tmpfile} -C /opt >> ${MMFOLDER}/logs/update.${usrvc}
|
||||||
|
fi
|
||||||
|
chown -R user:users /opt/${usrvc^} >> ${MMFOLDER}/logs/update.${usrvc}
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo -e "${idsCL[Green]}Done${idsCL[Default]}"
|
||||||
|
|
||||||
|
rm -f ${tmpfile} &>/dev/null
|
||||||
|
|
||||||
|
elif [ "${MM_UPDATE_REPO[${usrvc}]}" == "systemd" ]; then
|
||||||
|
|
||||||
|
msg="Updating"
|
||||||
|
c=0; spc=''; spc1=$((${cw_spc}-${#msg}))
|
||||||
|
until [ $c = ${spc1} ]; do spc="${spc} "; c=`expr $c + 1`; done
|
||||||
|
echo -en "${idsCL[White]}${msg}${spc} : ${idsCL[Default]}"
|
||||||
|
|
||||||
|
/usr/bin/apt install ${usrvc} >/dev/null 2>&1
|
||||||
|
/bin/systemctl disable ${usrvc} >/dev/null 2>&1
|
||||||
|
|
||||||
|
echo -e "${idsCL[Green]}Done${idsCL[Default]}"
|
||||||
|
|
||||||
|
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
msg="Starting service back up"
|
||||||
|
c=0; spc=''; spc1=$((${cw_spc}-${#msg}))
|
||||||
|
until [ $c = ${spc1} ]; do spc="${spc} "; c=`expr $c + 1`; done
|
||||||
|
echo -en "${idsCL[White]}${msg}${spc} : ${idsCL[Default]}"
|
||||||
|
|
||||||
|
OUT=$(ip link | grep "$VPN_INTERFACE") >/dev/null 2>&1
|
||||||
|
if [ ${#OUT} -ne 0 ] && [ ! -f ${MMFOLDER}/mm.stop ] && [ ! -f ${MMFOLDER}/mm.noservices ] && [[ " ${SERVICES_CHECK[*]} " =~ " ${usrvc} " ]]; then
|
||||||
|
/bin/systemctl start ${usrvc} >> ${MMFOLDER}/logs/update.${usrvc}
|
||||||
|
[ "${usrvc}" == "radarr" ] && [[ " ${SERVICES_CHECK[*]} " =~ " radarr3d " ]] && /bin/systemctl start radarr3d >> ${MMFOLDER}/logs/update.${usrvc}
|
||||||
|
echo -e "${idsCL[Green]}Done${idsCL[Default]}"
|
||||||
|
else
|
||||||
|
echo -e "${idsCL[LightCyan]}Skipping${idsCL[Default]}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
rm -f ${MMFOLDER}/mm.update.stop
|
||||||
|
echo "$(date) - Updating Service (${usrvc}) : Completed" >> $logfile
|
||||||
|
|
||||||
|
echo
|
||||||
|
echo -e "${idsCL[Green]}${usrvc} Service has been updated${idsCL[Default]}"
|
||||||
|
|
||||||
else
|
else
|
||||||
echo -e "${idsCL[LightCyan]}Skipping${idsCL[Default]}"
|
echo -e "${idsCL[Red]}Not currently available to update${idsCL[Default]}"
|
||||||
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
rm -f ${MMFOLDER}/mm.update.stop
|
|
||||||
echo "$(date) - Updating Service (${usrvc}) : Completed" >> $logfile
|
|
||||||
|
|
||||||
echo
|
|
||||||
echo -e "${idsCL[Green]}${usrvc} Service has been updated${idsCL[Default]}"
|
|
||||||
|
|
||||||
else
|
else
|
||||||
echo -e "${idsCL[Red]}No service selected for update${idsCL[Default]}"
|
echo -e "${idsCL[Red]}No service selected for update${idsCL[Default]}"
|
||||||
fi
|
fi
|
||||||
|
|||||||
Reference in New Issue
Block a user