diff --git a/CHANGELOG.md b/CHANGELOG.md index 28868c0..2e42240 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,30 @@ +## v10 + +- updates to MDM sample scripts (#738) +- updates to Swift Dialog integration (#717) +- documentation updates (#711) + +And everything from the betas ([beta1](https://github.com/Installomator/Installomator/releases/tag/v10beta1), [beta2](https://github.com/Installomator/Installomator/releases/tag/v10beta2), [beta3](https://github.com/Installomator/Installomator/releases/tag/v10beta3)) + +- new labels: + - ibmnotifier (#716) + - ipvisionconnect (#749) + - logitechoptionsplus (#719) + - lucidlink (#722) + - mactex (#685) + - onscreencontrol (#581) + - projectplace (#688) + - subethaedit (#728) + - sublimemerge (#729) + - venturablocker (#712) + - vysor (#710) + +- updated labels: + - googleadseditor (#739) + - openvpnconnectv3 (#750) + - tunnelblick (#618) + + ## v10beta3 - option to add item to dock if dockutil is installed (#701 requires dockutil https://github.com/kcrawford/dockutil ) diff --git a/Installomator.sh b/Installomator.sh index 7d99648..cc77b95 100755 --- a/Installomator.sh +++ b/Installomator.sh @@ -322,8 +322,8 @@ if [[ $(/usr/bin/arch) == "arm64" ]]; then rosetta2=no fi fi -VERSION="10.0beta3" -VERSIONDATE="2022-10-03" +VERSION="10.0" +VERSIONDATE="2022-11-18" # MARK: Functions @@ -1345,7 +1345,7 @@ updateDialog() { echo "progress: $progress" >> $cmd_file fi if [[ $message != "" ]]; then - echo "progresstext: $name - $message" >> $cmd_file + echo "progresstext: $message" >> $cmd_file fi else # list item has a value, so we update the progress and text in the list @@ -3030,7 +3030,9 @@ googleadseditor) name="Google Ads Editor" type="dmg" downloadURL="https://dl.google.com/adwords_editor/google_ads_editor.dmg" - appNewVersion="" + # Version not found in installed app, but on we it is here + #appNewVersion="$(curl -fs "https://support.google.com/google-ads/editor/answer/30513" | grep "Current Mac version" | sed -E 's/.*Current Mac version: *([0-9.]*)<.*/\1/')" + #appCustomVersion(){ } expectedTeamID="EQHXZ8M8AV" ;; googlechrome) @@ -3261,6 +3263,14 @@ ibarcoder) appNewVersion="$(curl -fs "https://cristallight.com/iBarcoder/" | grep -i version: | head -1 | awk '{print $2}')" expectedTeamID="JAXVB9AH9M" ;; +ibmnotifier) + name="IBM Notifier" + type="zip" + downloadURL="$(downloadURLFromGit IBM mac-ibm-notifications)" + #appNewVersion="$(versionFromGit IBM mac-ibm-notifications)" + appNewVersion="$(curl -sLI "https://github.com/IBM/mac-ibm-notifications/releases/latest" | grep -i "^location" | tr "/" "\n" | tail -1 | cut -d "-" -f2 | sed 's/[^0-9\.]//g')" + expectedTeamID="PETKK2G752" + ;; icons) name="Icons" type="zip" @@ -3354,6 +3364,15 @@ ipswupdater) appNewVersion=$(getJSONValue "$ipswupdaterVersions" "[0].version") expectedTeamID="YRW6NUGA63" ;; +ipvisionconnect) + name="ipvision Connect" + type="dmg" + # Description: A softphone client from ipvision.dk + downloadStore="https://my.ipvision.dk/connect/" + downloadURL="${downloadStore}$(curl -fs "https://my.ipvision.dk/connect/" | grep osx | sort | tail -1 | cut -d '"' -f2)" + appNewVersion="$(curl -fs "${downloadStore}" | grep osx | sort | tail -1 | sed -E 's/.*ipvision_connect_([0-9_]*)_osx.*/\1/' | tr "_" ".")" + expectedTeamID="5RLWBLKGL2" + ;; istatmenus) # credit: AP Orlebeke (@apizz) name="iStat Menus" @@ -3733,6 +3752,17 @@ logitechoptions) pkgName=LogiMgr.pkg expectedTeamID="QED4VVPZWA" ;; +logitechoptionsplus) + name="Logi Options+" + archiveName="logioptionsplus_installer.zip" + appName="logioptionsplus_installer.app" + type="zip" + downloadURL="https://download01.logi.com/web/ftp/pub/techsupport/optionsplus/logioptionsplus_installer.zip" + appNewVersion=$(curl -fs "https://support.logi.com/api/v2/help_center/en-us/articles.json?label_names=webcontent=productdownload,webos=mac-macos-x-11.0" | tr "," "\n" | grep -A 10 "macOS" | grep -B 5 -ie "https.*/.*/optionsplus/.*\.zip" | grep "Software Version" | sed 's/\\u[0-9a-z][0-9a-z][0-9a-z][0-9a-z]//g' | grep -ioe "Software Version.*[0-9.]*" | tr "/" "\n" | grep -oe "[0-9.]*" | head -1) + CLIInstaller="logioptionsplus_installer.app/Contents/MacOS/logioptionsplus_installer" + CLIArguments=(--quiet) + expectedTeamID="QED4VVPZWA" + ;; logseq) name="Logseq" type="dmg" @@ -3765,6 +3795,14 @@ lowprofile) appNewVersion="$(versionFromGit ninxsoft LowProfile)" expectedTeamID="7K3HVCLV7Z" ;; +lucidlink) + name="Lucid" + # https://www.lucidlink.com/download + type="pkg" + downloadURL="https://www.lucidlink.com/download/latest/osx/stable/" + appNewVersion=$( curl -fsIL "${downloadURL}" | grep -i "^location" | awk '{print $2}' | sed -E 's/.*\/[a-zA-Z]*-([0-9.]*)\..*/\1/g' ) + expectedTeamID="Y4KMJPU2B4" + ;; lucifer) # credit: Drew Diver (@grumpydrew on MacAdmins Slack) name="Lucifer" @@ -3836,6 +3874,13 @@ macports) appCustomVersion(){ if [ -x /opt/local/bin/port ]; then /opt/local/bin/port version | awk '{print $2}'; else "0"; fi } expectedTeamID="QTA3A3B7F3" ;; +mactex) + name="MacTeX" + appName="TeX Live Utility.app" + type="pkg" + downloadURL="https://mirror.ctan.org/systems/mac/mactex/MacTeX.pkg" + expectedTeamID="RBGCY5RJWM" + ;; malwarebytes) name="Malwarebytes" type="pkg" @@ -4520,6 +4565,15 @@ onlyofficedesktop) appNewVersion=$(versionFromGit ONLYOFFICE DesktopEditors) expectedTeamID="2WH24U26GJ" ;; +onscreencontrol) + name="OnScreen Control" + type="pkgInZip" + packageID="com.LGSI.OnScreen-Control" + releaseURL="https://www.lg.com/de/support/software-select-category-result?csSalesCode=34WK95U-W.AEU" + appNewVersion=$(curl -sf $releaseURL | grep -m 1 "Mac_OSC_" | sed -E 's/.*OSC_([0-9.]*).zip.*/\1/g') + downloadURL=$(curl -sf $releaseURL | grep -m 1 "Mac_OSC_" | sed "s|.*href=\"\(.*\)\" title.*|\\1|") + expectedTeamID="5SKT5H4CPQ" + ;; openvpnconnect) # credit: Erik Stam (@erikstam) name="OpenVPN" @@ -4532,6 +4586,11 @@ openvpnconnectv3) # credit: @lotnix name="OpenVPN Connect" type="pkgInDmg" + if [[ $(arch) == "arm64" ]]; then + pkgName="/OpenVPN_Connect_[0-9_()]*_arm64_Installer_signed.pkg" + elif [[ $(arch) == "i386" ]]; then + pkgName="OpenVPN_Connect_[0-9_()]*_x86_64_Installer_signed.pkg" + fi downloadURL="https://openvpn.net/downloads/openvpn-connect-v3-macos.dmg" expectedTeamID="ACV7L3WCD8" ;; @@ -4711,6 +4770,12 @@ proctortrack) downloadURL="https://storage.googleapis.com/verificientstatic/ProctortrackApp/Production/Proctortrack.zip" expectedTeamID="SNHZD6TJE6" ;; +projectplace) + name="Projectplace" + type="dmg" + downloadURL="https://service.projectplace.com/client_apps/desktop/Projectplace-for-mac.dmg" + expectedTeamID="8333HW99E8" + ;; promiseutility|\ promiseutilityr) name="Promise Utility" @@ -5231,6 +5296,24 @@ strongsync) versionKey="CFBundleVersion" expectedTeamID="CH86M498V4" ;; +subethaedit) + name="SubEthaEdit" + # Home: https://github.com/subethaedit/SubEthaEdit + # Description: General purpose plain text editor for macOS. Widely known for its live collaboration feature. + type="zip" + downloadURL="$(downloadURLFromGit subethaedit SubEthaEdit)" + appNewVersion="$(versionFromGit subethaedit SubEthaEdit)" + expectedTeamID="S76GCAG929" + ;; +sublimemerge) + # Home: https://www.sublimemerge.com + # Description: Git Client, done Sublime. Line-by-line Staging. Commit Editing. Unmatched Performance. + name="Sublime Merge" + type="zip" + downloadURL="$(curl -fs "https://www.sublimemerge.com/download_thanks?target=mac#direct-downloads" | grep -io "https://download.*_mac.zip" | head -1)" + appNewVersion=$(curl -fs https://www.sublimemerge.com/download | grep -i -A 4 "id.*changelog" | grep -io "Build [0-9]*") + expectedTeamID="Z6D26JE4Y4" + ;; sublimetext) # credit: Søren Theilgaard (@theilgaard) name="Sublime Text" @@ -5528,6 +5611,7 @@ tunnelblick) name="Tunnelblick" type="dmg" downloadURL=$(downloadURLFromGit TunnelBlick Tunnelblick ) + appNewVersion=$(curl -sf https://github.com/Tunnelblick/Tunnelblick/releases | grep -m 1 "/Tunnelblick/Tunnelblick/releases/tag/" | sed -r 's/.*Tunnelblick ([^<]+).*/\1/') expectedTeamID="Z2SG5H3HC8" ;; typinator) @@ -5604,6 +5688,14 @@ vanilla) downloadURL="https://macrelease.matthewpalmer.net/Vanilla.dmg" expectedTeamID="Z4JV2M65MH" ;; +venturablocker) + name="venturablocker" + type="pkg" + packageID="dk.envo-it.venturablocker" + downloadURL=$(downloadURLFromGit Theile venturablocker ) + appNewVersion=$(versionFromGit Theile venturablocker ) + expectedTeamID="FXW6QXBFW5" + ;; veracrypt) name="VeraCrypt" type="pkgInDmg" @@ -5673,6 +5765,13 @@ vscodium) expectedTeamID="C7S3ZQ2B8V" blockingProcesses=( Electron ) ;; +vysor) + name="Vysor" + type="zip" + downloadURL="$(downloadURLFromGit koush vysor.io)" + appNewVersion="$(versionFromGit koush vysor.io)" + expectedTeamID="XT4C9EJNUG" + ;; wacomdrivers) name="Wacom Desktop Center" type="pkgInDmg" diff --git a/Labels.txt b/Labels.txt index c8bad36..9211a58 100644 --- a/Labels.txt +++ b/Labels.txt @@ -198,6 +198,7 @@ hpeasystart hype hyper ibarcoder +ibmnotifier icons idrive idrivethin @@ -211,6 +212,7 @@ installomator installomator_theile intellijideace ipswupdater +ipvisionconnect istatmenus iterm2 itsycal @@ -251,9 +253,11 @@ libreoffice linear logioptions logitechoptions +logitechoptionsplus logseq loom lowprofile +lucidlink lucifer lulu macadminspython @@ -261,6 +265,7 @@ maccyapp macfuse macoslaps macports +mactex malwarebytes marathon marathon2 @@ -331,6 +336,7 @@ omniplan4 omnipresence onionshare onlyofficedesktop +onscreencontrol openvpnconnect openvpnconnectv3 opera @@ -356,6 +362,7 @@ prism9 pritunl privileges proctortrack +projectplace promiseutility promiseutilityr propresenter7 @@ -429,6 +436,8 @@ sqlprostudio steelseriesengine strongdm strongsync +subethaedit +sublimemerge sublimetext superhuman supportapp @@ -476,6 +485,7 @@ unnaturalscrollwheels utm vagrant vanilla +venturablocker veracrypt vimac virtualbox @@ -485,6 +495,7 @@ vivaldi vlc vmwarehorizonclient vscodium +vysor wacomdrivers wallyezflash webex 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}" diff --git a/fragments/functions.sh b/fragments/functions.sh index bbd6bed..ef8e232 100644 --- a/fragments/functions.sh +++ b/fragments/functions.sh @@ -1018,7 +1018,7 @@ updateDialog() { echo "progress: $progress" >> $cmd_file fi if [[ $message != "" ]]; then - echo "progresstext: $name - $message" >> $cmd_file + echo "progresstext: $message" >> $cmd_file fi else # list item has a value, so we update the progress and text in the list diff --git a/fragments/labels/googleadseditor.sh b/fragments/labels/googleadseditor.sh index 9c2600b..6994f15 100644 --- a/fragments/labels/googleadseditor.sh +++ b/fragments/labels/googleadseditor.sh @@ -2,6 +2,8 @@ googleadseditor) name="Google Ads Editor" type="dmg" downloadURL="https://dl.google.com/adwords_editor/google_ads_editor.dmg" - appNewVersion="" + # Version not found in installed app, but on we it is here + #appNewVersion="$(curl -fs "https://support.google.com/google-ads/editor/answer/30513" | grep "Current Mac version" | sed -E 's/.*Current Mac version: *([0-9.]*)<.*/\1/')" + #appCustomVersion(){ } expectedTeamID="EQHXZ8M8AV" ;; diff --git a/fragments/labels/ibmnotifier.sh b/fragments/labels/ibmnotifier.sh new file mode 100644 index 0000000..de8b247 --- /dev/null +++ b/fragments/labels/ibmnotifier.sh @@ -0,0 +1,8 @@ +ibmnotifier) + name="IBM Notifier" + type="zip" + downloadURL="$(downloadURLFromGit IBM mac-ibm-notifications)" + #appNewVersion="$(versionFromGit IBM mac-ibm-notifications)" + appNewVersion="$(curl -sLI "https://github.com/IBM/mac-ibm-notifications/releases/latest" | grep -i "^location" | tr "/" "\n" | tail -1 | cut -d "-" -f2 | sed 's/[^0-9\.]//g')" + expectedTeamID="PETKK2G752" + ;; diff --git a/fragments/labels/ipvisionconnect.sh b/fragments/labels/ipvisionconnect.sh new file mode 100644 index 0000000..fd6e9d6 --- /dev/null +++ b/fragments/labels/ipvisionconnect.sh @@ -0,0 +1,9 @@ +ipvisionconnect) + name="ipvision Connect" + type="dmg" + # Description: A softphone client from ipvision.dk + downloadStore="https://my.ipvision.dk/connect/" + downloadURL="${downloadStore}$(curl -fs "https://my.ipvision.dk/connect/" | grep osx | sort | tail -1 | cut -d '"' -f2)" + appNewVersion="$(curl -fs "${downloadStore}" | grep osx | sort | tail -1 | sed -E 's/.*ipvision_connect_([0-9_]*)_osx.*/\1/' | tr "_" ".")" + expectedTeamID="5RLWBLKGL2" + ;; diff --git a/fragments/labels/logitechoptionsplus.sh b/fragments/labels/logitechoptionsplus.sh new file mode 100644 index 0000000..eecc6ed --- /dev/null +++ b/fragments/labels/logitechoptionsplus.sh @@ -0,0 +1,11 @@ +logitechoptionsplus) + name="Logi Options+" + archiveName="logioptionsplus_installer.zip" + appName="logioptionsplus_installer.app" + type="zip" + downloadURL="https://download01.logi.com/web/ftp/pub/techsupport/optionsplus/logioptionsplus_installer.zip" + appNewVersion=$(curl -fs "https://support.logi.com/api/v2/help_center/en-us/articles.json?label_names=webcontent=productdownload,webos=mac-macos-x-11.0" | tr "," "\n" | grep -A 10 "macOS" | grep -B 5 -ie "https.*/.*/optionsplus/.*\.zip" | grep "Software Version" | sed 's/\\u[0-9a-z][0-9a-z][0-9a-z][0-9a-z]//g' | grep -ioe "Software Version.*[0-9.]*" | tr "/" "\n" | grep -oe "[0-9.]*" | head -1) + CLIInstaller="logioptionsplus_installer.app/Contents/MacOS/logioptionsplus_installer" + CLIArguments=(--quiet) + expectedTeamID="QED4VVPZWA" + ;; diff --git a/fragments/labels/lucidlink.sh b/fragments/labels/lucidlink.sh new file mode 100644 index 0000000..4f2313d --- /dev/null +++ b/fragments/labels/lucidlink.sh @@ -0,0 +1,8 @@ +lucidlink) + name="Lucid" + # https://www.lucidlink.com/download + type="pkg" + downloadURL="https://www.lucidlink.com/download/latest/osx/stable/" + appNewVersion=$( curl -fsIL "${downloadURL}" | grep -i "^location" | awk '{print $2}' | sed -E 's/.*\/[a-zA-Z]*-([0-9.]*)\..*/\1/g' ) + expectedTeamID="Y4KMJPU2B4" + ;; diff --git a/fragments/labels/mactex.sh b/fragments/labels/mactex.sh new file mode 100644 index 0000000..cef0ff8 --- /dev/null +++ b/fragments/labels/mactex.sh @@ -0,0 +1,7 @@ +mactex) + name="MacTeX" + appName="TeX Live Utility.app" + type="pkg" + downloadURL="https://mirror.ctan.org/systems/mac/mactex/MacTeX.pkg" + expectedTeamID="RBGCY5RJWM" + ;; diff --git a/fragments/labels/onscreencontrol.sh b/fragments/labels/onscreencontrol.sh new file mode 100644 index 0000000..b27c367 --- /dev/null +++ b/fragments/labels/onscreencontrol.sh @@ -0,0 +1,9 @@ +onscreencontrol) + name="OnScreen Control" + type="pkgInZip" + packageID="com.LGSI.OnScreen-Control" + releaseURL="https://www.lg.com/de/support/software-select-category-result?csSalesCode=34WK95U-W.AEU" + appNewVersion=$(curl -sf $releaseURL | grep -m 1 "Mac_OSC_" | sed -E 's/.*OSC_([0-9.]*).zip.*/\1/g') + downloadURL=$(curl -sf $releaseURL | grep -m 1 "Mac_OSC_" | sed "s|.*href=\"\(.*\)\" title.*|\\1|") + expectedTeamID="5SKT5H4CPQ" + ;; diff --git a/fragments/labels/openvpnconnectv3.sh b/fragments/labels/openvpnconnectv3.sh index 6961e5d..ee1cf1a 100644 --- a/fragments/labels/openvpnconnectv3.sh +++ b/fragments/labels/openvpnconnectv3.sh @@ -2,6 +2,11 @@ openvpnconnectv3) # credit: @lotnix name="OpenVPN Connect" type="pkgInDmg" + if [[ $(arch) == "arm64" ]]; then + pkgName="/OpenVPN_Connect_[0-9_()]*_arm64_Installer_signed.pkg" + elif [[ $(arch) == "i386" ]]; then + pkgName="OpenVPN_Connect_[0-9_()]*_x86_64_Installer_signed.pkg" + fi downloadURL="https://openvpn.net/downloads/openvpn-connect-v3-macos.dmg" expectedTeamID="ACV7L3WCD8" ;; diff --git a/fragments/labels/projectplace.sh b/fragments/labels/projectplace.sh new file mode 100644 index 0000000..c356581 --- /dev/null +++ b/fragments/labels/projectplace.sh @@ -0,0 +1,6 @@ +projectplace) + name="Projectplace" + type="dmg" + downloadURL="https://service.projectplace.com/client_apps/desktop/Projectplace-for-mac.dmg" + expectedTeamID="8333HW99E8" + ;; diff --git a/fragments/labels/subethaedit.sh b/fragments/labels/subethaedit.sh new file mode 100644 index 0000000..86fef38 --- /dev/null +++ b/fragments/labels/subethaedit.sh @@ -0,0 +1,9 @@ +subethaedit) + name="SubEthaEdit" + # Home: https://github.com/subethaedit/SubEthaEdit + # Description: General purpose plain text editor for macOS. Widely known for its live collaboration feature. + type="zip" + downloadURL="$(downloadURLFromGit subethaedit SubEthaEdit)" + appNewVersion="$(versionFromGit subethaedit SubEthaEdit)" + expectedTeamID="S76GCAG929" + ;; diff --git a/fragments/labels/sublimemerge.sh b/fragments/labels/sublimemerge.sh new file mode 100644 index 0000000..37838cc --- /dev/null +++ b/fragments/labels/sublimemerge.sh @@ -0,0 +1,9 @@ +sublimemerge) + # Home: https://www.sublimemerge.com + # Description: Git Client, done Sublime. Line-by-line Staging. Commit Editing. Unmatched Performance. + name="Sublime Merge" + type="zip" + downloadURL="$(curl -fs "https://www.sublimemerge.com/download_thanks?target=mac#direct-downloads" | grep -io "https://download.*_mac.zip" | head -1)" + appNewVersion=$(curl -fs https://www.sublimemerge.com/download | grep -i -A 4 "id.*changelog" | grep -io "Build [0-9]*") + expectedTeamID="Z6D26JE4Y4" + ;; diff --git a/fragments/labels/tunnelblick.sh b/fragments/labels/tunnelblick.sh index 455d500..e87ecfb 100644 --- a/fragments/labels/tunnelblick.sh +++ b/fragments/labels/tunnelblick.sh @@ -2,5 +2,6 @@ tunnelblick) name="Tunnelblick" type="dmg" downloadURL=$(downloadURLFromGit TunnelBlick Tunnelblick ) + appNewVersion=$(curl -sf https://github.com/Tunnelblick/Tunnelblick/releases | grep -m 1 "/Tunnelblick/Tunnelblick/releases/tag/" | sed -r 's/.*Tunnelblick ([^<]+).*/\1/') expectedTeamID="Z2SG5H3HC8" ;; diff --git a/fragments/labels/venturablocker.sh b/fragments/labels/venturablocker.sh new file mode 100644 index 0000000..6027165 --- /dev/null +++ b/fragments/labels/venturablocker.sh @@ -0,0 +1,8 @@ +venturablocker) + name="venturablocker" + type="pkg" + packageID="dk.envo-it.venturablocker" + downloadURL=$(downloadURLFromGit Theile venturablocker ) + appNewVersion=$(versionFromGit Theile venturablocker ) + expectedTeamID="FXW6QXBFW5" + ;; diff --git a/fragments/labels/vysor.sh b/fragments/labels/vysor.sh new file mode 100644 index 0000000..0a8710e --- /dev/null +++ b/fragments/labels/vysor.sh @@ -0,0 +1,7 @@ +vysor) + name="Vysor" + type="zip" + downloadURL="$(downloadURLFromGit koush vysor.io)" + appNewVersion="$(versionFromGit koush vysor.io)" + expectedTeamID="XT4C9EJNUG" + ;; diff --git a/fragments/version.sh b/fragments/version.sh index a243768..2f52450 100644 --- a/fragments/version.sh +++ b/fragments/version.sh @@ -1 +1 @@ -10.0beta3 +10.0 diff --git a/utils/test-pr.sh b/utils/test-pr.sh index 526ee56..a6dc883 100755 --- a/utils/test-pr.sh +++ b/utils/test-pr.sh @@ -14,7 +14,9 @@ if ! gh pr checkout $pr_num -b "pr/$pr_num"; then fi if ! utils/assemble.sh $label; then + exitcode=$? echo "something went wrong, stopping here" + echo "exit code: $exitcode" else echo echo "All good!"