Files
NodeMgmt/run.sh
2024-11-29 18:44:45 -06:00

98 lines
3.9 KiB
Bash
Executable File

#!/usr/bin/env bash
# NodeMgmt Loader
[ -f /opt/idssys/nodemgmt/settings.conf ] && mv /opt/idssys/nodemgmt/settings.conf /opt/idssys/nodemgmt/conf/settings.conf
[ -f /opt/idssys/nodemgmt/defaults.local.inc ] && mv /opt/idssys/nodemgmt/defaults.local.inc /opt/idssys/nodemgmt/conf/defaults.local.inc
source /opt/idssys/defaults/colors.inc
source /opt/idssys/defaults/default.inc
source /opt/idssys/nodemgmt/conf/settings.conf
source /opt/idssys/nodemgmt/defaults.inc
# if [[ "${noheader}" != *" ${1} "* ]] && [[ "${noheader}" != *" ${2} "* ]] && [ "${1}" != "status" ]; then
if [ "${1}" == "update" ] || ([ "${1}" == "update" ] && [ "${2}" == "nodes" ]) || ([ "${1}" == "update-nodes" ] && [ "${3}" != "sync" ]); then
if [ "${1}" == "update-nodes" ] || [ "${2}" == "nodes" ]; then
echo -e "\n${idsCL[LightGreen]}Updating Node-Manager${idsCL[Default]}"
echo -e "${idsCL[LightGreen]}-------------------------------------------${idsCL[Default]}"
fi
if curl -m 3 -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 "${idsCL[LightCyan]}Updating iDSSYS-Defaults...${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 ${NM_FOLDER}
# if [ "`git log --pretty=%H ...refs/heads/dev^ | head -n 1`" != "`git ls-remote origin -h refs/heads/dev |cut -f1`" ]; then
if [ "`git log --pretty=%H ...refs/heads/master^ | head -n 1`" != "`git ls-remote origin -h refs/heads/master |cut -f1`" ]; then
goforup=0
betacheck=$(${NM_SCRIPT} betacheck)
if [ "${betacheck}" == "true" ] && [ "${2}" != "q" ]; then
echo -en "\e[1A";
echo -en "\e[0K\r${idsCL[LightCyan]}This update is currently in BETA, proceed (N/y)? ${idsCL[Default]}"
read -n1 choice
case $choice in
[Yy]) echo; goforup=1;;
esac
elif [ "${betacheck}" == "true" ] && [ "${2}" == "q" ]; then
goforup=0
else
goforup=1
fi
if [ ${goforup} -eq 1 ]; then
if [ "${2}" != "q" ]; then
echo -en "\e[1A";
echo -e "\e[0K\r ${idsCL[LightCyan]}Updating NodeMgmt...${idsCL[Default]}"
fi
git fetch origin master >/dev/null 2>&1
git reset --hard origin/master >/dev/null 2>&1
# git fetch origin dev >/dev/null 2>&1
# git reset --hard origin/dev >/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 /opt/idssys/nodemgmt/*.sh 2>&1
source ${NM_FOLDER}/defaults.inc
if [ "${2}" != "q" ]; then
echo -en "\e[1A";
echo -e "\e[0K\r ${idsCL[Green]}Updated to v${VERS}${idsCL[Default]}"
else
echo -e "${idsCL[Green]}Updated to v${VERS}${idsCL[Default]}"
fi
fi
elif [ "${2}" != "q" ]; then
echo -en "\e[1A";
echo -e "\e[0K\r ${idsCL[LightCyan]}No Updates Available${idsCL[Default]}"
elif [ "${2}" == "q" ]; then
echo -e "${idsCL[LightCyan]}No Updates Available${idsCL[Default]}"
fi
else
echo -e "${idsCL[Red]}Could not connect to 'git.schroedercity.com' for updates${idsCL[Default]}"
fi
fi
[ ! -f /usr/local/bin/nmg ] && ln -s /opt/idssys/nodemgmt/run.sh /usr/local/bin/nmg
[ ! -f /usr/local/bin/ndmg ] && ln -s /opt/idssys/nodemgmt/run.sh /usr/local/bin/ndmg
${NM_SCRIPT} ${1} ${2} ${3} ${4} ${5} ${6} ${7} ${8} ${9} ${10} ${11} ${12} ${13} ${14} ${15} ${16} ${17} ${18} ${19} ${20} ${21} ${22} ${23} ${24} ${25}
exit 0