mirror of
https://github.com/PurpleComputing/mdmscripts.git
synced 2026-02-03 06:03:26 +00:00
80 lines
2.8 KiB
Bash
80 lines
2.8 KiB
Bash
#!/bin/zsh
|
|
# install-app-loop.sh
|
|
|
|
# SERVICE SCRIPT CALLED BY OTHER SCRIPTS
|
|
|
|
prplappno=
|
|
prplappcount=
|
|
|
|
echo "*** BEGIN install-app-loop.SH ***"
|
|
chmod 777 /var/tmp/depnotify.log
|
|
######################################################################
|
|
# Installation using Installomator (enter the software to install separated with spaces in the "whatList"-variable)
|
|
LOGO="mosyleb" # or "mosylem"
|
|
######################################################################
|
|
|
|
whatList="$MDMAPPLABEL"
|
|
echo "$MDMAPPLABEL"
|
|
|
|
# CHECKS IF INSTALLOMATOR IS INSTALLED AND INSTALLS IF NOT
|
|
if [ ! -e "/usr/local/Installomator/Installomator.sh" ]; then
|
|
curl -s https://raw.githubusercontent.com/PurpleComputing/mdmscripts/main/Installomator.sh?v=123$(date +%s) | bash
|
|
fi
|
|
|
|
# No sleeping
|
|
/usr/bin/caffeinate -d -i -m -u &
|
|
caffeinatepid=$!
|
|
caffexit () {
|
|
kill "$caffeinatepid"
|
|
pkill caffeinate
|
|
exit $1
|
|
}
|
|
# Mark: Start Installomator label(s) installation
|
|
# Count errors
|
|
errorCount=0
|
|
|
|
echo "Command: DeterminateOff:" >> /var/tmp/depnotify.log
|
|
echo "Command: DeterminateOffReset:" >> /var/tmp/depnotify.log
|
|
prplappno=$(echo "$whatList" | awk '{print gsub("[ \t]",""); exit}')
|
|
prplappcount=`expr $prplappno + 4`
|
|
prpltrueappcount=`expr $prplappno + 1`
|
|
echo "Command: DeterminateManual: $prplappcount" >> /var/tmp/depnotify.log
|
|
echo "-- INSTALLING $prpltrueappcount APPS --"
|
|
echo Installs started for "$MDMAPPLABEL"
|
|
# Verify that Installomator has been installed
|
|
destFile="/usr/local/Installomator/Installomator.sh"
|
|
if [ ! -e "${destFile}" ]; then
|
|
echo "Installomator not found here:"
|
|
echo "${destFile}"
|
|
echo "Exiting."
|
|
caffexit 99
|
|
fi
|
|
echo Started Installomator
|
|
for what in $whatList; do
|
|
echo Installing ${what}
|
|
TMAPPNA=$(sed -n "/${what}/,\$p" /usr/local/Installomator/Installomator.sh | sed -n 2p | awk -F\" '{print $(NF-1)}')
|
|
echo "Status: Installing $TMAPPNA..." >> /var/tmp/depnotify.log
|
|
echo "Command: DeterminateManualStep: 1" >> /var/tmp/depnotify.log
|
|
# Install software using Installomator
|
|
cmdOutput="$(${destFile} ${what} LOGO=$LOGO NOTIFY=all BLOCKING_PROCESS_ACTION=kill || true)" # NOTIFY=silent BLOCKING_PROCESS_ACTION=quit_kill INSTALL=force
|
|
# Check result
|
|
echo "Status: Installer for $TMAPPNA complete..." >> /var/tmp/depnotify.log
|
|
sleep 1
|
|
exitStatus="$( echo "${cmdOutput}" | grep --binary-files=text -i "exit" | tail -1 | sed -E 's/.*exit code ([0-9]).*/\1/g' || true )"
|
|
if [[ ${exitStatus} -ne 0 ]] ; then
|
|
echo "Error installing ${what}. Exit code ${exitStatus}"
|
|
echo "Status: Error installing $TMAPPNA" >> /var/tmp/depnotify.log
|
|
#echo "$cmdOutput"
|
|
errorOutput="$( echo "${cmdOutput}" | grep --binary-files=text -i "error" || true )"
|
|
echo "$errorOutput"
|
|
let errorCount++
|
|
fi
|
|
done
|
|
echo Finished Installomator
|
|
echo
|
|
echo "Errors: $errorCount"
|
|
echo
|
|
echo "[$(DATE)][LOG-END]"
|
|
|
|
caffexit $errorCount
|
|
echo "*** END install-app-loop.SH ***" |