diff --git a/CHANGELOG.md b/CHANGELOG.md index 9fd54d4..681e39c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,6 @@ ## v10 +- Changed and improved logging levels on many messages throughout the script. Should be more polished. - ## v9 diff --git a/fragments/arguments.sh b/fragments/arguments.sh index 45a933c..c669ee1 100644 --- a/fragments/arguments.sh +++ b/fragments/arguments.sh @@ -10,21 +10,21 @@ fi # MARK: argument parsing if [[ $# -eq 0 ]]; then if [[ -z $label ]]; then # check if label is set inside script - printlog "no label provided, printing labels" + printlog "no label provided, printing labels" REQ grep -E '^[a-z0-9\_-]*(\)|\|\\)$' "$0" | tr -d ')|\' | grep -v -E '^(broken.*|longversion|version|valuesfromarguments)$' | sort #grep -E '^[a-z0-9\_-]*(\)|\|\\)$' "${labelFile}" | tr -d ')|\' | grep -v -E '^(broken.*|longversion|version|valuesfromarguments)$' | sort exit 0 fi elif [[ $1 == "/" ]]; then # jamf uses sends '/' as the first argument - printlog "shifting arguments for Jamf" + printlog "shifting arguments for Jamf" REQ shift 3 fi while [[ -n $1 ]]; do if [[ $1 =~ ".*\=.*" ]]; then # if an argument contains an = character, send it to eval - printlog "setting variable from argument $1" + printlog "setting variable from argument $1" REQ eval $1 else # assume it's a label @@ -96,31 +96,31 @@ currentUser=$(scutil <<< "show State:/Users/ConsoleUser" | awk '/Name :/ { print # MARK: check for root if [[ "$(whoami)" != "root" && "$DEBUG" -eq 0 ]]; then # not running as root - cleanupAndExit 6 "not running as root, exiting" + cleanupAndExit 6 "not running as root, exiting" ERROR fi # MARK: labels in case statement case $label in longversion) # print the script version - printlog "Installomater: version $VERSION ($VERSIONDATE)" + printlog "Installomater: version $VERSION ($VERSIONDATE)" REQ exit 0 ;; valuesfromarguments) if [[ -z $name ]]; then - printlog "need to provide 'name'" + printlog "need to provide 'name'" ERROR exit 1 fi if [[ -z $type ]]; then - printlog "need to provide 'type'" + printlog "need to provide 'type'" ERROR exit 1 fi if [[ -z $downloadURL ]]; then - printlog "need to provide 'downloadURL'" + printlog "need to provide 'downloadURL'" ERROR exit 1 fi if [[ -z $expectedTeamID ]]; then - printlog "need to provide 'expectedTeamID'" + printlog "need to provide 'expectedTeamID'" ERROR exit 1 fi ;; diff --git a/fragments/functions.sh b/fragments/functions.sh index a851077..7e542ea 100644 --- a/fragments/functions.sh +++ b/fragments/functions.sh @@ -176,7 +176,7 @@ versionFromGit() { appNewVersion=$(curl --silent --fail "https://api.github.com/repos/$gitusername/$gitreponame/releases/latest" | grep tag_name | cut -d '"' -f 4 | sed 's/[^0-9\.]//g') if [ -z "$appNewVersion" ]; then - printlog "could not retrieve version number for $gitusername/$gitreponame" + printlog "could not retrieve version number for $gitusername/$gitreponame" WARN appNewVersion="" else echo "$appNewVersion" @@ -229,9 +229,9 @@ getAppVersion() { applist=$(mdfind "kind:application $appName" -0 ) fi if [[ -z applist ]]; then - printlog "No previous app found" DEBUG + printlog "No previous app found" INFO else - printlog "App(s) found: ${applist}" DEBUG + printlog "App(s) found: ${applist}" INFO fi appPathArray=( ${(0)applist} ) @@ -255,10 +255,10 @@ getAppVersion() { fi fi else - printlog "could not determine location of $appName" + printlog "could not determine location of $appName" WARN fi else - printlog "could not find $appName" + printlog "could not find $appName" WARN fi } @@ -385,7 +385,7 @@ reopenClosedProcess() { processuser=$(ps aux | grep -i "${appName}" | grep -vi "grep" | awk '{print $1}') printlog "Reopened ${appName} as $processuser" else - printlog "App not closed, so no reopen." DEBUG + printlog "App not closed, so no reopen." INFO fi } @@ -395,7 +395,7 @@ installAppWithPath() { # $1: path to app to install in $targetDir # check if app exists if [ ! -e "$appPath" ]; then - cleanupAndExit 8 "could not find: $appPath" DEBUG + cleanupAndExit 8 "could not find: $appPath" ERROR fi # verify with spctl @@ -427,10 +427,12 @@ installAppWithPath() { # $1: path to app to install in $targetDir printlog "notifying" displaynotification "$message" "No update for $name!" fi - cleanupAndExit 0 "No new version to install" INFO + cleanupAndExit 0 "No new version to install" WARN else printlog "Using force to install anyway." fi + elif [[ -z $appversion ]]; then + printlog "Installing $name version $appNewVersion on versionKey $versionKey." else printlog "Downloaded version of $name is $appNewVersion on versionKey $versionKey (replacing version $appversion)." fi @@ -446,7 +448,7 @@ installAppWithPath() { # $1: path to app to install in $targetDir printlog "notifying" displaynotification "$message" "Error updating $name!" fi - cleanupAndExit 6 "Installed macOS is too old for this app." INFO + cleanupAndExit 6 "Installed macOS is too old for this app." ERROR fi fi @@ -585,7 +587,7 @@ installFromPKG() { printlog "notifying" displaynotification "$message" "No update for $name!" fi - cleanupAndExit 0 "No new version to install" INFO + cleanupAndExit 0 "No new version to install" WARN else printlog "Using force to install anyway." fi @@ -770,13 +772,13 @@ runUpdateTool() { printlog "Error running $updateTool, Procceding with normal installation. Exit Status: $updateStatus Error:\n$logoutput" WARN return 1 if [[ $type == updateronly ]]; then - cleanupAndExit 77 "No Download URL Set, this is an update only application and the updater failed" WARN + cleanupAndExit 77 "No Download URL Set, this is an update only application and the updater failed" ERROR fi elif [[ $updateStatus -eq 0 ]]; then printlog "Debugging enabled, update tool output was:\n$logoutput" DEBUG fi else - printlog "couldn't find $updateTool, continuing normally" + printlog "couldn't find $updateTool, continuing normally" WARN return 1 fi return 0 diff --git a/fragments/main.sh b/fragments/main.sh index 1de095f..a508d52 100644 --- a/fragments/main.sh +++ b/fragments/main.sh @@ -1,13 +1,13 @@ *) # unknown label #printlog "unknown label $label" - cleanupAndExit 1 "unknown label $label" + cleanupAndExit 1 "unknown label $label" ERROR ;; esac # Are we only asked to return label name if [[ $RETURN_LABEL_NAME -eq 1 ]]; then - printlog "Only returning label name." + printlog "Only returning label name." REQ printlog "$name" echo "$name" exit @@ -18,7 +18,7 @@ fi if [[ ${INTERRUPT_DND} = "no" ]]; then # Check if a fullscreen app is active if hasDisplaySleepAssertion; then - cleanupAndExit 1 "active display sleep assertion detected, aborting" + cleanupAndExit 1 "active display sleep assertion detected, aborting" ERROR fi fi @@ -63,9 +63,9 @@ if [[ ! -a "${LOGO}" ]]; then LOGO="/Applications/App Store.app/Contents/Resources/AppIcon.icns" fi fi -printlog "LOGO=${LOGO}" +printlog "LOGO=${LOGO}" INFO -printlog "Label type: $type" +printlog "Label type: $type" INFO # MARK: extract info from data if [ -z "$archiveName" ]; then @@ -87,7 +87,7 @@ if [ -z "$archiveName" ]; then ;; esac fi -printlog "archiveName: $archiveName" DEBUG +printlog "archiveName: $archiveName" INFO if [ -z "$appName" ]; then # when not given derive from name @@ -105,14 +105,13 @@ if [ -z "$targetDir" ]; then updateronly) ;; *) - printlog "Cannot handle type $type" - cleanupAndExit 99 + cleanupAndExit 99 "Cannot handle type $type" ERROR ;; esac fi if [[ -z $blockingProcesses ]]; then - printlog "no blocking processes defined, using $name as default" + printlog "no blocking processes defined, using $name as default" INFO blockingProcesses=( $name ) fi @@ -128,8 +127,7 @@ fi # MARK: change directory to temporary working directory printlog "Changing directory to $tmpDir" DEBUG if ! cd "$tmpDir"; then - printlog "error changing directory $tmpDir" - cleanupAndExit 1 + cleanupAndExit 1 "error changing directory $tmpDir" ERROR fi # MARK: get installed version @@ -152,10 +150,10 @@ if [[ -n $appNewVersion ]]; then printlog "notifying" displaynotification "$message" "No update for $name!" fi - cleanupAndExit 0 "No newer version." + cleanupAndExit 0 "No newer version." WARN fi else - printlog "DEBUG mode 1 enabled, not exiting, but there is no new version of app." + printlog "DEBUG mode 1 enabled, not exiting, but there is no new version of app." WARN fi fi else @@ -174,7 +172,7 @@ if [[ (-n $appversion && -n "$updateTool") || "$type" == "updateronly" ]]; then cleanupAndExit 0 fi # otherwise continue else - printlog "DEBUG mode 1 enabled, not running update tool" + printlog "DEBUG mode 1 enabled, not running update tool" WARN fi fi @@ -197,14 +195,14 @@ else deduplicatelogs "$curlDownload" if [[ $curlDownloadStatus -ne 0 ]]; then #if ! curl --location --fail --silent "$downloadURL" -o "$archiveName"; then - printlog "error downloading $downloadURL" + printlog "error downloading $downloadURL" ERROR message="$name update/installation failed. This will be logged, so IT can follow up." if [[ $currentUser != "loginwindow" && $NOTIFY == "all" ]]; then printlog "notifying" if [[ $updateDetected == "YES" ]]; then - displaynotification "$message" "Error updating $name" ERROR + displaynotification "$message" "Error updating $name" else - displaynotification "$message" "Error installing $name" ERROR + displaynotification "$message" "Error installing $name" fi fi printlog "File list: $(ls -lh "$archiveName")" ERROR @@ -269,8 +267,7 @@ case $type in installAppInDmgInZip ;; *) - printlog "Cannot handle type $type" - cleanupAndExit 99 + cleanupAndExit 99 "Cannot handle type $type" ERROR ;; esac