mirror of
https://github.com/mtan93/Installomator.git
synced 2026-03-08 05:31:53 +00:00
Overall purpose was to improve the logging in the scripts. But the handling of macOS version and Installomator version in order to utilize swiftDialog has been improved, too.
82 lines
2.5 KiB
Bash
82 lines
2.5 KiB
Bash
#!/bin/sh
|
|
|
|
# Installation using Installomator
|
|
|
|
LOGO="" # "mosyleb", "mosylem", "addigy", "microsoft", "ws1"
|
|
|
|
item="" # enter the software to install
|
|
# Examples: adobecreativeclouddesktop, canva, cyberduck, handbrake, inkscape, textmate, vlc
|
|
|
|
|
|
installomatorOptions="BLOCKING_PROCESS_ACTION=prompt_user NOTIFY=all" # Separated by space
|
|
|
|
# Other installomatorOptions:
|
|
# LOGGING=REQ
|
|
# LOGGING=DEBUG
|
|
# LOGGING=WARN
|
|
# BLOCKING_PROCESS_ACTION=ignore
|
|
# BLOCKING_PROCESS_ACTION=tell_user
|
|
# BLOCKING_PROCESS_ACTION=tell_user_then_quit
|
|
# BLOCKING_PROCESS_ACTION=prompt_user
|
|
# BLOCKING_PROCESS_ACTION=prompt_user_loop
|
|
# BLOCKING_PROCESS_ACTION=prompt_user_then_kill
|
|
# BLOCKING_PROCESS_ACTION=quit
|
|
# BLOCKING_PROCESS_ACTION=kill
|
|
# NOTIFY=all
|
|
# NOTIFY=success
|
|
# NOTIFY=silent
|
|
# IGNORE_APP_STORE_APPS=yes
|
|
# INSTALL=force
|
|
######################################################################
|
|
# To be used as a script sent out from a MDM.
|
|
# Fill the variable "item" above with a label.
|
|
# Script will run this label through Installomator.
|
|
######################################################################
|
|
# v. 9.2.2 : A bit more logging on succes.
|
|
# v. 9.2.1 : Better logging handling and installomatorOptions fix.
|
|
######################################################################
|
|
|
|
# Mark: Script
|
|
# PATH declaration
|
|
export PATH=/usr/bin:/bin:/usr/sbin:/sbin
|
|
|
|
echo "$(date +%F\ %T) [LOG-BEGIN] $item"
|
|
|
|
# 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."
|
|
exit 99
|
|
fi
|
|
|
|
# No sleeping
|
|
/usr/bin/caffeinate -d -i -m -u &
|
|
caffeinatepid=$!
|
|
caffexit () {
|
|
kill "$caffeinatepid"
|
|
pkill caffeinate
|
|
exit $1
|
|
}
|
|
|
|
# Install software using Installomator
|
|
cmdOutput="$(${destFile} ${item} LOGO=$LOGO ${installomatorOptions} || true)"
|
|
|
|
# Check result
|
|
exitStatus="$( echo "${cmdOutput}" | grep --binary-files=text -i "exit" | tail -1 | sed -E 's/.*exit code ([0-9]).*/\1/g' || true )"
|
|
if [[ ${exitStatus} -eq 0 ]] ; then
|
|
echo "${item} succesfully installed."
|
|
selectedOutput="$( echo "${cmdOutput}" | grep --binary-files=text -E ": (REQ|ERROR|WARN)" || true )"
|
|
echo "$selectedOutput"
|
|
else
|
|
echo "ERROR installing ${item}. Exit code ${exitStatus}"
|
|
echo "$cmdOutput"
|
|
#errorOutput="$( echo "${cmdOutput}" | grep --binary-files=text -i "error" || true )"
|
|
#echo "$errorOutput"
|
|
fi
|
|
|
|
echo "[$(DATE)][LOG-END]"
|
|
|
|
caffexit $exitStatus
|