diff --git a/MDM/App-install SS with swiftDialog and dockutil/App VFA SS github.sh b/MDM/App-install SS with swiftDialog and dockutil/App VFA SS github.sh index a235945..4b19b9c 100755 --- a/MDM/App-install SS with swiftDialog and dockutil/App VFA SS github.sh +++ b/MDM/App-install SS with swiftDialog and dockutil/App VFA SS github.sh @@ -5,7 +5,11 @@ LOGO="" # "mosyleb", "mosylem", "addigy", "microsoft", "ws1" -#item="gfxcardstatus" # enter the software to install (if it has a label in future version of Installomator) +# Have the label been submittet in a PR for Installomator? +# What version of Installomator is it expected to be included in? +# Version 10.0 + +item="gfxcardstatus" # enter the software to install (if it has a label in future version of Installomator) # Label variables below @@ -104,9 +108,10 @@ installomatorOptions="BLOCKING_PROCESS_ACTION=prompt_user DIALOG_CMD_FILE=${dial # INSTALL=force ###################################################################### # To be used as a script sent out from a MDM. -# Fill the variable "item" above with a label. +# Fill out the label variables above, and those will be included in the Installomator call, circa on line 248 # Script will run this label through Installomator. ###################################################################### +# v. 10.0.3 : A bit more logging on succes, and change in ending Dialog part. # v. 10.0.2 : Improved icon checks and failovers # v. 10.0.1 : github-functions added. Improved appIcon handling. Can add the app to Dock using dockutil. # v. 10.0 : Integration with Dialog and Installomator v. 10 @@ -119,6 +124,10 @@ export PATH=/usr/bin:/bin:/usr/sbin:/sbin echo "$(date +%F\ %T) [LOG-BEGIN] $item" +if [[ -z "$item" ]]; then + item="$name" +fi + dialogUpdate() { # $1: dialog command local dcommand="$1" @@ -129,19 +138,19 @@ dialogUpdate() { fi } checkCmdOutput () { - # $1: cmdOutput - local cmdOutput="$1" - exitStatus="$( echo "${cmdOutput}" | grep --binary-files=text -i "exit" | tail -1 | sed -E 's/.*exit code ([0-9]).*/\1/g' || true )" + local checkOutput="$1" + exitStatus="$( echo "${checkOutput}" | 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." - warnOutput="$( echo "${cmdOutput}" | grep --binary-files=text -i "warn" || true )" - echo "$warnOutput" + selectedOutput="$( echo "${checkOutput}" | 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 "$checkOutput" + #errorOutput="$( echo "${checkOutput}" | grep --binary-files=text -i "error" || true )" #echo "$errorOutput" fi + #echo "$checkOutput" } # Check the currently logged in user @@ -176,9 +185,10 @@ caffexit () { # Mark: Installation begins installomatorVersion="$(${destFile} version | cut -d "." -f1 || true)" -if [[ $installomatorVersion -lt 10 ]] || [[ $(sw_vers -buildVersion) < "20A" ]]; then - echo "Installomator should be at least version 10 to support Dialog. Installed version $installomatorVersion." - echo "And macOS 11 Big Sur (build 20A) is required for Dialog. Installed build $(sw_vers -buildVersion)." +if [[ $installomatorVersion -lt 10 ]] || [[ $(sw_vers -buildVersion | cut -c1-2) -lt 20 ]]; then + echo "Skipping swiftDialog UI, using notifications." + #echo "Installomator should be at least version 10 to support swiftDialog. Installed version $installomatorVersion." + #echo "And macOS 11 Big Sur (build 20A) is required for swiftDialog. Installed build $(sw_vers -buildVersion)." installomatorNotify="NOTIFY=all" else installomatorNotify="NOTIFY=silent" @@ -187,7 +197,7 @@ else echo "Cannot find dialog at $dialogApp" # Install using Installlomator cmdOutput="$(${destFile} dialog LOGO=$LOGO BLOCKING_PROCESS_ACTION=ignore LOGGING=REQ NOTIFY=silent || true)" - checkCmdOutput $cmdOutput + checkCmdOutput "${cmdOutput}" fi # Configure and display swiftDialog @@ -200,24 +210,24 @@ else echo "$item $itemName" #Check icon (expecting beginning with “http” to be web-link and “/” to be disk file) - echo "icon before check: $icon" + #echo "icon before check: $icon" if [[ "$(echo ${icon} | grep -iE "^(http|ftp).*")" != "" ]]; then - echo "icon looks to be web-link" + #echo "icon looks to be web-link" if ! curl -sfL --output /dev/null -r 0-0 "${icon}" ; then - echo "ERROR: Cannot download link. Reset icon." + echo "ERROR: Cannot download ${icon} link. Reset icon." icon="" fi elif [[ "$(echo ${icon} | grep -iE "^\/.*")" != "" ]]; then - echo "icon looks to be a file" + #echo "icon looks to be a file" if [[ ! -a "${icon}" ]]; then - echo "ERROR: Cannot find file. Reset icon." + echo "ERROR: Cannot find icon file ${icon}. Reset icon." icon="" fi else - echo "ERROR: Cannot figure out icon. Reset icon." + echo "ERROR: Cannot figure out icon ${icon}. Reset icon." icon="" fi - echo "icon after first check: $icon" + #echo "icon after first check: $icon" # If no icon defined we are trying to search for installed app icon if [[ "$icon" == "" ]]; then appPath=$(mdfind "kind:application AND name:$itemName" | head -1 || true) @@ -226,7 +236,7 @@ else appIcon="${appIcon}.icns" fi icon="${appPath}/Contents/Resources/${appIcon}" - echo "Icon before file check: ${icon}" + #echo "Icon before file check: ${icon}" if [ ! -f "${icon}" ]; then # Using LOGO variable to show logo in swiftDialog case $LOGO in @@ -294,7 +304,7 @@ fi # Install software using Installomator with valuesfromarguments cmdOutput="$(${destFile} valuesfromarguments LOGO=$LOGO \ - name=${name} \ + name=\"${name}\" \ type=${type} \ packageID=${packageID} \ downloadURL=\"$downloadURL\" \ @@ -303,7 +313,7 @@ cmdOutput="$(${destFile} valuesfromarguments LOGO=$LOGO \ expectedTeamID=${expectedTeamID} \ ${installomatorOptions} ${installomatorNotify} || true)" -checkCmdOutput $cmdOutput +checkCmdOutput "${cmdOutput}" # Mark: dockutil stuff if [[ $addToDock -eq 1 ]]; then @@ -312,7 +322,7 @@ if [[ $addToDock -eq 1 ]]; then echo "Cannot find dockutil at $dockutil, trying installation" # Install using Installlomator cmdOutput="$(${destFile} dockutil LOGO=$LOGO BLOCKING_PROCESS_ACTION=ignore LOGGING=REQ NOTIFY=silent || true)" - checkCmdOutput $cmdOutput + checkCmdOutput "${cmdOutput}" fi echo "Adding to Dock" $dockutil --add "${appPath}" "${userHome}/Library/Preferences/com.apple.dock.plist" || true @@ -322,9 +332,7 @@ else fi # Mark: Ending -if [[ $installomatorVersion -lt 10 ]]; then - echo "Again skipping Dialog stuff." -else +if [[ $installomatorVersion -ge 10 && $(sw_vers -buildVersion | cut -c1-2) -ge 20 ]]; then # close and quit dialog dialogUpdate "progress: complete" dialogUpdate "progresstext: Done" diff --git a/MDM/App-install SS with swiftDialog and dockutil/App VFA SS.sh b/MDM/App-install SS with swiftDialog and dockutil/App VFA SS.sh index 2089f9b..a1d6d7c 100755 --- a/MDM/App-install SS with swiftDialog and dockutil/App VFA SS.sh +++ b/MDM/App-install SS with swiftDialog and dockutil/App VFA SS.sh @@ -5,15 +5,18 @@ LOGO="" # "mosyleb", "mosylem", "addigy", "microsoft", "ws1" -#item="" # enter the software to install (if it has a label in future version of Installomator) +# Have the label been submittet in a PR for Installomator? +# What version of Installomator is it expected to be included in? +# Version 10.0 + +item="clickshare" # enter the software to install (if it has a label in future version of Installomator) # Variables for label -name="ClickShare" +name="ClickShare" # If spaces in the name, fill out "${name}" in Installomator-call below, circa line 249. Spaces should be escaped in that line. type="appInDmgInZip" packageID="" downloadURL="https://www.barco.com$( curl -fs "https://www.barco.com/en/clickshare/app" | grep -A6 -i "macos" | grep -i "FileNumber" | tr '"' "\n" | grep -i "FileNumber" )" appNewVersion="$(eval "$( echo $downloadURL | sed -E 's/.*(MajorVersion.*BuildVersion=[0-9]*).*/\1/' | sed 's/&//g' )" ; ((MajorVersion++)) ; ((MajorVersion--)); ((MinorVersion++)) ; ((MinorVersion--)); ((PatchVersion++)) ; ((PatchVersion--)); ((BuildVersion++)) ; ((BuildVersion--)); echo "${MajorVersion}.${MinorVersion}.${PatchVersion}-b${BuildVersion}")" -versionKey="" expectedTeamID="P6CDJZR997" # Dialog icon @@ -51,9 +54,10 @@ installomatorOptions="BLOCKING_PROCESS_ACTION=prompt_user DIALOG_CMD_FILE=${dial # INSTALL=force ###################################################################### # To be used as a script sent out from a MDM. -# Fill the variable "item" above with a label. +# Fill out the label variables above, and those will be included in the Installomator call, circa on line 248 # Script will run this label through Installomator. ###################################################################### +# v. 10.0.3 : A bit more logging on succes, and change in ending Dialog part. # v. 10.0.2 : Improved icon checks and failovers # v. 10.0.1 : Improved appIcon handling. Can add the app to Dock using dockutil # v. 10.0 : Integration with Dialog and Installomator v. 10 @@ -66,6 +70,10 @@ export PATH=/usr/bin:/bin:/usr/sbin:/sbin echo "$(date +%F\ %T) [LOG-BEGIN] $item" +if [[ -z "$item" ]]; then + item="$name" +fi + dialogUpdate() { # $1: dialog command local dcommand="$1" @@ -76,24 +84,24 @@ dialogUpdate() { fi } checkCmdOutput () { - # $1: cmdOutput - local cmdOutput="$1" - exitStatus="$( echo "${cmdOutput}" | grep --binary-files=text -i "exit" | tail -1 | sed -E 's/.*exit code ([0-9]).*/\1/g' || true )" + local checkOutput="$1" + exitStatus="$( echo "${checkOutput}" | 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." - warnOutput="$( echo "${cmdOutput}" | grep --binary-files=text -i "warn" || true )" - echo "$warnOutput" + selectedOutput="$( echo "${checkOutput}" | 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 "$checkOutput" + #errorOutput="$( echo "${checkOutput}" | grep --binary-files=text -i "error" || true )" #echo "$errorOutput" fi + #echo "$checkOutput" } # Check the currently logged in user currentUser=$(stat -f "%Su" /dev/console) -if [ -z "$currentUser" ] || [ "$currentUser" = "loginwindow" ] || [ "$currentUser" = "_mbsetupuser" ] || [ "$currentUser" = "root" ]; then +if [[ -z "$currentUser" ]] || [[ "$currentUser" = "loginwindow" ]] || [[ "$currentUser" = "_mbsetupuser" ]] || [[ "$currentUser" = "root" ]]; then echo "ERROR. Logged in user is $currentUser! Cannot proceed." exit 97 fi @@ -123,9 +131,10 @@ caffexit () { # Mark: Installation begins installomatorVersion="$(${destFile} version | cut -d "." -f1 || true)" -if [[ $installomatorVersion -lt 10 ]] || [[ $(sw_vers -buildVersion) < "20A" ]]; then - echo "Installomator should be at least version 10 to support Dialog. Installed version $installomatorVersion." - echo "And macOS 11 Big Sur (build 20A) is required for Dialog. Installed build $(sw_vers -buildVersion)." +if [[ $installomatorVersion -lt 10 ]] || [[ $(sw_vers -buildVersion | cut -c1-2) -lt 20 ]]; then + echo "Skipping swiftDialog UI, using notifications." + #echo "Installomator should be at least version 10 to support swiftDialog. Installed version $installomatorVersion." + #echo "And macOS 11 Big Sur (build 20A) is required for swiftDialog. Installed build $(sw_vers -buildVersion)." installomatorNotify="NOTIFY=all" else installomatorNotify="NOTIFY=silent" @@ -134,7 +143,7 @@ else echo "Cannot find dialog at $dialogApp" # Install using Installlomator cmdOutput="$(${destFile} dialog LOGO=$LOGO BLOCKING_PROCESS_ACTION=ignore LOGGING=REQ NOTIFY=silent || true)" - checkCmdOutput $cmdOutput + checkCmdOutput "${cmdOutput}" fi # Configure and display swiftDialog @@ -147,24 +156,24 @@ else echo "$item $itemName" #Check icon (expecting beginning with “http” to be web-link and “/” to be disk file) - echo "icon before check: $icon" + #echo "icon before check: $icon" if [[ "$(echo ${icon} | grep -iE "^(http|ftp).*")" != "" ]]; then - echo "icon looks to be web-link" + #echo "icon looks to be web-link" if ! curl -sfL --output /dev/null -r 0-0 "${icon}" ; then - echo "ERROR: Cannot download link. Reset icon." + echo "ERROR: Cannot download ${icon} link. Reset icon." icon="" fi elif [[ "$(echo ${icon} | grep -iE "^\/.*")" != "" ]]; then - echo "icon looks to be a file" + #echo "icon looks to be a file" if [[ ! -a "${icon}" ]]; then - echo "ERROR: Cannot find file. Reset icon." + echo "ERROR: Cannot find icon file ${icon}. Reset icon." icon="" fi else - echo "ERROR: Cannot figure out icon. Reset icon." + echo "ERROR: Cannot figure out icon ${icon}. Reset icon." icon="" fi - echo "icon after first check: $icon" + #echo "icon after first check: $icon" # If no icon defined we are trying to search for installed app icon if [[ "$icon" == "" ]]; then appPath=$(mdfind "kind:application AND name:$itemName" | head -1 || true) @@ -173,7 +182,7 @@ else appIcon="${appIcon}.icns" fi icon="${appPath}/Contents/Resources/${appIcon}" - echo "Icon before file check: ${icon}" + #echo "Icon before file check: ${icon}" if [ ! -f "${icon}" ]; then # Using LOGO variable to show logo in swiftDialog case $LOGO in @@ -241,7 +250,7 @@ fi # Install software using Installomator with valuesfromarguments cmdOutput="$(${destFile} valuesfromarguments LOGO=$LOGO \ - name=${name} \ + name=\"${name}\" \ type=${type} \ packageID=${packageID} \ downloadURL=\"$downloadURL\" \ @@ -250,7 +259,7 @@ cmdOutput="$(${destFile} valuesfromarguments LOGO=$LOGO \ expectedTeamID=${expectedTeamID} \ ${installomatorOptions} ${installomatorNotify} || true)" -checkCmdOutput $cmdOutput +checkCmdOutput "${cmdOutput}" # Mark: dockutil stuff if [[ $addToDock -eq 1 ]]; then @@ -259,7 +268,7 @@ if [[ $addToDock -eq 1 ]]; then echo "Cannot find dockutil at $dockutil, trying installation" # Install using Installlomator cmdOutput="$(${destFile} dockutil LOGO=$LOGO BLOCKING_PROCESS_ACTION=ignore LOGGING=REQ NOTIFY=silent || true)" - checkCmdOutput $cmdOutput + checkCmdOutput "${cmdOutput}" fi echo "Adding to Dock" $dockutil --add "${appPath}" "${userHome}/Library/Preferences/com.apple.dock.plist" || true @@ -269,9 +278,7 @@ else fi # Mark: Ending -if [[ $installomatorVersion -lt 10 ]]; then - echo "Again skipping Dialog stuff." -else +if [[ $installomatorVersion -ge 10 && $(sw_vers -buildVersion | cut -c1-2) -ge 20 ]]; then # close and quit dialog dialogUpdate "progress: complete" dialogUpdate "progresstext: Done" diff --git a/MDM/App-install SS with swiftDialog and dockutil/App browser-security SS.sh b/MDM/App-install SS with swiftDialog and dockutil/App browser-security SS.sh index 8e59aba..5714f05 100755 --- a/MDM/App-install SS with swiftDialog and dockutil/App browser-security SS.sh +++ b/MDM/App-install SS with swiftDialog and dockutil/App browser-security SS.sh @@ -45,6 +45,7 @@ installomatorOptions="BLOCKING_PROCESS_ACTION=tell_user_then_quit DIALOG_CMD_FIL # Fill the variable "item" above with a label. # Script will run this label through Installomator. ###################################################################### +# v. 10.0.3 : A bit more logging on succes, and change in ending Dialog part. # v. 10.0.2 : Improved icon checks and failovers # v. 10.0.1 : Improved appIcon handling. Can add the app to Dock using dockutil # v. 10.0 : Integration with Dialog and Installomator v. 10 @@ -67,19 +68,19 @@ dialogUpdate() { fi } checkCmdOutput () { - # $1: cmdOutput - local cmdOutput="$1" - exitStatus="$( echo "${cmdOutput}" | grep --binary-files=text -i "exit" | tail -1 | sed -E 's/.*exit code ([0-9]).*/\1/g' || true )" + local checkOutput="$1" + exitStatus="$( echo "${checkOutput}" | 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." - warnOutput="$( echo "${cmdOutput}" | grep --binary-files=text -i "warn" || true )" - echo "$warnOutput" + selectedOutput="$( echo "${checkOutput}" | 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 "$checkOutput" + #errorOutput="$( echo "${checkOutput}" | grep --binary-files=text -i "error" || true )" #echo "$errorOutput" fi + #echo "$checkOutput" } # Check the currently logged in user @@ -114,9 +115,10 @@ caffexit () { # Mark: Installation begins installomatorVersion="$(${destFile} version | cut -d "." -f1 || true)" -if [[ $installomatorVersion -lt 10 ]] || [[ $(sw_vers -buildVersion) < "20A" ]]; then - echo "Installomator should be at least version 10 to support Dialog. Installed version $installomatorVersion." - echo "And macOS 11 Big Sur (build 20A) is required for Dialog. Installed build $(sw_vers -buildVersion)." +if [[ $installomatorVersion -lt 10 ]] || [[ $(sw_vers -buildVersion | cut -c1-2) -lt 20 ]]; then + echo "Skipping swiftDialog UI, using notifications." + #echo "Installomator should be at least version 10 to support swiftDialog. Installed version $installomatorVersion." + #echo "And macOS 11 Big Sur (build 20A) is required for swiftDialog. Installed build $(sw_vers -buildVersion)." installomatorNotify="NOTIFY=all" else installomatorNotify="NOTIFY=silent" @@ -125,7 +127,7 @@ else echo "Cannot find dialog at $dialogApp" # Install using Installlomator cmdOutput="$(${destFile} dialog LOGO=$LOGO BLOCKING_PROCESS_ACTION=ignore LOGGING=REQ NOTIFY=silent || true)" - checkCmdOutput $cmdOutput + checkCmdOutput "${cmdOutput}" fi # Configure and display swiftDialog @@ -138,24 +140,24 @@ else echo "$item $itemName" #Check icon (expecting beginning with “http” to be web-link and “/” to be disk file) - echo "icon before check: $icon" + #echo "icon before check: $icon" if [[ "$(echo ${icon} | grep -iE "^(http|ftp).*")" != "" ]]; then - echo "icon looks to be web-link" + #echo "icon looks to be web-link" if ! curl -sfL --output /dev/null -r 0-0 "${icon}" ; then - echo "ERROR: Cannot download link. Reset icon." + echo "ERROR: Cannot download ${icon} link. Reset icon." icon="" fi elif [[ "$(echo ${icon} | grep -iE "^\/.*")" != "" ]]; then - echo "icon looks to be a file" + #echo "icon looks to be a file" if [[ ! -a "${icon}" ]]; then - echo "ERROR: Cannot find file. Reset icon." + echo "ERROR: Cannot find icon file ${icon}. Reset icon." icon="" fi else - echo "ERROR: Cannot figure out icon. Reset icon." + echo "ERROR: Cannot figure out icon ${icon}. Reset icon." icon="" fi - echo "icon after first check: $icon" + #echo "icon after first check: $icon" # If no icon defined we are trying to search for installed app icon if [[ "$icon" == "" ]]; then appPath=$(mdfind "kind:application AND name:$itemName" | head -1 || true) @@ -164,7 +166,7 @@ else appIcon="${appIcon}.icns" fi icon="${appPath}/Contents/Resources/${appIcon}" - echo "Icon before file check: ${icon}" + #echo "Icon before file check: ${icon}" if [ ! -f "${icon}" ]; then # Using LOGO variable to show logo in swiftDialog case $LOGO in @@ -232,7 +234,7 @@ fi # Install software using Installomator cmdOutput="$(${destFile} ${item} LOGO=$LOGO ${installomatorOptions} ${installomatorNotify} || true)" -checkCmdOutput $cmdOutput +checkCmdOutput "${cmdOutput}" # Mark: dockutil stuff if [[ $addToDock -eq 1 ]]; then @@ -241,7 +243,7 @@ if [[ $addToDock -eq 1 ]]; then echo "Cannot find dockutil at $dockutil, trying installation" # Install using Installlomator cmdOutput="$(${destFile} dockutil LOGO=$LOGO BLOCKING_PROCESS_ACTION=ignore LOGGING=REQ NOTIFY=silent || true)" - checkCmdOutput $cmdOutput + checkCmdOutput "${cmdOutput}" fi echo "Adding to Dock" $dockutil --add "${appPath}" "${userHome}/Library/Preferences/com.apple.dock.plist" || true @@ -251,9 +253,7 @@ else fi # Mark: Ending -if [[ $installomatorVersion -lt 10 ]]; then - echo "Again skipping Dialog stuff." -else +if [[ $installomatorVersion -ge 10 && $(sw_vers -buildVersion | cut -c1-2) -ge 20 ]]; then # close and quit dialog dialogUpdate "progress: complete" dialogUpdate "progresstext: Done" diff --git a/MDM/App-install SS with swiftDialog and dockutil/App normal SS multi-app.sh b/MDM/App-install SS with swiftDialog and dockutil/App normal SS multi-app.sh index 0cc2af9..ecbf825 100644 --- a/MDM/App-install SS with swiftDialog and dockutil/App normal SS multi-app.sh +++ b/MDM/App-install SS with swiftDialog and dockutil/App normal SS multi-app.sh @@ -45,6 +45,7 @@ installomatorOptions="BLOCKING_PROCESS_ACTION=prompt_user DIALOG_CMD_FILE=${dial # Fill the variable "item" above with a label. # Script will run this label through Installomator. ###################################################################### +# v. 10.0.3 : A bit more logging on succes, and change in ending Dialog part. # v. 10.0.2 : Improved icon checks and failovers # v. 10.0.1 : Improved appIcon handling. Can add the app to Dock using dockutil # v. 10.0 : Integration with Dialog and Installomator v. 10 @@ -67,19 +68,19 @@ dialogUpdate() { fi } checkCmdOutput () { - # $1: cmdOutput - local cmdOutput="$1" - exitStatus="$( echo "${cmdOutput}" | grep --binary-files=text -i "exit" | tail -1 | sed -E 's/.*exit code ([0-9]).*/\1/g' || true )" + local checkOutput="$1" + exitStatus="$( echo "${checkOutput}" | 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." - warnOutput="$( echo "${cmdOutput}" | grep --binary-files=text -i "warn" || true )" - echo "$warnOutput" + selectedOutput="$( echo "${checkOutput}" | 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 "$checkOutput" + #errorOutput="$( echo "${checkOutput}" | grep --binary-files=text -i "error" || true )" #echo "$errorOutput" fi + #echo "$checkOutput" } # Check the currently logged in user @@ -114,9 +115,10 @@ caffexit () { # Mark: Installation begins installomatorVersion="$(${destFile} version | cut -d "." -f1 || true)" -if [[ $installomatorVersion -lt 10 ]] || [[ $(sw_vers -buildVersion) < "20A" ]]; then - echo "Installomator should be at least version 10 to support Dialog. Installed version $installomatorVersion." - echo "And macOS 11 Big Sur (build 20A) is required for Dialog. Installed build $(sw_vers -buildVersion)." +if [[ $installomatorVersion -lt 10 ]] || [[ $(sw_vers -buildVersion | cut -c1-2) -lt 20 ]]; then + echo "Skipping swiftDialog UI, using notifications." + #echo "Installomator should be at least version 10 to support swiftDialog. Installed version $installomatorVersion." + #echo "And macOS 11 Big Sur (build 20A) is required for swiftDialog. Installed build $(sw_vers -buildVersion)." installomatorNotify="NOTIFY=all" else installomatorNotify="NOTIFY=silent" @@ -125,7 +127,7 @@ else echo "Cannot find dialog at $dialogApp" # Install using Installlomator cmdOutput="$(${destFile} dialog LOGO=$LOGO BLOCKING_PROCESS_ACTION=ignore LOGGING=REQ NOTIFY=silent || true)" - checkCmdOutput $cmdOutput + checkCmdOutput "${cmdOutput}" fi # Configure and display swiftDialog @@ -138,24 +140,24 @@ else echo "$item $itemName" #Check icon (expecting beginning with “http” to be web-link and “/” to be disk file) - echo "icon before check: $icon" + #echo "icon before check: $icon" if [[ "$(echo ${icon} | grep -iE "^(http|ftp).*")" != "" ]]; then - echo "icon looks to be web-link" + #echo "icon looks to be web-link" if ! curl -sfL --output /dev/null -r 0-0 "${icon}" ; then - echo "ERROR: Cannot download link. Reset icon." + echo "ERROR: Cannot download ${icon} link. Reset icon." icon="" fi elif [[ "$(echo ${icon} | grep -iE "^\/.*")" != "" ]]; then - echo "icon looks to be a file" + #echo "icon looks to be a file" if [[ ! -a "${icon}" ]]; then - echo "ERROR: Cannot find file. Reset icon." + echo "ERROR: Cannot find icon file ${icon}. Reset icon." icon="" fi else - echo "ERROR: Cannot figure out icon. Reset icon." + echo "ERROR: Cannot figure out icon ${icon}. Reset icon." icon="" fi - echo "icon after first check: $icon" + #echo "icon after first check: $icon" # If no icon defined we are trying to search for installed app icon if [[ "$icon" == "" ]]; then appPath=$(mdfind "kind:application AND name:$itemName" | head -1 || true) @@ -164,7 +166,7 @@ else appIcon="${appIcon}.icns" fi icon="${appPath}/Contents/Resources/${appIcon}" - echo "Icon before file check: ${icon}" + #echo "Icon before file check: ${icon}" if [ ! -f "${icon}" ]; then # Using LOGO variable to show logo in swiftDialog case $LOGO in @@ -232,7 +234,7 @@ fi # Install software using Installomator cmdOutput="$(${destFile} ${item} LOGO=$LOGO ${installomatorOptions} ${installomatorNotify} || true)" -checkCmdOutput $cmdOutput +checkCmdOutput "${cmdOutput}" # Mark: dockutil stuff if [[ $addToDock -eq 1 ]]; then @@ -241,7 +243,7 @@ if [[ $addToDock -eq 1 ]]; then echo "Cannot find dockutil at $dockutil, trying installation" # Install using Installlomator cmdOutput="$(${destFile} dockutil LOGO=$LOGO BLOCKING_PROCESS_ACTION=ignore LOGGING=REQ NOTIFY=silent || true)" - checkCmdOutput $cmdOutput + checkCmdOutput "${cmdOutput}" fi echo "Adding to Dock" for appPath in "${appPaths[@]}"; do @@ -254,9 +256,7 @@ else fi # Mark: Ending -if [[ $installomatorVersion -lt 10 ]]; then - echo "Again skipping Dialog stuff." -else +iif [[ $installomatorVersion -ge 10 && $(sw_vers -buildVersion | cut -c1-2) -ge 20 ]]; then # close and quit dialog dialogUpdate "progress: complete" dialogUpdate "progresstext: Done" diff --git a/MDM/App-install SS with swiftDialog and dockutil/App normal SS.sh b/MDM/App-install SS with swiftDialog and dockutil/App normal SS.sh index 77f7add..9f31c1d 100644 --- a/MDM/App-install SS with swiftDialog and dockutil/App normal SS.sh +++ b/MDM/App-install SS with swiftDialog and dockutil/App normal SS.sh @@ -42,6 +42,7 @@ installomatorOptions="BLOCKING_PROCESS_ACTION=prompt_user DIALOG_CMD_FILE=${dial # Fill the variable "item" above with a label. # Script will run this label through Installomator. ###################################################################### +# v. 10.0.3 : A bit more logging on succes, and change in ending Dialog part. # v. 10.0.2 : Improved icon checks and failovers # v. 10.0.1 : Improved appIcon handling. Can add the app to Dock using dockutil # v. 10.0 : Integration with Dialog and Installomator v. 10 @@ -64,19 +65,19 @@ dialogUpdate() { fi } checkCmdOutput () { - # $1: cmdOutput - local cmdOutput="$1" - exitStatus="$( echo "${cmdOutput}" | grep --binary-files=text -i "exit" | tail -1 | sed -E 's/.*exit code ([0-9]).*/\1/g' || true )" + local checkOutput="$1" + exitStatus="$( echo "${checkOutput}" | 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." - warnOutput="$( echo "${cmdOutput}" | grep --binary-files=text -i "warn" || true )" - echo "$warnOutput" + selectedOutput="$( echo "${checkOutput}" | 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 "$checkOutput" + #errorOutput="$( echo "${checkOutput}" | grep --binary-files=text -i "error" || true )" #echo "$errorOutput" fi + #echo "$checkOutput" } # Check the currently logged in user @@ -111,9 +112,10 @@ caffexit () { # Mark: Installation begins installomatorVersion="$(${destFile} version | cut -d "." -f1 || true)" -if [[ $installomatorVersion -lt 10 ]] || [[ $(sw_vers -buildVersion) < "20A" ]]; then - echo "Installomator should be at least version 10 to support Dialog. Installed version $installomatorVersion." - echo "And macOS 11 Big Sur (build 20A) is required for Dialog. Installed build $(sw_vers -buildVersion)." +if [[ $installomatorVersion -lt 10 ]] || [[ $(sw_vers -buildVersion | cut -c1-2) -lt 20 ]]; then + echo "Skipping swiftDialog UI, using notifications." + #echo "Installomator should be at least version 10 to support swiftDialog. Installed version $installomatorVersion." + #echo "And macOS 11 Big Sur (build 20A) is required for swiftDialog. Installed build $(sw_vers -buildVersion)." installomatorNotify="NOTIFY=all" else installomatorNotify="NOTIFY=silent" @@ -122,7 +124,7 @@ else echo "Cannot find dialog at $dialogApp" # Install using Installlomator cmdOutput="$(${destFile} dialog LOGO=$LOGO BLOCKING_PROCESS_ACTION=ignore LOGGING=REQ NOTIFY=silent || true)" - checkCmdOutput $cmdOutput + checkCmdOutput "${cmdOutput}" fi # Configure and display swiftDialog @@ -135,24 +137,24 @@ else echo "$item $itemName" #Check icon (expecting beginning with “http” to be web-link and “/” to be disk file) - echo "icon before check: $icon" + #echo "icon before check: $icon" if [[ "$(echo ${icon} | grep -iE "^(http|ftp).*")" != "" ]]; then - echo "icon looks to be web-link" + #echo "icon looks to be web-link" if ! curl -sfL --output /dev/null -r 0-0 "${icon}" ; then - echo "ERROR: Cannot download link. Reset icon." + echo "ERROR: Cannot download ${icon} link. Reset icon." icon="" fi elif [[ "$(echo ${icon} | grep -iE "^\/.*")" != "" ]]; then - echo "icon looks to be a file" + #echo "icon looks to be a file" if [[ ! -a "${icon}" ]]; then - echo "ERROR: Cannot find file. Reset icon." + echo "ERROR: Cannot find icon file ${icon}. Reset icon." icon="" fi else - echo "ERROR: Cannot figure out icon. Reset icon." + echo "ERROR: Cannot figure out icon ${icon}. Reset icon." icon="" fi - echo "icon after first check: $icon" + #echo "icon after first check: $icon" # If no icon defined we are trying to search for installed app icon if [[ "$icon" == "" ]]; then appPath=$(mdfind "kind:application AND name:$itemName" | head -1 || true) @@ -161,7 +163,7 @@ else appIcon="${appIcon}.icns" fi icon="${appPath}/Contents/Resources/${appIcon}" - echo "Icon before file check: ${icon}" + #echo "Icon before file check: ${icon}" if [ ! -f "${icon}" ]; then # Using LOGO variable to show logo in swiftDialog case $LOGO in @@ -229,7 +231,7 @@ fi # Install software using Installomator cmdOutput="$(${destFile} ${item} LOGO=$LOGO ${installomatorOptions} ${installomatorNotify} || true)" -checkCmdOutput $cmdOutput +checkCmdOutput "${cmdOutput}" # Mark: dockutil stuff if [[ $addToDock -eq 1 ]]; then @@ -238,7 +240,7 @@ if [[ $addToDock -eq 1 ]]; then echo "Cannot find dockutil at $dockutil, trying installation" # Install using Installlomator cmdOutput="$(${destFile} dockutil LOGO=$LOGO BLOCKING_PROCESS_ACTION=ignore LOGGING=REQ NOTIFY=silent || true)" - checkCmdOutput $cmdOutput + checkCmdOutput "${cmdOutput}" fi echo "Adding to Dock" $dockutil --add "${appPath}" "${userHome}/Library/Preferences/com.apple.dock.plist" || true @@ -248,9 +250,7 @@ else fi # Mark: Ending -if [[ $installomatorVersion -lt 10 ]]; then - echo "Again skipping Dialog stuff." -else +if [[ $installomatorVersion -ge 10 && $(sw_vers -buildVersion | cut -c1-2) -ge 20 ]]; then # close and quit dialog dialogUpdate "progress: complete" dialogUpdate "progresstext: Done" diff --git a/MDM/App-install SS with swiftDialog and dockutil/App service SS.sh b/MDM/App-install SS with swiftDialog and dockutil/App service SS.sh index 67d1f56..fde5e30 100644 --- a/MDM/App-install SS with swiftDialog and dockutil/App service SS.sh +++ b/MDM/App-install SS with swiftDialog and dockutil/App service SS.sh @@ -21,7 +21,7 @@ dialog_command_file="/var/tmp/dialog.log" dialogApp="/Library/Application Support/Dialog/Dialog.app" dockutil="/usr/local/bin/dockutil" -installomatorOptions="BLOCKING_PROCESS_ACTION=ignore NOTIFY=silent DIALOG_CMD_FILE=${dialog_command_file}" # Separated by space +installomatorOptions="BLOCKING_PROCESS_ACTION=ignore DIALOG_CMD_FILE=${dialog_command_file}" # Separated by space # Other installomatorOptions: # LOGGING=REQ @@ -45,6 +45,7 @@ installomatorOptions="BLOCKING_PROCESS_ACTION=ignore NOTIFY=silent DIALOG_CMD_FI # Fill the variable "item" above with a label. # Script will run this label through Installomator. ###################################################################### +# v. 10.0.3 : A bit more logging on succes, and change in ending Dialog part. # v. 10.0.2 : Improved icon checks and failovers # v. 10.0.1 : Can add the app to Dock using dockutil # v. 10.0 : Integration with Dialog and Installomator v. 10 @@ -67,19 +68,19 @@ dialogUpdate() { fi } checkCmdOutput () { - # $1: cmdOutput - local cmdOutput="$1" - exitStatus="$( echo "${cmdOutput}" | grep --binary-files=text -i "exit" | tail -1 | sed -E 's/.*exit code ([0-9]).*/\1/g' || true )" + local checkOutput="$1" + exitStatus="$( echo "${checkOutput}" | 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." - warnOutput="$( echo "${cmdOutput}" | grep --binary-files=text -i "warn" || true )" - echo "$warnOutput" + selectedOutput="$( echo "${checkOutput}" | 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 "$checkOutput" + #errorOutput="$( echo "${checkOutput}" | grep --binary-files=text -i "error" || true )" #echo "$errorOutput" fi + #echo "$checkOutput" } # Check the currently logged in user @@ -114,9 +115,10 @@ caffexit () { # Mark: Installation begins installomatorVersion="$(${destFile} version | cut -d "." -f1 || true)" -if [[ $installomatorVersion -lt 10 ]] || [[ $(sw_vers -buildVersion) < "20A" ]]; then - echo "Installomator should be at least version 10 to support Dialog. Installed version $installomatorVersion." - echo "And macOS 11 Big Sur (build 20A) is required for Dialog. Installed build $(sw_vers -buildVersion)." +if [[ $installomatorVersion -lt 10 ]] || [[ $(sw_vers -buildVersion | cut -c1-2) -lt 20 ]]; then + echo "Skipping swiftDialog UI, using notifications." + #echo "Installomator should be at least version 10 to support swiftDialog. Installed version $installomatorVersion." + #echo "And macOS 11 Big Sur (build 20A) is required for swiftDialog. Installed build $(sw_vers -buildVersion)." installomatorNotify="NOTIFY=all" else installomatorNotify="NOTIFY=silent" @@ -125,7 +127,7 @@ else echo "Cannot find dialog at $dialogApp" # Install using Installlomator cmdOutput="$(${destFile} dialog LOGO=$LOGO BLOCKING_PROCESS_ACTION=ignore LOGGING=REQ NOTIFY=silent || true)" - checkCmdOutput $cmdOutput + checkCmdOutput "${cmdOutput}" fi # Configure and display swiftDialog @@ -138,24 +140,24 @@ else echo "$item $itemName" #Check icon (expecting beginning with “http” to be web-link and “/” to be disk file) - echo "icon before check: $icon" + #echo "icon before check: $icon" if [[ "$(echo ${icon} | grep -iE "^(http|ftp).*")" != "" ]]; then - echo "icon looks to be web-link" + #echo "icon looks to be web-link" if ! curl -sfL --output /dev/null -r 0-0 "${icon}" ; then - echo "ERROR: Cannot download link. Reset icon." + echo "ERROR: Cannot download ${icon} link. Reset icon." icon="" fi elif [[ "$(echo ${icon} | grep -iE "^\/.*")" != "" ]]; then - echo "icon looks to be a file" + #echo "icon looks to be a file" if [[ ! -a "${icon}" ]]; then - echo "ERROR: Cannot find file. Reset icon." + echo "ERROR: Cannot find icon file ${icon}. Reset icon." icon="" fi else - echo "ERROR: Cannot figure out icon. Reset icon." + echo "ERROR: Cannot figure out icon ${icon}. Reset icon." icon="" fi - echo "icon after first check: $icon" + #echo "icon after first check: $icon" # If no icon defined we are trying to search for installed app icon if [[ "$icon" == "" ]]; then appPath=$(mdfind "kind:application AND name:$itemName" | head -1 || true) @@ -164,7 +166,7 @@ else appIcon="${appIcon}.icns" fi icon="${appPath}/Contents/Resources/${appIcon}" - echo "Icon before file check: ${icon}" + #echo "Icon before file check: ${icon}" if [ ! -f "${icon}" ]; then # Using LOGO variable to show logo in swiftDialog case $LOGO in @@ -232,7 +234,7 @@ fi # Install software using Installomator cmdOutput="$(${destFile} ${item} LOGO=$LOGO ${installomatorOptions} ${installomatorNotify} || true)" -checkCmdOutput $cmdOutput +checkCmdOutput "${cmdOutput}" # Mark: dockutil stuff if [[ $addToDock -eq 1 ]]; then @@ -241,7 +243,7 @@ if [[ $addToDock -eq 1 ]]; then echo "Cannot find dockutil at $dockutil, trying installation" # Install using Installlomator cmdOutput="$(${destFile} dockutil LOGO=$LOGO BLOCKING_PROCESS_ACTION=ignore LOGGING=REQ NOTIFY=silent || true)" - checkCmdOutput $cmdOutput + checkCmdOutput "${cmdOutput}" fi echo "Adding to Dock" $dockutil --add "${appPath}" "${userHome}/Library/Preferences/com.apple.dock.plist" || true @@ -251,9 +253,7 @@ else fi # Mark: Ending -if [[ $installomatorVersion -lt 10 ]]; then - echo "Again skipping Dialog stuff." -else +if [[ $installomatorVersion -ge 10 && $(sw_vers -buildVersion | cut -c1-2) -ge 20 ]]; then # close and quit dialog dialogUpdate "progress: complete" dialogUpdate "progresstext: Done" diff --git a/MDM/App-install/App VFA.sh b/MDM/App-install/App VFA.sh index 3162a67..ad9fd73 100755 --- a/MDM/App-install/App VFA.sh +++ b/MDM/App-install/App VFA.sh @@ -5,10 +5,14 @@ LOGO="" # "mosyleb", "mosylem", "addigy", "microsoft", "ws1" -#item="" # enter the software to install (if it has a label in future version of Installomator) +# Have the label been submittet in a PR for Installomator? +# What version of Installomator is it expected to be included in? +# Version 10 + +item="" # enter the software to install (if it has a label in future version of Installomator) # Variables for label -name="ClickShare" +name="ClickShare" # Spaces in the name will not work type="appInDmgInZip" packageID="" downloadURL="https://www.barco.com$( curl -fs "https://www.barco.com/en/clickshare/app" | grep -A6 -i "macos" | grep -i "FileNumber" | tr '"' "\n" | grep -i "FileNumber" )" @@ -40,6 +44,7 @@ installomatorOptions="BLOCKING_PROCESS_ACTION=prompt_user LOGGING=INFO NOTIFY=al # Fill the variable "what" 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. ###################################################################### @@ -84,8 +89,8 @@ cmdOutput="$(${destFile} valuesfromarguments LOGO=$LOGO \ 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 "${what} succesfully installed." - warnOutput="$( echo "${cmdOutput}" | grep --binary-files=text -i "warn" || true )" - echo "$warnOutput" + selectedOutput="$( echo "${cmdOutput}" | grep --binary-files=text -E ": (REQ|ERROR|WARN)" || true )" + echo "$selectedOutput" else echo "ERROR installing ${what}. Exit code ${exitStatus}" echo "$cmdOutput" diff --git a/MDM/App-install/App browser-security Auto-install.sh b/MDM/App-install/App browser-security Auto-install.sh index c45b568..c2c8a8b 100644 --- a/MDM/App-install/App browser-security Auto-install.sh +++ b/MDM/App-install/App browser-security Auto-install.sh @@ -31,6 +31,7 @@ installomatorOptions="BLOCKING_PROCESS_ACTION=tell_user_then_quit" # Separated b # 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. ###################################################################### @@ -65,8 +66,8 @@ cmdOutput="$(${destFile} ${item} LOGO=$LOGO ${installomatorOptions} || true)" 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." - warnOutput="$( echo "${cmdOutput}" | grep --binary-files=text -i "warn" || true )" - echo "$warnOutput" + selectedOutput="$( echo "${cmdOutput}" | grep --binary-files=text -E ": (REQ|ERROR|WARN)" || true )" + echo "$selectedOutput" else echo "ERROR installing ${item}. Exit code ${exitStatus}" echo "$cmdOutput" diff --git a/MDM/App-install/App browser-security SS.sh b/MDM/App-install/App browser-security SS.sh index 83c8b12..fac4e7b 100644 --- a/MDM/App-install/App browser-security SS.sh +++ b/MDM/App-install/App browser-security SS.sh @@ -31,6 +31,7 @@ installomatorOptions="BLOCKING_PROCESS_ACTION=tell_user_then_quit NOTIFY=all" # # Fill the variable "what" 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. ###################################################################### @@ -65,8 +66,8 @@ cmdOutput="$(${destFile} ${what} LOGO=$LOGO ${installomatorOptions} || true)" 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 "${what} succesfully installed." - warnOutput="$( echo "${cmdOutput}" | grep --binary-files=text -i "warn" || true )" - echo "$warnOutput" + selectedOutput="$( echo "${cmdOutput}" | grep --binary-files=text -E ": (REQ|ERROR|WARN)" || true )" + echo "$selectedOutput" else echo "ERROR installing ${what}. Exit code ${exitStatus}" echo "$cmdOutput" diff --git a/MDM/App-install/App normal Auto-install.sh b/MDM/App-install/App normal Auto-install.sh index 986b054..4e22dce 100644 --- a/MDM/App-install/App normal Auto-install.sh +++ b/MDM/App-install/App normal Auto-install.sh @@ -31,6 +31,7 @@ installomatorOptions="BLOCKING_PROCESS_ACTION=tell_user" # Separated by space # 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. ###################################################################### @@ -65,8 +66,8 @@ cmdOutput="$(${destFile} ${item} LOGO=$LOGO ${installomatorOptions} || true)" 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." - warnOutput="$( echo "${cmdOutput}" | grep --binary-files=text -i "warn" || true )" - echo "$warnOutput" + selectedOutput="$( echo "${cmdOutput}" | grep --binary-files=text -E ": (REQ|ERROR|WARN)" || true )" + echo "$selectedOutput" else echo "ERROR installing ${item}. Exit code ${exitStatus}" echo "$cmdOutput" diff --git a/MDM/App-install/App normal SS.sh b/MDM/App-install/App normal SS.sh index 06f7c04..8601f37 100644 --- a/MDM/App-install/App normal SS.sh +++ b/MDM/App-install/App normal SS.sh @@ -32,6 +32,7 @@ installomatorOptions="BLOCKING_PROCESS_ACTION=prompt_user NOTIFY=all" # Separate # 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. ###################################################################### @@ -66,8 +67,8 @@ cmdOutput="$(${destFile} ${item} LOGO=$LOGO ${installomatorOptions} || true)" 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." - warnOutput="$( echo "${cmdOutput}" | grep --binary-files=text -i "warn" || true )" - echo "$warnOutput" + selectedOutput="$( echo "${cmdOutput}" | grep --binary-files=text -E ": (REQ|ERROR|WARN)" || true )" + echo "$selectedOutput" else echo "ERROR installing ${item}. Exit code ${exitStatus}" echo "$cmdOutput" diff --git a/MDM/App-install/App service Auto-install.sh b/MDM/App-install/App service Auto-install.sh index aa7165e..ef191e6 100644 --- a/MDM/App-install/App service Auto-install.sh +++ b/MDM/App-install/App service Auto-install.sh @@ -31,6 +31,7 @@ installomatorOptions="BLOCKING_PROCESS_ACTION=ignore NOTIFY=silent" # Separated # 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. ###################################################################### @@ -65,8 +66,8 @@ cmdOutput="$(${destFile} ${item} LOGO=$LOGO ${installomatorOptions} || true)" 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." - warnOutput="$( echo "${cmdOutput}" | grep --binary-files=text -i "warn" || true )" - echo "$warnOutput" + selectedOutput="$( echo "${cmdOutput}" | grep --binary-files=text -E ": (REQ|ERROR|WARN)" || true )" + echo "$selectedOutput" else echo "ERROR installing ${item}. Exit code ${exitStatus}" echo "$cmdOutput" diff --git a/MDM/App-update/App browser-security Auto-install.sh b/MDM/App-update/App browser-security Auto-install.sh index 211e564..53d5fd9 100644 --- a/MDM/App-update/App browser-security Auto-install.sh +++ b/MDM/App-update/App browser-security Auto-install.sh @@ -33,6 +33,7 @@ installomatorOptions="BLOCKING_PROCESS_ACTION=tell_user_then_quit" # Separated b # 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. ###################################################################### @@ -77,8 +78,8 @@ cmdOutput="$(${destFile} ${item} LOGO=$LOGO ${installomatorOptions} || true)" 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." - warnOutput="$( echo "${cmdOutput}" | grep --binary-files=text -i "warn" || true )" - echo "$warnOutput" + selectedOutput="$( echo "${cmdOutput}" | grep --binary-files=text -E ": (REQ|ERROR|WARN)" || true )" + echo "$selectedOutput" else echo "ERROR installing ${item}. Exit code ${exitStatus}" echo "$cmdOutput" diff --git a/MDM/App-update/App normal Auto-install.sh b/MDM/App-update/App normal Auto-install.sh index c2ac671..870c53a 100644 --- a/MDM/App-update/App normal Auto-install.sh +++ b/MDM/App-update/App normal Auto-install.sh @@ -33,6 +33,7 @@ installomatorOptions="BLOCKING_PROCESS_ACTION=prompt_user" # Separated by space # 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. ###################################################################### @@ -77,8 +78,8 @@ cmdOutput="$(${destFile} ${item} LOGO=$LOGO ${installomatorOptions} || true)" 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." - warnOutput="$( echo "${cmdOutput}" | grep --binary-files=text -i "warn" || true )" - echo "$warnOutput" + selectedOutput="$( echo "${cmdOutput}" | grep --binary-files=text -E ": (REQ|ERROR|WARN)" || true )" + echo "$selectedOutput" else echo "ERROR installing ${item}. Exit code ${exitStatus}" echo "$cmdOutput" diff --git a/MDM/Collect Installomator.log.sh b/MDM/Collect Installomator.log.sh new file mode 100644 index 0000000..c0af18d --- /dev/null +++ b/MDM/Collect Installomator.log.sh @@ -0,0 +1,19 @@ +#!/bin/sh + +# A small script to grab Installomator log from a client Mac. +# Can be sent to the client so the result can be seen in MDM +# Only uncomment the line below for the things you want to see. + +logFile="/var/log/Installomator.log" + +# Show latest 100 lines of the log +tail -100 "${logFile}" + +# Show latest 500 lines but filter to REQ|ERROR|WARN lines +# Great overview of the log +#tail -500 "${logFile}" | grep --binary-files=text -E ": (REQ|ERROR|WARN)" + +# Show only one label +# Great to see everything for a label that might fail or not working as expected +label="valuesfromarguments" +#cat "${logFile}" | grep --binary-files=text ": ${label}" diff --git a/MDM/Installomator 1st Auto-install DEPNotify.sh b/MDM/Installomator 1st Auto-install DEPNotify.sh index 7baa737..e357923 100755 --- a/MDM/Installomator 1st Auto-install DEPNotify.sh +++ b/MDM/Installomator 1st Auto-install DEPNotify.sh @@ -54,7 +54,8 @@ errorMessage="A problem was encountered setting up this Mac. Please contact IT." # https://github.com/Installomator/Installomator # ###################################################################### -scriptVersion="9.5" +scriptVersion="9.6" +# v. 9.6 : 2022-11-15 : GitHub API call is first, only try alternative if that fails. # v. 9.5 : 2022-09-21 : change of GitHub download # v. 9.4 : 2022-09-14 : downloadURL can fall back on GitHub API # v. 9.3 : 2022-08-29 : installomatorOptions in quotes and ignore blocking processes. Improved installation with looping if it fails, so it can try again. Improved GitHub handling. ws1 support. @@ -207,11 +208,11 @@ gitusername="Installomator" gitreponame="Installomator" #printlog "$gitusername $gitreponame" filetype="pkg" -#downloadURL="https://github.com$(curl -sfL "https://github.com/$gitusername/$gitreponame/releases/latest" | tr '"' "\n" | grep -i "^/.*\/releases\/download\/.*\.$filetype" | head -1)" -downloadURL="https://github.com$(curl -sfL "$(curl -sfL "https://github.com/$gitusername/$gitreponame/releases/latest" | tr '"' "\n" | grep -i "expanded_assets" | head -1)" | tr '"' "\n" | grep -i "^/.*\/releases\/download\/.*\.$filetype" | head -1)" +downloadURL=$(curl -sfL "https://api.github.com/repos/$gitusername/$gitreponame/releases/latest" | awk -F '"' "/browser_download_url/ && /$filetype\"/ { print \$4; exit }") if [[ "$(echo $downloadURL | grep -ioE "https.*.$filetype")" == "" ]]; then - printlog "Trying GitHub API for download URL." - downloadURL=$(curl -sfL "https://api.github.com/repos/$gitusername/$gitreponame/releases/latest" | awk -F '"' "/browser_download_url/ && /$filetype\"/ { print \$4; exit }") + printlog "GitHub API failed, trying failover." + #downloadURL="https://github.com$(curl -sfL "https://github.com/$gitusername/$gitreponame/releases/latest" | tr '"' "\n" | grep -i "^/.*\/releases\/download\/.*\.$filetype" | head -1)" + downloadURL="https://github.com$(curl -sfL "$(curl -sfL "https://github.com/$gitusername/$gitreponame/releases/latest" | tr '"' "\n" | grep -i "expanded_assets" | head -1)" | tr '"' "\n" | grep -i "^/.*\/releases\/download\/.*\.$filetype" | head -1)" fi #printlog "$downloadURL" appNewVersion=$(curl -sLI "https://github.com/$gitusername/$gitreponame/releases/latest" | grep -i "^location" | tr "/" "\n" | tail -1 | sed 's/[^0-9\.]//g') diff --git a/MDM/Installomator 1st Auto-install.sh b/MDM/Installomator 1st Auto-install.sh index 6dd9353..6cb382e 100755 --- a/MDM/Installomator 1st Auto-install.sh +++ b/MDM/Installomator 1st Auto-install.sh @@ -52,7 +52,8 @@ errorMessage="A problem was encountered setting up this Mac. Please contact IT." # https://github.com/Installomator/Installomator # ###################################################################### -scriptVersion="9.5" +scriptVersion="9.6" +# v. 9.6 : 2022-11-15 : GitHub API call is first, only try alternative if that fails. # v. 9.5 : 2022-09-21 : change of GitHub download # v. 9.4 : 2022-09-14 : Making error message optional. downloadURL can fall back on GitHub API. # v. 9.3 : 2022-08-29 : installomatorOptions in quotes and ignore blocking processes. Improved installation with looping if it fails, so it can try again. Improved GitHub handling. ws1 support. @@ -178,11 +179,11 @@ gitusername="Installomator" gitreponame="Installomator" #printlog "$gitusername $gitreponame" filetype="pkg" -#downloadURL="https://github.com$(curl -sfL "https://github.com/$gitusername/$gitreponame/releases/latest" | tr '"' "\n" | grep -i "^/.*\/releases\/download\/.*\.$filetype" | head -1)" -downloadURL="https://github.com$(curl -sfL "$(curl -sfL "https://github.com/$gitusername/$gitreponame/releases/latest" | tr '"' "\n" | grep -i "expanded_assets" | head -1)" | tr '"' "\n" | grep -i "^/.*\/releases\/download\/.*\.$filetype" | head -1)" +downloadURL=$(curl -sfL "https://api.github.com/repos/$gitusername/$gitreponame/releases/latest" | awk -F '"' "/browser_download_url/ && /$filetype\"/ { print \$4; exit }") if [[ "$(echo $downloadURL | grep -ioE "https.*.$filetype")" == "" ]]; then - printlog "Trying GitHub API for download URL." - downloadURL=$(curl -sfL "https://api.github.com/repos/$gitusername/$gitreponame/releases/latest" | awk -F '"' "/browser_download_url/ && /$filetype\"/ { print \$4; exit }") + printlog "GitHub API failed, trying failover." + #downloadURL="https://github.com$(curl -sfL "https://github.com/$gitusername/$gitreponame/releases/latest" | tr '"' "\n" | grep -i "^/.*\/releases\/download\/.*\.$filetype" | head -1)" + downloadURL="https://github.com$(curl -sfL "$(curl -sfL "https://github.com/$gitusername/$gitreponame/releases/latest" | tr '"' "\n" | grep -i "expanded_assets" | head -1)" | tr '"' "\n" | grep -i "^/.*\/releases\/download\/.*\.$filetype" | head -1)" fi #printlog "$downloadURL" appNewVersion=$(curl -sLI "https://github.com/$gitusername/$gitreponame/releases/latest" | grep -i "^location" | tr "/" "\n" | tail -1 | sed 's/[^0-9\.]//g') diff --git a/MDM/Installomator 1st SS DEPNotify.sh b/MDM/Installomator 1st SS DEPNotify.sh index b911f79..ac163c4 100755 --- a/MDM/Installomator 1st SS DEPNotify.sh +++ b/MDM/Installomator 1st SS DEPNotify.sh @@ -54,7 +54,8 @@ errorMessage="A problem was encountered setting up this Mac. Please contact IT." # https://github.com/Installomator/Installomator # ###################################################################### -scriptVersion="9.5" +scriptVersion="9.6" +# v. 9.6 : 2022-11-15 : GitHub API call is first, only try alternative if that fails. # v. 9.5 : 2022-09-21 : change of GitHub download # v. 9.4 : 2022-09-14 : downloadURL can fall back on GitHub API # v. 9.3 : 2022-08-29 : installomatorOptions in quotes and ignore blocking processes. Improved installation with looping if it fails, so it can try again. Improved GitHub handling. ws1 support. @@ -207,11 +208,11 @@ gitusername="Installomator" gitreponame="Installomator" #printlog "$gitusername $gitreponame" filetype="pkg" -#downloadURL="https://github.com$(curl -sfL "https://github.com/$gitusername/$gitreponame/releases/latest" | tr '"' "\n" | grep -i "^/.*\/releases\/download\/.*\.$filetype" | head -1)" -downloadURL="https://github.com$(curl -sfL "$(curl -sfL "https://github.com/$gitusername/$gitreponame/releases/latest" | tr '"' "\n" | grep -i "expanded_assets" | head -1)" | tr '"' "\n" | grep -i "^/.*\/releases\/download\/.*\.$filetype" | head -1)" +downloadURL=$(curl -sfL "https://api.github.com/repos/$gitusername/$gitreponame/releases/latest" | awk -F '"' "/browser_download_url/ && /$filetype\"/ { print \$4; exit }") if [[ "$(echo $downloadURL | grep -ioE "https.*.$filetype")" == "" ]]; then - printlog "Trying GitHub API for download URL." - downloadURL=$(curl -sfL "https://api.github.com/repos/$gitusername/$gitreponame/releases/latest" | awk -F '"' "/browser_download_url/ && /$filetype\"/ { print \$4; exit }") + printlog "GitHub API failed, trying failover." + #downloadURL="https://github.com$(curl -sfL "https://github.com/$gitusername/$gitreponame/releases/latest" | tr '"' "\n" | grep -i "^/.*\/releases\/download\/.*\.$filetype" | head -1)" + downloadURL="https://github.com$(curl -sfL "$(curl -sfL "https://github.com/$gitusername/$gitreponame/releases/latest" | tr '"' "\n" | grep -i "expanded_assets" | head -1)" | tr '"' "\n" | grep -i "^/.*\/releases\/download\/.*\.$filetype" | head -1)" fi #printlog "$downloadURL" appNewVersion=$(curl -sLI "https://github.com/$gitusername/$gitreponame/releases/latest" | grep -i "^location" | tr "/" "\n" | tail -1 | sed 's/[^0-9\.]//g') diff --git a/MDM/Installomator 1st SS.sh b/MDM/Installomator 1st SS.sh index e017831..c21a842 100755 --- a/MDM/Installomator 1st SS.sh +++ b/MDM/Installomator 1st SS.sh @@ -51,7 +51,8 @@ errorMessage="A problem was encountered setting up this Mac. Please contact IT." # https://github.com/Installomator/Installomator # ###################################################################### -scriptVersion="9.5" +scriptVersion="9.6" +# v. 9.6 : 2022-11-15 : GitHub API call is first, only try alternative if that fails. # v. 9.5 : 2022-09-21 : change of GitHub download # v. 9.4 : 2022-09-14 : Making error message optional. downloadURL can fall back on GitHub API. # v. 9.3 : 2022-08-29 : installomatorOptions in quotes and ignore blocking processes. Improved installation with looping if it fails, so it can try again. Improved GitHub handling. ws1 support. @@ -177,11 +178,11 @@ gitusername="Installomator" gitreponame="Installomator" #printlog "$gitusername $gitreponame" filetype="pkg" -#downloadURL="https://github.com$(curl -sfL "https://github.com/$gitusername/$gitreponame/releases/latest" | tr '"' "\n" | grep -i "^/.*\/releases\/download\/.*\.$filetype" | head -1)" -downloadURL="https://github.com$(curl -sfL "$(curl -sfL "https://github.com/$gitusername/$gitreponame/releases/latest" | tr '"' "\n" | grep -i "expanded_assets" | head -1)" | tr '"' "\n" | grep -i "^/.*\/releases\/download\/.*\.$filetype" | head -1)" +downloadURL=$(curl -sfL "https://api.github.com/repos/$gitusername/$gitreponame/releases/latest" | awk -F '"' "/browser_download_url/ && /$filetype\"/ { print \$4; exit }") if [[ "$(echo $downloadURL | grep -ioE "https.*.$filetype")" == "" ]]; then - printlog "Trying GitHub API for download URL." - downloadURL=$(curl -sfL "https://api.github.com/repos/$gitusername/$gitreponame/releases/latest" | awk -F '"' "/browser_download_url/ && /$filetype\"/ { print \$4; exit }") + printlog "GitHub API failed, trying failover." + #downloadURL="https://github.com$(curl -sfL "https://github.com/$gitusername/$gitreponame/releases/latest" | tr '"' "\n" | grep -i "^/.*\/releases\/download\/.*\.$filetype" | head -1)" + downloadURL="https://github.com$(curl -sfL "$(curl -sfL "https://github.com/$gitusername/$gitreponame/releases/latest" | tr '"' "\n" | grep -i "expanded_assets" | head -1)" | tr '"' "\n" | grep -i "^/.*\/releases\/download\/.*\.$filetype" | head -1)" fi #printlog "$downloadURL" appNewVersion=$(curl -sLI "https://github.com/$gitusername/$gitreponame/releases/latest" | grep -i "^location" | tr "/" "\n" | tail -1 | sed 's/[^0-9\.]//g') diff --git a/MDM/Jamf/00_PrepareInstall_SwiftDialog.sh b/MDM/Jamf/00_PrepareInstall_SwiftDialog.sh index 84a1212..e04f4a1 100755 --- a/MDM/Jamf/00_PrepareInstall_SwiftDialog.sh +++ b/MDM/Jamf/00_PrepareInstall_SwiftDialog.sh @@ -54,11 +54,11 @@ gitusername="bartreardon" gitreponame="swiftDialog" #echo "$gitusername $gitreponame" filetype="pkg" -#downloadURL="https://github.com$(curl -sfL "https://github.com/$gitusername/$gitreponame/releases/latest" | tr '"' "\n" | grep -i "^/.*\/releases\/download\/.*\.$filetype" | head -1)" -downloadURL="https://github.com$(curl -sfL "$(curl -sfL "https://github.com/$gitusername/$gitreponame/releases/latest" | tr '"' "\n" | grep -i "expanded_assets" | head -1)" | tr '"' "\n" | grep -i "^/.*\/releases\/download\/.*\.$filetype" | head -1)" +downloadURL=$(curl -sfL "https://api.github.com/repos/$gitusername/$gitreponame/releases/latest" | awk -F '"' "/browser_download_url/ && /$filetype\"/ { print \$4; exit }") if [[ "$(echo $downloadURL | grep -ioE "https.*.$filetype")" == "" ]]; then - echo "Trying GitHub API for download URL." - downloadURL=$(curl -sfL "https://api.github.com/repos/$gitusername/$gitreponame/releases/latest" | awk -F '"' "/browser_download_url/ && /$filetype\"/ { print \$4; exit }") + printlog "GitHub API failed, trying failover." + #downloadURL="https://github.com$(curl -sfL "https://github.com/$gitusername/$gitreponame/releases/latest" | tr '"' "\n" | grep -i "^/.*\/releases\/download\/.*\.$filetype" | head -1)" + downloadURL="https://github.com$(curl -sfL "$(curl -sfL "https://github.com/$gitusername/$gitreponame/releases/latest" | tr '"' "\n" | grep -i "expanded_assets" | head -1)" | tr '"' "\n" | grep -i "^/.*\/releases\/download\/.*\.$filetype" | head -1)" fi #echo "$downloadURL" appNewVersion=$(curl -sLI "https://github.com/$gitusername/$gitreponame/releases/latest" | grep -i "^location" | tr "/" "\n" | tail -1 | sed 's/[^0-9\.]//g') diff --git a/MDM/Progress 1st swiftDialog.sh b/MDM/Progress 1st swiftDialog.sh index f279d3d..2428cf7 100755 --- a/MDM/Progress 1st swiftDialog.sh +++ b/MDM/Progress 1st swiftDialog.sh @@ -86,7 +86,8 @@ errorMessage="A problem was encountered setting up this Mac. Please contact IT." # Or fonts, like: # "Apple SF Pro Font,/Library/Fonts/SF-Pro.ttf" ###################################################################### -scriptVersion="9.5" +scriptVersion="9.6" +# v. 9.6 : 2022-11-15 : GitHub API call is first, only try alternative if that fails. # v. 9.5 : 2022-09-21 : change of GitHub download # v. 9.4 : 2022-09-14 : downloadURL can fall back on GitHub API # v. 9.3 : 2022-08-29 : Logging changed for current version. Improved installation with looping if it fails, so it can try again. Improved GitHub handling. @@ -230,11 +231,11 @@ gitusername="bartreardon" gitreponame="swiftDialog" #printlog "$gitusername $gitreponame" filetype="pkg" -#downloadURL="https://github.com$(curl -sfL "https://github.com/$gitusername/$gitreponame/releases/latest" | tr '"' "\n" | grep -i "^/.*\/releases\/download\/.*\.$filetype" | head -1)" -downloadURL="https://github.com$(curl -sfL "$(curl -sfL "https://github.com/$gitusername/$gitreponame/releases/latest" | tr '"' "\n" | grep -i "expanded_assets" | head -1)" | tr '"' "\n" | grep -i "^/.*\/releases\/download\/.*\.$filetype" | head -1)" +downloadURL=$(curl -sfL "https://api.github.com/repos/$gitusername/$gitreponame/releases/latest" | awk -F '"' "/browser_download_url/ && /$filetype\"/ { print \$4; exit }") if [[ "$(echo $downloadURL | grep -ioE "https.*.$filetype")" == "" ]]; then - printlog "Trying GitHub API for download URL." - downloadURL=$(curl -sfL "https://api.github.com/repos/$gitusername/$gitreponame/releases/latest" | awk -F '"' "/browser_download_url/ && /$filetype\"/ { print \$4; exit }") + printlog "GitHub API failed, trying failover." + #downloadURL="https://github.com$(curl -sfL "https://github.com/$gitusername/$gitreponame/releases/latest" | tr '"' "\n" | grep -i "^/.*\/releases\/download\/.*\.$filetype" | head -1)" + downloadURL="https://github.com$(curl -sfL "$(curl -sfL "https://github.com/$gitusername/$gitreponame/releases/latest" | tr '"' "\n" | grep -i "expanded_assets" | head -1)" | tr '"' "\n" | grep -i "^/.*\/releases\/download\/.*\.$filetype" | head -1)" fi #printlog "$downloadURL" appNewVersion=$(curl -sLI "https://github.com/$gitusername/$gitreponame/releases/latest" | grep -i "^location" | tr "/" "\n" | tail -1 | sed 's/[^0-9\.]//g') @@ -245,6 +246,7 @@ versionKey="CFBundleShortVersionString" #CFBundleVersion currentInstalledVersion="$(defaults read "${destFile}/Contents/Info.plist" $versionKey || true)" printlog "${name} version: $currentInstalledVersion" +destFile="/usr/local/bin/dialog" if [[ ! -e "${destFile}" || "$currentInstalledVersion" != "$appNewVersion" ]]; then printlog "$name not found or version not latest." printlog "${destFile}" diff --git a/MDM/install Installomator direct.sh b/MDM/install Installomator direct.sh index 352275e..be57683 100755 --- a/MDM/install Installomator direct.sh +++ b/MDM/install Installomator direct.sh @@ -16,7 +16,8 @@ # https://github.com/Installomator/Installomator # ###################################################################### -scriptVersion="9.5" +scriptVersion="9.6" +# v. 9.6 : 2022-11-15 : GitHub API call is first, only try alternative if that fails. # v. 9.5 : 2022-09-21 : change of GitHub download # v. 9.4 : 2022-09-14 : downloadURL can fall back on GitHub API # v. 9.3 : 2022-08-29 : Logging changed for current version. Improved installation with looping if it fails, so it can try again. Improved GitHub handling. @@ -65,11 +66,11 @@ gitusername="Installomator" gitreponame="Installomator" #printlog "$gitusername $gitreponame" filetype="pkg" -#downloadURL="https://github.com$(curl -sfL "https://github.com/$gitusername/$gitreponame/releases/latest" | tr '"' "\n" | grep -i "^/.*\/releases\/download\/.*\.$filetype" | head -1)" -downloadURL="https://github.com$(curl -sfL "$(curl -sfL "https://github.com/$gitusername/$gitreponame/releases/latest" | tr '"' "\n" | grep -i "expanded_assets" | head -1)" | tr '"' "\n" | grep -i "^/.*\/releases\/download\/.*\.$filetype" | head -1)" +downloadURL=$(curl -sfL "https://api.github.com/repos/$gitusername/$gitreponame/releases/latest" | awk -F '"' "/browser_download_url/ && /$filetype\"/ { print \$4; exit }") if [[ "$(echo $downloadURL | grep -ioE "https.*.$filetype")" == "" ]]; then - printlog "Trying GitHub API for download URL." - downloadURL=$(curl -sfL "https://api.github.com/repos/$gitusername/$gitreponame/releases/latest" | awk -F '"' "/browser_download_url/ && /$filetype\"/ { print \$4; exit }") + printlog "GitHub API failed, trying failover." + #downloadURL="https://github.com$(curl -sfL "https://github.com/$gitusername/$gitreponame/releases/latest" | tr '"' "\n" | grep -i "^/.*\/releases\/download\/.*\.$filetype" | head -1)" + downloadURL="https://github.com$(curl -sfL "$(curl -sfL "https://github.com/$gitusername/$gitreponame/releases/latest" | tr '"' "\n" | grep -i "expanded_assets" | head -1)" | tr '"' "\n" | grep -i "^/.*\/releases\/download\/.*\.$filetype" | head -1)" fi #printlog "$downloadURL" appNewVersion=$(curl -sLI "https://github.com/$gitusername/$gitreponame/releases/latest" | grep -i "^location" | tr "/" "\n" | tail -1 | sed 's/[^0-9\.]//g') diff --git a/MDM/install swiftDialog direct.sh b/MDM/install swiftDialog direct.sh index c29d299..0c11674 100755 --- a/MDM/install swiftDialog direct.sh +++ b/MDM/install swiftDialog direct.sh @@ -16,7 +16,8 @@ # https://github.com/Installomator/Installomator # ###################################################################### -scriptVersion="9.5" +scriptVersion="9.6" +# v. 9.6 : 2022-11-15 : GitHub API call is first, only try alternative if that fails. # v. 9.5 : 2022-09-21 : change of GitHub download # v. 9.4 : 2022-09-14 : downloadURL can fall back on GitHub API. # v. 9.3 : 2022-08-29 : Logging changed for current version. Improved installation with looping if it fails, so it can try again. Improved GitHub handling. @@ -65,11 +66,11 @@ gitusername="bartreardon" gitreponame="swiftDialog" #printlog "$gitusername $gitreponame" filetype="pkg" -#downloadURL="https://github.com$(curl -sfL "https://github.com/$gitusername/$gitreponame/releases/latest" | tr '"' "\n" | grep -i "^/.*\/releases\/download\/.*\.$filetype" | head -1)" -downloadURL="https://github.com$(curl -sfL "$(curl -sfL "https://github.com/$gitusername/$gitreponame/releases/latest" | tr '"' "\n" | grep -i "expanded_assets" | head -1)" | tr '"' "\n" | grep -i "^/.*\/releases\/download\/.*\.$filetype" | head -1)" +downloadURL=$(curl -sfL "https://api.github.com/repos/$gitusername/$gitreponame/releases/latest" | awk -F '"' "/browser_download_url/ && /$filetype\"/ { print \$4; exit }") if [[ "$(echo $downloadURL | grep -ioE "https.*.$filetype")" == "" ]]; then - printlog "Trying GitHub API for download URL." - downloadURL=$(curl -sfL "https://api.github.com/repos/$gitusername/$gitreponame/releases/latest" | awk -F '"' "/browser_download_url/ && /$filetype\"/ { print \$4; exit }") + printlog "GitHub API failed, trying failover." + #downloadURL="https://github.com$(curl -sfL "https://github.com/$gitusername/$gitreponame/releases/latest" | tr '"' "\n" | grep -i "^/.*\/releases\/download\/.*\.$filetype" | head -1)" + downloadURL="https://github.com$(curl -sfL "$(curl -sfL "https://github.com/$gitusername/$gitreponame/releases/latest" | tr '"' "\n" | grep -i "expanded_assets" | head -1)" | tr '"' "\n" | grep -i "^/.*\/releases\/download\/.*\.$filetype" | head -1)" fi #printlog "$downloadURL" appNewVersion=$(curl -sLI "https://github.com/$gitusername/$gitreponame/releases/latest" | grep -i "^location" | tr "/" "\n" | tail -1 | sed 's/[^0-9\.]//g') @@ -80,6 +81,7 @@ versionKey="CFBundleShortVersionString" #CFBundleVersion currentInstalledVersion="$(defaults read "${destFile}/Contents/Info.plist" $versionKey || true)" printlog "${name} version: $currentInstalledVersion" +destFile="/usr/local/bin/dialog" if [[ ! -e "${destFile}" || "$currentInstalledVersion" != "$appNewVersion" ]]; then printlog "$name not found or version not latest." printlog "${destFile}"