From 7e75683d769af92184d594bafdd278b5484197be Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=B8ren=20Theilgaard?= Date: Wed, 10 Nov 2021 08:57:31 +0100 Subject: [PATCH 01/13] Adobe CC with CLIInstaller MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit I was looking into installing Adobe CC fully (Isaac has done the hard part), and we can add `CLIInstaller` and `CLIArguments` to get it fully installed. This implementation is slightly changed from Isaacs. ``` % sudo /Users/st/Documents/GitHub/Installomator/utils/assemble.sh -r adobecreativeclouddesktop DEBUG=0 INSTALL=force 2021-11-10 08:56:00 adobecreativeclouddesktop setting variable from argument DEBUG=0 2021-11-10 08:56:00 adobecreativeclouddesktop setting variable from argument INSTALL=force 2021-11-10 08:56:00 adobecreativeclouddesktop ################## Start Installomator v. 0.8.0 2021-11-10 08:56:00 adobecreativeclouddesktop ################## adobecreativeclouddesktop 2021-11-10 08:56:00 adobecreativeclouddesktop BLOCKING_PROCESS_ACTION=tell_user 2021-11-10 08:56:00 adobecreativeclouddesktop NOTIFY=success 2021-11-10 08:56:00 adobecreativeclouddesktop LOGO=/System/Applications/App Store.app/Contents/Resources/AppIcon.icns 2021-11-10 08:56:00 adobecreativeclouddesktop no blocking processes defined, using Creative Cloud as default 2021-11-10 08:56:00 adobecreativeclouddesktop Changing directory to /var/folders/zz/zyxvpxvq6csfxvn_n0000000000000/T/tmp.0LNrXCQX 2021-11-10 08:56:01 adobecreativeclouddesktop App(s) found: /Library/Application Support/Adobe/Adobe Desktop Common/HDBox/Install.app 2021-11-10 08:56:01 adobecreativeclouddesktop could not determine location of Install.app 2021-11-10 08:56:01 adobecreativeclouddesktop appversion: 2021-11-10 08:56:01 adobecreativeclouddesktop Latest version of Creative Cloud is 5.6.0.788 2021-11-10 08:56:01 adobecreativeclouddesktop Downloading https://ccmdl.adobe.com/AdobeProducts/KCCC/CCD/5_6_0/macarm64/ACCCx5_6_0_788.dmg to Creative Cloud.dmg 2021-11-10 08:56:30 adobecreativeclouddesktop no more blocking processes, continue with update 2021-11-10 08:56:30 adobecreativeclouddesktop Installing Creative Cloud 2021-11-10 08:56:30 adobecreativeclouddesktop Mounting /var/folders/zz/zyxvpxvq6csfxvn_n0000000000000/T/tmp.0LNrXCQX/Creative Cloud.dmg 2021-11-10 08:56:30 adobecreativeclouddesktop Mounted: /Volumes/Creative Cloud 2021-11-10 08:56:30 adobecreativeclouddesktop Verifying: /Volumes/Creative Cloud/Install.app 2021-11-10 08:56:30 adobecreativeclouddesktop Team ID matching: JQ525L2MZD (expected: JQ525L2MZD ) 2021-11-10 08:56:30 adobecreativeclouddesktop Downloaded version of Creative Cloud is 2.6.0.46 (replacing version ). 2021-11-10 08:56:30 adobecreativeclouddesktop CLIInstaller exists, running installer command /Volumes/Creative Cloud/Install.app/Contents/MacOS/Install --mode=silent 2021-11-10 08:56:34 adobecreativeclouddesktop Debugging enabled, update tool output was: objc[51900]: Class HTTPHeader is implemented in both /Volumes/Creative Cloud/Install.app/Contents/MacOS/Install (0x102d2a018) and /Library/Application Support/Adobe/Adobe Desktop Common/Core/AdobePIM.dylib (0x10fa75790). One of the two will be used. Which one is undefined. objc[51900]: Class ProxyManager is implemented in both /Volumes/Creative Cloud/Install.app/Contents/MacOS/Install (0x102d2a068) and /Library/Application Support/Adobe/Adobe Desktop Common/Core/AdobePIM.dylib (0x10fa757e0). One of the two will be used. Which one is undefined. objc[51900]: Class HTTPHeader is implemented in both /Volumes/Creative Cloud/Install.app/Contents/MacOS/Install (0x102d2a018) and /Volumes/Creative Cloud/resources/AdobePIM.dylib (0x110a87790). One of the two will be used. Which one is undefined. objc[51900]: Class ProxyManager is implemented in both /Volumes/Creative Cloud/Install.app/Contents/MacOS/Install (0x102d2a068) and /Volumes/Creative Cloud/resources/AdobePIM.dylib (0x110a877e0). One of the two will be used. Which one is undefined. Starting installer... Installation successful. 2021-11-10 08:56:34 adobecreativeclouddesktop Finishing… 2021-11-10 08:56:44 adobecreativeclouddesktop App(s) found: /Library/Application Support/Adobe/Adobe Desktop Common/HDBox/Install.app 2021-11-10 08:56:44 adobecreativeclouddesktop could not determine location of Install.app 2021-11-10 08:56:44 adobecreativeclouddesktop Installed Creative Cloud 2021-11-10 08:56:44 adobecreativeclouddesktop notifying 2021-11-10 08:56:44 adobecreativeclouddesktop Deleting /var/folders/zz/zyxvpxvq6csfxvn_n0000000000000/T/tmp.0LNrXCQX 2021-11-10 08:56:44 adobecreativeclouddesktop Unmounting /Volumes/Creative Cloud "disk4" ejected. 2021-11-10 08:56:45 adobecreativeclouddesktop App not closed, so no reopen. 2021-11-10 08:56:45 adobecreativeclouddesktop ################## End Installomator, exit code 0 ``` --- fragments/functions.sh | 17 +++++++++++++++-- fragments/labels/adobecreativeclouddesktop.sh | 16 ++++++++++++++++ 2 files changed, 31 insertions(+), 2 deletions(-) create mode 100644 fragments/labels/adobecreativeclouddesktop.sh diff --git a/fragments/functions.sh b/fragments/functions.sh index 446bbd5..6475479 100644 --- a/fragments/functions.sh +++ b/fragments/functions.sh @@ -369,7 +369,9 @@ installAppWithPath() { # $1: path to app to install in $targetDir # not running as root cleanupAndExit 6 "not running as root, exiting" fi - + + # Test if variable CLIInstaller is set + if [[ -z $CLIInstaller ]]; then # remove existing application if [ -e "$targetDir/$appName" ]; then printlog "Removing existing $targetDir/$appName" @@ -382,7 +384,6 @@ installAppWithPath() { # $1: path to app to install in $targetDir cleanupAndExit 7 "Error while copying" fi - # set ownership to current user if [ "$currentUser" != "loginwindow" ]; then printlog "Changing owner to $currentUser" @@ -391,6 +392,18 @@ installAppWithPath() { # $1: path to app to install in $targetDir printlog "No user logged in, not changing user" fi + elif [[ ! -z $CLIInstaller ]]; then + mountname=$(dirname $appPath) + printlog "CLIInstaller exists, running installer command $mountname/$CLIInstaller $CLIArguments" #INFO + + CLIoutput=$("$mountname/$CLIInstaller" "${CLIArguments[@]}" 2>&1) + CLIstatus=$(echo $?) + logoutput="$CLIoutput" # dedupliatelogs "$CLIoutput" + cleanupAndExit 3 "Error installing $mountname/$CLIInstaller $CLIArguments error: $logoutput" #ERROR + fi + printlog "Debugging enabled, update tool output was: $logoutput" #DEBUG + fi + } mountDMG() { diff --git a/fragments/labels/adobecreativeclouddesktop.sh b/fragments/labels/adobecreativeclouddesktop.sh new file mode 100644 index 0000000..9faef3f --- /dev/null +++ b/fragments/labels/adobecreativeclouddesktop.sh @@ -0,0 +1,16 @@ +adobecreativeclouddesktop) + appName="Install.app" + name="Creative Cloud" + type="dmg" + if [[ $(arch) == "arm64" ]]; then + downloadURL=$(curl -fs "https://helpx.adobe.com/download-install/kb/creative-cloud-desktop-app-download.html" | grep -o "https*.*macarm64.*dmg" | cut -d '"' -f1 | head -1) + elif [[ $(arch) == "i386" ]]; then + downloadURL=$(curl -fs "https://helpx.adobe.com/download-install/kb/creative-cloud-desktop-app-download.html" | grep -o "https*.*osx10.*dmg" | cut -d '"' -f1 | head -1) + fi + #downloadURL=$(curl -fs "https://helpx.adobe.com/download-install/kb/creative-cloud-desktop-app-download.html" | grep -o "https*.*dmg" | head -1) + appNewVersion=$(curl -fs "https://helpx.adobe.com/creative-cloud/release-note/cc-release-notes.html" | grep "mandatory" | head -1 | grep -o "Version *.* released" | cut -d " " -f2) + CLIInstaller="Install.app/Contents/MacOS/Install" + CLIArguments=(--mode=silent) + expectedTeamID="JQ525L2MZD" + Company="Adobe" + ;; From a2ee2ccddee6f9246b8b7baaa5286984addfbc97 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=B8ren=20Theilgaard?= Date: Wed, 10 Nov 2021 08:58:05 +0100 Subject: [PATCH 02/13] Update functions.sh --- fragments/functions.sh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/fragments/functions.sh b/fragments/functions.sh index 6475479..777b61e 100644 --- a/fragments/functions.sh +++ b/fragments/functions.sh @@ -399,6 +399,8 @@ installAppWithPath() { # $1: path to app to install in $targetDir CLIoutput=$("$mountname/$CLIInstaller" "${CLIArguments[@]}" 2>&1) CLIstatus=$(echo $?) logoutput="$CLIoutput" # dedupliatelogs "$CLIoutput" + + if [ $CLIstatus -ne 0 ] ; then cleanupAndExit 3 "Error installing $mountname/$CLIInstaller $CLIArguments error: $logoutput" #ERROR fi printlog "Debugging enabled, update tool output was: $logoutput" #DEBUG From ca772a6d2856b21d5c87750ac77e26f77879d6a7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=B8ren=20Theilgaard?= Date: Wed, 10 Nov 2021 09:06:04 +0100 Subject: [PATCH 03/13] Update adobecreativeclouddesktop.sh --- fragments/labels/adobecreativeclouddesktop.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fragments/labels/adobecreativeclouddesktop.sh b/fragments/labels/adobecreativeclouddesktop.sh index 9faef3f..30b11e2 100644 --- a/fragments/labels/adobecreativeclouddesktop.sh +++ b/fragments/labels/adobecreativeclouddesktop.sh @@ -1,6 +1,6 @@ adobecreativeclouddesktop) - appName="Install.app" name="Creative Cloud" + appName="Install.app" type="dmg" if [[ $(arch) == "arm64" ]]; then downloadURL=$(curl -fs "https://helpx.adobe.com/download-install/kb/creative-cloud-desktop-app-download.html" | grep -o "https*.*macarm64.*dmg" | cut -d '"' -f1 | head -1) From a42c624a7cda847509242df4bd4ebb32d1c6ed89 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=B8ren=20Theilgaard?= Date: Wed, 10 Nov 2021 09:39:39 +0100 Subject: [PATCH 04/13] `CLIInstaller` and `CLIArguments` MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Explained… --- fragments/header.sh | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/fragments/header.sh b/fragments/header.sh index 476d54e..1938b4d 100644 --- a/fragments/header.sh +++ b/fragments/header.sh @@ -198,8 +198,19 @@ REOPEN="yes" # $updateTool $updateArguments # Will be run instead of of downloading and installing a complete new version. # Use this when the updateTool does differential and optimized downloads. -# e.g. msupdate +# e.g. msupdate on various Microsoft labels # # - updateToolRunAsCurrentUser: # When this variable is set (any value), $updateTool will be run as the current user. # +# - CLIInstaller: +# - CLIArguments: +# If the downloaded dmg is actually an installer that we can call using CLI, +# we can use these two variables for what to call. +# We need to define `name` for the installed app (to be version checked), as well +# as `appName` for the installer binary. So Installomator will add the path to this +# binary, and it will be called like this: +# $CLIInstaller $CLIArguments +# We can support a whole range of other software titles by implementing this. +# See label adobecreativeclouddesktop +# From 3ef4f1102534e73c59134765afce77f6fd793fbd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=B8ren=20Theilgaard?= Date: Wed, 10 Nov 2021 09:44:09 +0100 Subject: [PATCH 05/13] `CLIInstaller` and `CLIArguments` --- README.md | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 2cfb90a..b90d9fd 100644 --- a/README.md +++ b/README.md @@ -372,11 +372,19 @@ Depending on the application or pkg there are a few more variables you can or ne `$updateTool $updateArguments` Will be run instead of of downloading and installing a complete new version. Use this when the `updateTool` does differential and optimized downloads. - e.g. `msupdate` (see microsoft installations) + e.g. `msupdate` (see various Microsoft installations). - `updateToolRunAsCurrentUser`: When this variable is set (any value), `$updateTool` will be run as the current user. Default is unset and +- `CLIInstaller`: +- `CLIArguments`: + If the downloaded dmg is actually an installer that we can call using CLI, we can use these two variables for what to call. + We need to define `name` for the installed app (to be version checked), as well as `appName` for the installer binary. So Installomator will add the path to this binary, and it will be called like this: + `$CLIInstaller $CLIArguments` + We can support a whole range of other software titles by implementing this. + See label adobecreativeclouddesktop. + ### Configuration from Arguments You can provide a configuration variable, such as `DEBUG` or `NOTIFY` as an argument in the form `VAR=value`. For example: From 638f7983dda0eab311c1d964d79bf10def55dc01 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=B8ren=20Theilgaard?= Date: Wed, 10 Nov 2021 11:34:30 +0100 Subject: [PATCH 06/13] Not using `mountname` MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Changes to the label, so path to CLIInstaller does not contain the name of the app, as that is already in the variable `appPath`. Still needing to decide on debug logging or what kind of message we want there. But this is succesfull: ``` % sudo /Users/st/Documents/GitHub/Installomator/utils/assemble.sh -r adobecreativeclouddesktop DEBUG=0 INSTALL=force Password: 2021-11-10 11:30:51 adobecreativeclouddesktop setting variable from argument DEBUG=0 2021-11-10 11:30:51 adobecreativeclouddesktop setting variable from argument INSTALL=force 2021-11-10 11:30:51 adobecreativeclouddesktop ################## Start Installomator v. 0.8.0 2021-11-10 11:30:51 adobecreativeclouddesktop ################## adobecreativeclouddesktop 2021-11-10 11:30:51 adobecreativeclouddesktop BLOCKING_PROCESS_ACTION=tell_user 2021-11-10 11:30:51 adobecreativeclouddesktop NOTIFY=success 2021-11-10 11:30:52 adobecreativeclouddesktop LOGO=/System/Applications/App Store.app/Contents/Resources/AppIcon.icns 2021-11-10 11:30:52 adobecreativeclouddesktop no blocking processes defined, using Creative Cloud as default 2021-11-10 11:30:52 adobecreativeclouddesktop Changing directory to /var/folders/zz/zyxvpxvq6csfxvn_n0000000000000/T/tmp.wMH45Qfi 2021-11-10 11:30:52 adobecreativeclouddesktop App(s) found: /Library/Application Support/Adobe/Adobe Desktop Common/HDBox/Install.app 2021-11-10 11:30:52 adobecreativeclouddesktop could not determine location of Install.app 2021-11-10 11:30:52 adobecreativeclouddesktop appversion: 2021-11-10 11:30:52 adobecreativeclouddesktop Latest version of Creative Cloud is 5.6.0.788 2021-11-10 11:30:52 adobecreativeclouddesktop Downloading https://ccmdl.adobe.com/AdobeProducts/KCCC/CCD/5_6_0/macarm64/ACCCx5_6_0_788.dmg to Creative Cloud.dmg 2021-11-10 11:31:41 adobecreativeclouddesktop no more blocking processes, continue with update 2021-11-10 11:31:41 adobecreativeclouddesktop Installing Creative Cloud 2021-11-10 11:31:41 adobecreativeclouddesktop Mounting /var/folders/zz/zyxvpxvq6csfxvn_n0000000000000/T/tmp.wMH45Qfi/Creative Cloud.dmg 2021-11-10 11:31:42 adobecreativeclouddesktop Mounted: /Volumes/Creative Cloud 2 2021-11-10 11:31:42 adobecreativeclouddesktop Verifying: /Volumes/Creative Cloud 2/Install.app 2021-11-10 11:31:42 adobecreativeclouddesktop Team ID matching: JQ525L2MZD (expected: JQ525L2MZD ) 2021-11-10 11:31:42 adobecreativeclouddesktop Downloaded version of Creative Cloud is 2.6.0.46 (replacing version ). 2021-11-10 11:31:42 adobecreativeclouddesktop CLIInstaller exists, running installer command /Volumes/Creative Cloud 2/Install.app/Contents/MacOS/Install --mode=silent 2021-11-10 11:31:46 adobecreativeclouddesktop Succesfully ran /Volumes/Creative Cloud 2/Install.app/Contents/MacOS/Install --mode=silent 2021-11-10 11:31:46 adobecreativeclouddesktop Debugging enabled, update tool output was: objc[71312]: Class HTTPHeader is implemented in both /Volumes/Creative Cloud 2/Install.app/Contents/MacOS/Install (0x100c2f018) and /Library/Application Support/Adobe/Adobe Desktop Common/Core/AdobePIM.dylib (0x10dc38790). One of the two will be used. Which one is undefined. objc[71312]: Class ProxyManager is implemented in both /Volumes/Creative Cloud 2/Install.app/Contents/MacOS/Install (0x100c2f068) and /Library/Application Support/Adobe/Adobe Desktop Common/Core/AdobePIM.dylib (0x10dc387e0). One of the two will be used. Which one is undefined. objc[71312]: Class HTTPHeader is implemented in both /Volumes/Creative Cloud 2/Install.app/Contents/MacOS/Install (0x100c2f018) and /Volumes/Creative Cloud 2/resources/AdobePIM.dylib (0x10e4e6790). One of the two will be used. Which one is undefined. objc[71312]: Class ProxyManager is implemented in both /Volumes/Creative Cloud 2/Install.app/Contents/MacOS/Install (0x100c2f068) and /Volumes/Creative Cloud 2/resources/AdobePIM.dylib (0x10e4e67e0). One of the two will be used. Which one is undefined. Starting installer... Installation successful. 2021-11-10 11:31:46 adobecreativeclouddesktop Finishing… 2021-11-10 11:31:56 adobecreativeclouddesktop App(s) found: /Library/Application Support/Adobe/Adobe Desktop Common/HDBox/Install.app 2021-11-10 11:31:56 adobecreativeclouddesktop could not determine location of Install.app 2021-11-10 11:31:56 adobecreativeclouddesktop Installed Creative Cloud 2021-11-10 11:31:56 adobecreativeclouddesktop notifying 2021-11-10 11:31:56 adobecreativeclouddesktop Deleting /var/folders/zz/zyxvpxvq6csfxvn_n0000000000000/T/tmp.wMH45Qfi 2021-11-10 11:31:56 adobecreativeclouddesktop Unmounting /Volumes/Creative Cloud 2 "disk6" ejected. 2021-11-10 11:31:57 adobecreativeclouddesktop App not closed, so no reopen. 2021-11-10 11:31:57 adobecreativeclouddesktop ################## End Installomator, exit code 0 ``` --- fragments/functions.sh | 12 +++++++----- fragments/labels/adobecreativeclouddesktop.sh | 2 +- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/fragments/functions.sh b/fragments/functions.sh index 777b61e..0a47499 100644 --- a/fragments/functions.sh +++ b/fragments/functions.sh @@ -393,17 +393,19 @@ installAppWithPath() { # $1: path to app to install in $targetDir fi elif [[ ! -z $CLIInstaller ]]; then - mountname=$(dirname $appPath) - printlog "CLIInstaller exists, running installer command $mountname/$CLIInstaller $CLIArguments" #INFO + #mountname=$(dirname $appPath) + printlog "CLIInstaller exists, running installer command $appPath/$CLIInstaller $CLIArguments" #INFO - CLIoutput=$("$mountname/$CLIInstaller" "${CLIArguments[@]}" 2>&1) + CLIoutput=$("$appPath/$CLIInstaller" "${CLIArguments[@]}" 2>&1) CLIstatus=$(echo $?) logoutput="$CLIoutput" # dedupliatelogs "$CLIoutput" if [ $CLIstatus -ne 0 ] ; then - cleanupAndExit 3 "Error installing $mountname/$CLIInstaller $CLIArguments error: $logoutput" #ERROR + cleanupAndExit 3 "Error installing $appPath/$CLIInstaller $CLIArguments error:\n$logoutput" #ERROR + else + printlog "Succesfully ran $appPath/$CLIInstaller $CLIArguments" fi - printlog "Debugging enabled, update tool output was: $logoutput" #DEBUG + printlog "Debugging enabled, update tool output was:\n$logoutput" #DEBUG fi } diff --git a/fragments/labels/adobecreativeclouddesktop.sh b/fragments/labels/adobecreativeclouddesktop.sh index 30b11e2..8388161 100644 --- a/fragments/labels/adobecreativeclouddesktop.sh +++ b/fragments/labels/adobecreativeclouddesktop.sh @@ -9,7 +9,7 @@ adobecreativeclouddesktop) fi #downloadURL=$(curl -fs "https://helpx.adobe.com/download-install/kb/creative-cloud-desktop-app-download.html" | grep -o "https*.*dmg" | head -1) appNewVersion=$(curl -fs "https://helpx.adobe.com/creative-cloud/release-note/cc-release-notes.html" | grep "mandatory" | head -1 | grep -o "Version *.* released" | cut -d " " -f2) - CLIInstaller="Install.app/Contents/MacOS/Install" + CLIInstaller="Contents/MacOS/Install" # "Install.app/Contents/MacOS/Install" CLIArguments=(--mode=silent) expectedTeamID="JQ525L2MZD" Company="Adobe" From bf4e7d89ec459b528c3ea0fdc75fc2526ad313f4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=B8ren=20Theilgaard?= Date: Wed, 10 Nov 2021 16:01:06 +0100 Subject: [PATCH 07/13] mountname reintroduced MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Now we can call any script on the root of the path where `appName` is found. Same result: ``` 2021-11-10 15:58:02 adobecreativeclouddesktop setting variable from argument DEBUG=0 2021-11-10 15:58:02 adobecreativeclouddesktop setting variable from argument INSTALL=force 2021-11-10 15:58:02 adobecreativeclouddesktop ################## Start Installomator v. 0.8.0 2021-11-10 15:58:02 adobecreativeclouddesktop ################## adobecreativeclouddesktop 2021-11-10 15:58:03 adobecreativeclouddesktop BLOCKING_PROCESS_ACTION=tell_user 2021-11-10 15:58:03 adobecreativeclouddesktop NOTIFY=success 2021-11-10 15:58:03 adobecreativeclouddesktop LOGO=/System/Applications/App Store.app/Contents/Resources/AppIcon.icns 2021-11-10 15:58:03 adobecreativeclouddesktop no blocking processes defined, using Creative Cloud as default 2021-11-10 15:58:03 adobecreativeclouddesktop Changing directory to /var/folders/zz/zyxvpxvq6csfxvn_n0000000000000/T/tmp.WNV7B1pH 2021-11-10 15:58:03 adobecreativeclouddesktop App(s) found: /Library/Application Support/Adobe/Adobe Desktop Common/HDBox/Install.app 2021-11-10 15:58:03 adobecreativeclouddesktop could not determine location of Install.app 2021-11-10 15:58:03 adobecreativeclouddesktop appversion: 2021-11-10 15:58:03 adobecreativeclouddesktop Latest version of Creative Cloud is 5.6.0.788 2021-11-10 15:58:03 adobecreativeclouddesktop Downloading https://ccmdl.adobe.com/AdobeProducts/KCCC/CCD/5_6_0/macarm64/ACCCx5_6_0_788.dmg to Creative Cloud.dmg 2021-11-10 15:58:17 adobecreativeclouddesktop no more blocking processes, continue with update 2021-11-10 15:58:17 adobecreativeclouddesktop Installing Creative Cloud 2021-11-10 15:58:17 adobecreativeclouddesktop Mounting /var/folders/zz/zyxvpxvq6csfxvn_n0000000000000/T/tmp.WNV7B1pH/Creative Cloud.dmg 2021-11-10 15:58:18 adobecreativeclouddesktop Mounted: /Volumes/Creative Cloud 2021-11-10 15:58:18 adobecreativeclouddesktop Verifying: /Volumes/Creative Cloud/Install.app 2021-11-10 15:58:18 adobecreativeclouddesktop Team ID matching: JQ525L2MZD (expected: JQ525L2MZD ) 2021-11-10 15:58:18 adobecreativeclouddesktop Downloaded version of Creative Cloud is 2.6.0.46 (replacing version ). 2021-11-10 15:58:18 adobecreativeclouddesktop CLIInstaller exists, running installer command /Volumes/Creative Cloud/Install.app/Contents/MacOS/Install --mode=silent 2021-11-10 15:58:23 adobecreativeclouddesktop Succesfully ran /Volumes/Creative Cloud/Install.app/Contents/MacOS/Install --mode=silent 2021-11-10 15:58:23 adobecreativeclouddesktop Debugging enabled, update tool output was: objc[20055]: Class HTTPHeader is implemented in both /Volumes/Creative Cloud/Install.app/Contents/MacOS/Install (0x102565018) and /Library/Application Support/Adobe/Adobe Desktop Common/Core/AdobePIM.dylib (0x10f2f0790). One of the two will be used. Which one is undefined. objc[20055]: Class ProxyManager is implemented in both /Volumes/Creative Cloud/Install.app/Contents/MacOS/Install (0x102565068) and /Library/Application Support/Adobe/Adobe Desktop Common/Core/AdobePIM.dylib (0x10f2f07e0). One of the two will be used. Which one is undefined. objc[20055]: Class HTTPHeader is implemented in both /Volumes/Creative Cloud/Install.app/Contents/MacOS/Install (0x102565018) and /Volumes/Creative Cloud/resources/AdobePIM.dylib (0x110302790). One of the two will be used. Which one is undefined. objc[20055]: Class ProxyManager is implemented in both /Volumes/Creative Cloud/Install.app/Contents/MacOS/Install (0x102565068) and /Volumes/Creative Cloud/resources/AdobePIM.dylib (0x1103027e0). One of the two will be used. Which one is undefined. Starting installer... Installation successful. 2021-11-10 15:58:23 adobecreativeclouddesktop Finishing… 2021-11-10 15:58:33 adobecreativeclouddesktop App(s) found: /Library/Application Support/Adobe/Adobe Desktop Common/HDBox/Install.app 2021-11-10 15:58:33 adobecreativeclouddesktop could not determine location of Install.app 2021-11-10 15:58:33 adobecreativeclouddesktop Installed Creative Cloud 2021-11-10 15:58:33 adobecreativeclouddesktop notifying 2021-11-10 15:58:33 adobecreativeclouddesktop Deleting /var/folders/zz/zyxvpxvq6csfxvn_n0000000000000/T/tmp.WNV7B1pH 2021-11-10 15:58:33 adobecreativeclouddesktop Unmounting /Volumes/Creative Cloud "disk5" ejected. 2021-11-10 15:58:33 adobecreativeclouddesktop App not closed, so no reopen. 2021-11-10 15:58:33 adobecreativeclouddesktop ################## End Installomator, exit code 0 ``` --- fragments/functions.sh | 10 +++++----- fragments/labels/adobecreativeclouddesktop.sh | 2 +- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/fragments/functions.sh b/fragments/functions.sh index 0a47499..ac6ab82 100644 --- a/fragments/functions.sh +++ b/fragments/functions.sh @@ -393,17 +393,17 @@ installAppWithPath() { # $1: path to app to install in $targetDir fi elif [[ ! -z $CLIInstaller ]]; then - #mountname=$(dirname $appPath) - printlog "CLIInstaller exists, running installer command $appPath/$CLIInstaller $CLIArguments" #INFO + mountname=$(dirname $appPath) + printlog "CLIInstaller exists, running installer command $mountname/$CLIInstaller $CLIArguments" #INFO - CLIoutput=$("$appPath/$CLIInstaller" "${CLIArguments[@]}" 2>&1) + CLIoutput=$("$mountname/$CLIInstaller" "${CLIArguments[@]}" 2>&1) CLIstatus=$(echo $?) logoutput="$CLIoutput" # dedupliatelogs "$CLIoutput" if [ $CLIstatus -ne 0 ] ; then - cleanupAndExit 3 "Error installing $appPath/$CLIInstaller $CLIArguments error:\n$logoutput" #ERROR + cleanupAndExit 3 "Error installing $mountname/$CLIInstaller $CLIArguments error:\n$logoutput" #ERROR else - printlog "Succesfully ran $appPath/$CLIInstaller $CLIArguments" + printlog "Succesfully ran $mountname/$CLIInstaller $CLIArguments" fi printlog "Debugging enabled, update tool output was:\n$logoutput" #DEBUG fi diff --git a/fragments/labels/adobecreativeclouddesktop.sh b/fragments/labels/adobecreativeclouddesktop.sh index 8388161..30b11e2 100644 --- a/fragments/labels/adobecreativeclouddesktop.sh +++ b/fragments/labels/adobecreativeclouddesktop.sh @@ -9,7 +9,7 @@ adobecreativeclouddesktop) fi #downloadURL=$(curl -fs "https://helpx.adobe.com/download-install/kb/creative-cloud-desktop-app-download.html" | grep -o "https*.*dmg" | head -1) appNewVersion=$(curl -fs "https://helpx.adobe.com/creative-cloud/release-note/cc-release-notes.html" | grep "mandatory" | head -1 | grep -o "Version *.* released" | cut -d " " -f2) - CLIInstaller="Contents/MacOS/Install" # "Install.app/Contents/MacOS/Install" + CLIInstaller="Install.app/Contents/MacOS/Install" CLIArguments=(--mode=silent) expectedTeamID="JQ525L2MZD" Company="Adobe" From 15373a35f92cbd6afb2c16c05738325687912b67 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=B8ren=20Theilgaard?= Date: Wed, 10 Nov 2021 16:22:28 +0100 Subject: [PATCH 08/13] Explanation --- README.md | 3 ++- fragments/header.sh | 6 ++++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index b90d9fd..6ae7225 100644 --- a/README.md +++ b/README.md @@ -380,8 +380,9 @@ Depending on the application or pkg there are a few more variables you can or ne - `CLIInstaller`: - `CLIArguments`: If the downloaded dmg is actually an installer that we can call using CLI, we can use these two variables for what to call. - We need to define `name` for the installed app (to be version checked), as well as `appName` for the installer binary. So Installomator will add the path to this binary, and it will be called like this: + We need to define `name` for the installed app (to be version checked), as well as `appName` for the installer binary. So Installomator will add the path to the folder of this binary, and it will be called like this: `$CLIInstaller $CLIArguments` + So for most installations `CLIInstaller` should contain the `appName` for the CLI call (if it’s the same). We can support a whole range of other software titles by implementing this. See label adobecreativeclouddesktop. diff --git a/fragments/header.sh b/fragments/header.sh index 1938b4d..e1dbace 100644 --- a/fragments/header.sh +++ b/fragments/header.sh @@ -208,9 +208,11 @@ REOPEN="yes" # If the downloaded dmg is actually an installer that we can call using CLI, # we can use these two variables for what to call. # We need to define `name` for the installed app (to be version checked), as well -# as `appName` for the installer binary. So Installomator will add the path to this -# binary, and it will be called like this: +# as `appName` for the installer binary. So Installomator will add the path to the +# folder of this binary, and it will be called like this: # $CLIInstaller $CLIArguments +# So for most installations `CLIInstaller` should contain the `appName` for the CLI +# call (if it’s the same). # We can support a whole range of other software titles by implementing this. # See label adobecreativeclouddesktop # From c20ba0274b8a5a23b813ab6017c940713c7bc6b9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=B8ren=20Theilgaard?= Date: Thu, 11 Nov 2021 08:44:55 +0100 Subject: [PATCH 09/13] Update CHANGELOG.md --- CHANGELOG.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 8f2685f..3cd6d80 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,7 @@ +## v0.8 + +- New variables for labels that should be installaed using CLI: `CLIInstaller` and `CLIArguments`. See the label __adobecreativeclouddesktop__ to see it's use. + ## v0.7 - default for `BLOCKING_PROCESS_ACTION`is now `BLOCKING_PROCESS_ACTION=tell_user` and not `prompt_user`. It will demand the user to quit the app to get it updated, and not present any option to skip it. In considering various use cases in different MDM solutions this is the best option going forward. Users usually choose to update, and is most often not bothered much with this information. If it's absoultely a bad time, then they can move the dialog box to the side, and click it when ready. From 4aa7cd7793442e00a0da79bdd0b4e4dbb10d572f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=B8ren=20Theilgaard?= Date: Fri, 12 Nov 2021 09:51:52 +0100 Subject: [PATCH 10/13] more labels Adding a few labels to see it in a bigger picture --- fragments/functions.sh | 5 ++++- fragments/labels/adobecreativeclouddesktop.sh | 4 ++-- fragments/labels/parallelsdesktop.sh | 13 +++++++++++++ fragments/labels/parallelsdesktop16.sh | 17 +++++++++++++++++ 4 files changed, 36 insertions(+), 3 deletions(-) create mode 100644 fragments/labels/parallelsdesktop.sh create mode 100644 fragments/labels/parallelsdesktop16.sh diff --git a/fragments/functions.sh b/fragments/functions.sh index ac6ab82..48246fa 100644 --- a/fragments/functions.sh +++ b/fragments/functions.sh @@ -428,8 +428,11 @@ mountDMG() { installFromDMG() { mountDMG - + if [[ -z $CLIInstaller ]]; then installAppWithPath "$dmgmount/$appName" + else + installAppWithPath "$dmgmount/$CLIInstaller" + fi } installFromPKG() { diff --git a/fragments/labels/adobecreativeclouddesktop.sh b/fragments/labels/adobecreativeclouddesktop.sh index 30b11e2..ee94acc 100644 --- a/fragments/labels/adobecreativeclouddesktop.sh +++ b/fragments/labels/adobecreativeclouddesktop.sh @@ -1,6 +1,6 @@ adobecreativeclouddesktop) - name="Creative Cloud" - appName="Install.app" + name="Adobe Creative Cloud" + #appName="Install.app" type="dmg" if [[ $(arch) == "arm64" ]]; then downloadURL=$(curl -fs "https://helpx.adobe.com/download-install/kb/creative-cloud-desktop-app-download.html" | grep -o "https*.*macarm64.*dmg" | cut -d '"' -f1 | head -1) diff --git a/fragments/labels/parallelsdesktop.sh b/fragments/labels/parallelsdesktop.sh new file mode 100644 index 0000000..30aec8c --- /dev/null +++ b/fragments/labels/parallelsdesktop.sh @@ -0,0 +1,13 @@ +parallelsdesktop) + name="Parallels Desktop" + #appName="Install.app" + type="dmg" + downloadURL=$(curl -fs https://update.parallels.com/desktop/v17/parallels/parallels_updates.xml | xpath '(//ParallelsUpdates/Product/Version/Update/FilePath)[1]' 2>/dev/null | grep -oi "https*.*\.dmg") + appNewVersion=$(curl -fs https://update.parallels.com/desktop/v17/parallels/parallels_updates.xml | xpath '(//ParallelsUpdates/Product/Version/Update/FilePath)[1]' 2>/dev/null | grep -oi "https*.*\.dmg" | cut -d "/" -f6 | cut -d "-" -f1) + expectedTeamID="4C6364ACXT" + CLIInstaller="Install.app/Contents/MacOS/Install" + CLIArguments=(install -t "/Applications/Parallels Desktop.app") + #Company="Parallels" + #PatchSkip="YES" + ;; + diff --git a/fragments/labels/parallelsdesktop16.sh b/fragments/labels/parallelsdesktop16.sh new file mode 100644 index 0000000..eee76b0 --- /dev/null +++ b/fragments/labels/parallelsdesktop16.sh @@ -0,0 +1,17 @@ +parallelsdesktop16) + name="Parallels Desktop" + #appName="Install.app" + type="dmg" + if [[ $(arch) == i386 ]]; then + downloadURL="https://www.parallels.com/directdownload/pd16/intel/?experience=enter_key" + elif [[ $(arch) == arm64 ]]; then + downloadURL="https://www.parallels.com/directdownload/pd16/m1/?experience=enter_key" + fi + appNewVersion=$( curl -fsIL "$downloadURL" | grep -i "^location" | sed -E 's/.*\/[a-zA-Z]*-([0-9.]*)-[0-9]*\..*/\1/g' ) + expectedTeamID="4C6364ACXT" + CLIInstaller="Install.app/Contents/MacOS/Install" + CLIArguments=(install -t "/Applications/Parallels Desktop.app") + #Company="Parallels" + #PatchSkip="YES" + ;; + From 891dab08d4708288e8dfe557cb8aaa4046e9142c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=B8ren=20Theilgaard?= Date: Mon, 15 Nov 2021 14:25:57 +0100 Subject: [PATCH 11/13] `installerTool` implemented --- CHANGELOG.md | 2 +- README.md | 10 ++++++--- fragments/functions.sh | 6 +---- fragments/header.sh | 22 ++++++++++++------- fragments/labels/adobecreativeclouddesktop.sh | 1 + fragments/labels/forticlientvpn.sh | 11 ++++++++++ fragments/main.sh | 6 +++++ 7 files changed, 41 insertions(+), 17 deletions(-) create mode 100644 fragments/labels/forticlientvpn.sh diff --git a/CHANGELOG.md b/CHANGELOG.md index 3cd6d80..26959a8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,6 @@ ## v0.8 -- New variables for labels that should be installaed using CLI: `CLIInstaller` and `CLIArguments`. See the label __adobecreativeclouddesktop__ to see it's use. +- New variables for labels that should be installaed using CLI: `CLIInstaller` and `CLIArguments`. If the installer app is named differently thatn the installed app, then the variable `installerTool` can be use to name the app that should be located in the DMG or zip. See the label __adobecreativeclouddesktop__ to see it’s use. ## v0.7 diff --git a/README.md b/README.md index 6ae7225..b387170 100644 --- a/README.md +++ b/README.md @@ -379,13 +379,17 @@ Depending on the application or pkg there are a few more variables you can or ne - `CLIInstaller`: - `CLIArguments`: - If the downloaded dmg is actually an installer that we can call using CLI, we can use these two variables for what to call. - We need to define `name` for the installed app (to be version checked), as well as `appName` for the installer binary. So Installomator will add the path to the folder of this binary, and it will be called like this: + If the downloaded dmg is actually an installer that we can call using CLI, we can use these two variables for what to call. + We need to define `name` for the installed app (to be version checked), as well as `installerTool` for the installer app (if named differently that `name`. Installomator will add the path to the folder/disk image with the binary, and it will be called like this: `$CLIInstaller $CLIArguments` - So for most installations `CLIInstaller` should contain the `appName` for the CLI call (if it’s the same). + For most installations `CLIInstaller` should contain the `installerTool` for the CLI call (if it’s the same). We can support a whole range of other software titles by implementing this. See label adobecreativeclouddesktop. +- `installerTool`: + Introduced as part of `CLIInstaller`. If the installer in the DMG or ZIP is named differently than the installed app, then this variable can be used to name the installer that should be located after mounting/expanding the downloaded archive. + See label adobecreativeclouddesktop + ### Configuration from Arguments You can provide a configuration variable, such as `DEBUG` or `NOTIFY` as an argument in the form `VAR=value`. For example: diff --git a/fragments/functions.sh b/fragments/functions.sh index 48246fa..a810830 100644 --- a/fragments/functions.sh +++ b/fragments/functions.sh @@ -342,7 +342,7 @@ installAppWithPath() { # $1: path to app to install in $targetDir # versioncheck # credit: Søren Theilgaard (@theilgaard) appNewVersion=$(defaults read $appPath/Contents/Info.plist $versionKey) - if [[ $appversion == $appNewVersion ]]; then + if [[ -n $appNewVersion && $appversion == $appNewVersion ]]; then printlog "Downloaded version of $name is $appNewVersion, same as installed." if [[ $INSTALL != "force" ]]; then message="$name, version $appNewVersion, is the latest version." @@ -428,11 +428,7 @@ mountDMG() { installFromDMG() { mountDMG - if [[ -z $CLIInstaller ]]; then installAppWithPath "$dmgmount/$appName" - else - installAppWithPath "$dmgmount/$CLIInstaller" - fi } installFromPKG() { diff --git a/fragments/header.sh b/fragments/header.sh index e1dbace..357077d 100644 --- a/fragments/header.sh +++ b/fragments/header.sh @@ -205,14 +205,20 @@ REOPEN="yes" # # - CLIInstaller: # - CLIArguments: -# If the downloaded dmg is actually an installer that we can call using CLI, -# we can use these two variables for what to call. -# We need to define `name` for the installed app (to be version checked), as well -# as `appName` for the installer binary. So Installomator will add the path to the -# folder of this binary, and it will be called like this: -# $CLIInstaller $CLIArguments -# So for most installations `CLIInstaller` should contain the `appName` for the CLI -# call (if it’s the same). +# If the downloaded dmg is actually an installer that we can call using CLI, we can +# use these two variables for what to call. +# We need to define `name` for the installed app (to be version checked), as well as +# `installerTool` for the installer app (if named differently that `name`. Installomator +# will add the path to the folder/disk image with the binary, and it will be called like this: + `$CLIInstaller $CLIArguments` +# For most installations `CLIInstaller` should contain the `installerTool` for the CLI call +# (if it’s the same). # We can support a whole range of other software titles by implementing this. # See label adobecreativeclouddesktop # +# - installerTool: +# Introduced as part of `CLIInstaller`. If the installer in the DMG or ZIP is named +# differently than the installed app, then this variable can be used to name the +# installer that should be located after mounting/expanding the downloaded archive. +# See label adobecreativeclouddesktop +# diff --git a/fragments/labels/adobecreativeclouddesktop.sh b/fragments/labels/adobecreativeclouddesktop.sh index ee94acc..7445443 100644 --- a/fragments/labels/adobecreativeclouddesktop.sh +++ b/fragments/labels/adobecreativeclouddesktop.sh @@ -9,6 +9,7 @@ adobecreativeclouddesktop) fi #downloadURL=$(curl -fs "https://helpx.adobe.com/download-install/kb/creative-cloud-desktop-app-download.html" | grep -o "https*.*dmg" | head -1) appNewVersion=$(curl -fs "https://helpx.adobe.com/creative-cloud/release-note/cc-release-notes.html" | grep "mandatory" | head -1 | grep -o "Version *.* released" | cut -d " " -f2) + installerTool="Install.app" CLIInstaller="Install.app/Contents/MacOS/Install" CLIArguments=(--mode=silent) expectedTeamID="JQ525L2MZD" diff --git a/fragments/labels/forticlientvpn.sh b/fragments/labels/forticlientvpn.sh new file mode 100644 index 0000000..949a97d --- /dev/null +++ b/fragments/labels/forticlientvpn.sh @@ -0,0 +1,11 @@ +forticlientvpn) + name="FortiClientUpdate" + type="dmg" + # This version of the installer only downloads another installer + downloadURL="https://links.fortinet.com/forticlient/mac/vpnagent" + appNewVersion="" + installerTool="FortiClientUpdate.app" + CLIInstaller="FortiClientUpdate.app/Contents/MacOS/FortiClientUpdate" + CLIArguments=( ) + expectedTeamID="AH4XFXJ7DK" + ;; diff --git a/fragments/main.sh b/fragments/main.sh index dfba2c9..e69f099 100644 --- a/fragments/main.sh +++ b/fragments/main.sh @@ -202,6 +202,12 @@ if [[ $currentUser != "loginwindow" && $NOTIFY == "all" ]]; then displaynotification "Installing $name" "Installation in progress …" fi +if [ -n "$installerTool" ]; then + # installerTool defined, and we use that for installation + printlog "installerTool used: $installerTool" + appName="$installerTool" +fi + case $type in dmg) installFromDMG From 53c629aa1532ca99ed79ee16e1b6f55c5641f0e2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=B8ren=20Theilgaard?= Date: Tue, 16 Nov 2021 09:32:14 +0100 Subject: [PATCH 12/13] Removing non-working labels --- fragments/labels/forticlientvpn.sh | 11 ----------- fragments/labels/parallelsdesktop.sh | 13 ------------- fragments/labels/parallelsdesktop16.sh | 17 ----------------- 3 files changed, 41 deletions(-) delete mode 100644 fragments/labels/forticlientvpn.sh delete mode 100644 fragments/labels/parallelsdesktop.sh delete mode 100644 fragments/labels/parallelsdesktop16.sh diff --git a/fragments/labels/forticlientvpn.sh b/fragments/labels/forticlientvpn.sh deleted file mode 100644 index 949a97d..0000000 --- a/fragments/labels/forticlientvpn.sh +++ /dev/null @@ -1,11 +0,0 @@ -forticlientvpn) - name="FortiClientUpdate" - type="dmg" - # This version of the installer only downloads another installer - downloadURL="https://links.fortinet.com/forticlient/mac/vpnagent" - appNewVersion="" - installerTool="FortiClientUpdate.app" - CLIInstaller="FortiClientUpdate.app/Contents/MacOS/FortiClientUpdate" - CLIArguments=( ) - expectedTeamID="AH4XFXJ7DK" - ;; diff --git a/fragments/labels/parallelsdesktop.sh b/fragments/labels/parallelsdesktop.sh deleted file mode 100644 index 30aec8c..0000000 --- a/fragments/labels/parallelsdesktop.sh +++ /dev/null @@ -1,13 +0,0 @@ -parallelsdesktop) - name="Parallels Desktop" - #appName="Install.app" - type="dmg" - downloadURL=$(curl -fs https://update.parallels.com/desktop/v17/parallels/parallels_updates.xml | xpath '(//ParallelsUpdates/Product/Version/Update/FilePath)[1]' 2>/dev/null | grep -oi "https*.*\.dmg") - appNewVersion=$(curl -fs https://update.parallels.com/desktop/v17/parallels/parallels_updates.xml | xpath '(//ParallelsUpdates/Product/Version/Update/FilePath)[1]' 2>/dev/null | grep -oi "https*.*\.dmg" | cut -d "/" -f6 | cut -d "-" -f1) - expectedTeamID="4C6364ACXT" - CLIInstaller="Install.app/Contents/MacOS/Install" - CLIArguments=(install -t "/Applications/Parallels Desktop.app") - #Company="Parallels" - #PatchSkip="YES" - ;; - diff --git a/fragments/labels/parallelsdesktop16.sh b/fragments/labels/parallelsdesktop16.sh deleted file mode 100644 index eee76b0..0000000 --- a/fragments/labels/parallelsdesktop16.sh +++ /dev/null @@ -1,17 +0,0 @@ -parallelsdesktop16) - name="Parallels Desktop" - #appName="Install.app" - type="dmg" - if [[ $(arch) == i386 ]]; then - downloadURL="https://www.parallels.com/directdownload/pd16/intel/?experience=enter_key" - elif [[ $(arch) == arm64 ]]; then - downloadURL="https://www.parallels.com/directdownload/pd16/m1/?experience=enter_key" - fi - appNewVersion=$( curl -fsIL "$downloadURL" | grep -i "^location" | sed -E 's/.*\/[a-zA-Z]*-([0-9.]*)-[0-9]*\..*/\1/g' ) - expectedTeamID="4C6364ACXT" - CLIInstaller="Install.app/Contents/MacOS/Install" - CLIArguments=(install -t "/Applications/Parallels Desktop.app") - #Company="Parallels" - #PatchSkip="YES" - ;; - From c954dab309de54b7dc0a4ac62859f5548c2b7bc7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=B8ren=20Theilgaard?= Date: Tue, 16 Nov 2021 09:33:28 +0100 Subject: [PATCH 13/13] Update CHANGELOG.md --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 26959a8..4ede88e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,6 @@ ## v0.8 -- New variables for labels that should be installaed using CLI: `CLIInstaller` and `CLIArguments`. If the installer app is named differently thatn the installed app, then the variable `installerTool` can be use to name the app that should be located in the DMG or zip. See the label __adobecreativeclouddesktop__ to see it’s use. +- New variables for labels that should be installaed using CLI: `CLIInstaller` and `CLIArguments`. If the installer app is named differently than the installed app, then the variable `installerTool` should be use to name the app that should be located in the DMG or zip. See the label __adobecreativeclouddesktop__ to see it’s use. ## v0.7