Files
mediamanager/run.sh
2023-02-26 21:55:21 -06:00

89 lines
2.8 KiB
Bash
Executable File

#!/usr/bin/env bash
# MediaManager Loader
source /opt/idssys/defaults/colors.inc
source /opt/idssys/defaults/default.inc
source /opt/idssys/mediamanager/defaults.inc
if [ -f /opt/idssys/settings/mediamanager.conf ]; then
source /opt/idssys/settings/mediamanager.conf
else
source ${MMFOLDER}/settings.conf
fi
if [ "${1}" == "update" ]; then
if curl -m 15 -s --head --request GET https://git.schroedercity.com | grep "HTTP/2 200" > /dev/null; then
if [ "${2}" != "q" ]; then
echo -en "${idsCL[LightCyan]}Checking for updates...${idsCL[Default]}"
echo ""
fi
cd /opt/idssys/defaults
if [ "`git log --pretty=%H ...refs/heads/master^ | head -n 1`" != "`git ls-remote origin -h refs/heads/master |cut -f1`" ]; then
if [ "${2}" != "q" ]; then
echo -en "\e[1A";
echo -e "\e[0K\r ${idsCL[LightCyan]}Installing updates...${idsCL[Default]}"
fi
git fetch origin master >/dev/null 2>&1
git reset --hard origin/master >/dev/null 2>&1
git reflog expire --expire=now --all >/dev/null 2>&1
git repack -ad >/dev/null 2>&1
git prune >/dev/null 2>&1
git pull >/dev/null 2>&1
git submodule update --remote >/dev/null 2>&1
fi
cd ${MMFOLDER}
if [ "`git log --pretty=%H ...refs/heads/master^ | head -n 1`" != "`git ls-remote origin -h refs/heads/master |cut -f1`" ]; then
if [ "${2}" != "q" ]; then
echo -en "\e[1A";
echo -e "\e[0K\r ${idsCL[LightCyan]}Installing updates...${idsCL[Default]}"
fi
git fetch origin master >/dev/null 2>&1
git reset --hard origin/master >/dev/null 2>&1
git reflog expire --expire=now --all >/dev/null 2>&1
git repack -ad >/dev/null 2>&1
git prune >/dev/null 2>&1
git pull >/dev/null 2>&1
git submodule update --remote >/dev/null 2>&1
/bin/chmod +x ${MMFOLDER}/mm-scripts.sh 2>&1
if [ "${2}" != "q" ]; then
echo -en "\e[1A";
echo -e "\e[0K\r ${idsCL[Green]}Updates Completed${idsCL[Default]}"
fi
elif [ "${2}" != "q" ]; then
echo -en "\e[1A";
echo -e "\e[0K\r ${idsCL[LightCyan]}No Updates Available${idsCL[Default]}"
fi
/bin/rm -f ${MMFOLDER}/update.available
else
echo -e "${idsCL[Red]}Could not connect to 'git.schroedercity.com' for updates${idsCL[Default]}"
fi
else
[ "${1}" == "clear" ] && rm -f ${MMFOLDER}/mm.*
if [ -f ${MMFOLDER}/mm.checking ] && [ "${1}" != "status" ]; then
fd=$(expr $(date +%s) - $(stat -L --format %Y ${MMFOLDER}/mm.checking))
if [ ${fd} -gt 900 ]; then
rm -f ${MMFOLDER}/mm.checking
else
echo -e "${idsCL[LightCyan]}Try again later, 'mm' program currently in use...${idsCL[Default]}"
fi
fi
if [ ! -f ${MMFOLDER}/mm.checking ]; then
touch ${MMFOLDER}/mm.checking
${MMFOLDER}/mm-scripts.sh ${1} ${2} ${3} ${4} ${5} ${6} ${7} ${8} ${9} ${10} ${11} ${12} ${13} ${14}
rm -f ${MMFOLDER}/mm.checking
fi
fi
exit 0