mirror of
https://github.com/mtan93/Installomator.git
synced 2026-03-11 21:02:57 +00:00
Compare commits
150 Commits
FortiClien
...
v9.2
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
fa5f052d5a | ||
|
|
ed8e9ef913 | ||
|
|
08fd69ae7b | ||
|
|
4e8748d4fa | ||
|
|
8576bdffbb | ||
|
|
d6564d0e33 | ||
|
|
7c433785c9 | ||
|
|
db1621cfb7 | ||
|
|
84b9a98e13 | ||
|
|
e8d56b585c | ||
|
|
4420ce2cf9 | ||
|
|
f77cd4467e | ||
|
|
bd41912310 | ||
|
|
00a0f583b6 | ||
|
|
fc33a03447 | ||
|
|
c889a2d735 | ||
|
|
3aafdde178 | ||
|
|
05e4cc92ea | ||
|
|
9a154b80b7 | ||
|
|
1de072bdbf | ||
|
|
5c43199ee6 | ||
|
|
2efdd45759 | ||
|
|
f7d903bc87 | ||
|
|
5808bcc8dd | ||
|
|
c6dbf15995 | ||
|
|
ce857dd372 | ||
|
|
867c152ae5 | ||
|
|
27157e00c7 | ||
|
|
389fa83fdc | ||
|
|
83df589092 | ||
|
|
047c44b507 | ||
|
|
a73eb14436 | ||
|
|
183ad615f8 | ||
|
|
069651cf9f | ||
|
|
a1f0864b7d | ||
|
|
5eeabef079 | ||
|
|
ab86ff3a45 | ||
|
|
0ff286b701 | ||
|
|
c9fc5d6676 | ||
|
|
e1dc3cc464 | ||
|
|
aed48ea4b4 | ||
|
|
343785781a | ||
|
|
1e8253ca41 | ||
|
|
77e04922e5 | ||
|
|
ac80aa1f3a | ||
|
|
a87122409a | ||
|
|
963282dbe1 | ||
|
|
7cc01840e0 | ||
|
|
8d0f037983 | ||
|
|
abbf22455f | ||
|
|
d86aef9ede | ||
|
|
35f3b938bc | ||
|
|
fad95d156a | ||
|
|
2012395021 | ||
|
|
e21d8d4ef2 | ||
|
|
d4b2200ca9 | ||
|
|
4700957764 | ||
|
|
8ba02428a0 | ||
|
|
a3021011c0 | ||
|
|
f0a91934de | ||
|
|
412fcca624 | ||
|
|
4e31bd16a0 | ||
|
|
cbdc1c6876 | ||
|
|
e4f5b9cb47 | ||
|
|
046df34e45 | ||
|
|
fc3ba293ae | ||
|
|
e1de1433ff | ||
|
|
d1bb003a8d | ||
|
|
8a9a94540a | ||
|
|
d20dec9e2e | ||
|
|
6bb5fedc21 | ||
|
|
5a5addcb2e | ||
|
|
3e89333395 | ||
|
|
aa762ecee2 | ||
|
|
c89f704817 | ||
|
|
bf353dc538 | ||
|
|
07d51c3239 | ||
|
|
973de91ff4 | ||
|
|
3cf7b585ef | ||
|
|
da5585a702 | ||
|
|
1571dec014 | ||
|
|
2b3da07cdb | ||
|
|
259afeec3a | ||
|
|
13864a0cd7 | ||
|
|
66f3275741 | ||
|
|
b76d9fe26a | ||
|
|
4d365aa960 | ||
|
|
589747f0ad | ||
|
|
3294751e63 | ||
|
|
03f3e258e4 | ||
|
|
78eec85809 | ||
|
|
dd50a618e9 | ||
|
|
8b5f5d40c9 | ||
|
|
143967e29c | ||
|
|
ad1ddc22cd | ||
|
|
01d00aa361 | ||
|
|
f90c9c960a | ||
|
|
0141b8334e | ||
|
|
f7d822a54e | ||
|
|
ed01f6d741 | ||
|
|
0266f74e46 | ||
|
|
744ce4949d | ||
|
|
5dc137dcbe | ||
|
|
e464efeb82 | ||
|
|
4bfbe5e404 | ||
|
|
7e6d394c68 | ||
|
|
2589d2ec38 | ||
|
|
9307374775 | ||
|
|
8d2d82df5a | ||
|
|
026c399e0c | ||
|
|
1ce70bc8f3 | ||
|
|
9407918bd7 | ||
|
|
522b0c5bf2 | ||
|
|
9e336d1e3b | ||
|
|
24f99366cc | ||
|
|
c6470fdd79 | ||
|
|
e74d0ab413 | ||
|
|
a089d607ac | ||
|
|
d32c1bae9b | ||
|
|
79b2b43cd0 | ||
|
|
972a319bb9 | ||
|
|
237648004a | ||
|
|
2e291eb6c1 | ||
|
|
8ff6a0f9ca | ||
|
|
0f892f5868 | ||
|
|
1c2d8d9c17 | ||
|
|
401d5ad138 | ||
|
|
ed07b2af2b | ||
|
|
251b2a14a8 | ||
|
|
3578f9cbe9 | ||
|
|
351cc07afa | ||
|
|
229e2c76bb | ||
|
|
a27ca5a5d3 | ||
|
|
5109597f1a | ||
|
|
f8a3104470 | ||
|
|
7fa9d3c24a | ||
|
|
02435b25ad | ||
|
|
a4b02197d8 | ||
|
|
a058a6594b | ||
|
|
95684b6ecf | ||
|
|
affe0f4073 | ||
|
|
37f6290d34 | ||
|
|
cec9d53ff8 | ||
|
|
600657b074 | ||
|
|
c728c25fc4 | ||
|
|
bb935516d1 | ||
|
|
7456bdad04 | ||
|
|
034ac45ba0 | ||
|
|
30f1f1b43c | ||
|
|
9f79cf4d65 |
67
CHANGELOG.md
67
CHANGELOG.md
@@ -1,6 +1,71 @@
|
|||||||
|
## v9.2
|
||||||
|
|
||||||
|
**Note**: Both Google and Mozilla recommend using the pkg installers instead of the dmg downloads for managed deployments. So far, Installomator has provided labels for both. (`googlechrome` and `googlechromepkg` or `firefox` and `firefoxpkg`, respectively) Since there are problems with the dmg downloads, a future release of Installomator will _disable_ the `firefox` and `googlechrome` dmg labels. You should switch to using `googlechromepkg` and `firefoxpkg` labels instead.
|
||||||
|
|
||||||
|
- bug fix (#434)
|
||||||
|
- documentation updates (#485, #494)
|
||||||
|
- new labels:
|
||||||
|
- 1password8 (#514)
|
||||||
|
- ultimakercura
|
||||||
|
- androidstudio (#547)
|
||||||
|
- atextlegacy (#464)
|
||||||
|
- camtasia2019, camtasia2020 (#499)
|
||||||
|
- clue, cluefull (#481)
|
||||||
|
- craftmanagerforsketch
|
||||||
|
- displaylinkmanager (#448)
|
||||||
|
- drawio (#480)
|
||||||
|
- duckduckgo
|
||||||
|
- egnytewebedit (#512)
|
||||||
|
- filezilla (#522)
|
||||||
|
- firefoxpkg_intl
|
||||||
|
- flycut (#501)
|
||||||
|
- fontexplorer (#523)
|
||||||
|
- hype (#524)
|
||||||
|
- idrive (#507), idrivethin (#509)
|
||||||
|
- imageoptim (#525)
|
||||||
|
- linear (#519)
|
||||||
|
- macoslaps (#502)
|
||||||
|
- mightymike
|
||||||
|
- mindmanager (#479)
|
||||||
|
- pika (#526)
|
||||||
|
- propresenter7 (#394)
|
||||||
|
- qgis-pr
|
||||||
|
- shottr (#516)
|
||||||
|
- slab (#487)
|
||||||
|
- snagit2019, snagit2020, snagit2021 (#498)
|
||||||
|
- sonobus (#490)
|
||||||
|
- talkdeskcxcloud (#452)
|
||||||
|
- thunderbird_intl (#497)
|
||||||
|
- unnaturalscrollwheels (#503)
|
||||||
|
- wechat (#510)
|
||||||
|
- xeroxworkcentre7800 (#527)
|
||||||
|
- zohoworkdrivegenie
|
||||||
|
- updated labels
|
||||||
|
- adobereaderdc-update, adobereaderdc (#503)
|
||||||
|
- amazoncorretto8jdk (#461)
|
||||||
|
- camtasia (#499)
|
||||||
|
- citrixworkspace (#508)
|
||||||
|
- dbeaverce (#450)
|
||||||
|
- dropbox
|
||||||
|
- firefox, firefox_da, firefox_intl (#495), firefoxesr_intl (#496), firefoxpkg
|
||||||
|
- googlechrome, googlechromepkg (#484)
|
||||||
|
- gpgsuite (#465)
|
||||||
|
- grammarly (#515)
|
||||||
|
- logitechoptions (#478)
|
||||||
|
- onlyofficedesktop (#454)
|
||||||
|
- postman (#458)
|
||||||
|
- rancherdesktop (#463)
|
||||||
|
- remotedesktopmanagerenterprise
|
||||||
|
- remotedesktopmanagerfree
|
||||||
|
- ringcentralapp (#492)
|
||||||
|
- sketch
|
||||||
|
- snagit (#498)
|
||||||
|
- talkdeskcallbar (#453)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
## v9.1
|
## v9.1
|
||||||
|
|
||||||
**Note**: Both Google and Mozilla recommend using the pkg installers instead of the dmg downloads for managed deployments. So far, Installomator has provided labels for both. (`googlechrome` and `googlechromepkg` or `firefox` and `firefoxpkg`, respectively) Since there are problems with the dmg downloads, a future release of Installomator will _disable_ the `firefox` and `googlechrome` dmg labels. You should switch to using the respective pkg labels instead.
|
|
||||||
|
|
||||||
- added option for Microsoft Endpoint Manager (Intune) to `LOGO` (#446)
|
- added option for Microsoft Endpoint Manager (Intune) to `LOGO` (#446)
|
||||||
- minor fixes (#427, #434, #436)
|
- minor fixes (#427, #434, #436)
|
||||||
|
|||||||
567
Installomator.sh
567
Installomator.sh
@@ -238,7 +238,7 @@ IGNORE_DND_APPS=""
|
|||||||
# - updateToolArguments:
|
# - updateToolArguments:
|
||||||
# When Installomator detects an existing installation of the application,
|
# When Installomator detects an existing installation of the application,
|
||||||
# and the updateTool variable is set
|
# and the updateTool variable is set
|
||||||
# $updateTool $updateArguments
|
# $updateTool $updateArguments
|
||||||
# Will be run instead of of downloading and installing a complete new version.
|
# Will be run instead of of downloading and installing a complete new version.
|
||||||
# Use this when the updateTool does differential and optimized downloads.
|
# Use this when the updateTool does differential and optimized downloads.
|
||||||
# e.g. msupdate on various Microsoft labels
|
# e.g. msupdate on various Microsoft labels
|
||||||
@@ -253,7 +253,7 @@ IGNORE_DND_APPS=""
|
|||||||
# We need to define `name` for the installed app (to be version checked), as well as
|
# We need to define `name` for the installed app (to be version checked), as well as
|
||||||
# `installerTool` for the installer app (if named differently than `name`. Installomator
|
# `installerTool` for the installer app (if named differently than `name`. Installomator
|
||||||
# will add the path to the folder/disk image with the binary, and it will be called like this:
|
# will add the path to the folder/disk image with the binary, and it will be called like this:
|
||||||
`$CLIInstaller $CLIArguments`
|
# $CLIInstaller $CLIArguments
|
||||||
# For most installations `CLIInstaller` should contain the `installerTool` for the CLI call
|
# For most installations `CLIInstaller` should contain the `installerTool` for the CLI call
|
||||||
# (if it’s the same).
|
# (if it’s the same).
|
||||||
# We can support a whole range of other software titles by implementing this.
|
# We can support a whole range of other software titles by implementing this.
|
||||||
@@ -302,8 +302,8 @@ if [[ $(/usr/bin/arch) == "arm64" ]]; then
|
|||||||
rosetta2=no
|
rosetta2=no
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
VERSION="9.1"
|
VERSION="9.2"
|
||||||
VERSIONDATE="2022-03-18"
|
VERSIONDATE="2022-05-16"
|
||||||
|
|
||||||
# MARK: Functions
|
# MARK: Functions
|
||||||
|
|
||||||
@@ -549,8 +549,8 @@ getAppVersion() {
|
|||||||
# printlog "App(s) found: ${applist}" DEBUG
|
# printlog "App(s) found: ${applist}" DEBUG
|
||||||
# applist=$(mdfind "kind:application AND name:$appName" -0 )
|
# applist=$(mdfind "kind:application AND name:$appName" -0 )
|
||||||
fi
|
fi
|
||||||
if [[ -z applist ]]; then
|
if [[ -z $applist ]]; then
|
||||||
printlog "No previous app found" INFO
|
printlog "No previous app found" WARN
|
||||||
else
|
else
|
||||||
printlog "App(s) found: ${applist}" INFO
|
printlog "App(s) found: ${applist}" INFO
|
||||||
fi
|
fi
|
||||||
@@ -572,7 +572,7 @@ getAppVersion() {
|
|||||||
if [[ -d "$installedAppPath"/Contents/_MASReceipt ]];then
|
if [[ -d "$installedAppPath"/Contents/_MASReceipt ]];then
|
||||||
printlog "Installed $appName is from App Store, use “IGNORE_APP_STORE_APPS=yes” to replace."
|
printlog "Installed $appName is from App Store, use “IGNORE_APP_STORE_APPS=yes” to replace."
|
||||||
if [[ $IGNORE_APP_STORE_APPS == "yes" ]]; then
|
if [[ $IGNORE_APP_STORE_APPS == "yes" ]]; then
|
||||||
printlog "Replacing App Store apps, no matter the version"
|
printlog "Replacing App Store apps, no matter the version" WARN
|
||||||
appversion=0
|
appversion=0
|
||||||
else
|
else
|
||||||
cleanupAndExit 1 "App previously installed from App Store, and we respect that" ERROR
|
cleanupAndExit 1 "App previously installed from App Store, and we respect that" ERROR
|
||||||
@@ -1302,6 +1302,21 @@ valuesfromarguments)
|
|||||||
blockingProcesses=( "1Password Extension Helper" "1Password 7" "1Password (Safari)" "1PasswordNativeMessageHost" "1PasswordSafariAppExtension" )
|
blockingProcesses=( "1Password Extension Helper" "1Password 7" "1Password (Safari)" "1PasswordNativeMessageHost" "1PasswordSafariAppExtension" )
|
||||||
#forcefulQuit=YES
|
#forcefulQuit=YES
|
||||||
;;
|
;;
|
||||||
|
1password8)
|
||||||
|
name="1Password 8"
|
||||||
|
appName="1Password.app"
|
||||||
|
type="zip"
|
||||||
|
if [[ $(arch) == "arm64" ]]; then
|
||||||
|
archiveName="1Password-latest-aarch64.zip"
|
||||||
|
downloadURL="https://downloads.1password.com/mac/1Password-latest-aarch64.zip"
|
||||||
|
elif [[ $(arch) == "i386" ]]; then
|
||||||
|
archiveName="1Password-latest-x86_64.zip"
|
||||||
|
downloadURL="https://downloads.1password.com/mac/1Password-latest-x86_64.zip"
|
||||||
|
fi
|
||||||
|
expectedTeamID="2BUA8C4S2C"
|
||||||
|
blockingProcesses=( "1Password Extension Helper" "1Password 7" "1Password" "1Password (Safari)" "1PasswordNativeMessageHost" "1PasswordSafariAppExtension" )
|
||||||
|
#forcefulQuit=YES
|
||||||
|
;;
|
||||||
1passwordcli)
|
1passwordcli)
|
||||||
name="1Password CLI"
|
name="1Password CLI"
|
||||||
type="pkg"
|
type="pkg"
|
||||||
@@ -1372,7 +1387,7 @@ adobecreativeclouddesktop)
|
|||||||
adobereaderdc-update)
|
adobereaderdc-update)
|
||||||
name="Adobe Acrobat Reader DC"
|
name="Adobe Acrobat Reader DC"
|
||||||
type="pkgInDmg"
|
type="pkgInDmg"
|
||||||
downloadURL=$(adobecurrent=`curl --fail --silent https://armmf.adobe.com/arm-manifests/mac/AcrobatDC/reader/current_version.txt | tr -d '.'` && echo http://ardownload.adobe.com/pub/adobe/reader/mac/AcrobatDC/"$adobecurrent"/AcroRdrDCUpd"$adobecurrent"_MUI.dmg)
|
downloadURL=$(adobecurrent=`curl --fail --silent https://armmf.adobe.com/arm-manifests/mac/AcrobatDC/reader/current_version.txt | tr -d '.'` && echo https://ardownload2.adobe.com/pub/adobe/reader/mac/AcrobatDC/"$adobecurrent"/AcroRdrDC_"$adobecurrent"_MUI.dmg)
|
||||||
appNewVersion=$(curl -s https://armmf.adobe.com/arm-manifests/mac/AcrobatDC/reader/current_version.txt)
|
appNewVersion=$(curl -s https://armmf.adobe.com/arm-manifests/mac/AcrobatDC/reader/current_version.txt)
|
||||||
#appNewVersion=$(curl -s -H "User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15)" https://get.adobe.com/reader/ | grep ">Version" | sed -E 's/.*Version 20([0-9.]*)<.*/\1/g') # credit: Søren Theilgaard (@theilgaard)
|
#appNewVersion=$(curl -s -H "User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15)" https://get.adobe.com/reader/ | grep ">Version" | sed -E 's/.*Version 20([0-9.]*)<.*/\1/g') # credit: Søren Theilgaard (@theilgaard)
|
||||||
expectedTeamID="JQ525L2MZD"
|
expectedTeamID="JQ525L2MZD"
|
||||||
@@ -1383,7 +1398,8 @@ adobereaderdc-install)
|
|||||||
name="Adobe Acrobat Reader DC"
|
name="Adobe Acrobat Reader DC"
|
||||||
type="pkgInDmg"
|
type="pkgInDmg"
|
||||||
packageID="com.adobe.acrobat.DC.reader.app.pkg.MUI"
|
packageID="com.adobe.acrobat.DC.reader.app.pkg.MUI"
|
||||||
downloadURL=$(curl --silent --fail -H "Sec-Fetch-Site: same-origin" -H "Accept-Encoding: gzip, deflate, br" -H "Accept-Language: en-US;q=0.9,en;q=0.8" -H "DNT: 1" -H "Sec-Fetch-Mode: cors" -H "X-Requested-With: XMLHttpRequest" -H "Referer: https://get.adobe.com/reader/enterprise/" -H "Accept: */*" "https://get.adobe.com/reader/webservices/json/standalone/?platform_type=Macintosh&platform_dist=OSX&platform_arch=x86-32&language=English&eventname=readerotherversions" | grep -Eo '"download_url":.*?[^\]",' | head -n 1 | cut -d \" -f 4)
|
#downloadURL=$(curl --silent --fail -H "Sec-Fetch-Site: same-origin" -H "Accept-Encoding: gzip, deflate, br" -H "Accept-Language: en-US;q=0.9,en;q=0.8" -H "DNT: 1" -H "Sec-Fetch-Mode: cors" -H "X-Requested-With: XMLHttpRequest" -H "Referer: https://get.adobe.com/reader/enterprise/" -H "Accept: */*" "https://get.adobe.com/reader/webservices/json/standalone/?platform_type=Macintosh&platform_dist=OSX&platform_arch=x86-32&language=English&eventname=readerotherversions" | grep -Eo '"download_url":.*?[^\]",' | head -n 1 | cut -d \" -f 4)
|
||||||
|
downloadURL=$(adobecurrent=`curl --fail --silent https://armmf.adobe.com/arm-manifests/mac/AcrobatDC/reader/current_version.txt | tr -d '.'` && echo https://ardownload2.adobe.com/pub/adobe/reader/mac/AcrobatDC/"$adobecurrent"/AcroRdrDC_"$adobecurrent"_MUI.dmg)
|
||||||
appNewVersion=$(curl -s https://armmf.adobe.com/arm-manifests/mac/AcrobatDC/reader/current_version.txt)
|
appNewVersion=$(curl -s https://armmf.adobe.com/arm-manifests/mac/AcrobatDC/reader/current_version.txt)
|
||||||
#appNewVersion=$(curl -s -H "User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15)" https://get.adobe.com/reader/ | grep ">Version" | sed -E 's/.*Version 20([0-9.]*)<.*/\1/g') # credit: Søren Theilgaard (@theilgaard)
|
#appNewVersion=$(curl -s -H "User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15)" https://get.adobe.com/reader/ | grep ">Version" | sed -E 's/.*Version 20([0-9.]*)<.*/\1/g') # credit: Søren Theilgaard (@theilgaard)
|
||||||
expectedTeamID="JQ525L2MZD"
|
expectedTeamID="JQ525L2MZD"
|
||||||
@@ -1452,8 +1468,13 @@ amazonchime)
|
|||||||
amazoncorretto8jdk)
|
amazoncorretto8jdk)
|
||||||
name="Amazon Corretto 8 JDK"
|
name="Amazon Corretto 8 JDK"
|
||||||
type="pkg"
|
type="pkg"
|
||||||
downloadURL="https://corretto.aws/downloads/latest/amazon-corretto-8-x64-macos-jdk.pkg"
|
if [[ $(arch) == "arm64" ]]; then
|
||||||
appNewVersion=$(curl -s https://raw.githubusercontent.com/corretto/corretto-8/develop/CHANGELOG.md | grep "## Corretto version" | head -n 1 | awk '{ print $4; exit}')
|
downloadURL="https://corretto.aws/downloads/latest/amazon-corretto-8-aarch64-macos-jdk.pkg"
|
||||||
|
appNewVersion=$(curl -s https://raw.githubusercontent.com/corretto/corretto-8/develop/CHANGELOG.md | grep "## Corretto version" | head -n 1 | awk '{ print $4; exit}')
|
||||||
|
elif [[ $(arch) == "i386" ]]; then
|
||||||
|
downloadURL="https://corretto.aws/downloads/latest/amazon-corretto-8-x64-macos-jdk.pkg"
|
||||||
|
appNewVersion=$(curl -s https://raw.githubusercontent.com/corretto/corretto-8/develop/CHANGELOG.md | grep "## Corretto version" | head -n 1 | awk '{ print $4; exit}')
|
||||||
|
fi
|
||||||
expectedTeamID="94KV3E626L"
|
expectedTeamID="94KV3E626L"
|
||||||
;;
|
;;
|
||||||
amazonworkspaces)
|
amazonworkspaces)
|
||||||
@@ -1470,6 +1491,19 @@ androidfiletransfer)
|
|||||||
downloadURL="https://dl.google.com/dl/androidjumper/mtp/current/AndroidFileTransfer.dmg"
|
downloadURL="https://dl.google.com/dl/androidjumper/mtp/current/AndroidFileTransfer.dmg"
|
||||||
expectedTeamID="EQHXZ8M8AV"
|
expectedTeamID="EQHXZ8M8AV"
|
||||||
;;
|
;;
|
||||||
|
androidstudio)
|
||||||
|
name="Android Studio"
|
||||||
|
type="dmg"
|
||||||
|
if [[ $(arch) == arm64 ]]; then
|
||||||
|
downloadURL=$(curl -fsL "https://developer.android.com/studio#downloads" | grep -i arm.dmg | head -2 | grep -o -i -E "https.*" | cut -d '"' -f1)
|
||||||
|
appNewVersion=$( echo "${downloadURL}" | head -1 | sed 's/^.*[^0-9]\([0-9]*\.[0-9]*\.[0-9]*\.[0-9]*\).*$/\1/' )
|
||||||
|
elif [[ $(arch) == i386 ]]; then
|
||||||
|
downloadURL=$(curl -fsL "https://developer.android.com/studio#downloads" | grep -i mac.dmg | head -2 | grep -o -i -E "https.*" | cut -d '"' -f1)
|
||||||
|
appNewVersion=$( echo "${downloadURL}" | head -1 | sed 's/^.*[^0-9]\([0-9]*\.[0-9]*\.[0-9]*\.[0-9]*\).*$/\1/' )
|
||||||
|
fi
|
||||||
|
expectedTeamID="EQHXZ8M8AV"
|
||||||
|
blockingProcesses=( androidstudio )
|
||||||
|
;;
|
||||||
anydesk)
|
anydesk)
|
||||||
name="AnyDesk"
|
name="AnyDesk"
|
||||||
type="dmg"
|
type="dmg"
|
||||||
@@ -1564,6 +1598,13 @@ atext)
|
|||||||
downloadURL="https://trankynam.com/atext/downloads/aText.dmg"
|
downloadURL="https://trankynam.com/atext/downloads/aText.dmg"
|
||||||
expectedTeamID="KHEMQ2FD9E"
|
expectedTeamID="KHEMQ2FD9E"
|
||||||
;;
|
;;
|
||||||
|
atextlegacy)
|
||||||
|
# credit: Gabe Marchan (gabemarchan.com - @darklink87)
|
||||||
|
name="aText"
|
||||||
|
type="dmg"
|
||||||
|
downloadURL="https://trankynam.com/atext/downloads/aTextLegacy.dmg"
|
||||||
|
expectedTeamID="KHEMQ2FD9E"
|
||||||
|
;;
|
||||||
atom)
|
atom)
|
||||||
name="Atom"
|
name="Atom"
|
||||||
type="zip"
|
type="zip"
|
||||||
@@ -1803,10 +1844,26 @@ camostudio)
|
|||||||
# Camo Studio will ask for admin permissions to install som plug-ins. that has not been handled.
|
# Camo Studio will ask for admin permissions to install som plug-ins. that has not been handled.
|
||||||
expectedTeamID="Q248YREB53"
|
expectedTeamID="Q248YREB53"
|
||||||
;;
|
;;
|
||||||
camtasia)
|
camtasia|\
|
||||||
|
camtasia2021)
|
||||||
|
name="Camtasia 2021"
|
||||||
|
type="dmg"
|
||||||
|
downloadURL=$(curl -H "User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.1 Safari/605.1.15" -fs "https://support.techsmith.com/hc/en-us/articles/360004908652-Desktop-Product-Download-Links" | grep -A 3 "Camtasia (Mac) 2021" | sed 's/.*href="//' | sed 's/".*//' | grep .dmg)
|
||||||
|
appNewVersion=$(curl -H "User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.1 Safari/605.1.15" -fs "https://support.techsmith.com/hc/en-us/articles/360004908652-Desktop-Product-Download-Links" | grep "Camtasia (Mac) 2021" | sed -e 's/.*Camtasia (Mac) //' -e 's/<\/td>.*//')
|
||||||
|
expectedTeamID="7TQL462TU8"
|
||||||
|
;;
|
||||||
|
camtasia2019)
|
||||||
|
name="Camtasia 2019"
|
||||||
|
type="dmg"
|
||||||
|
downloadURL=$(curl -H "User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.1 Safari/605.1.15" -fs "https://support.techsmith.com/hc/en-us/articles/360004908652-Desktop-Product-Download-Links" | grep -A 3 "Camtasia (Mac) 2019" | sed 's/.*href="//' | sed 's/".*//' | grep .dmg)
|
||||||
|
appNewVersion=$(curl -H "User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.1 Safari/605.1.15" -fs "https://support.techsmith.com/hc/en-us/articles/360004908652-Desktop-Product-Download-Links" | grep "Camtasia (Mac) 2019" | sed -e 's/.*Camtasia (Mac) //' -e 's/<\/td>.*//')
|
||||||
|
expectedTeamID="7TQL462TU8"
|
||||||
|
;;
|
||||||
|
camtasia2020)
|
||||||
name="Camtasia 2020"
|
name="Camtasia 2020"
|
||||||
type="dmg"
|
type="dmg"
|
||||||
downloadURL=https://download.techsmith.com/camtasiamac/releases/Camtasia.dmg
|
downloadURL=$(curl -H "User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.1 Safari/605.1.15" -fs "https://support.techsmith.com/hc/en-us/articles/360004908652-Desktop-Product-Download-Links" | grep -A 3 "Camtasia (Mac) 2020" | sed 's/.*href="//' | sed 's/".*//' | grep .dmg)
|
||||||
|
appNewVersion=$(curl -H "User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.1 Safari/605.1.15" -fs "https://support.techsmith.com/hc/en-us/articles/360004908652-Desktop-Product-Download-Links" | grep "Camtasia (Mac) 2020" | sed -e 's/.*Camtasia (Mac) //' -e 's/<\/td>.*//')
|
||||||
expectedTeamID="7TQL462TU8"
|
expectedTeamID="7TQL462TU8"
|
||||||
;;
|
;;
|
||||||
canva)
|
canva)
|
||||||
@@ -1839,7 +1896,7 @@ citrixworkspace)
|
|||||||
name="Citrix Workspace"
|
name="Citrix Workspace"
|
||||||
type="pkgInDmg"
|
type="pkgInDmg"
|
||||||
downloadURL="https:"$(curl -s -L "https://www.citrix.com/downloads/workspace-app/mac/workspace-app-for-mac-latest.html#ctx-dl-eula-external" | grep "dmg?" | sed "s/.*rel=.\(.*\)..id=.*/\1/") # http://downloads.citrix.com/18823/CitrixWorkspaceApp.dmg?__gda__=1605791892_edc6786a90eb5197fb226861a8e27aa8
|
downloadURL="https:"$(curl -s -L "https://www.citrix.com/downloads/workspace-app/mac/workspace-app-for-mac-latest.html#ctx-dl-eula-external" | grep "dmg?" | sed "s/.*rel=.\(.*\)..id=.*/\1/") # http://downloads.citrix.com/18823/CitrixWorkspaceApp.dmg?__gda__=1605791892_edc6786a90eb5197fb226861a8e27aa8
|
||||||
appNewVersion=$(curl -fs https://www.citrix.com/downloads/workspace-app/mac/workspace-app-for-mac-latest.html | grep "<p>Version" | head -1 | cut -d " " -f1 | cut -d ";" -f2 | cut -d "." -f 1-3)
|
appNewVersion=$(curl -fs https://www.citrix.com/downloads/workspace-app/mac/workspace-app-for-mac-latest.html | grep "<p>Version" | head -1 | awk '{print $2}' | cut -d "." -f 1-3)
|
||||||
expectedTeamID="S272Y5R93J"
|
expectedTeamID="S272Y5R93J"
|
||||||
;;
|
;;
|
||||||
clevershare2)
|
clevershare2)
|
||||||
@@ -1877,6 +1934,24 @@ cloudya)
|
|||||||
appNewVersion="$(curl -fs https://www.nfon.com/de/service/downloads | grep -i -E -o "Cloudya Desktop App MAC [0-9.]*" | sed 's/^.*\ \([^ ]\{0,7\}\)$/\1/g')"
|
appNewVersion="$(curl -fs https://www.nfon.com/de/service/downloads | grep -i -E -o "Cloudya Desktop App MAC [0-9.]*" | sed 's/^.*\ \([^ ]\{0,7\}\)$/\1/g')"
|
||||||
expectedTeamID="X26F74J8TH"
|
expectedTeamID="X26F74J8TH"
|
||||||
;;
|
;;
|
||||||
|
clue)
|
||||||
|
#For personal use and students
|
||||||
|
name="Clue"
|
||||||
|
type="dmg"
|
||||||
|
downloadURL=$(curl -fsL https://clue.no/en/download | grep "For personal use and students:" | sed 's/.*href="//' | sed 's/".*//')
|
||||||
|
appNewVersion="$(echo "${downloadURL}" | sed -E 's/.*Clue*([0-9.]*)\..*/\1/g')"
|
||||||
|
versionKey="CFBundleVersion"
|
||||||
|
expectedTeamID="3NX6B9TB2F"
|
||||||
|
;;
|
||||||
|
cluefull)
|
||||||
|
#For companies and schools
|
||||||
|
name="Clue"
|
||||||
|
type="dmg"
|
||||||
|
downloadURL=$(curl -fsL https://clue.no/en/download | grep "For companies and schools:" | sed 's/.*href="//' | sed 's/".*//')
|
||||||
|
appNewVersion="$(echo "${downloadURL}" | sed -E 's/.*Clue*([0-9.]*)\F.*/\1/g')"
|
||||||
|
versionKey="CFBundleVersion"
|
||||||
|
expectedTeamID="3NX6B9TB2F"
|
||||||
|
;;
|
||||||
code42)
|
code42)
|
||||||
name="Code42"
|
name="Code42"
|
||||||
type="pkgInDmg"
|
type="pkgInDmg"
|
||||||
@@ -1919,6 +1994,13 @@ craftmanager)
|
|||||||
appNewVersion="$(curl -fs https://craft-assets.invisionapp.com/CraftManager/production/appcast.xml | xpath '(//rss/channel/item/enclosure/@sparkle:shortVersionString)[1]' 2>/dev/null | head -1 | cut -d '"' -f 2)"
|
appNewVersion="$(curl -fs https://craft-assets.invisionapp.com/CraftManager/production/appcast.xml | xpath '(//rss/channel/item/enclosure/@sparkle:shortVersionString)[1]' 2>/dev/null | head -1 | cut -d '"' -f 2)"
|
||||||
expectedTeamID="VRXQSNCL5W"
|
expectedTeamID="VRXQSNCL5W"
|
||||||
;;
|
;;
|
||||||
|
craftmanagerforsketch)
|
||||||
|
name="CraftManager"
|
||||||
|
type="zip"
|
||||||
|
downloadURL="https://craft-assets.invisionapp.com/CraftManager/production/CraftManager.zip"
|
||||||
|
appNewVersion=$(curl -fs https://craft-assets.invisionapp.com/CraftManager/production/appcast.xml | xpath '//rss/channel/item[1]/enclosure/@sparkle:shortVersionString' 2>/dev/null | cut -d '"' -f2)
|
||||||
|
expectedTeamID="VRXQSNCL5W"
|
||||||
|
;;
|
||||||
cryptomator)
|
cryptomator)
|
||||||
name="Cryptomator"
|
name="Cryptomator"
|
||||||
type="dmg"
|
type="dmg"
|
||||||
@@ -1958,7 +2040,13 @@ darktable)
|
|||||||
dbeaverce)
|
dbeaverce)
|
||||||
name="DBeaver"
|
name="DBeaver"
|
||||||
type="dmg"
|
type="dmg"
|
||||||
downloadURL="https://dbeaver.io/files/dbeaver-ce-latest-macos.dmg"
|
if [[ $(arch) == "arm64" ]]; then
|
||||||
|
downloadURL="https://dbeaver.io/files/dbeaver-ce-latest-macos-aarch64.dmg"
|
||||||
|
appNewVersion="$(curl -fsIL "${downloadURL}" | grep -i ^location | sed 's/^.*[^0-9]\([0-9]*\.[0-9]*\.[0-9]*\).*$/\1/' | head -1)"
|
||||||
|
elif [[ $(arch) == "i386" ]]; then
|
||||||
|
downloadURL="https://dbeaver.io/files/dbeaver-ce-latest-macos.dmg"
|
||||||
|
appNewVersion="$(curl -fsIL "${downloadURL}" | grep -i ^location | sed 's/^.*[^0-9]\([0-9]*\.[0-9]*\.[0-9]*\).*$/\1/' | head -1)"
|
||||||
|
fi
|
||||||
expectedTeamID="42B6MDKMW8"
|
expectedTeamID="42B6MDKMW8"
|
||||||
blockingProcesses=( dbeaver )
|
blockingProcesses=( dbeaver )
|
||||||
;;
|
;;
|
||||||
@@ -2039,6 +2127,14 @@ diskspace)
|
|||||||
appNewVersion="$(versionFromGit scriptingosx diskspace)"
|
appNewVersion="$(versionFromGit scriptingosx diskspace)"
|
||||||
expectedTeamID="JME5BW3F3R"
|
expectedTeamID="JME5BW3F3R"
|
||||||
;;
|
;;
|
||||||
|
displaylinkmanager)
|
||||||
|
name="DisplayLink Manager"
|
||||||
|
type="pkg"
|
||||||
|
#packageID="com.displaylink.displaylinkmanagerapp"
|
||||||
|
downloadURL=https://www.synaptics.com$(redirect=$(curl -sfL https://www.synaptics.com/products/displaylink-graphics/downloads/macos | grep 'class="download-link">Download' | head -n 1 | sed 's/.*href="//' | sed 's/".*//') && curl -sfL "https://www.synaptics.com$redirect" | grep Accept | head -n 1 | sed 's/.*href="//' | sed 's/".*//')
|
||||||
|
appNewVersion=$(curl -sfL https://www.synaptics.com/products/displaylink-graphics/downloads/macos | grep "Release:" | head -n 1 | cut -d ' ' -f2)
|
||||||
|
expectedTeamID="73YQY62QM3"
|
||||||
|
;;
|
||||||
docker)
|
docker)
|
||||||
name="Docker"
|
name="Docker"
|
||||||
type="dmg"
|
type="dmg"
|
||||||
@@ -2060,6 +2156,15 @@ dockutil)
|
|||||||
expectedTeamID="Z5J8CJBUWC"
|
expectedTeamID="Z5J8CJBUWC"
|
||||||
blockingProcesses=( NONE )
|
blockingProcesses=( NONE )
|
||||||
;;
|
;;
|
||||||
|
drawio)
|
||||||
|
name="draw.io"
|
||||||
|
type="dmg"
|
||||||
|
archiveName="draw.io-universal-[0-9.]*.dmg"
|
||||||
|
downloadURL="$(downloadURLFromGit jgraph drawio-desktop)"
|
||||||
|
appNewVersion="$(versionFromGit jgraph drawio-desktop)"
|
||||||
|
expectedTeamID="UZEUFB4N53"
|
||||||
|
blockingProcesses=( draw.io )
|
||||||
|
;;
|
||||||
drift)
|
drift)
|
||||||
# credit Elena Ackley (@elenaelago)
|
# credit Elena Ackley (@elenaelago)
|
||||||
name="Drift"
|
name="Drift"
|
||||||
@@ -2071,8 +2176,19 @@ dropbox)
|
|||||||
name="Dropbox"
|
name="Dropbox"
|
||||||
type="dmg"
|
type="dmg"
|
||||||
downloadURL="https://www.dropbox.com/download?plat=mac&full=1"
|
downloadURL="https://www.dropbox.com/download?plat=mac&full=1"
|
||||||
|
appNewVersion=$(curl -fsIL "$downloadURL" | grep -i "^location" | sed -E 's/.*%20([0-9.]*)\.dmg/\1/g')
|
||||||
expectedTeamID="G7HH3F8CAK"
|
expectedTeamID="G7HH3F8CAK"
|
||||||
;;
|
;;
|
||||||
|
duckduckgo)
|
||||||
|
name="DuckDuckGo"
|
||||||
|
type="dmg"
|
||||||
|
#downloadURL="https://staticcdn.duckduckgo.com/macos-desktop-browser/duckduckgo.dmg"
|
||||||
|
#downloadURL=$(curl -fs https://staticcdn.duckduckgo.com/macos-desktop-browser/appcast.xml | xpath '(//rss/channel/item/enclosure/@url)[last()]' 2>/dev/null | cut -d '"' -f2)
|
||||||
|
downloadURL=$(curl -fs https://staticcdn.duckduckgo.com/macos-desktop-browser/appcast.xml | xpath '(//rss/channel/item/enclosure/@url)[1]' 2>/dev/null | cut -d '"' -f2)
|
||||||
|
#appNewVersion=$(curl -fs https://staticcdn.duckduckgo.com/macos-desktop-browser/appcast.xml | xpath '(//rss/channel/item/enclosure/@sparkle:version)[last()]' 2>/dev/null | cut -d '"' -f2)
|
||||||
|
appNewVersion=$(curl -fs https://staticcdn.duckduckgo.com/macos-desktop-browser/appcast.xml | xpath '(//rss/channel/item/sparkle:shortVersionString)[1]' 2>/dev/null | cut -d ">" -f2 | cut -d "<" -f1)
|
||||||
|
expectedTeamID="HKE973VLUW"
|
||||||
|
;;
|
||||||
easeusdatarecoverywizard)
|
easeusdatarecoverywizard)
|
||||||
# credit: Søren Theilgaard (@theilgaard)
|
# credit: Søren Theilgaard (@theilgaard)
|
||||||
name="EaseUS Data Recovery Wizard"
|
name="EaseUS Data Recovery Wizard"
|
||||||
@@ -2096,6 +2212,15 @@ egnyte)
|
|||||||
expectedTeamID="FELUD555VC"
|
expectedTeamID="FELUD555VC"
|
||||||
blockingProcesses=( NONE )
|
blockingProcesses=( NONE )
|
||||||
;;
|
;;
|
||||||
|
egnytewebedit)
|
||||||
|
name="EgnyteWebEdit"
|
||||||
|
type="pkg"
|
||||||
|
downloadURL="https://egnyte-cdn.egnyte.com/webedit/mac/en-us/latest/EgnyteWebEdit.pkg"
|
||||||
|
expectedTeamID="FELUD555VC"
|
||||||
|
appName="Egnyte WebEdit.app"
|
||||||
|
blockingProcesses=( NONE )
|
||||||
|
;;
|
||||||
|
|
||||||
element)
|
element)
|
||||||
name="Element"
|
name="Element"
|
||||||
type="dmg"
|
type="dmg"
|
||||||
@@ -2193,6 +2318,16 @@ figma)
|
|||||||
appNewVersion="$(curl -fsL https://desktop.figma.com/mac/RELEASE.json | awk -F '"' '{ print $8 }')"
|
appNewVersion="$(curl -fsL https://desktop.figma.com/mac/RELEASE.json | awk -F '"' '{ print $8 }')"
|
||||||
expectedTeamID="T8RA8NE3B7"
|
expectedTeamID="T8RA8NE3B7"
|
||||||
;;
|
;;
|
||||||
|
filezilla)
|
||||||
|
name="FileZilla"
|
||||||
|
type="tbz"
|
||||||
|
packageID="org.filezilla-project.filezilla"
|
||||||
|
downloadURL=$(curl -fsL https://filezilla-project.org/download.php\?show_all=1 | grep macosx | head -n 1 | awk -F '"' '{print $2}' )
|
||||||
|
appNewVersion=$( curl -fsL https://filezilla-project.org/download.php\?show_all=1 | grep macosx | head -n 1 | awk -F '_' '{print $2}' )
|
||||||
|
expectedTeamID="5VPGKXL75N"
|
||||||
|
blockingProcesses=( NONE )
|
||||||
|
;;
|
||||||
|
|
||||||
findanyfile)
|
findanyfile)
|
||||||
name="Find Any File"
|
name="Find Any File"
|
||||||
type="zip"
|
type="zip"
|
||||||
@@ -2207,6 +2342,7 @@ firefox)
|
|||||||
appNewVersion=$(curl -fs https://www.mozilla.org/en-US/firefox/releases/ | grep '<html' | grep -o -i -e "data-latest-firefox=\"[0-9.]*\"" | cut -d '"' -f2)
|
appNewVersion=$(curl -fs https://www.mozilla.org/en-US/firefox/releases/ | grep '<html' | grep -o -i -e "data-latest-firefox=\"[0-9.]*\"" | cut -d '"' -f2)
|
||||||
expectedTeamID="43AQ936H96"
|
expectedTeamID="43AQ936H96"
|
||||||
blockingProcesses=( firefox )
|
blockingProcesses=( firefox )
|
||||||
|
printlog "WARNING for ERROR: Label firefox and firefox_intl should not be used. Instead use firefoxpkg and firefoxpkg_intl as per recommendations from Firefox. It's not fully certain that the app actually gets updated here. firefoxpkg and firefoxpkg_intl will have built in updates and make sure the client is updated in the future." REQ
|
||||||
;;
|
;;
|
||||||
firefox_da)
|
firefox_da)
|
||||||
name="Firefox"
|
name="Firefox"
|
||||||
@@ -2215,29 +2351,33 @@ firefox_da)
|
|||||||
appNewVersion=$(curl -fs https://www.mozilla.org/en-US/firefox/releases/ | grep '<html' | grep -o -i -e "data-latest-firefox=\"[0-9.]*\"" | cut -d '"' -f2)
|
appNewVersion=$(curl -fs https://www.mozilla.org/en-US/firefox/releases/ | grep '<html' | grep -o -i -e "data-latest-firefox=\"[0-9.]*\"" | cut -d '"' -f2)
|
||||||
expectedTeamID="43AQ936H96"
|
expectedTeamID="43AQ936H96"
|
||||||
blockingProcesses=( firefox )
|
blockingProcesses=( firefox )
|
||||||
|
printlog "WARNING for ERROR: Label firefox, firefox_da and firefox_intl should not be used. Instead use firefoxpkg and firefoxpkg_intl as per recommendations from Firefox. It's not fully certain that the app actually gets updated here. firefoxpkg and firefoxpkg_intl will have built in updates and make sure the client is updated in the future." REQ
|
||||||
;;
|
;;
|
||||||
firefox_intl)
|
firefox_intl)
|
||||||
# This label will try to figure out the selected language of the user,
|
# This label will try to figure out the selected language of the user,
|
||||||
# and install corrosponding version of Firefox
|
# and install corrosponding version of Firefox
|
||||||
name="Firefox"
|
name="Firefox"
|
||||||
type="dmg"
|
type="dmg"
|
||||||
userLanguage=$(runAsUser defaults read .GlobalPreferences AppleLocale)
|
userLanguage=$(runAsUser defaults read .GlobalPreferences AppleLocale | tr '_' '-')
|
||||||
printlog "Found language $userLanguage to be used for Firefox."
|
printlog "Found language $userLanguage to be used for $name."
|
||||||
if ! curl -fs "https://ftp.mozilla.org/pub/firefox/releases/latest/README.txt" | grep -o "=$userLanguage"; then
|
releaseURL="https://ftp.mozilla.org/pub/firefox/releases/latest/README.txt"
|
||||||
userLanguage=$(echo $userLanguage | cut -c 1-2)
|
until curl -fs $releaseURL | grep -q "=$userLanguage"; do
|
||||||
if ! curl -fs "https://ftp.mozilla.org/pub/firefox/releases/latest/README.txt" | grep "=$userLanguage"; then
|
if [ ${#userLanguage} -eq 2 ]; then
|
||||||
userLanguage="en_US"
|
break
|
||||||
fi
|
fi
|
||||||
|
printlog "No locale matching '$userLanguage', trying '${userLanguage:0:2}'"
|
||||||
|
userLanguage=${userLanguage:0:2}
|
||||||
|
done
|
||||||
|
printlog "Using language '$userLanguage' for download."
|
||||||
|
downloadURL="https://download.mozilla.org/?product=firefox-latest-ssl&os=osx&lang=$userLanguage"
|
||||||
|
if ! curl -sfL --output /dev/null -r 0-0 $downloadURL; then
|
||||||
|
printlog "Download not found for '$userLanguage', using default ('en-US')."
|
||||||
|
downloadURL="https://download.mozilla.org/?product=firefox-latest-ssl&os=osx"
|
||||||
fi
|
fi
|
||||||
printlog "Using language $userLanguage for download."
|
appNewVersion=$(curl -fsIL $downloadURL | awk -F releases/ '/Location:/ {split($2,a,"/"); print a[1]}')
|
||||||
downloadURL="https://download.mozilla.org/?product=firefox-latest&os=osx&lang=$userLanguage"
|
|
||||||
if ! curl -sfL --output /dev/null -r 0-0 "$downloadURL" ; then
|
|
||||||
printlog "Download not found for that language. Using en-US"
|
|
||||||
downloadURL="https://download.mozilla.org/?product=firefox-latest&os=osx&lang=en-US"
|
|
||||||
fi
|
|
||||||
appNewVersion=$(curl -fs https://www.mozilla.org/en-US/firefox/releases/ | grep '<html' | grep -o -i -e "data-latest-firefox=\"[0-9.]*\"" | cut -d '"' -f2)
|
|
||||||
expectedTeamID="43AQ936H96"
|
expectedTeamID="43AQ936H96"
|
||||||
blockingProcesses=( firefox )
|
blockingProcesses=( firefox )
|
||||||
|
printlog "WARNING for ERROR: Label firefox and firefox_intl should not be used. Instead use firefoxpkg and firefoxpkg_intl as per recommendations from Firefox. It's not fully certain that the app actually gets updated here. firefoxpkg and firefoxpkg_intl will have built in updates and make sure the client is updated in the future." REQ
|
||||||
;;
|
;;
|
||||||
firefoxesr|\
|
firefoxesr|\
|
||||||
firefoxesrpkg)
|
firefoxesrpkg)
|
||||||
@@ -2249,33 +2389,60 @@ firefoxesrpkg)
|
|||||||
blockingProcesses=( firefox )
|
blockingProcesses=( firefox )
|
||||||
;;
|
;;
|
||||||
firefoxesr_intl)
|
firefoxesr_intl)
|
||||||
# This label will try to figure out the selected language of the user,
|
# This label will try to figure out the selected language of the user,
|
||||||
# and install corrosponding version of Firefox ESR
|
# and install corrosponding version of Firefox ESR
|
||||||
name="Firefox"
|
name="Firefox"
|
||||||
type="dmg"
|
type="dmg"
|
||||||
userLanguage=$(runAsUser defaults read .GlobalPreferences AppleLocale)
|
userLanguage=$(runAsUser defaults read .GlobalPreferences AppleLocale | tr '_' '-')
|
||||||
printlog "Found language $userLanguage to be used for Firefox."
|
printlog "Found language $userLanguage to be used for $name."
|
||||||
if ! curl -fs "https://ftp.mozilla.org/pub/firefox/releases/latest-esr/README.txt" | grep -o "=$userLanguage"; then
|
releaseURL="https://ftp.mozilla.org/pub/firefox/releases/latest-esr/README.txt"
|
||||||
userLanguage=$(echo $userLanguage | cut -c 1-2)
|
until curl -fs $releaseURL | grep -q "=$userLanguage"; do
|
||||||
if ! curl -fs "https://ftp.mozilla.org/pub/firefox/releases/latest-esr/README.txt" | grep "=$userLanguage"; then
|
if [ ${#userLanguage} -eq 2 ]; then
|
||||||
userLanguage="en_US"
|
break
|
||||||
fi
|
fi
|
||||||
fi
|
printlog "No locale matching '$userLanguage', trying '${userLanguage:0:2}'"
|
||||||
printlog "Using language $userLanguage for download."
|
userLanguage=${userLanguage:0:2}
|
||||||
|
done
|
||||||
|
printlog "Using language '$userLanguage' for download."
|
||||||
downloadURL="https://download.mozilla.org/?product=firefox-esr-latest-ssl&os=osx&lang=$userLanguage"
|
downloadURL="https://download.mozilla.org/?product=firefox-esr-latest-ssl&os=osx&lang=$userLanguage"
|
||||||
# https://download.mozilla.org/?product=firefox-esr-latest-ssl&os=osx&lang=en-US
|
if ! curl -sfL --output /dev/null -r 0-0 $downloadURL; then
|
||||||
if ! curl -sfL --output /dev/null -r 0-0 "$downloadURL" ; then
|
printlog "Download not found for '$userLanguage', using default ('en-US')."
|
||||||
printlog "Download not found for that language. Using en-US"
|
downloadURL="https://download.mozilla.org/?product=firefox-esr-latest-ssl&os=osx"
|
||||||
downloadURL="https://download.mozilla.org/?product=firefox-latest&os=osx&lang=en-US"
|
|
||||||
fi
|
fi
|
||||||
appNewVersion=$(curl -fsIL "$downloadURL" | grep -i "^location" | awk '{print $2}' | sed -E 's/.*releases\/([0-9.]*)esr.*/\1/g')
|
appNewVersion=$(curl -fsIL $downloadURL | awk -F releases/ '/Location:/ {split($2,a,"esr/"); print a[1]}')
|
||||||
expectedTeamID="43AQ936H96"
|
expectedTeamID="43AQ936H96"
|
||||||
blockingProcesses=( firefox )
|
blockingProcesses=( firefox )
|
||||||
|
printlog "WARNING for ERROR: Label firefox and firefox_intl should not be used. Instead use firefoxpkg and firefoxpkg_intl as per recommendations from Firefox. It's not fully certain that the app actually gets updated here. firefoxpkg and firefoxpkg_intl will have built in updates and make sure the client is updated in the future." REQ
|
||||||
;;
|
;;
|
||||||
firefoxpkg)
|
firefoxpkg)
|
||||||
name="Firefox"
|
name="Firefox"
|
||||||
type="pkg"
|
type="pkg"
|
||||||
downloadURL="https://download.mozilla.org/?product=firefox-pkg-latest-ssl&os=osx&lang=en-US"
|
downloadURL="https://download.mozilla.org/?product=firefox-pkg-latest-ssl&os=osx&lang=en-US"
|
||||||
|
appNewVersion=$(curl -fs https://www.mozilla.org/en-US/firefox/releases/ | grep '<html' | grep -o -i -e "data-latest-firefox=\"[0-9.]*\"" | cut -d '"' -f2)
|
||||||
|
expectedTeamID="43AQ936H96"
|
||||||
|
blockingProcesses=( firefox )
|
||||||
|
;;
|
||||||
|
firefoxpkg_intl)
|
||||||
|
# This label will try to figure out the selected language of the user,
|
||||||
|
# and install corrosponding version of Firefox ESR
|
||||||
|
name="Firefox"
|
||||||
|
type="pkg"
|
||||||
|
userLanguage=$(runAsUser defaults read .GlobalPreferences AppleLocale)
|
||||||
|
printlog "Found language $userLanguage to be used for Firefox." WARN
|
||||||
|
if ! curl -fs "https://ftp.mozilla.org/pub/firefox/releases/latest/README.txt" | grep -o "=$userLanguage"; then
|
||||||
|
userLanguage=$(echo $userLanguage | cut -c 1-2)
|
||||||
|
if ! curl -fs "https://ftp.mozilla.org/pub/firefox/releases/latest/README.txt" | grep "=$userLanguage"; then
|
||||||
|
userLanguage="en_US"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
printlog "Using language $userLanguage for download." WARN
|
||||||
|
downloadURL="https://download.mozilla.org/?product=firefox-pkg-latest-ssl&os=osx&lang=$userLanguage"
|
||||||
|
# https://download.mozilla.org/?product=firefox-pkg-latest-ssl&os=osx&lang=en-US
|
||||||
|
if ! curl -sfL --output /dev/null -r 0-0 "$downloadURL" ; then
|
||||||
|
printlog "Download not found for that language. Using en-US" WARN
|
||||||
|
downloadURL="https://download.mozilla.org/?product=firefox-pkg-latest-ssl&os=osx&lang=en-US"
|
||||||
|
fi
|
||||||
|
appNewVersion=$(curl -fsIL "$downloadURL" | grep -i location | cut -d "/" -f7)
|
||||||
expectedTeamID="43AQ936H96"
|
expectedTeamID="43AQ936H96"
|
||||||
blockingProcesses=( firefox )
|
blockingProcesses=( firefox )
|
||||||
;;
|
;;
|
||||||
@@ -2294,6 +2461,23 @@ flux)
|
|||||||
expectedTeamID="VZKSA7H9J9"
|
expectedTeamID="VZKSA7H9J9"
|
||||||
;;
|
;;
|
||||||
|
|
||||||
|
flycut)
|
||||||
|
name="Flycut"
|
||||||
|
type="zip"
|
||||||
|
archiveName="Flycut.[0-9.]*.zip"
|
||||||
|
downloadURL="$(downloadURLFromGit TermiT Flycut)"
|
||||||
|
appNewVersion=$(versionFromGit TermiT Flycut )
|
||||||
|
expectedTeamID="S8JLSG5ES7"
|
||||||
|
;;
|
||||||
|
fontexplorer)
|
||||||
|
name="FontExplorer X Pro"
|
||||||
|
type="dmg"
|
||||||
|
packageID="com.linotype.FontExplorerX"
|
||||||
|
downloadURL="http://www.fontexplorerx.com/download/free-trial/Mac/"
|
||||||
|
appNewVersion=$( curl -fsL http://fex.linotype.com/update/client/mac/pro/version.plist | grep string | tail -n 1 | sed 's/[^0-9.]//g' )
|
||||||
|
expectedTeamID="2V7G2B7WG4"
|
||||||
|
;;
|
||||||
|
|
||||||
front)
|
front)
|
||||||
name="Front"
|
name="Front"
|
||||||
type="dmg"
|
type="dmg"
|
||||||
@@ -2346,6 +2530,7 @@ googlechrome)
|
|||||||
downloadURL="https://dl.google.com/chrome/mac/universal/stable/GGRO/googlechrome.dmg"
|
downloadURL="https://dl.google.com/chrome/mac/universal/stable/GGRO/googlechrome.dmg"
|
||||||
appNewVersion=$(curl -s https://omahaproxy.appspot.com/history | awk -F',' '/mac_arm64,stable/{print $3; exit}')
|
appNewVersion=$(curl -s https://omahaproxy.appspot.com/history | awk -F',' '/mac_arm64,stable/{print $3; exit}')
|
||||||
expectedTeamID="EQHXZ8M8AV"
|
expectedTeamID="EQHXZ8M8AV"
|
||||||
|
printlog "WARNING for ERROR: Label googlechrome should not be used. Instead use googlechromepkg as per recommendations from Google. It's not fully certain that the app actually gets updated here. googlechromepkg will have built in updates and make sure the client is updated in the future." REQ
|
||||||
;;
|
;;
|
||||||
googlechromepkg)
|
googlechromepkg)
|
||||||
name="Google Chrome"
|
name="Google Chrome"
|
||||||
@@ -2355,6 +2540,7 @@ googlechromepkg)
|
|||||||
# https://support.google.com/chrome/a/answer/9915669
|
# https://support.google.com/chrome/a/answer/9915669
|
||||||
#
|
#
|
||||||
downloadURL="https://dl.google.com/chrome/mac/stable/accept_tos%3Dhttps%253A%252F%252Fwww.google.com%252Fintl%252Fen_ph%252Fchrome%252Fterms%252F%26_and_accept_tos%3Dhttps%253A%252F%252Fpolicies.google.com%252Fterms/googlechrome.pkg"
|
downloadURL="https://dl.google.com/chrome/mac/stable/accept_tos%3Dhttps%253A%252F%252Fwww.google.com%252Fintl%252Fen_ph%252Fchrome%252Fterms%252F%26_and_accept_tos%3Dhttps%253A%252F%252Fpolicies.google.com%252Fterms/googlechrome.pkg"
|
||||||
|
appNewVersion=$(curl -s https://omahaproxy.appspot.com/history | awk -F',' '/mac_arm64,stable/{print $3; exit}')
|
||||||
expectedTeamID="EQHXZ8M8AV"
|
expectedTeamID="EQHXZ8M8AV"
|
||||||
updateTool="/Library/Google/GoogleSoftwareUpdate/GoogleSoftwareUpdate.bundle/Contents/Resources/GoogleSoftwareUpdateAgent.app/Contents/MacOS/GoogleSoftwareUpdateAgent"
|
updateTool="/Library/Google/GoogleSoftwareUpdate/GoogleSoftwareUpdate.bundle/Contents/Resources/GoogleSoftwareUpdateAgent.app/Contents/MacOS/GoogleSoftwareUpdateAgent"
|
||||||
updateToolArguments=( -runMode oneshot -userInitiated YES )
|
updateToolArguments=( -runMode oneshot -userInitiated YES )
|
||||||
@@ -2412,6 +2598,7 @@ gpgsuite)
|
|||||||
type="pkgInDmg"
|
type="pkgInDmg"
|
||||||
pkgName="Install.pkg"
|
pkgName="Install.pkg"
|
||||||
downloadURL=$(curl -s https://gpgtools.org/ | grep https://releases.gpgtools.org/GPG_Suite- | grep Download | cut -d'"' -f4)
|
downloadURL=$(curl -s https://gpgtools.org/ | grep https://releases.gpgtools.org/GPG_Suite- | grep Download | cut -d'"' -f4)
|
||||||
|
appNewVersion=$(echo $downloadURL | cut -d "-" -f 2 | cut -d "." -f 1-2)
|
||||||
expectedTeamID="PKV8ZPD836"
|
expectedTeamID="PKV8ZPD836"
|
||||||
blockingProcesses=( "GPG Keychain" )
|
blockingProcesses=( "GPG Keychain" )
|
||||||
;;
|
;;
|
||||||
@@ -2424,14 +2611,16 @@ gpgsync)
|
|||||||
expectedTeamID="P24U45L8P5"
|
expectedTeamID="P24U45L8P5"
|
||||||
;;
|
;;
|
||||||
grammarly)
|
grammarly)
|
||||||
name="Grammarly Desktop"
|
name="Grammarly Desktop"
|
||||||
type="dmg"
|
type="dmg"
|
||||||
packageID="com.grammarly.ProjectLlama"
|
packageID="com.grammarly.ProjectLlama"
|
||||||
downloadURL=$(curl -fsL "https://download-mac.grammarly.com/appcast.xml" | xpath '//rss/channel/item[1]/enclosure/@url' 2>/dev/null | cut -d '"' -f 2)
|
downloadURL=$(curl -fsL "https://download-mac.grammarly.com/appcast.xml" | xpath '//rss/channel/item[1]/enclosure/@url' 2>/dev/null | cut -d '"' -f 2)
|
||||||
expectedTeamID="W8F64X92K3"
|
expectedTeamID="W8F64X92K3"
|
||||||
appNewVersion=$(curl -is "https://download-mac.grammarly.com/appcast.xml" | grep sparkle:version | tr ',' '\n' | grep sparkle:version | cut -d '"' -f 4)
|
appNewVersion=$(curl -is "https://download-mac.grammarly.com/appcast.xml" | grep sparkle:version | tr ',' '\n' | grep sparkle:version | cut -d '"' -f 4)
|
||||||
appName="Grammarly Installer.app"
|
# appName="Grammarly Installer.app"
|
||||||
;;
|
installerTool="Grammarly Installer.app"
|
||||||
|
CLIInstaller="Grammarly Installer.app/Contents/MacOS/Grammarly Desktop"
|
||||||
|
;;
|
||||||
grandperspective)
|
grandperspective)
|
||||||
name="GrandPerspective"
|
name="GrandPerspective"
|
||||||
type="dmg"
|
type="dmg"
|
||||||
@@ -2507,6 +2696,15 @@ hpeasystart)
|
|||||||
downloadURL="https://ftp.hp.com/pub/softlib/software12/HP_Quick_Start/osx/Applications/HP_Easy_Start.app.zip"
|
downloadURL="https://ftp.hp.com/pub/softlib/software12/HP_Quick_Start/osx/Applications/HP_Easy_Start.app.zip"
|
||||||
expectedTeamID="6HB5Y2QTA3"
|
expectedTeamID="6HB5Y2QTA3"
|
||||||
;;
|
;;
|
||||||
|
hype)
|
||||||
|
name="Hype4"
|
||||||
|
type="dmg"
|
||||||
|
packageID="com.tumult.Hype4"
|
||||||
|
downloadURL="https://static.tumult.com/hype/download/Hype.dmg"
|
||||||
|
appNewVersion=$( curl -fsL https://tumult.com/hype/download/all/ | grep Ongoing | awk -F '<' '{print $4}' | sed 's/[^0-9.]//g' )
|
||||||
|
expectedTeamID="8J356DM772"
|
||||||
|
blockingProcesses=( NONE )
|
||||||
|
;;
|
||||||
hyper)
|
hyper)
|
||||||
name="Hyper"
|
name="Hyper"
|
||||||
type="dmg"
|
type="dmg"
|
||||||
@@ -2534,6 +2732,24 @@ icons)
|
|||||||
appNewVersion=$(versionFromGit sap macOS-icon-generator )
|
appNewVersion=$(versionFromGit sap macOS-icon-generator )
|
||||||
expectedTeamID="7R5ZEU67FQ"
|
expectedTeamID="7R5ZEU67FQ"
|
||||||
;;
|
;;
|
||||||
|
idrive)
|
||||||
|
name="IDrive"
|
||||||
|
type="pkgInDmg"
|
||||||
|
pkgName="IDrive.pkg"
|
||||||
|
downloadURL=$(curl -fs https://static.idriveonlinebackup.com/downloads/version_mac.js | sed -E 's/.*(https.*dmg).*/\1/g')
|
||||||
|
appNewVersion=$(curl -fs https://static.idriveonlinebackup.com/downloads/version_mac.js | sed -E 's/.*mac_vernum\=\"Version\ ([0-9.]*).*/\1/g')
|
||||||
|
versionKey="CFBundleVersion"
|
||||||
|
expectedTeamID="JWDCNYZ922"
|
||||||
|
;;
|
||||||
|
idrivethin)
|
||||||
|
name="IDrive"
|
||||||
|
type="pkgInDmg"
|
||||||
|
pkgName="IDriveThin.pkg"
|
||||||
|
downloadURL=$(curl -fs https://static.idriveonlinebackup.com/downloads/idrivethin/thin_version.js | sed -E 's/.*thinclient-mac([^;]*).*/\1/g' | sed -E 's/.*(https.*dmg).*/\1/g')
|
||||||
|
appNewVersion=$(curl -fs https://static.idriveonlinebackup.com/downloads/idrivethin/thin_version.js | sed -E 's/.*thin\_mac\_ver\=\"Version\ ([0-9.]*).*/\1/g')
|
||||||
|
versionKey="CFBundleVersion"
|
||||||
|
expectedTeamID="JWDCNYZ922"
|
||||||
|
;;
|
||||||
iina)
|
iina)
|
||||||
name="IINA"
|
name="IINA"
|
||||||
type="dmg"
|
type="dmg"
|
||||||
@@ -2541,6 +2757,15 @@ iina)
|
|||||||
appNewVersion=$(versionFromGit iina iina )
|
appNewVersion=$(versionFromGit iina iina )
|
||||||
expectedTeamID="67CQ77V27R"
|
expectedTeamID="67CQ77V27R"
|
||||||
;;
|
;;
|
||||||
|
imageoptim)
|
||||||
|
name="imageoptim"
|
||||||
|
type="tbz"
|
||||||
|
packageID="net.pornel.ImageOptim"
|
||||||
|
downloadURL="https://imageoptim.com/ImageOptim.tbz2"
|
||||||
|
appNewVersion=$( curl -fsL https://imageoptim.com/appcast.xml | grep "title" | tail -n 1 | sed 's/[^0-9.]//g' )
|
||||||
|
expectedTeamID="59KZTZA4XR"
|
||||||
|
blockingProcesses=( NONE )
|
||||||
|
;;
|
||||||
imazingprofileeditor)
|
imazingprofileeditor)
|
||||||
# Credit: Bilal Habib @Pro4TLZZ
|
# Credit: Bilal Habib @Pro4TLZZ
|
||||||
name="iMazing Profile Editor"
|
name="iMazing Profile Editor"
|
||||||
@@ -2875,8 +3100,24 @@ libreoffice)
|
|||||||
expectedTeamID="7P5S3ZLCN7"
|
expectedTeamID="7P5S3ZLCN7"
|
||||||
blockingProcesses=( soffice )
|
blockingProcesses=( soffice )
|
||||||
;;
|
;;
|
||||||
|
linear)
|
||||||
|
name="Linear"
|
||||||
|
type="dmg"
|
||||||
|
if [[ $(arch) == "arm64" ]]; then
|
||||||
|
downloadURL="https://desktop.linear.app/mac/dmg/arm64"
|
||||||
|
elif [[ $(arch) == "i386" ]]; then
|
||||||
|
downloadURL="https://desktop.linear.app/mac/dmg"
|
||||||
|
fi
|
||||||
|
appNewVersion=$(curl -sIkL $downloadURL | sed -r '/filename=/!d;s/.*filename=(.*)$/\1/' | awk '{print $2}')
|
||||||
|
expectedTeamID="7VZ2S3V9RV"
|
||||||
|
versionKey="CFBundleShortVersionString"
|
||||||
|
appName="Linear.app"
|
||||||
|
blockingProcesses=( "Linear" )
|
||||||
|
;;
|
||||||
|
|
||||||
|
logioptions|\
|
||||||
logitechoptions)
|
logitechoptions)
|
||||||
name="Logitech Options"
|
name="Logi Options"
|
||||||
type="pkgInZip"
|
type="pkgInZip"
|
||||||
#downloadURL=$(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 -oie "https.*/.*/options/.*\.zip" | head -1)
|
#downloadURL=$(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 -oie "https.*/.*/options/.*\.zip" | head -1)
|
||||||
downloadURL="https://download01.logi.com/web/ftp/pub/techsupport/options/options_installer.zip"
|
downloadURL="https://download01.logi.com/web/ftp/pub/techsupport/options/options_installer.zip"
|
||||||
@@ -2957,6 +3198,14 @@ macfuse)
|
|||||||
appNewVersion=$(versionFromGit osxfuse osxfuse)
|
appNewVersion=$(versionFromGit osxfuse osxfuse)
|
||||||
expectedTeamID="3T5GSNBU6W"
|
expectedTeamID="3T5GSNBU6W"
|
||||||
;;
|
;;
|
||||||
|
macoslaps)
|
||||||
|
name="macOSLAPS"
|
||||||
|
type="pkg"
|
||||||
|
packageID="edu.psu.macOSLAPS"
|
||||||
|
downloadURL="$(downloadURLFromGit joshua-d-miller macOSLAPS)"
|
||||||
|
appNewVersion="$(versionFromGit joshua-d-miller macOSLAPS)"
|
||||||
|
expectedTeamID="9UYK4F9BSM"
|
||||||
|
;;
|
||||||
macports)
|
macports)
|
||||||
name="MacPorts"
|
name="MacPorts"
|
||||||
type="pkg"
|
type="pkg"
|
||||||
@@ -3298,6 +3547,20 @@ microsoftyammer)
|
|||||||
#updateTool="/Library/Application Support/Microsoft/MAU2.0/Microsoft AutoUpdate.app/Contents/MacOS/msupdate --list; /Library/Application Support/Microsoft/MAU2.0/Microsoft AutoUpdate.app/Contents/MacOS/msupdate"
|
#updateTool="/Library/Application Support/Microsoft/MAU2.0/Microsoft AutoUpdate.app/Contents/MacOS/msupdate --list; /Library/Application Support/Microsoft/MAU2.0/Microsoft AutoUpdate.app/Contents/MacOS/msupdate"
|
||||||
#updateToolArguments=( --install --apps ?????? )
|
#updateToolArguments=( --install --apps ?????? )
|
||||||
;;
|
;;
|
||||||
|
mightymike)
|
||||||
|
name="Mighty Mike"
|
||||||
|
type="dmg"
|
||||||
|
downloadURL=$(downloadURLFromGit jorio MightyMike)
|
||||||
|
appNewVersion=$(versionFromGit jorio MightyMike)
|
||||||
|
expectedTeamID="RVNL7XC27G"
|
||||||
|
;;
|
||||||
|
mindmanager)
|
||||||
|
name="MindManager"
|
||||||
|
type="dmg"
|
||||||
|
downloadURL="https://www.mindmanager.com/mm-mac-dmg"
|
||||||
|
appNewVersion="$(curl -fsIL "${downloadURL}" | grep -i "^location" | awk '{print $2}' | sed -E 's/.*_Mac_*([0-9.]*)\..*/\1/g')"
|
||||||
|
expectedTeamID="ZF6ZZ779N5"
|
||||||
|
;;
|
||||||
miro)
|
miro)
|
||||||
# credit: @matins
|
# credit: @matins
|
||||||
name="Miro"
|
name="Miro"
|
||||||
@@ -3585,7 +3848,12 @@ onionshare)
|
|||||||
onlyofficedesktop)
|
onlyofficedesktop)
|
||||||
name="ONLYOFFICE"
|
name="ONLYOFFICE"
|
||||||
type="dmg"
|
type="dmg"
|
||||||
downloadURL="https://download.onlyoffice.com/install/desktop/editors/mac/distrib/onlyoffice/ONLYOFFICE.dmg"
|
if [[ $(arch) == "arm64" ]]; then
|
||||||
|
downloadURL="https://download.onlyoffice.com/install/desktop/editors/mac/arm/distrib/ONLYOFFICE.dmg"
|
||||||
|
elif [[ $(arch) == "i386" ]]; then
|
||||||
|
downloadURL="https://download.onlyoffice.com/install/desktop/editors/mac/x86_64/distrib/ONLYOFFICE.dmg"
|
||||||
|
fi
|
||||||
|
appNewVersion=$(versionFromGit ONLYOFFICE DesktopEditors)
|
||||||
expectedTeamID="2WH24U26GJ"
|
expectedTeamID="2WH24U26GJ"
|
||||||
;;
|
;;
|
||||||
openvpnconnect)
|
openvpnconnect)
|
||||||
@@ -3677,6 +3945,15 @@ perimeter81)
|
|||||||
appNewVersion="$(curl -fsIL "${downloadURL}" | grep -i ^x-amz-meta-version | sed -E 's/x-amz-meta-version: //' | cut -d"." -f1-3)"
|
appNewVersion="$(curl -fsIL "${downloadURL}" | grep -i ^x-amz-meta-version | sed -E 's/x-amz-meta-version: //' | cut -d"." -f1-3)"
|
||||||
expectedTeamID="924635PD62"
|
expectedTeamID="924635PD62"
|
||||||
;;
|
;;
|
||||||
|
pika)
|
||||||
|
name="Pika"
|
||||||
|
type="dmg"
|
||||||
|
packageID="com.superhighfives.Pika"
|
||||||
|
downloadURL=$(downloadURLFromGit "superhighfives" "pika")
|
||||||
|
appNewVersion=$(versionFromGit "superhighfives" "pika")
|
||||||
|
expectedTeamID="TGHU37N6EX"
|
||||||
|
blockingProcesses=( NONE )
|
||||||
|
;;
|
||||||
pitch)
|
pitch)
|
||||||
name="Pitch"
|
name="Pitch"
|
||||||
type="dmg"
|
type="dmg"
|
||||||
@@ -3704,11 +3981,15 @@ plisteditpro)
|
|||||||
expectedTeamID="8NQ43ND65V"
|
expectedTeamID="8NQ43ND65V"
|
||||||
;;
|
;;
|
||||||
postman)
|
postman)
|
||||||
# credit: Mischa van der Bent
|
|
||||||
name="Postman"
|
name="Postman"
|
||||||
type="zip"
|
type="zip"
|
||||||
downloadURL="https://dl.pstmn.io/download/latest/osx"
|
if [[ $(arch) == "arm64" ]]; then
|
||||||
appNewVersion=$(curl -Ifs https://dl.pstmn.io/download/latest/osx | grep "content-disposition:" | sed -n -e 's/^.*Postman-osx-//p' | sed 's/\.zip//' | sed $'s/[^[:print:]\t]//g' )
|
downloadURL="https://dl.pstmn.io/download/latest/osx_arm64"
|
||||||
|
appNewVersion=$(curl -fsL --head "${downloadURL}" | grep "content-disposition:" | sed 's/^.*[^0-9]\([0-9]*\.[0-9]*\.[0-9]*\).*$/\1/')
|
||||||
|
elif [[ $(arch) == "i386" ]]; then
|
||||||
|
downloadURL="https://dl.pstmn.io/download/latest/osx_64"
|
||||||
|
appNewVersion=$(curl -fsL --head "${downloadURL}" | grep "content-disposition:" | sed 's/^.*[^0-9]\([0-9]*\.[0-9]*\.[0-9]*\).*$/\1/')
|
||||||
|
fi
|
||||||
expectedTeamID="H7H8Q7M5CK"
|
expectedTeamID="H7H8Q7M5CK"
|
||||||
;;
|
;;
|
||||||
prism9)
|
prism9)
|
||||||
@@ -3753,6 +4034,15 @@ promiseutilityr)
|
|||||||
downloadURL="https://www.promise.com/DownloadFile.aspx?DownloadFileUID=6533"
|
downloadURL="https://www.promise.com/DownloadFile.aspx?DownloadFileUID=6533"
|
||||||
expectedTeamID="268CCUR4WN"
|
expectedTeamID="268CCUR4WN"
|
||||||
;;
|
;;
|
||||||
|
propresenter7)
|
||||||
|
name="ProPresenter 7"
|
||||||
|
appName="ProPresenter.app"
|
||||||
|
type="zip"
|
||||||
|
blockingProcesses="ProPresenter"
|
||||||
|
downloadURL=$(curl -s "https://api.renewedvision.com/v1/pro/upgrade?platform=macos&osVersion=12&appVersion=771&buildNumber=117899527&includeNotes=false" | grep -Eo '"downloadUrl":.*?[^\]",' | head -n 1 | cut -d \" -f 4 | sed -e 's/\\//g')
|
||||||
|
appNewVersion=$(curl -s "https://api.renewedvision.com/v1/pro/upgrade?platform=macos&osVersion=12&appVersion=771&buildNumber=117899527&includeNotes=false" | grep -Eo '"version":.*?[^\]",' | head -n 1 | cut -d \" -f 4)
|
||||||
|
expectedTeamID="97GAAZ6CPX"
|
||||||
|
;;
|
||||||
protonvpn)
|
protonvpn)
|
||||||
name="ProtonVPN"
|
name="ProtonVPN"
|
||||||
type="dmg"
|
type="dmg"
|
||||||
@@ -3774,6 +4064,13 @@ pymol)
|
|||||||
downloadURL=$(curl -s -L "https://pymol.org/" | grep -m 1 -Eio 'href="https://pymol.org/installers/PyMOL-(.*)-MacOS(.*).dmg"' | cut -c7- | sed -e 's/"$//')
|
downloadURL=$(curl -s -L "https://pymol.org/" | grep -m 1 -Eio 'href="https://pymol.org/installers/PyMOL-(.*)-MacOS(.*).dmg"' | cut -c7- | sed -e 's/"$//')
|
||||||
expectedTeamID="26SDDJ756N"
|
expectedTeamID="26SDDJ756N"
|
||||||
;;
|
;;
|
||||||
|
qgis-pr)
|
||||||
|
name="QGIS"
|
||||||
|
type="dmg"
|
||||||
|
downloadURL="https://download.qgis.org/downloads/macos/qgis-macos-pr.dmg"
|
||||||
|
appNewVersion="$(curl -fs "https://www.qgis.org/da/_static/documentation_options.js" | grep -i version | cut -d "'" -f2)"
|
||||||
|
expectedTeamID="4F7N4UDA22"
|
||||||
|
;;
|
||||||
r)
|
r)
|
||||||
name="R"
|
name="R"
|
||||||
type="pkg"
|
type="pkg"
|
||||||
@@ -3789,10 +4086,15 @@ ramboxce)
|
|||||||
expectedTeamID="7F292FPD69"
|
expectedTeamID="7F292FPD69"
|
||||||
;;
|
;;
|
||||||
rancherdesktop)
|
rancherdesktop)
|
||||||
name="Rancher.Desktop-1.0.0-mac"
|
name="Rancher Desktop"
|
||||||
type="zip"
|
type="zip"
|
||||||
archiveName="Rancher.Desktop-[0-9.]*-mac.zip"
|
if [[ $(arch) == "arm64" ]]; then
|
||||||
downloadURL="$(downloadURLFromGit rancher-sandbox rancher-desktop)"
|
archiveName="Rancher.Desktop-[0-9.]*-mac.aarch64.zip"
|
||||||
|
downloadURL="$(downloadURLFromGit rancher-sandbox rancher-desktop)"
|
||||||
|
elif [[ $(arch) == "i386" ]]; then
|
||||||
|
archiveName="Rancher.Desktop-[0-9.]*-mac.x86_64.zip"
|
||||||
|
downloadURL="$(downloadURLFromGit rancher-sandbox rancher-desktop)"
|
||||||
|
fi
|
||||||
appNewVersion="$(versionFromGit rancher-sandbox rancher-desktop)"
|
appNewVersion="$(versionFromGit rancher-sandbox rancher-desktop)"
|
||||||
expectedTeamID="2Q6FHJR3H3"
|
expectedTeamID="2Q6FHJR3H3"
|
||||||
appName="Rancher Desktop.app"
|
appName="Rancher Desktop.app"
|
||||||
@@ -3815,14 +4117,15 @@ redeye)
|
|||||||
remotedesktopmanagerenterprise)
|
remotedesktopmanagerenterprise)
|
||||||
name="Remote Desktop Manager"
|
name="Remote Desktop Manager"
|
||||||
type="dmg"
|
type="dmg"
|
||||||
downloadURL=$(curl -fs https://remotedesktopmanager.com/home/thankyou/rdmmacbin | grep -oe "http.*\.dmg" | head -1)
|
downloadURL=$(curl -fs https://devolutions.net/remote-desktop-manager/home/thankyou/rdmmacbin | grep -oe "http.*\.dmg" | head -1)
|
||||||
appNewVersion=$(echo "$downloadURL" | sed -E 's/.*\.Mac\.([0-9.]*)\.dmg/\1/g')
|
appNewVersion=$(echo "$downloadURL" | sed -E 's/.*\.Mac\.([0-9.]*)\.dmg/\1/g')
|
||||||
expectedTeamID="N592S9ASDB"
|
expectedTeamID="N592S9ASDB"
|
||||||
|
blockingProcesses=( "$name" )
|
||||||
;;
|
;;
|
||||||
remotedesktopmanagerfree)
|
remotedesktopmanagerfree)
|
||||||
name="Remote Desktop Manager Free"
|
name="Remote Desktop Manager Free"
|
||||||
type="dmg"
|
type="dmg"
|
||||||
downloadURL=$(curl -fs https://remotedesktopmanager.com/home/thankyou/rdmmacfreebin | grep -oe "http.*\.dmg" | head -1)
|
downloadURL=$(curl -fs https://devolutions.net/remote-desktop-manager/home/thankyou/rdmmacfreebin | grep -oe "http.*\.dmg" | head -1)
|
||||||
appNewVersion=$(echo "$downloadURL" | sed -E 's/.*\.Mac\.([0-9.]*)\.dmg/\1/g')
|
appNewVersion=$(echo "$downloadURL" | sed -E 's/.*\.Mac\.([0-9.]*)\.dmg/\1/g')
|
||||||
expectedTeamID="N592S9ASDB"
|
expectedTeamID="N592S9ASDB"
|
||||||
;;
|
;;
|
||||||
@@ -3863,11 +4166,15 @@ ricohpsprinters)
|
|||||||
;;
|
;;
|
||||||
ringcentralapp)
|
ringcentralapp)
|
||||||
# credit: Isaac Ordonez, Mann consulting (@mannconsulting)
|
# credit: Isaac Ordonez, Mann consulting (@mannconsulting)
|
||||||
name="Glip"
|
name="Ringcentral"
|
||||||
type="dmg"
|
type="pkg"
|
||||||
downloadURL="https://downloads.ringcentral.com/glip/rc/GlipForMac"
|
if [[ $(arch) != "i386" ]]; then
|
||||||
|
downloadURL="https://app.ringcentral.com/download/RingCentral-arm64.pkg"
|
||||||
|
else
|
||||||
|
downloadURL="https://app.ringcentral.com/download/RingCentral.pkg"
|
||||||
|
fi
|
||||||
expectedTeamID="M932RC5J66"
|
expectedTeamID="M932RC5J66"
|
||||||
blockingProcesses=( "Glip" )
|
blockingProcesses=( "Ringcentral" )
|
||||||
;;
|
;;
|
||||||
ringcentralclassicapp)
|
ringcentralclassicapp)
|
||||||
name="Glip"
|
name="Glip"
|
||||||
@@ -3997,6 +4304,13 @@ shield)
|
|||||||
appNewVersion=$(versionFromGit theevilbit Shield)
|
appNewVersion=$(versionFromGit theevilbit Shield)
|
||||||
expectedTeamID="33YRLYRBYV"
|
expectedTeamID="33YRLYRBYV"
|
||||||
;;
|
;;
|
||||||
|
shottr)
|
||||||
|
name="Shottr"
|
||||||
|
type="dmg"
|
||||||
|
downloadURL="https://shottr.cc/dl/Shottr-1.5.3.dmg"
|
||||||
|
appNewVersion=$( echo ${downloadURL} | sed -E 's/.*\/[a-zA-Z]*-([0-9.]*)\..*/\1/g' )
|
||||||
|
expectedTeamID="2Y683PRQWN"
|
||||||
|
;;
|
||||||
sidekick)
|
sidekick)
|
||||||
name="Sidekick"
|
name="Sidekick"
|
||||||
type="dmg"
|
type="dmg"
|
||||||
@@ -4038,7 +4352,7 @@ sizeup)
|
|||||||
sketch)
|
sketch)
|
||||||
name="Sketch"
|
name="Sketch"
|
||||||
type="zip"
|
type="zip"
|
||||||
downloadURL=$(curl -sf https://www.sketch.com/downloads/mac/ | grep 'href="https://download.sketch.com' | sed -E 's/.*href=\"(.*)\".?/\1/g')
|
downloadURL=$(curl -sf https://www.sketch.com/downloads/mac/ | grep 'href="https://download.sketch.com' | tr '"' "\n" | grep -E "https.*.zip")
|
||||||
appNewVersion=$(curl -fs https://www.sketch.com/updates/ | grep "Sketch Version" | head -1 | sed -E 's/.*Version ([0-9.]*)<.*/\1/g') # version from update page
|
appNewVersion=$(curl -fs https://www.sketch.com/updates/ | grep "Sketch Version" | head -1 | sed -E 's/.*Version ([0-9.]*)<.*/\1/g') # version from update page
|
||||||
expectedTeamID="WUGMZZ5K46"
|
expectedTeamID="WUGMZZ5K46"
|
||||||
;;
|
;;
|
||||||
@@ -4056,6 +4370,18 @@ skype)
|
|||||||
expectedTeamID="AL798K98FX"
|
expectedTeamID="AL798K98FX"
|
||||||
Company="Microsoft"
|
Company="Microsoft"
|
||||||
;;
|
;;
|
||||||
|
slab)
|
||||||
|
name="Slab"
|
||||||
|
type="dmg"
|
||||||
|
if [[ $(arch) == i386 ]]; then
|
||||||
|
archiveName="Slab-[0-9.]*-darwin-x64.dmg"
|
||||||
|
elif [[ $(arch) == arm64 ]]; then
|
||||||
|
archiveName="Slab-[0-9.]*-darwin-arm64.dmg"
|
||||||
|
fi
|
||||||
|
downloadURL=$(downloadURLFromGit slab desktop-releases)
|
||||||
|
appNewVersion=$(versionFromGit slab desktop-releases)
|
||||||
|
expectedTeamID="Q67SW996Z5"
|
||||||
|
;;
|
||||||
slack)
|
slack)
|
||||||
name="Slack"
|
name="Slack"
|
||||||
type="dmg"
|
type="dmg"
|
||||||
@@ -4075,11 +4401,32 @@ smartgit)
|
|||||||
expectedTeamID="PHMY45PTNW"
|
expectedTeamID="PHMY45PTNW"
|
||||||
;;
|
;;
|
||||||
snagit|\
|
snagit|\
|
||||||
snagit2021|\
|
snagit2022)
|
||||||
|
name="Snagit 2022"
|
||||||
|
type="dmg"
|
||||||
|
downloadURL=$(curl -H "User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.1 Safari/605.1.15" -fs "https://support.techsmith.com/hc/en-us/articles/360004908652-Desktop-Product-Download-Links" | grep -A 3 "Snagit (Mac) 2022" | sed 's/.*href="//' | sed 's/".*//' | grep .dmg)
|
||||||
|
appNewVersion=$(curl -H "User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.1 Safari/605.1.15" -fs "https://support.techsmith.com/hc/en-us/articles/360004908652-Desktop-Product-Download-Links" | grep "Snagit (Mac) 2022" | sed -e 's/.*Snagit (Mac) //' -e 's/<\/td>.*//')
|
||||||
|
expectedTeamID="7TQL462TU8"
|
||||||
|
;;
|
||||||
|
snagit2019)
|
||||||
|
name="Snagit 2019"
|
||||||
|
type="dmg"
|
||||||
|
downloadURL=$(curl -H "User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.1 Safari/605.1.15" -fs "https://support.techsmith.com/hc/en-us/articles/360004908652-Desktop-Product-Download-Links" | grep -A 3 "Snagit (Mac) 2019" | sed 's/.*href="//' | sed 's/".*//' | grep .dmg)
|
||||||
|
appNewVersion=$(curl -H "User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.1 Safari/605.1.15" -fs "https://support.techsmith.com/hc/en-us/articles/360004908652-Desktop-Product-Download-Links" | grep "Snagit (Mac) 2019" | sed -e 's/.*Snagit (Mac) //' -e 's/<\/td>.*//')
|
||||||
|
expectedTeamID="7TQL462TU8"
|
||||||
|
;;
|
||||||
snagit2020)
|
snagit2020)
|
||||||
|
name="Snagit 2020"
|
||||||
|
type="dmg"
|
||||||
|
downloadURL=$(curl -H "User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.1 Safari/605.1.15" -fs "https://support.techsmith.com/hc/en-us/articles/360004908652-Desktop-Product-Download-Links" | grep -A 3 "Snagit (Mac) 2020" | sed 's/.*href="//' | sed 's/".*//' | grep .dmg)
|
||||||
|
appNewVersion=$(curl -H "User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.1 Safari/605.1.15" -fs "https://support.techsmith.com/hc/en-us/articles/360004908652-Desktop-Product-Download-Links" | grep "Snagit (Mac) 2020" | sed -e 's/.*Snagit (Mac) //' -e 's/<\/td>.*//')
|
||||||
|
expectedTeamID="7TQL462TU8"
|
||||||
|
;;
|
||||||
|
snagit2021)
|
||||||
name="Snagit 2021"
|
name="Snagit 2021"
|
||||||
type="dmg"
|
type="dmg"
|
||||||
downloadURL="https://download.techsmith.com/snagitmac/releases/Snagit.dmg"
|
downloadURL=$(curl -H "User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.1 Safari/605.1.15" -fs "https://support.techsmith.com/hc/en-us/articles/360004908652-Desktop-Product-Download-Links" | grep -A 3 "Snagit (Mac) 2021" | sed 's/.*href="//' | sed 's/".*//' | grep .dmg)
|
||||||
|
appNewVersion=$(curl -H "User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.1 Safari/605.1.15" -fs "https://support.techsmith.com/hc/en-us/articles/360004908652-Desktop-Product-Download-Links" | grep "Snagit (Mac) 2021" | sed -e 's/.*Snagit (Mac) //' -e 's/<\/td>.*//')
|
||||||
expectedTeamID="7TQL462TU8"
|
expectedTeamID="7TQL462TU8"
|
||||||
;;
|
;;
|
||||||
snapgeneviewer)
|
snapgeneviewer)
|
||||||
@@ -4089,6 +4436,15 @@ snapgeneviewer)
|
|||||||
appNewVersion=$( curl -fsIL "${downloadURL}" | grep -i "^location" | awk '{print $2}' | tr '/' '\n' | grep -i "dmg" | sed -E 's/[a-zA-Z_]*_([0-9.]*)_mac\.dmg/\1/g' )
|
appNewVersion=$( curl -fsIL "${downloadURL}" | grep -i "^location" | awk '{print $2}' | tr '/' '\n' | grep -i "dmg" | sed -E 's/[a-zA-Z_]*_([0-9.]*)_mac\.dmg/\1/g' )
|
||||||
expectedTeamID="WVCV9Q8Y78"
|
expectedTeamID="WVCV9Q8Y78"
|
||||||
;;
|
;;
|
||||||
|
sonobus)
|
||||||
|
name="Sonobus"
|
||||||
|
type="pkgInDmg"
|
||||||
|
html_page_source="$(curl -fs 'https://www.sonobus.net')"
|
||||||
|
downloadFile="$(echo "${html_page_source}" | xmllint --html --xpath "string(//a[contains(@href, 'mac.dmg')]/@href)" - 2> /dev/null)"
|
||||||
|
downloadURL="https://www.sonobus.net/$downloadFile"
|
||||||
|
appNewVersion="$(echo "${downloadFile}" | sed 's/releases\/sonobus-//' | sed 's/\-mac.dmg//' )"
|
||||||
|
expectedTeamID="XCS435894D"
|
||||||
|
;;
|
||||||
sonos|\
|
sonos|\
|
||||||
sonoss1)
|
sonoss1)
|
||||||
# credit: Erik Stam (@erikstam)
|
# credit: Erik Stam (@erikstam)
|
||||||
@@ -4240,8 +4596,15 @@ tageditor)
|
|||||||
talkdeskcallbar)
|
talkdeskcallbar)
|
||||||
name="Callbar"
|
name="Callbar"
|
||||||
type="dmg"
|
type="dmg"
|
||||||
downloadURL=https://downloadcallbar.talkdesk.com/Callbar-$(curl -fsL https://downloadcallbar.talkdesk.com/release_metadata.json | sed -n 's/^.*"version":"\([^"]*\)".*$/\1/p').dmg
|
appNewVersion=$(curl -fsL https://downloadcallbar.talkdesk.com/release_metadata.json | sed -n 's/^.*"version"[[:space:]]*:[[:space:]]*"\([^"]*\)".*$/\1/p')
|
||||||
appNewVersion=$(curl -fsL https://downloadcallbar.talkdesk.com/release_metadata.json | sed -n 's/^.*"version":"\([^"]*\)".*$/\1/p')
|
downloadURL=https://downloadcallbar.talkdesk.com/Callbar-${appNewVersion}.dmg
|
||||||
|
expectedTeamID="YGGJX44TB8"
|
||||||
|
;;
|
||||||
|
talkdeskcxcloud)
|
||||||
|
name="Talkdesk"
|
||||||
|
type="dmg"
|
||||||
|
appNewVersion=$(curl -fs https://td-infra-prd-us-east-1-s3-atlaselectron.s3.amazonaws.com/talkdesk-latest-metadata.json | sed -n -e 's/^.*"version"[[:space:]]*:[[:space:]]*"\([^"]*\)".*$/\1/p' | head -n 1)
|
||||||
|
downloadURL="https://td-infra-prd-us-east-1-s3-atlaselectron.s3.amazonaws.com/talkdesk-${appNewVersion}.dmg"
|
||||||
expectedTeamID="YGGJX44TB8"
|
expectedTeamID="YGGJX44TB8"
|
||||||
;;
|
;;
|
||||||
taskpaper)
|
taskpaper)
|
||||||
@@ -4335,6 +4698,31 @@ thunderbird)
|
|||||||
expectedTeamID="43AQ936H96"
|
expectedTeamID="43AQ936H96"
|
||||||
blockingProcesses=( thunderbird )
|
blockingProcesses=( thunderbird )
|
||||||
;;
|
;;
|
||||||
|
thunderbird_intl)
|
||||||
|
# This label will try to figure out the selected language of the user,
|
||||||
|
# and install corrosponding version of Thunderbird
|
||||||
|
name="Thunderbird"
|
||||||
|
type="dmg"
|
||||||
|
userLanguage=$(runAsUser defaults read .GlobalPreferences AppleLocale | tr '_' '-')
|
||||||
|
printlog "Found language $userLanguage to be used for $name."
|
||||||
|
releaseURL="https://ftp.mozilla.org/pub/thunderbird/releases/latest/README.txt"
|
||||||
|
until curl -fs $releaseURL | grep -q "=$userLanguage"; do
|
||||||
|
if [ ${#userLanguage} -eq 2 ]; then
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
printlog "No locale matching '$userLanguage', trying '${userLanguage:0:2}'"
|
||||||
|
userLanguage=${userLanguage:0:2}
|
||||||
|
done
|
||||||
|
printlog "Using language '$userLanguage' for download."
|
||||||
|
downloadURL="https://download.mozilla.org/?product=thunderbird-latest&os=osx&lang=$userLanguage"
|
||||||
|
if ! curl -sfL --output /dev/null -r 0-0 $downloadURL; then
|
||||||
|
printlog "Download not found for '$userLanguage', using default ('en-US')."
|
||||||
|
downloadURL="https://download.mozilla.org/?product=thunderbird-latest&os=osx"
|
||||||
|
fi
|
||||||
|
appNewVersion=$(curl -fsIL $downloadURL | awk -F releases/ '/Location:/ {split($2,a,"/"); print a[1]}')
|
||||||
|
expectedTeamID="43AQ936H96"
|
||||||
|
blockingProcesses=( thunderbird )
|
||||||
|
;;
|
||||||
tidal)
|
tidal)
|
||||||
name="TIDAL"
|
name="TIDAL"
|
||||||
type="dmg"
|
type="dmg"
|
||||||
@@ -4393,6 +4781,14 @@ typora)
|
|||||||
appNewVersion=$(curl -fs "https://www.typora.io/download/dev_update.xml" | xpath '(//rss/channel/item/enclosure/@sparkle:shortVersionString)[1]' 2>/dev/null | cut -d '"' -f2)
|
appNewVersion=$(curl -fs "https://www.typora.io/download/dev_update.xml" | xpath '(//rss/channel/item/enclosure/@sparkle:shortVersionString)[1]' 2>/dev/null | cut -d '"' -f2)
|
||||||
expectedTeamID="9HWK5273G4"
|
expectedTeamID="9HWK5273G4"
|
||||||
;;
|
;;
|
||||||
|
ultimakercura)
|
||||||
|
name="Ultimaker Cura"
|
||||||
|
type="dmg"
|
||||||
|
downloadURL="$(downloadURLFromGit Ultimaker Cura)"
|
||||||
|
archiveName="Ultimaker_Cura-[0-9].*-Darwin.dmg"
|
||||||
|
appNewVersion=$(versionFromGit Ultimaker Cura )
|
||||||
|
expectedTeamID="V4B3JXRRQS"
|
||||||
|
;;
|
||||||
umbrellaroamingclient)
|
umbrellaroamingclient)
|
||||||
# credit: Tadayuki Onishi (@kenchan0130)
|
# credit: Tadayuki Onishi (@kenchan0130)
|
||||||
name="Umbrella Roaming Client"
|
name="Umbrella Roaming Client"
|
||||||
@@ -4414,6 +4810,14 @@ universaltypeclient)
|
|||||||
downloadURL=https://bin.extensis.com/$( curl -fs https://www.extensis.com/support/universal-type-server-7/ | grep -o "UTC-[0-9].*M.zip" )
|
downloadURL=https://bin.extensis.com/$( curl -fs https://www.extensis.com/support/universal-type-server-7/ | grep -o "UTC-[0-9].*M.zip" )
|
||||||
expectedTeamID="J6MMHGD9D6"
|
expectedTeamID="J6MMHGD9D6"
|
||||||
;;
|
;;
|
||||||
|
unnaturalscrollwheels)
|
||||||
|
name="UnnaturalScrollWheels"
|
||||||
|
type="dmg"
|
||||||
|
downloadURL="$(downloadURLFromGit ther0n UnnaturalScrollWheels)"
|
||||||
|
appNewVersion="$(versionFromGit ther0n UnnaturalScrollWheels)"
|
||||||
|
expectedTeamID="D6H5W2T379"
|
||||||
|
blockingProcesses=( UnnaturalScrollWheels )
|
||||||
|
;;
|
||||||
utm)
|
utm)
|
||||||
name="UTM"
|
name="UTM"
|
||||||
type="dmg"
|
type="dmg"
|
||||||
@@ -4541,6 +4945,12 @@ webexmeetings)
|
|||||||
#blockingProcessesMaxCPU="5"
|
#blockingProcessesMaxCPU="5"
|
||||||
blockingProcesses=( Webex )
|
blockingProcesses=( Webex )
|
||||||
;;
|
;;
|
||||||
|
wechat)
|
||||||
|
name="WeChat"
|
||||||
|
type="dmg"
|
||||||
|
downloadURL="https://dldir1.qq.com/weixin/mac/WeChatMac.dmg"
|
||||||
|
expectedTeamID="5A4RE8SF68"
|
||||||
|
;;
|
||||||
whatsapp)
|
whatsapp)
|
||||||
name="WhatsApp"
|
name="WhatsApp"
|
||||||
type="dmg"
|
type="dmg"
|
||||||
@@ -4596,6 +5006,15 @@ xeroxphaser7800)
|
|||||||
downloadURL=$(curl -fs "https://www.support.xerox.com/en-us/product/phaser-7800/downloads?platform=macOSx11" | xmllint --html --format - 2>/dev/null | grep -o "https://.*XeroxDrivers.*.dmg")
|
downloadURL=$(curl -fs "https://www.support.xerox.com/en-us/product/phaser-7800/downloads?platform=macOSx11" | xmllint --html --format - 2>/dev/null | grep -o "https://.*XeroxDrivers.*.dmg")
|
||||||
expectedTeamID="G59Y3XFNFR"
|
expectedTeamID="G59Y3XFNFR"
|
||||||
;;
|
;;
|
||||||
|
xeroxworkcentre7800)
|
||||||
|
name="XeroxWorkCentre"
|
||||||
|
type="pkgInDmg"
|
||||||
|
appCustomVersion(){ lpinfo -m | grep 783 | tail -n 1 | awk -F ', ' '{print $2}' }
|
||||||
|
appNewVersion=$( curl -fsL "https://www.support.xerox.com/nl-nl/product/workcentre-7800-series/downloads?platform=macOSx11" | grep .dmg | head -n 1 | awk -F '_' '{print $2}' )
|
||||||
|
downloadURL=$( curl -fsL "https://www.support.xerox.com/nl-nl/product/workcentre-7800-series/downloads?platform=macOSx11" | xmllint --html --format - 2>/dev/null | grep -o "https://.*XeroxDrivers.*.dmg" )
|
||||||
|
expectedTeamID="G59Y3XFNFR"
|
||||||
|
blockingProcesses=( NONE )
|
||||||
|
;;
|
||||||
xink)
|
xink)
|
||||||
name="Xink"
|
name="Xink"
|
||||||
type="pkg"
|
type="pkg"
|
||||||
@@ -4660,6 +5079,14 @@ zohoworkdrive)
|
|||||||
downloadURL=$(echo "$lines" | grep -i "files-accl.zohopublic.com")$(echo "$lines" | grep -i -A17 "files-accl.zohopublic.com" | grep -i -A2 macintosh | tail -1)
|
downloadURL=$(echo "$lines" | grep -i "files-accl.zohopublic.com")$(echo "$lines" | grep -i -A17 "files-accl.zohopublic.com" | grep -i -A2 macintosh | tail -1)
|
||||||
expectedTeamID="TZ824L8Y37"
|
expectedTeamID="TZ824L8Y37"
|
||||||
;;
|
;;
|
||||||
|
zohoworkdrivegenie)
|
||||||
|
name="Zoho WorkDrive Genie"
|
||||||
|
type="dmg"
|
||||||
|
# https://www.zoho.com/workdrive/genie.html
|
||||||
|
downloadURL="https://www.zoho.com/workdrive/downloads/edit-tool/Zoho_WorkDrive_Genie.dmg"
|
||||||
|
CLIInstaller="Zoho WorkDrive Genie.app/Contents/MacOS/Zoho WorkDrive Genie"
|
||||||
|
expectedTeamID="TZ824L8Y37"
|
||||||
|
;;
|
||||||
zohoworkdrivetruesync)
|
zohoworkdrivetruesync)
|
||||||
# Using this label expects you to agree to these:
|
# Using this label expects you to agree to these:
|
||||||
# License Areemant: https://www.zoho.com/workdrive/zohoworkdrive-license-agreement.html
|
# License Areemant: https://www.zoho.com/workdrive/zohoworkdrive-license-agreement.html
|
||||||
|
|||||||
40
Labels.txt
40
Labels.txt
@@ -1,4 +1,5 @@
|
|||||||
1password7
|
1password7
|
||||||
|
1password8
|
||||||
1passwordcli
|
1passwordcli
|
||||||
4kvideodownloader
|
4kvideodownloader
|
||||||
8x8
|
8x8
|
||||||
@@ -20,6 +21,7 @@ amazonchime
|
|||||||
amazoncorretto8jdk
|
amazoncorretto8jdk
|
||||||
amazonworkspaces
|
amazonworkspaces
|
||||||
androidfiletransfer
|
androidfiletransfer
|
||||||
|
androidstudio
|
||||||
anydesk
|
anydesk
|
||||||
apparency
|
apparency
|
||||||
appcleaner
|
appcleaner
|
||||||
@@ -33,6 +35,7 @@ aquaskk
|
|||||||
arq7
|
arq7
|
||||||
asana
|
asana
|
||||||
atext
|
atext
|
||||||
|
atextlegacy
|
||||||
atom
|
atom
|
||||||
audacity
|
audacity
|
||||||
authydesktop
|
authydesktop
|
||||||
@@ -64,6 +67,8 @@ calcservice
|
|||||||
calibre
|
calibre
|
||||||
camostudio
|
camostudio
|
||||||
camtasia
|
camtasia
|
||||||
|
camtasia2019
|
||||||
|
camtasia2021
|
||||||
canva
|
canva
|
||||||
chatwork
|
chatwork
|
||||||
cisdem-documentreader
|
cisdem-documentreader
|
||||||
@@ -73,11 +78,14 @@ clickshare
|
|||||||
clipy
|
clipy
|
||||||
closeio
|
closeio
|
||||||
cloudya
|
cloudya
|
||||||
|
clue
|
||||||
|
cluefull
|
||||||
code42
|
code42
|
||||||
coderunner
|
coderunner
|
||||||
colourcontrastanalyser
|
colourcontrastanalyser
|
||||||
cormorant
|
cormorant
|
||||||
craftmanager
|
craftmanager
|
||||||
|
craftmanagerforsketch
|
||||||
cryptomator
|
cryptomator
|
||||||
cyberduck
|
cyberduck
|
||||||
daisydisk
|
daisydisk
|
||||||
@@ -94,13 +102,17 @@ dialog
|
|||||||
dialpad
|
dialpad
|
||||||
discord
|
discord
|
||||||
diskspace
|
diskspace
|
||||||
|
displaylinkmanager
|
||||||
docker
|
docker
|
||||||
dockutil
|
dockutil
|
||||||
|
drawio
|
||||||
drift
|
drift
|
||||||
dropbox
|
dropbox
|
||||||
|
duckduckgo
|
||||||
easeusdatarecoverywizard
|
easeusdatarecoverywizard
|
||||||
easyfind
|
easyfind
|
||||||
egnyte
|
egnyte
|
||||||
|
egnytewebedit
|
||||||
element
|
element
|
||||||
eraseinstall
|
eraseinstall
|
||||||
eshareosx
|
eshareosx
|
||||||
@@ -113,6 +125,7 @@ fastscripts
|
|||||||
favro
|
favro
|
||||||
ferdi
|
ferdi
|
||||||
figma
|
figma
|
||||||
|
filezilla
|
||||||
findanyfile
|
findanyfile
|
||||||
firefox
|
firefox
|
||||||
firefox_da
|
firefox_da
|
||||||
@@ -121,8 +134,11 @@ firefoxesr
|
|||||||
firefoxesr_intl
|
firefoxesr_intl
|
||||||
firefoxesrpkg
|
firefoxesrpkg
|
||||||
firefoxpkg
|
firefoxpkg
|
||||||
|
firefoxpkg_intl
|
||||||
flowjo
|
flowjo
|
||||||
flux
|
flux
|
||||||
|
flycut
|
||||||
|
fontexplorer
|
||||||
front
|
front
|
||||||
fsmonitor
|
fsmonitor
|
||||||
gimp
|
gimp
|
||||||
@@ -150,10 +166,14 @@ hazel
|
|||||||
houdahspot
|
houdahspot
|
||||||
hpeasyadmin
|
hpeasyadmin
|
||||||
hpeasystart
|
hpeasystart
|
||||||
|
hype
|
||||||
hyper
|
hyper
|
||||||
ibarcoder
|
ibarcoder
|
||||||
icons
|
icons
|
||||||
|
idrive
|
||||||
|
idrivethin
|
||||||
iina
|
iina
|
||||||
|
imageoptim
|
||||||
imazingprofileeditor
|
imazingprofileeditor
|
||||||
inkscape
|
inkscape
|
||||||
insomnia
|
insomnia
|
||||||
@@ -192,6 +212,8 @@ lastpass
|
|||||||
launchbar
|
launchbar
|
||||||
lexarrecoverytool
|
lexarrecoverytool
|
||||||
libreoffice
|
libreoffice
|
||||||
|
linear
|
||||||
|
logioptions
|
||||||
logitechoptions
|
logitechoptions
|
||||||
logseq
|
logseq
|
||||||
loom
|
loom
|
||||||
@@ -201,6 +223,7 @@ lulu
|
|||||||
macadminspython
|
macadminspython
|
||||||
maccyapp
|
maccyapp
|
||||||
macfuse
|
macfuse
|
||||||
|
macoslaps
|
||||||
macports
|
macports
|
||||||
malwarebytes
|
malwarebytes
|
||||||
marathon
|
marathon
|
||||||
@@ -232,6 +255,8 @@ microsoftteams
|
|||||||
microsoftvisualstudiocode
|
microsoftvisualstudiocode
|
||||||
microsoftword
|
microsoftword
|
||||||
microsoftyammer
|
microsoftyammer
|
||||||
|
mightymike
|
||||||
|
mindmanager
|
||||||
miro
|
miro
|
||||||
mobikinassistantforandroid
|
mobikinassistantforandroid
|
||||||
mochakeyboard
|
mochakeyboard
|
||||||
@@ -276,6 +301,7 @@ paretosecurity
|
|||||||
parsec
|
parsec
|
||||||
pdfsam
|
pdfsam
|
||||||
perimeter81
|
perimeter81
|
||||||
|
pika
|
||||||
pitch
|
pitch
|
||||||
plantronicshub
|
plantronicshub
|
||||||
platypus
|
platypus
|
||||||
@@ -287,10 +313,12 @@ privileges
|
|||||||
proctortrack
|
proctortrack
|
||||||
promiseutility
|
promiseutility
|
||||||
promiseutilityr
|
promiseutilityr
|
||||||
|
propresenter7
|
||||||
protonvpn
|
protonvpn
|
||||||
proxyman
|
proxyman
|
||||||
pycharmce
|
pycharmce
|
||||||
pymol
|
pymol
|
||||||
|
qgis-pr
|
||||||
r
|
r
|
||||||
ramboxce
|
ramboxce
|
||||||
rancherdesktop
|
rancherdesktop
|
||||||
@@ -322,6 +350,7 @@ secretive
|
|||||||
sequelpro
|
sequelpro
|
||||||
sfsymbols
|
sfsymbols
|
||||||
shield
|
shield
|
||||||
|
shottr
|
||||||
sidekick
|
sidekick
|
||||||
signal
|
signal
|
||||||
silnite
|
silnite
|
||||||
@@ -330,12 +359,16 @@ sizeup
|
|||||||
sketch
|
sketch
|
||||||
sketchupviewer
|
sketchupviewer
|
||||||
skype
|
skype
|
||||||
|
slab
|
||||||
slack
|
slack
|
||||||
smartgit
|
smartgit
|
||||||
snagit
|
snagit
|
||||||
|
snagit2019
|
||||||
snagit2020
|
snagit2020
|
||||||
snagit2021
|
snagit2021
|
||||||
|
snagit2022
|
||||||
snapgeneviewer
|
snapgeneviewer
|
||||||
|
sonobus
|
||||||
sonos
|
sonos
|
||||||
sonoss1
|
sonoss1
|
||||||
sonoss2
|
sonoss2
|
||||||
@@ -358,6 +391,7 @@ tableaupublic
|
|||||||
tableaureader
|
tableaureader
|
||||||
tageditor
|
tageditor
|
||||||
talkdeskcallbar
|
talkdeskcallbar
|
||||||
|
talkdeskcxcloud
|
||||||
taskpaper
|
taskpaper
|
||||||
teamviewer
|
teamviewer
|
||||||
teamviewerhost
|
teamviewerhost
|
||||||
@@ -370,6 +404,7 @@ textmate
|
|||||||
theunarchiver
|
theunarchiver
|
||||||
things
|
things
|
||||||
thunderbird
|
thunderbird
|
||||||
|
thunderbird_intl
|
||||||
tidal
|
tidal
|
||||||
toggltrack
|
toggltrack
|
||||||
tom4aconverter
|
tom4aconverter
|
||||||
@@ -378,9 +413,11 @@ trex
|
|||||||
tunnelbear
|
tunnelbear
|
||||||
tunnelblick
|
tunnelblick
|
||||||
typora
|
typora
|
||||||
|
ultimakercura
|
||||||
umbrellaroamingclient
|
umbrellaroamingclient
|
||||||
uniconverter
|
uniconverter
|
||||||
universaltypeclient
|
universaltypeclient
|
||||||
|
unnaturalscrollwheels
|
||||||
utm
|
utm
|
||||||
vagrant
|
vagrant
|
||||||
vanilla
|
vanilla
|
||||||
@@ -398,6 +435,7 @@ wallyezflash
|
|||||||
webex
|
webex
|
||||||
webexmeetings
|
webexmeetings
|
||||||
webexteams
|
webexteams
|
||||||
|
wechat
|
||||||
whatsapp
|
whatsapp
|
||||||
wickrme
|
wickrme
|
||||||
wickrpro
|
wickrpro
|
||||||
@@ -405,6 +443,7 @@ wireshark
|
|||||||
wordservice
|
wordservice
|
||||||
wwdc
|
wwdc
|
||||||
xeroxphaser7800
|
xeroxphaser7800
|
||||||
|
xeroxworkcentre7800
|
||||||
xink
|
xink
|
||||||
xmenu
|
xmenu
|
||||||
xquartz
|
xquartz
|
||||||
@@ -413,6 +452,7 @@ yubikeymanagerqt
|
|||||||
zappy
|
zappy
|
||||||
zeplin
|
zeplin
|
||||||
zohoworkdrive
|
zohoworkdrive
|
||||||
|
zohoworkdrivegenie
|
||||||
zohoworkdrivetruesync
|
zohoworkdrivetruesync
|
||||||
zoom
|
zoom
|
||||||
zoomclient
|
zoomclient
|
||||||
|
|||||||
@@ -5,8 +5,28 @@ what="brave" # enter the software to install
|
|||||||
# To be used as a script sent out from a MDM.
|
# To be used as a script sent out from a MDM.
|
||||||
# Fill the variable "what" above with a label.
|
# Fill the variable "what" above with a label.
|
||||||
# Script will run this label.
|
# Script will run this label.
|
||||||
|
LOGO="appstore" # or "addigy", "microsoft", "mosyleb", "mosylem"
|
||||||
|
######################################################################
|
||||||
|
# Parameters for reinstall/initial install (owner root:wheel):
|
||||||
|
# "BLOCKING_PROCESS_ACTION=quit_kill INSTALL=force IGNORE_APP_STORE_APPS=yes SYSTEMOWNER=1"
|
||||||
|
# Parameters for Self Service installed app:
|
||||||
|
# "BLOCKING_PROCESS_ACTION=prompt_user NOTIFY=all"
|
||||||
|
# Parameters for security important apps, like browsers (run automaticaly every day):
|
||||||
|
# "BLOCKING_PROCESS_ACTION=tell_user_then_kill"
|
||||||
|
# Update of service apps (run automatically):
|
||||||
|
# "BLOCKING_PROCESS_ACTION=quit_kill NOTIFY=silent"
|
||||||
|
parameters="BLOCKING_PROCESS_ACTION=tell_user_then_kill NOTIFY=all"
|
||||||
###############################################
|
###############################################
|
||||||
|
|
||||||
|
# Verify that Installomator has been installed
|
||||||
|
destFile="/usr/local/Installomator/Installomator.sh"
|
||||||
|
if [ ! -e "${destFile}" ]; then
|
||||||
|
echo "Installomator not found here:"
|
||||||
|
echo "${destFile}"
|
||||||
|
echo "Exiting."
|
||||||
|
exit 99
|
||||||
|
fi
|
||||||
|
|
||||||
# No sleeping
|
# No sleeping
|
||||||
/usr/bin/caffeinate -d -i -m -u &
|
/usr/bin/caffeinate -d -i -m -u &
|
||||||
caffeinatepid=$!
|
caffeinatepid=$!
|
||||||
@@ -16,18 +36,14 @@ caffexit () {
|
|||||||
exit $1
|
exit $1
|
||||||
}
|
}
|
||||||
|
|
||||||
# Verify that Installomator has been installed
|
cmdOutput="$(${destFile} ${what} LOGO=$LOGO $parameters LOGGING=WARN || true)"
|
||||||
destFile="/usr/local/Installomator/Installomator.sh"
|
# Check result
|
||||||
if [ ! -e "${destFile}" ]; then
|
exitStatus="$( echo "${cmdOutput}" | grep --binary-files=text -i "exit" | tail -1 | sed -E 's/.*exit code ([0-9]).*/\1/g' || true )"
|
||||||
echo "Installomator not found here:"
|
if [[ ${exitStatus} -ne 0 ]] ; then
|
||||||
echo "${destFile}"
|
echo -e "Error installing ${what}. Exit code ${exitStatus}"
|
||||||
echo "Exiting."
|
#echo "$cmdOutput"
|
||||||
caffexit 99
|
errorOutput="$( echo "${cmdOutput}" | grep --binary-files=text -i "error" || true )"
|
||||||
fi
|
echo "$errorOutput"
|
||||||
|
|
||||||
${destFile} ${what} LOGO=mosyleb BLOCKING_PROCESS_ACTION=tell_user #NOTIFY=all #INSTALL=force
|
|
||||||
if [ $? != 0 ]; then
|
|
||||||
# This is currently not working in Mosyle, that will ignore script errors. Please request support for this from Mosyle!
|
|
||||||
echo "Error installing ${what}. Exit code $?"
|
echo "Error installing ${what}. Exit code $?"
|
||||||
caffexit $?
|
caffexit $?
|
||||||
fi
|
fi
|
||||||
|
|||||||
@@ -1,11 +1,31 @@
|
|||||||
#!/bin/zsh
|
#!/bin/zsh
|
||||||
# Installation using Installomator
|
# Installation using Installomator
|
||||||
what="microsoftteams microsoftyammer firefox bravebrowser cyberduck vlc signal" # enter the software to install separated with spaces
|
whatList="microsoftteams microsoftyammer firefox bravebrowser cyberduck vlc signal" # enter the software to install separated with spaces
|
||||||
|
|
||||||
# To be used as a script sent out from a MDM.
|
# To be used as a script sent out from a MDM.
|
||||||
# Fill the variable "what" above with labels separated by space " ".
|
# Fill the variable "whatList" above with labels separated by space " ".
|
||||||
# Script will loop through these labels.
|
# Script will loop through these labels.
|
||||||
|
LOGO="appstore" # or "addigy", "microsoft", "mosyleb", "mosylem"
|
||||||
######################################################################
|
######################################################################
|
||||||
|
# Parameters for reinstall/initial install (owner root:wheel):
|
||||||
|
# "BLOCKING_PROCESS_ACTION=quit_kill INSTALL=force IGNORE_APP_STORE_APPS=yes SYSTEMOWNER=1"
|
||||||
|
# Parameters for Self Service installed app:
|
||||||
|
# "BLOCKING_PROCESS_ACTION=prompt_user NOTIFY=all"
|
||||||
|
# Parameters for security important apps, like browsers (run automaticaly every day):
|
||||||
|
# "BLOCKING_PROCESS_ACTION=tell_user_then_kill"
|
||||||
|
# Update of service apps (run automatically):
|
||||||
|
# "BLOCKING_PROCESS_ACTION=quit_kill NOTIFY=silent"
|
||||||
|
parameters="BLOCKING_PROCESS_ACTION=tell_user NOTIFY=all"
|
||||||
|
######################################################################
|
||||||
|
|
||||||
|
# Verify that Installomator has been installed
|
||||||
|
destFile="/usr/local/Installomator/Installomator.sh"
|
||||||
|
if [ ! -e "${destFile}" ]; then
|
||||||
|
echo "Installomator not found here:"
|
||||||
|
echo "${destFile}"
|
||||||
|
echo "Exiting."
|
||||||
|
exit 99
|
||||||
|
fi
|
||||||
|
|
||||||
# No sleeping
|
# No sleeping
|
||||||
/usr/bin/caffeinate -d -i -m -u &
|
/usr/bin/caffeinate -d -i -m -u &
|
||||||
@@ -19,21 +39,17 @@ caffexit () {
|
|||||||
# Count errors
|
# Count errors
|
||||||
errorCount=0
|
errorCount=0
|
||||||
|
|
||||||
# Verify that Installomator has been installed
|
for what in $whatList; do
|
||||||
destFile="/usr/local/Installomator/Installomator.sh"
|
#echo $what
|
||||||
if [ ! -e "${destFile}" ]; then
|
# Install software using Installomator
|
||||||
echo "Installomator not found here:"
|
cmdOutput="$(${destFile} ${what} LOGO=$LOGO $parameters LOGGING=WARN || true)"
|
||||||
echo "${destFile}"
|
# Check result
|
||||||
echo "Exiting."
|
exitStatus="$( echo "${cmdOutput}" | grep --binary-files=text -i "exit" | tail -1 | sed -E 's/.*exit code ([0-9]).*/\1/g' || true )"
|
||||||
caffexit 99
|
if [[ ${exitStatus} -ne 0 ]] ; then
|
||||||
fi
|
echo -e "Error installing ${what}. Exit code ${exitStatus}"
|
||||||
|
#echo "$cmdOutput"
|
||||||
for item in $what; do
|
errorOutput="$( echo "${cmdOutput}" | grep --binary-files=text -i "error" || true )"
|
||||||
#echo $item
|
echo "$errorOutput"
|
||||||
${destFile} ${item} LOGO=mosyleb BLOCKING_PROCESS_ACTION=tell_user #NOTIFY=all #INSTALL=force
|
|
||||||
if [ $? != 0 ]; then
|
|
||||||
# This is currently not working in Mosyle, that will ignore script errors. Please request support for this from Mosyle!
|
|
||||||
echo "[$(DATE)] Error installing ${item}. Exit code $?"
|
|
||||||
let errorCount++
|
let errorCount++
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
|||||||
@@ -1,9 +1,18 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
# Updating Installomator
|
# Updating Installomator
|
||||||
# Usefull to push out after deployment if earlier version was deployed in DEP profile
|
# Usefull to push out after deployment if earlier version was deployed in DEP profile
|
||||||
# Currently script uses valuesfromarguments as a label is not included before next release, so this can be used to install to version 0.7
|
|
||||||
|
|
||||||
what="installomator" # enter the software to install
|
what="installomator" # enter the software to install
|
||||||
|
LOGO="appstore" # or "addigy", "microsoft", "mosyleb", "mosylem"
|
||||||
|
|
||||||
|
# Verify that Installomator has been installed
|
||||||
|
destFile="/usr/local/Installomator/Installomator.sh"
|
||||||
|
if [ ! -e "${destFile}" ]; then
|
||||||
|
echo "Installomator not found here:"
|
||||||
|
echo "${destFile}"
|
||||||
|
echo "Exiting."
|
||||||
|
exit 99
|
||||||
|
fi
|
||||||
|
|
||||||
# No sleeping
|
# No sleeping
|
||||||
/usr/bin/caffeinate -d -i -m -u &
|
/usr/bin/caffeinate -d -i -m -u &
|
||||||
@@ -14,30 +23,19 @@ caffexit () {
|
|||||||
exit $1
|
exit $1
|
||||||
}
|
}
|
||||||
|
|
||||||
# Verify that Installomator has been installed
|
# Install software using Installomator
|
||||||
destFile="/usr/local/Installomator/Installomator.sh"
|
cmdOutput="$(${destFile} ${what} LOGO=$LOGO BLOCKING_PROCESS_ACTION=ignore NOTIFY=silent LOGGING=req || true)"
|
||||||
if [ ! -e "${destFile}" ]; then
|
|
||||||
echo "Installomator not found here:"
|
|
||||||
echo "${destFile}"
|
|
||||||
echo "Exiting."
|
|
||||||
caffexit 99
|
|
||||||
fi
|
|
||||||
|
|
||||||
${destFile} valuesfromarguments\
|
# Check result
|
||||||
name=Installomator \
|
exitStatus="$( echo "${cmdOutput}" | grep --binary-files=text -i "exit" | tail -1 | sed -E 's/.*exit code ([0-9]).*/\1/g' || true )"
|
||||||
type=pkg \
|
if [[ ${exitStatus} -eq 0 ]] ; then
|
||||||
packageID=com.scriptingosx.Installomator \
|
echo -e "${what} succesfully installed.\n"
|
||||||
downloadURL=https://github.com/Installomator/Installomator/releases/download/v0.7release/Installomator-0.7.0.pkg \
|
else
|
||||||
appNewVersion=0.7 \
|
echo -e "Error installing ${what}. Exit code ${exitStatus}\n"
|
||||||
expectedTeamID=JME5BW3F3R \
|
#echo "$cmdOutput"
|
||||||
BLOCKING_PROCESS_ACTION=ignore \
|
errorOutput="$( echo "${cmdOutput}" | grep --binary-files=text -i "error" || true )"
|
||||||
NOTIFY=silent
|
echo "$errorOutput"
|
||||||
|
caffexit $exitStatus
|
||||||
# ${destFile} ${what} BLOCKING_PROCESS_ACTION=ignore NOTIFY=silent
|
|
||||||
if [ $? != 0 ]; then
|
|
||||||
# This is currently not working in Mosyle, that will ignore script errors. Please request support for this from Mosyle!
|
|
||||||
echo "Error installing ${what}. Exit code $?"
|
|
||||||
caffexit $?
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo "[$(DATE)][LOG-END]"
|
echo "[$(DATE)][LOG-END]"
|
||||||
|
|||||||
@@ -5,15 +5,34 @@
|
|||||||
|
|
||||||
# Mark: Installation script
|
# Mark: Installation script
|
||||||
# Just click “Add” to autogenerate the installer script line by clicking the “Add”-button next to the Installer PKG, replace with first line below
|
# Just click “Add” to autogenerate the installer script line by clicking the “Add”-button next to the Installer PKG, replace with first line below
|
||||||
/usr/sbin/installer -pkg "/Library/Addigy/ansible/packages/Installomator (0.7.0)/Installomator-0.7.0.pkg" -target /
|
/usr/sbin/installer -pkg "/Library/Addigy/ansible/packages/Installomator (9.1.0)/Installomator-9.1.pkg" -target /
|
||||||
|
|
||||||
# Installation using Installomator
|
# Installation using Installomator
|
||||||
what="supportapp xink textmate microsoftedge wwdc keka vlc " # enter the software to installed separated with spaces
|
whatList="supportapp xink textmate microsoftedge wwdc keka vlc " # enter the software to installed separated with spaces
|
||||||
|
|
||||||
# To be used as a script sent out from a MDM.
|
# To be used as a script sent out from a MDM.
|
||||||
# Fill the variable "what" above with labels separated by space " ".
|
# Fill the variable "whatList" above with labels separated by space " ".
|
||||||
# Script will loop through these labels and exit with number of errors.
|
# Script will loop through these labels and exit with number of errors.
|
||||||
######################################################################
|
######################################################################
|
||||||
|
# Parameters for reinstall/initial install (owner root:wheel):
|
||||||
|
# "BLOCKING_PROCESS_ACTION=quit_kill INSTALL=force IGNORE_APP_STORE_APPS=yes SYSTEMOWNER=1"
|
||||||
|
# Parameters for Self Service installed app:
|
||||||
|
# "BLOCKING_PROCESS_ACTION=prompt_user NOTIFY=all"
|
||||||
|
# Parameters for security important apps, like browsers (run automaticaly every day):
|
||||||
|
# "BLOCKING_PROCESS_ACTION=tell_user_then_kill"
|
||||||
|
# Update of service apps (run automatically):
|
||||||
|
# "BLOCKING_PROCESS_ACTION=quit_kill NOTIFY=silent"
|
||||||
|
parameters="BLOCKING_PROCESS_ACTION=quit_kill INSTALL=force IGNORE_APP_STORE_APPS=yes"
|
||||||
|
######################################################################
|
||||||
|
|
||||||
|
# Verify that Installomator has been installed
|
||||||
|
destFile="/usr/local/Installomator/Installomator.sh"
|
||||||
|
if [ ! -e "${destFile}" ]; then
|
||||||
|
echo "Installomator not found here:"
|
||||||
|
echo "${destFile}"
|
||||||
|
echo "Exiting."
|
||||||
|
exit 99
|
||||||
|
fi
|
||||||
|
|
||||||
# No sleeping
|
# No sleeping
|
||||||
/usr/bin/caffeinate -d -i -m -u &
|
/usr/bin/caffeinate -d -i -m -u &
|
||||||
@@ -27,21 +46,17 @@ caffexit () {
|
|||||||
# Count errors
|
# Count errors
|
||||||
errorCount=0
|
errorCount=0
|
||||||
|
|
||||||
# Verify that Installomator has been installed
|
for what in $whatList; do
|
||||||
destFile="/usr/local/Installomator/Installomator.sh"
|
#echo $what
|
||||||
if [ ! -e "${destFile}" ]; then
|
# Install software using Installomator
|
||||||
echo "Installomator not found here:"
|
cmdOutput="$(${destFile} ${what} LOGO=addigy $parameters || true)"
|
||||||
echo "${destFile}"
|
# Check result
|
||||||
echo "Exiting."
|
exitStatus="$( echo "${cmdOutput}" | grep --binary-files=text -i "exit" | tail -1 | sed -E 's/.*exit code ([0-9]).*/\1/g' || true )"
|
||||||
caffexit 99
|
if [[ ${exitStatus} -ne 0 ]] ; then
|
||||||
fi
|
echo -e "Error installing ${what}. Exit code ${exitStatus}"
|
||||||
|
#echo "$cmdOutput"
|
||||||
for item in $what; do
|
errorOutput="$( echo "${cmdOutput}" | grep --binary-files=text -i "error" || true )"
|
||||||
#echo $item
|
echo "$errorOutput"
|
||||||
${destFile} ${item} LOGO=addigy NOTIFY=silent BLOCKING_PROCESS_ACTION=quit_kill #INSTALL=force
|
|
||||||
if [ $? != 0 ]; then
|
|
||||||
# Error handling
|
|
||||||
echo "[$(DATE)] Error installing ${item}. Exit code $?"
|
|
||||||
let errorCount++
|
let errorCount++
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
@@ -56,7 +71,7 @@ caffexit $errorCount
|
|||||||
# Install on success
|
# Install on success
|
||||||
# Remember to fill out the correct “TARGET_VERSION” and “PKG_ID”, and click "Install on succes".
|
# Remember to fill out the correct “TARGET_VERSION” and “PKG_ID”, and click "Install on succes".
|
||||||
PKG_ID="com.scriptingosx.Installomator"
|
PKG_ID="com.scriptingosx.Installomator"
|
||||||
TARGET_VERSION="8.0"
|
TARGET_VERSION="9.1"
|
||||||
|
|
||||||
vercomp () {
|
vercomp () {
|
||||||
if [[ $1 == $2 ]]; then
|
if [[ $1 == $2 ]]; then
|
||||||
|
|||||||
@@ -1,10 +1,11 @@
|
|||||||
PKG_ID="com.scriptingosx.Installomator"
|
PKG_ID="com.scriptingosx.Installomator"
|
||||||
TARGET_VERSION="8.0"
|
TARGET_VERSION="9.1"
|
||||||
URLDOWNLOAD="%MosyleCDNFile:blah-blah-blah%"
|
URLDOWNLOAD="%MosyleCDNFile:blah-blah-blah%"
|
||||||
######################################################################
|
######################################################################
|
||||||
# Installation using Installomator (enter the software to install separated with spaces in the "what"-variable)
|
# Installation using Installomator (enter the software to install separated with spaces in the "whatList"-variable)
|
||||||
what="handbrake theunarchiver microsoftoffice365"
|
whatList="handbrake theunarchiver microsoftoffice365"
|
||||||
# Covered by Mosyle Catalog: "brave firefox googlechrome microsoftedge microsoftteams signal sublimetext vlc webex zoom" among others
|
# Covered by Mosyle Catalog: "brave firefox googlechrome microsoftedge microsoftteams signal sublimetext vlc webex zoom" among others
|
||||||
|
LOGO="mosyleb" # or "mosylem"
|
||||||
######################################################################
|
######################################################################
|
||||||
|
|
||||||
## Mark: Code here
|
## Mark: Code here
|
||||||
@@ -56,12 +57,17 @@ if [ ! -e "${destFile}" ]; then
|
|||||||
caffexit 99
|
caffexit 99
|
||||||
fi
|
fi
|
||||||
|
|
||||||
for item in $what; do
|
for what in $whatList; do
|
||||||
#echo $item
|
#echo $item
|
||||||
${destFile} ${item} LOGO=mosyle NOTIFY=all BLOCKING_PROCESS_ACTION=tell_user #NOTIFY=silent BLOCKING_PROCESS_ACTION=quit_kill #INSTALL=force
|
# Install software using Installomator
|
||||||
if [ $? != 0 ]; then
|
cmdOutput="$(${destFile} ${what} LOGO=$LOGO NOTIFY=all BLOCKING_PROCESS_ACTION=tell_user || true)" # NOTIFY=silent BLOCKING_PROCESS_ACTION=quit_kill INSTALL=force
|
||||||
# Error handling
|
# Check result
|
||||||
echo "[$(DATE)] Error installing ${item}. Exit code $?"
|
exitStatus="$( echo "${cmdOutput}" | grep --binary-files=text -i "exit" | tail -1 | sed -E 's/.*exit code ([0-9]).*/\1/g' || true )"
|
||||||
|
if [[ ${exitStatus} -ne 0 ]] ; then
|
||||||
|
echo "Error installing ${what}. Exit code ${exitStatus}"
|
||||||
|
#echo "$cmdOutput"
|
||||||
|
errorOutput="$( echo "${cmdOutput}" | grep --binary-files=text -i "error" || true )"
|
||||||
|
echo "$errorOutput"
|
||||||
let errorCount++
|
let errorCount++
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
|||||||
@@ -1,8 +1,20 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
# Software
|
||||||
|
|
||||||
# Installation using Installomator
|
# Installation using Installomator
|
||||||
# Example of installing software using valuesfromarguments to install a custom software
|
# Example of installing software using valuesfromarguments to install a custom software
|
||||||
|
|
||||||
what="valuesfromarguments" # enter the software to install
|
LOGO="appstore" # or "addigy", "microsoft", "mosyleb", "mosylem"
|
||||||
|
###############################################
|
||||||
|
|
||||||
|
# Verify that Installomator has been installed
|
||||||
|
destFile="/usr/local/Installomator/Installomator.sh"
|
||||||
|
if [ ! -e "${destFile}" ]; then
|
||||||
|
echo "Installomator not found here:"
|
||||||
|
echo "${destFile}"
|
||||||
|
echo "Exiting."
|
||||||
|
exit 99
|
||||||
|
fi
|
||||||
|
|
||||||
# No sleeping
|
# No sleeping
|
||||||
/usr/bin/caffeinate -d -i -m -u &
|
/usr/bin/caffeinate -d -i -m -u &
|
||||||
@@ -13,29 +25,31 @@ caffexit () {
|
|||||||
exit $1
|
exit $1
|
||||||
}
|
}
|
||||||
|
|
||||||
# Verify that Installomator has been installed
|
# Variables to calculate
|
||||||
destFile="/usr/local/Installomator/Installomator.sh"
|
downloadURL="https://craft-assets.invisionapp.com/CraftManager/production/CraftManager.zip"
|
||||||
if [ ! -e "${destFile}" ]; then
|
appNewVersion=$(curl -fs https://craft-assets.invisionapp.com/CraftManager/production/appcast.xml | xpath -e '//rss/channel/item[1]/enclosure/@sparkle:shortVersionString' 2>/dev/null | cut -d '"' -f2)
|
||||||
echo "Installomator not found here:"
|
|
||||||
echo "${destFile}"
|
|
||||||
echo "Exiting."
|
|
||||||
caffexit 99
|
|
||||||
fi
|
|
||||||
|
|
||||||
${destFile} valuesfromarguments \
|
# Install software using Installomator
|
||||||
name=\"Zoho\ WorkDrive\" \
|
cmdOutput="$(${destFile} valuesfromarguments LOGO=$LOGO \
|
||||||
type=dmg \
|
name=CraftManager \
|
||||||
downloadURL=https://files-accl.zohopublic.com/public/wdbin/download/46f971e4fc4a32b68ad5d7dade38a7d2 \
|
type=zip \
|
||||||
appNewVersion=2.6.25 \
|
downloadURL=$downloadURL \
|
||||||
expectedTeamID=TZ824L8Y37 \
|
appNewVersion=$appNewVersion \
|
||||||
BLOCKING_PROCESS_ACTION=quit \
|
expectedTeamID=VRXQSNCL5W \
|
||||||
NOTIFY=all
|
BLOCKING_PROCESS_ACTION=prompt_user \
|
||||||
|
LOGGING=REQ \
|
||||||
|
NOTIFY=all || true)"
|
||||||
|
|
||||||
# ${destFile} ${what} BLOCKING_PROCESS_ACTION=ignore NOTIFY=silent
|
# Check result
|
||||||
if [ $? != 0 ]; then
|
exitStatus="$( echo "${cmdOutput}" | grep --binary-files=text -i "exit" | tail -1 | sed -E 's/.*exit code ([0-9]).*/\1/g' || true )"
|
||||||
# This is currently not working in Mosyle, that will ignore script errors. Please request support for this from Mosyle!
|
if [[ ${exitStatus} -eq 0 ]] ; then
|
||||||
echo "Error installing ${what}. Exit code $?"
|
echo -e "${what} succesfully installed.\n"
|
||||||
caffexit $?
|
else
|
||||||
|
echo -e "Error installing ${what}. Exit code ${exitStatus}\n"
|
||||||
|
#printlog "$cmdOutput"
|
||||||
|
errorOutput="$( echo "${cmdOutput}" | grep --binary-files=text -i "error" || true )"
|
||||||
|
echo "$errorOutput"
|
||||||
|
caffexit $exitStatus
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo "[$(DATE)][LOG-END]"
|
echo "[$(DATE)][LOG-END]"
|
||||||
|
|||||||
12
README.md
12
README.md
@@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
_The one installer script to rule them all._
|
_The one installer script to rule them all._
|
||||||
|
|
||||||
   
|
   
|
||||||
|
|
||||||
This script is in the “we find it useful, it is working for us” stage.
|
This script is in the “we find it useful, it is working for us” stage.
|
||||||
|
|
||||||
@@ -13,12 +13,12 @@ We have put a lot of work into making it stable and safe, but we cannot - of cou
|
|||||||
## Authors
|
## Authors
|
||||||
|
|
||||||
Intallomator was originally inspired by the download scripts from William Smith and Sander Schram, and created by:
|
Intallomator was originally inspired by the download scripts from William Smith and Sander Schram, and created by:
|
||||||
Armin Briegel - @scriptingosx
|
- [Armin Briegel - @scriptingosx](https://github.com/scriptingosx)
|
||||||
|
|
||||||
Later on a few more contributers came on the project:
|
Later on a few more members came on the project:
|
||||||
Isaac Ordonez - @issacatmann
|
- Isaac Ordonez - @issacatmann
|
||||||
Søren Theilgaard - @Theile
|
- [Søren Theilgaard - @Theile](https://github.com/Theile)
|
||||||
Adam Codega - @acodega
|
- [Adam Codega - @acodega](https://github.com/acodega)
|
||||||
|
|
||||||
And with numerous contributions from many others.
|
And with numerous contributions from many others.
|
||||||
|
|
||||||
|
|||||||
@@ -242,8 +242,8 @@ getAppVersion() {
|
|||||||
# printlog "App(s) found: ${applist}" DEBUG
|
# printlog "App(s) found: ${applist}" DEBUG
|
||||||
# applist=$(mdfind "kind:application AND name:$appName" -0 )
|
# applist=$(mdfind "kind:application AND name:$appName" -0 )
|
||||||
fi
|
fi
|
||||||
if [[ -z applist ]]; then
|
if [[ -z $applist ]]; then
|
||||||
printlog "No previous app found" INFO
|
printlog "No previous app found" WARN
|
||||||
else
|
else
|
||||||
printlog "App(s) found: ${applist}" INFO
|
printlog "App(s) found: ${applist}" INFO
|
||||||
fi
|
fi
|
||||||
@@ -265,7 +265,7 @@ getAppVersion() {
|
|||||||
if [[ -d "$installedAppPath"/Contents/_MASReceipt ]];then
|
if [[ -d "$installedAppPath"/Contents/_MASReceipt ]];then
|
||||||
printlog "Installed $appName is from App Store, use “IGNORE_APP_STORE_APPS=yes” to replace."
|
printlog "Installed $appName is from App Store, use “IGNORE_APP_STORE_APPS=yes” to replace."
|
||||||
if [[ $IGNORE_APP_STORE_APPS == "yes" ]]; then
|
if [[ $IGNORE_APP_STORE_APPS == "yes" ]]; then
|
||||||
printlog "Replacing App Store apps, no matter the version"
|
printlog "Replacing App Store apps, no matter the version" WARN
|
||||||
appversion=0
|
appversion=0
|
||||||
else
|
else
|
||||||
cleanupAndExit 1 "App previously installed from App Store, and we respect that" ERROR
|
cleanupAndExit 1 "App previously installed from App Store, and we respect that" ERROR
|
||||||
|
|||||||
@@ -238,7 +238,7 @@ IGNORE_DND_APPS=""
|
|||||||
# - updateToolArguments:
|
# - updateToolArguments:
|
||||||
# When Installomator detects an existing installation of the application,
|
# When Installomator detects an existing installation of the application,
|
||||||
# and the updateTool variable is set
|
# and the updateTool variable is set
|
||||||
# $updateTool $updateArguments
|
# $updateTool $updateArguments
|
||||||
# Will be run instead of of downloading and installing a complete new version.
|
# Will be run instead of of downloading and installing a complete new version.
|
||||||
# Use this when the updateTool does differential and optimized downloads.
|
# Use this when the updateTool does differential and optimized downloads.
|
||||||
# e.g. msupdate on various Microsoft labels
|
# e.g. msupdate on various Microsoft labels
|
||||||
@@ -253,7 +253,7 @@ IGNORE_DND_APPS=""
|
|||||||
# We need to define `name` for the installed app (to be version checked), as well as
|
# We need to define `name` for the installed app (to be version checked), as well as
|
||||||
# `installerTool` for the installer app (if named differently than `name`. Installomator
|
# `installerTool` for the installer app (if named differently than `name`. Installomator
|
||||||
# will add the path to the folder/disk image with the binary, and it will be called like this:
|
# will add the path to the folder/disk image with the binary, and it will be called like this:
|
||||||
`$CLIInstaller $CLIArguments`
|
# $CLIInstaller $CLIArguments
|
||||||
# For most installations `CLIInstaller` should contain the `installerTool` for the CLI call
|
# For most installations `CLIInstaller` should contain the `installerTool` for the CLI call
|
||||||
# (if it’s the same).
|
# (if it’s the same).
|
||||||
# We can support a whole range of other software titles by implementing this.
|
# We can support a whole range of other software titles by implementing this.
|
||||||
|
|||||||
15
fragments/labels/1password8.sh
Normal file
15
fragments/labels/1password8.sh
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
1password8)
|
||||||
|
name="1Password 8"
|
||||||
|
appName="1Password.app"
|
||||||
|
type="zip"
|
||||||
|
if [[ $(arch) == "arm64" ]]; then
|
||||||
|
archiveName="1Password-latest-aarch64.zip"
|
||||||
|
downloadURL="https://downloads.1password.com/mac/1Password-latest-aarch64.zip"
|
||||||
|
elif [[ $(arch) == "i386" ]]; then
|
||||||
|
archiveName="1Password-latest-x86_64.zip"
|
||||||
|
downloadURL="https://downloads.1password.com/mac/1Password-latest-x86_64.zip"
|
||||||
|
fi
|
||||||
|
expectedTeamID="2BUA8C4S2C"
|
||||||
|
blockingProcesses=( "1Password Extension Helper" "1Password 7" "1Password" "1Password (Safari)" "1PasswordNativeMessageHost" "1PasswordSafariAppExtension" )
|
||||||
|
#forcefulQuit=YES
|
||||||
|
;;
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
adobereaderdc-update)
|
adobereaderdc-update)
|
||||||
name="Adobe Acrobat Reader DC"
|
name="Adobe Acrobat Reader DC"
|
||||||
type="pkgInDmg"
|
type="pkgInDmg"
|
||||||
downloadURL=$(adobecurrent=`curl --fail --silent https://armmf.adobe.com/arm-manifests/mac/AcrobatDC/reader/current_version.txt | tr -d '.'` && echo http://ardownload.adobe.com/pub/adobe/reader/mac/AcrobatDC/"$adobecurrent"/AcroRdrDCUpd"$adobecurrent"_MUI.dmg)
|
downloadURL=$(adobecurrent=`curl --fail --silent https://armmf.adobe.com/arm-manifests/mac/AcrobatDC/reader/current_version.txt | tr -d '.'` && echo https://ardownload2.adobe.com/pub/adobe/reader/mac/AcrobatDC/"$adobecurrent"/AcroRdrDC_"$adobecurrent"_MUI.dmg)
|
||||||
appNewVersion=$(curl -s https://armmf.adobe.com/arm-manifests/mac/AcrobatDC/reader/current_version.txt)
|
appNewVersion=$(curl -s https://armmf.adobe.com/arm-manifests/mac/AcrobatDC/reader/current_version.txt)
|
||||||
#appNewVersion=$(curl -s -H "User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15)" https://get.adobe.com/reader/ | grep ">Version" | sed -E 's/.*Version 20([0-9.]*)<.*/\1/g') # credit: Søren Theilgaard (@theilgaard)
|
#appNewVersion=$(curl -s -H "User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15)" https://get.adobe.com/reader/ | grep ">Version" | sed -E 's/.*Version 20([0-9.]*)<.*/\1/g') # credit: Søren Theilgaard (@theilgaard)
|
||||||
expectedTeamID="JQ525L2MZD"
|
expectedTeamID="JQ525L2MZD"
|
||||||
|
|||||||
@@ -3,7 +3,8 @@ adobereaderdc-install)
|
|||||||
name="Adobe Acrobat Reader DC"
|
name="Adobe Acrobat Reader DC"
|
||||||
type="pkgInDmg"
|
type="pkgInDmg"
|
||||||
packageID="com.adobe.acrobat.DC.reader.app.pkg.MUI"
|
packageID="com.adobe.acrobat.DC.reader.app.pkg.MUI"
|
||||||
downloadURL=$(curl --silent --fail -H "Sec-Fetch-Site: same-origin" -H "Accept-Encoding: gzip, deflate, br" -H "Accept-Language: en-US;q=0.9,en;q=0.8" -H "DNT: 1" -H "Sec-Fetch-Mode: cors" -H "X-Requested-With: XMLHttpRequest" -H "Referer: https://get.adobe.com/reader/enterprise/" -H "Accept: */*" "https://get.adobe.com/reader/webservices/json/standalone/?platform_type=Macintosh&platform_dist=OSX&platform_arch=x86-32&language=English&eventname=readerotherversions" | grep -Eo '"download_url":.*?[^\]",' | head -n 1 | cut -d \" -f 4)
|
#downloadURL=$(curl --silent --fail -H "Sec-Fetch-Site: same-origin" -H "Accept-Encoding: gzip, deflate, br" -H "Accept-Language: en-US;q=0.9,en;q=0.8" -H "DNT: 1" -H "Sec-Fetch-Mode: cors" -H "X-Requested-With: XMLHttpRequest" -H "Referer: https://get.adobe.com/reader/enterprise/" -H "Accept: */*" "https://get.adobe.com/reader/webservices/json/standalone/?platform_type=Macintosh&platform_dist=OSX&platform_arch=x86-32&language=English&eventname=readerotherversions" | grep -Eo '"download_url":.*?[^\]",' | head -n 1 | cut -d \" -f 4)
|
||||||
|
downloadURL=$(adobecurrent=`curl --fail --silent https://armmf.adobe.com/arm-manifests/mac/AcrobatDC/reader/current_version.txt | tr -d '.'` && echo https://ardownload2.adobe.com/pub/adobe/reader/mac/AcrobatDC/"$adobecurrent"/AcroRdrDC_"$adobecurrent"_MUI.dmg)
|
||||||
appNewVersion=$(curl -s https://armmf.adobe.com/arm-manifests/mac/AcrobatDC/reader/current_version.txt)
|
appNewVersion=$(curl -s https://armmf.adobe.com/arm-manifests/mac/AcrobatDC/reader/current_version.txt)
|
||||||
#appNewVersion=$(curl -s -H "User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15)" https://get.adobe.com/reader/ | grep ">Version" | sed -E 's/.*Version 20([0-9.]*)<.*/\1/g') # credit: Søren Theilgaard (@theilgaard)
|
#appNewVersion=$(curl -s -H "User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15)" https://get.adobe.com/reader/ | grep ">Version" | sed -E 's/.*Version 20([0-9.]*)<.*/\1/g') # credit: Søren Theilgaard (@theilgaard)
|
||||||
expectedTeamID="JQ525L2MZD"
|
expectedTeamID="JQ525L2MZD"
|
||||||
|
|||||||
@@ -1,7 +1,12 @@
|
|||||||
amazoncorretto8jdk)
|
amazoncorretto8jdk)
|
||||||
name="Amazon Corretto 8 JDK"
|
name="Amazon Corretto 8 JDK"
|
||||||
type="pkg"
|
type="pkg"
|
||||||
downloadURL="https://corretto.aws/downloads/latest/amazon-corretto-8-x64-macos-jdk.pkg"
|
if [[ $(arch) == "arm64" ]]; then
|
||||||
appNewVersion=$(curl -s https://raw.githubusercontent.com/corretto/corretto-8/develop/CHANGELOG.md | grep "## Corretto version" | head -n 1 | awk '{ print $4; exit}')
|
downloadURL="https://corretto.aws/downloads/latest/amazon-corretto-8-aarch64-macos-jdk.pkg"
|
||||||
|
appNewVersion=$(curl -s https://raw.githubusercontent.com/corretto/corretto-8/develop/CHANGELOG.md | grep "## Corretto version" | head -n 1 | awk '{ print $4; exit}')
|
||||||
|
elif [[ $(arch) == "i386" ]]; then
|
||||||
|
downloadURL="https://corretto.aws/downloads/latest/amazon-corretto-8-x64-macos-jdk.pkg"
|
||||||
|
appNewVersion=$(curl -s https://raw.githubusercontent.com/corretto/corretto-8/develop/CHANGELOG.md | grep "## Corretto version" | head -n 1 | awk '{ print $4; exit}')
|
||||||
|
fi
|
||||||
expectedTeamID="94KV3E626L"
|
expectedTeamID="94KV3E626L"
|
||||||
;;
|
;;
|
||||||
|
|||||||
13
fragments/labels/androidstudio.sh
Normal file
13
fragments/labels/androidstudio.sh
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
androidstudio)
|
||||||
|
name="Android Studio"
|
||||||
|
type="dmg"
|
||||||
|
if [[ $(arch) == arm64 ]]; then
|
||||||
|
downloadURL=$(curl -fsL "https://developer.android.com/studio#downloads" | grep -i arm.dmg | head -2 | grep -o -i -E "https.*" | cut -d '"' -f1)
|
||||||
|
appNewVersion=$( echo "${downloadURL}" | head -1 | sed 's/^.*[^0-9]\([0-9]*\.[0-9]*\.[0-9]*\.[0-9]*\).*$/\1/' )
|
||||||
|
elif [[ $(arch) == i386 ]]; then
|
||||||
|
downloadURL=$(curl -fsL "https://developer.android.com/studio#downloads" | grep -i mac.dmg | head -2 | grep -o -i -E "https.*" | cut -d '"' -f1)
|
||||||
|
appNewVersion=$( echo "${downloadURL}" | head -1 | sed 's/^.*[^0-9]\([0-9]*\.[0-9]*\.[0-9]*\.[0-9]*\).*$/\1/' )
|
||||||
|
fi
|
||||||
|
expectedTeamID="EQHXZ8M8AV"
|
||||||
|
blockingProcesses=( androidstudio )
|
||||||
|
;;
|
||||||
7
fragments/labels/atextlegacy.sh
Normal file
7
fragments/labels/atextlegacy.sh
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
atextlegacy)
|
||||||
|
# credit: Gabe Marchan (gabemarchan.com - @darklink87)
|
||||||
|
name="aText"
|
||||||
|
type="dmg"
|
||||||
|
downloadURL="https://trankynam.com/atext/downloads/aTextLegacy.dmg"
|
||||||
|
expectedTeamID="KHEMQ2FD9E"
|
||||||
|
;;
|
||||||
@@ -1,6 +1,8 @@
|
|||||||
camtasia)
|
camtasia|\
|
||||||
name="Camtasia 2020"
|
camtasia2021)
|
||||||
|
name="Camtasia 2021"
|
||||||
type="dmg"
|
type="dmg"
|
||||||
downloadURL=https://download.techsmith.com/camtasiamac/releases/Camtasia.dmg
|
downloadURL=$(curl -H "User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.1 Safari/605.1.15" -fs "https://support.techsmith.com/hc/en-us/articles/360004908652-Desktop-Product-Download-Links" | grep -A 3 "Camtasia (Mac) 2021" | sed 's/.*href="//' | sed 's/".*//' | grep .dmg)
|
||||||
|
appNewVersion=$(curl -H "User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.1 Safari/605.1.15" -fs "https://support.techsmith.com/hc/en-us/articles/360004908652-Desktop-Product-Download-Links" | grep "Camtasia (Mac) 2021" | sed -e 's/.*Camtasia (Mac) //' -e 's/<\/td>.*//')
|
||||||
expectedTeamID="7TQL462TU8"
|
expectedTeamID="7TQL462TU8"
|
||||||
;;
|
;;
|
||||||
|
|||||||
8
fragments/labels/camtasia2019.sh
Normal file
8
fragments/labels/camtasia2019.sh
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
camtasia2019)
|
||||||
|
name="Camtasia 2019"
|
||||||
|
type="dmg"
|
||||||
|
downloadURL=$(curl -H "User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.1 Safari/605.1.15" -fs "https://support.techsmith.com/hc/en-us/articles/360004908652-Desktop-Product-Download-Links" | grep -A 3 "Camtasia (Mac) 2019" | sed 's/.*href="//' | sed 's/".*//' | grep .dmg)
|
||||||
|
appNewVersion=$(curl -H "User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.1 Safari/605.1.15" -fs "https://support.techsmith.com/hc/en-us/articles/360004908652-Desktop-Product-Download-Links" | grep "Camtasia (Mac) 2019" | sed -e 's/.*Camtasia (Mac) //' -e 's/<\/td>.*//')
|
||||||
|
expectedTeamID="7TQL462TU8"
|
||||||
|
;;
|
||||||
|
|
||||||
7
fragments/labels/camtasia2020.sh
Normal file
7
fragments/labels/camtasia2020.sh
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
camtasia2020)
|
||||||
|
name="Camtasia 2020"
|
||||||
|
type="dmg"
|
||||||
|
downloadURL=$(curl -H "User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.1 Safari/605.1.15" -fs "https://support.techsmith.com/hc/en-us/articles/360004908652-Desktop-Product-Download-Links" | grep -A 3 "Camtasia (Mac) 2020" | sed 's/.*href="//' | sed 's/".*//' | grep .dmg)
|
||||||
|
appNewVersion=$(curl -H "User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.1 Safari/605.1.15" -fs "https://support.techsmith.com/hc/en-us/articles/360004908652-Desktop-Product-Download-Links" | grep "Camtasia (Mac) 2020" | sed -e 's/.*Camtasia (Mac) //' -e 's/<\/td>.*//')
|
||||||
|
expectedTeamID="7TQL462TU8"
|
||||||
|
;;
|
||||||
@@ -3,6 +3,6 @@ citrixworkspace)
|
|||||||
name="Citrix Workspace"
|
name="Citrix Workspace"
|
||||||
type="pkgInDmg"
|
type="pkgInDmg"
|
||||||
downloadURL="https:"$(curl -s -L "https://www.citrix.com/downloads/workspace-app/mac/workspace-app-for-mac-latest.html#ctx-dl-eula-external" | grep "dmg?" | sed "s/.*rel=.\(.*\)..id=.*/\1/") # http://downloads.citrix.com/18823/CitrixWorkspaceApp.dmg?__gda__=1605791892_edc6786a90eb5197fb226861a8e27aa8
|
downloadURL="https:"$(curl -s -L "https://www.citrix.com/downloads/workspace-app/mac/workspace-app-for-mac-latest.html#ctx-dl-eula-external" | grep "dmg?" | sed "s/.*rel=.\(.*\)..id=.*/\1/") # http://downloads.citrix.com/18823/CitrixWorkspaceApp.dmg?__gda__=1605791892_edc6786a90eb5197fb226861a8e27aa8
|
||||||
appNewVersion=$(curl -fs https://www.citrix.com/downloads/workspace-app/mac/workspace-app-for-mac-latest.html | grep "<p>Version" | head -1 | cut -d " " -f1 | cut -d ";" -f2 | cut -d "." -f 1-3)
|
appNewVersion=$(curl -fs https://www.citrix.com/downloads/workspace-app/mac/workspace-app-for-mac-latest.html | grep "<p>Version" | head -1 | awk '{print $2}' | cut -d "." -f 1-3)
|
||||||
expectedTeamID="S272Y5R93J"
|
expectedTeamID="S272Y5R93J"
|
||||||
;;
|
;;
|
||||||
|
|||||||
9
fragments/labels/clue.sh
Normal file
9
fragments/labels/clue.sh
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
clue)
|
||||||
|
#For personal use and students
|
||||||
|
name="Clue"
|
||||||
|
type="dmg"
|
||||||
|
downloadURL=$(curl -fsL https://clue.no/en/download | grep "For personal use and students:" | sed 's/.*href="//' | sed 's/".*//')
|
||||||
|
appNewVersion="$(echo "${downloadURL}" | sed -E 's/.*Clue*([0-9.]*)\..*/\1/g')"
|
||||||
|
versionKey="CFBundleVersion"
|
||||||
|
expectedTeamID="3NX6B9TB2F"
|
||||||
|
;;
|
||||||
9
fragments/labels/cluefull.sh
Normal file
9
fragments/labels/cluefull.sh
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
cluefull)
|
||||||
|
#For companies and schools
|
||||||
|
name="Clue"
|
||||||
|
type="dmg"
|
||||||
|
downloadURL=$(curl -fsL https://clue.no/en/download | grep "For companies and schools:" | sed 's/.*href="//' | sed 's/".*//')
|
||||||
|
appNewVersion="$(echo "${downloadURL}" | sed -E 's/.*Clue*([0-9.]*)\F.*/\1/g')"
|
||||||
|
versionKey="CFBundleVersion"
|
||||||
|
expectedTeamID="3NX6B9TB2F"
|
||||||
|
;;
|
||||||
7
fragments/labels/craftmanagerforsketch.sh
Normal file
7
fragments/labels/craftmanagerforsketch.sh
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
craftmanagerforsketch)
|
||||||
|
name="CraftManager"
|
||||||
|
type="zip"
|
||||||
|
downloadURL="https://craft-assets.invisionapp.com/CraftManager/production/CraftManager.zip"
|
||||||
|
appNewVersion=$(curl -fs https://craft-assets.invisionapp.com/CraftManager/production/appcast.xml | xpath '//rss/channel/item[1]/enclosure/@sparkle:shortVersionString' 2>/dev/null | cut -d '"' -f2)
|
||||||
|
expectedTeamID="VRXQSNCL5W"
|
||||||
|
;;
|
||||||
8
fragments/labels/displaylinkmanager.sh
Normal file
8
fragments/labels/displaylinkmanager.sh
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
displaylinkmanager)
|
||||||
|
name="DisplayLink Manager"
|
||||||
|
type="pkg"
|
||||||
|
#packageID="com.displaylink.displaylinkmanagerapp"
|
||||||
|
downloadURL=https://www.synaptics.com$(redirect=$(curl -sfL https://www.synaptics.com/products/displaylink-graphics/downloads/macos | grep 'class="download-link">Download' | head -n 1 | sed 's/.*href="//' | sed 's/".*//') && curl -sfL "https://www.synaptics.com$redirect" | grep Accept | head -n 1 | sed 's/.*href="//' | sed 's/".*//')
|
||||||
|
appNewVersion=$(curl -sfL https://www.synaptics.com/products/displaylink-graphics/downloads/macos | grep "Release:" | head -n 1 | cut -d ' ' -f2)
|
||||||
|
expectedTeamID="73YQY62QM3"
|
||||||
|
;;
|
||||||
9
fragments/labels/drawio.sh
Normal file
9
fragments/labels/drawio.sh
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
drawio)
|
||||||
|
name="draw.io"
|
||||||
|
type="dmg"
|
||||||
|
archiveName="draw.io-universal-[0-9.]*.dmg"
|
||||||
|
downloadURL="$(downloadURLFromGit jgraph drawio-desktop)"
|
||||||
|
appNewVersion="$(versionFromGit jgraph drawio-desktop)"
|
||||||
|
expectedTeamID="UZEUFB4N53"
|
||||||
|
blockingProcesses=( draw.io )
|
||||||
|
;;
|
||||||
@@ -2,5 +2,6 @@ dropbox)
|
|||||||
name="Dropbox"
|
name="Dropbox"
|
||||||
type="dmg"
|
type="dmg"
|
||||||
downloadURL="https://www.dropbox.com/download?plat=mac&full=1"
|
downloadURL="https://www.dropbox.com/download?plat=mac&full=1"
|
||||||
|
appNewVersion=$(curl -fsIL "$downloadURL" | grep -i "^location" | sed -E 's/.*%20([0-9.]*)\.dmg/\1/g')
|
||||||
expectedTeamID="G7HH3F8CAK"
|
expectedTeamID="G7HH3F8CAK"
|
||||||
;;
|
;;
|
||||||
|
|||||||
10
fragments/labels/duckduckgo.sh
Normal file
10
fragments/labels/duckduckgo.sh
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
duckduckgo)
|
||||||
|
name="DuckDuckGo"
|
||||||
|
type="dmg"
|
||||||
|
#downloadURL="https://staticcdn.duckduckgo.com/macos-desktop-browser/duckduckgo.dmg"
|
||||||
|
#downloadURL=$(curl -fs https://staticcdn.duckduckgo.com/macos-desktop-browser/appcast.xml | xpath '(//rss/channel/item/enclosure/@url)[last()]' 2>/dev/null | cut -d '"' -f2)
|
||||||
|
downloadURL=$(curl -fs https://staticcdn.duckduckgo.com/macos-desktop-browser/appcast.xml | xpath '(//rss/channel/item/enclosure/@url)[1]' 2>/dev/null | cut -d '"' -f2)
|
||||||
|
#appNewVersion=$(curl -fs https://staticcdn.duckduckgo.com/macos-desktop-browser/appcast.xml | xpath '(//rss/channel/item/enclosure/@sparkle:version)[last()]' 2>/dev/null | cut -d '"' -f2)
|
||||||
|
appNewVersion=$(curl -fs https://staticcdn.duckduckgo.com/macos-desktop-browser/appcast.xml | xpath '(//rss/channel/item/sparkle:shortVersionString)[1]' 2>/dev/null | cut -d ">" -f2 | cut -d "<" -f1)
|
||||||
|
expectedTeamID="HKE973VLUW"
|
||||||
|
;;
|
||||||
9
fragments/labels/egnytewebedit.sh
Normal file
9
fragments/labels/egnytewebedit.sh
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
egnytewebedit)
|
||||||
|
name="EgnyteWebEdit"
|
||||||
|
type="pkg"
|
||||||
|
downloadURL="https://egnyte-cdn.egnyte.com/webedit/mac/en-us/latest/EgnyteWebEdit.pkg"
|
||||||
|
expectedTeamID="FELUD555VC"
|
||||||
|
appName="Egnyte WebEdit.app"
|
||||||
|
blockingProcesses=( NONE )
|
||||||
|
;;
|
||||||
|
|
||||||
10
fragments/labels/filezilla.sh
Executable file
10
fragments/labels/filezilla.sh
Executable file
@@ -0,0 +1,10 @@
|
|||||||
|
filezilla)
|
||||||
|
name="FileZilla"
|
||||||
|
type="tbz"
|
||||||
|
packageID="org.filezilla-project.filezilla"
|
||||||
|
downloadURL=$(curl -fsL https://filezilla-project.org/download.php\?show_all=1 | grep macosx | head -n 1 | awk -F '"' '{print $2}' )
|
||||||
|
appNewVersion=$( curl -fsL https://filezilla-project.org/download.php\?show_all=1 | grep macosx | head -n 1 | awk -F '_' '{print $2}' )
|
||||||
|
expectedTeamID="5VPGKXL75N"
|
||||||
|
blockingProcesses=( NONE )
|
||||||
|
;;
|
||||||
|
|
||||||
@@ -5,4 +5,5 @@ firefox)
|
|||||||
appNewVersion=$(curl -fs https://www.mozilla.org/en-US/firefox/releases/ | grep '<html' | grep -o -i -e "data-latest-firefox=\"[0-9.]*\"" | cut -d '"' -f2)
|
appNewVersion=$(curl -fs https://www.mozilla.org/en-US/firefox/releases/ | grep '<html' | grep -o -i -e "data-latest-firefox=\"[0-9.]*\"" | cut -d '"' -f2)
|
||||||
expectedTeamID="43AQ936H96"
|
expectedTeamID="43AQ936H96"
|
||||||
blockingProcesses=( firefox )
|
blockingProcesses=( firefox )
|
||||||
|
printlog "WARNING for ERROR: Label firefox and firefox_intl should not be used. Instead use firefoxpkg and firefoxpkg_intl as per recommendations from Firefox. It's not fully certain that the app actually gets updated here. firefoxpkg and firefoxpkg_intl will have built in updates and make sure the client is updated in the future." REQ
|
||||||
;;
|
;;
|
||||||
|
|||||||
@@ -5,4 +5,5 @@ firefox_da)
|
|||||||
appNewVersion=$(curl -fs https://www.mozilla.org/en-US/firefox/releases/ | grep '<html' | grep -o -i -e "data-latest-firefox=\"[0-9.]*\"" | cut -d '"' -f2)
|
appNewVersion=$(curl -fs https://www.mozilla.org/en-US/firefox/releases/ | grep '<html' | grep -o -i -e "data-latest-firefox=\"[0-9.]*\"" | cut -d '"' -f2)
|
||||||
expectedTeamID="43AQ936H96"
|
expectedTeamID="43AQ936H96"
|
||||||
blockingProcesses=( firefox )
|
blockingProcesses=( firefox )
|
||||||
|
printlog "WARNING for ERROR: Label firefox, firefox_da and firefox_intl should not be used. Instead use firefoxpkg and firefoxpkg_intl as per recommendations from Firefox. It's not fully certain that the app actually gets updated here. firefoxpkg and firefoxpkg_intl will have built in updates and make sure the client is updated in the future." REQ
|
||||||
;;
|
;;
|
||||||
|
|||||||
@@ -1,23 +1,26 @@
|
|||||||
firefox_intl)
|
firefox_intl)
|
||||||
# This label will try to figure out the selected language of the user,
|
# This label will try to figure out the selected language of the user,
|
||||||
# and install corrosponding version of Firefox
|
# and install corrosponding version of Firefox
|
||||||
name="Firefox"
|
name="Firefox"
|
||||||
type="dmg"
|
type="dmg"
|
||||||
userLanguage=$(runAsUser defaults read .GlobalPreferences AppleLocale)
|
userLanguage=$(runAsUser defaults read .GlobalPreferences AppleLocale | tr '_' '-')
|
||||||
printlog "Found language $userLanguage to be used for Firefox."
|
printlog "Found language $userLanguage to be used for $name."
|
||||||
if ! curl -fs "https://ftp.mozilla.org/pub/firefox/releases/latest/README.txt" | grep -o "=$userLanguage"; then
|
releaseURL="https://ftp.mozilla.org/pub/firefox/releases/latest/README.txt"
|
||||||
userLanguage=$(echo $userLanguage | cut -c 1-2)
|
until curl -fs $releaseURL | grep -q "=$userLanguage"; do
|
||||||
if ! curl -fs "https://ftp.mozilla.org/pub/firefox/releases/latest/README.txt" | grep "=$userLanguage"; then
|
if [ ${#userLanguage} -eq 2 ]; then
|
||||||
userLanguage="en_US"
|
break
|
||||||
fi
|
fi
|
||||||
|
printlog "No locale matching '$userLanguage', trying '${userLanguage:0:2}'"
|
||||||
|
userLanguage=${userLanguage:0:2}
|
||||||
|
done
|
||||||
|
printlog "Using language '$userLanguage' for download."
|
||||||
|
downloadURL="https://download.mozilla.org/?product=firefox-latest-ssl&os=osx&lang=$userLanguage"
|
||||||
|
if ! curl -sfL --output /dev/null -r 0-0 $downloadURL; then
|
||||||
|
printlog "Download not found for '$userLanguage', using default ('en-US')."
|
||||||
|
downloadURL="https://download.mozilla.org/?product=firefox-latest-ssl&os=osx"
|
||||||
fi
|
fi
|
||||||
printlog "Using language $userLanguage for download."
|
appNewVersion=$(curl -fsIL $downloadURL | awk -F releases/ '/Location:/ {split($2,a,"/"); print a[1]}')
|
||||||
downloadURL="https://download.mozilla.org/?product=firefox-latest&os=osx&lang=$userLanguage"
|
|
||||||
if ! curl -sfL --output /dev/null -r 0-0 "$downloadURL" ; then
|
|
||||||
printlog "Download not found for that language. Using en-US"
|
|
||||||
downloadURL="https://download.mozilla.org/?product=firefox-latest&os=osx&lang=en-US"
|
|
||||||
fi
|
|
||||||
appNewVersion=$(curl -fs https://www.mozilla.org/en-US/firefox/releases/ | grep '<html' | grep -o -i -e "data-latest-firefox=\"[0-9.]*\"" | cut -d '"' -f2)
|
|
||||||
expectedTeamID="43AQ936H96"
|
expectedTeamID="43AQ936H96"
|
||||||
blockingProcesses=( firefox )
|
blockingProcesses=( firefox )
|
||||||
|
printlog "WARNING for ERROR: Label firefox and firefox_intl should not be used. Instead use firefoxpkg and firefoxpkg_intl as per recommendations from Firefox. It's not fully certain that the app actually gets updated here. firefoxpkg and firefoxpkg_intl will have built in updates and make sure the client is updated in the future." REQ
|
||||||
;;
|
;;
|
||||||
|
|||||||
@@ -1,24 +1,26 @@
|
|||||||
firefoxesr_intl)
|
firefoxesr_intl)
|
||||||
# This label will try to figure out the selected language of the user,
|
# This label will try to figure out the selected language of the user,
|
||||||
# and install corrosponding version of Firefox ESR
|
# and install corrosponding version of Firefox ESR
|
||||||
name="Firefox"
|
name="Firefox"
|
||||||
type="dmg"
|
type="dmg"
|
||||||
userLanguage=$(runAsUser defaults read .GlobalPreferences AppleLocale)
|
userLanguage=$(runAsUser defaults read .GlobalPreferences AppleLocale | tr '_' '-')
|
||||||
printlog "Found language $userLanguage to be used for Firefox."
|
printlog "Found language $userLanguage to be used for $name."
|
||||||
if ! curl -fs "https://ftp.mozilla.org/pub/firefox/releases/latest-esr/README.txt" | grep -o "=$userLanguage"; then
|
releaseURL="https://ftp.mozilla.org/pub/firefox/releases/latest-esr/README.txt"
|
||||||
userLanguage=$(echo $userLanguage | cut -c 1-2)
|
until curl -fs $releaseURL | grep -q "=$userLanguage"; do
|
||||||
if ! curl -fs "https://ftp.mozilla.org/pub/firefox/releases/latest-esr/README.txt" | grep "=$userLanguage"; then
|
if [ ${#userLanguage} -eq 2 ]; then
|
||||||
userLanguage="en_US"
|
break
|
||||||
fi
|
fi
|
||||||
fi
|
printlog "No locale matching '$userLanguage', trying '${userLanguage:0:2}'"
|
||||||
printlog "Using language $userLanguage for download."
|
userLanguage=${userLanguage:0:2}
|
||||||
|
done
|
||||||
|
printlog "Using language '$userLanguage' for download."
|
||||||
downloadURL="https://download.mozilla.org/?product=firefox-esr-latest-ssl&os=osx&lang=$userLanguage"
|
downloadURL="https://download.mozilla.org/?product=firefox-esr-latest-ssl&os=osx&lang=$userLanguage"
|
||||||
# https://download.mozilla.org/?product=firefox-esr-latest-ssl&os=osx&lang=en-US
|
if ! curl -sfL --output /dev/null -r 0-0 $downloadURL; then
|
||||||
if ! curl -sfL --output /dev/null -r 0-0 "$downloadURL" ; then
|
printlog "Download not found for '$userLanguage', using default ('en-US')."
|
||||||
printlog "Download not found for that language. Using en-US"
|
downloadURL="https://download.mozilla.org/?product=firefox-esr-latest-ssl&os=osx"
|
||||||
downloadURL="https://download.mozilla.org/?product=firefox-latest&os=osx&lang=en-US"
|
|
||||||
fi
|
fi
|
||||||
appNewVersion=$(curl -fsIL "$downloadURL" | grep -i "^location" | awk '{print $2}' | sed -E 's/.*releases\/([0-9.]*)esr.*/\1/g')
|
appNewVersion=$(curl -fsIL $downloadURL | awk -F releases/ '/Location:/ {split($2,a,"esr/"); print a[1]}')
|
||||||
expectedTeamID="43AQ936H96"
|
expectedTeamID="43AQ936H96"
|
||||||
blockingProcesses=( firefox )
|
blockingProcesses=( firefox )
|
||||||
|
printlog "WARNING for ERROR: Label firefox and firefox_intl should not be used. Instead use firefoxpkg and firefoxpkg_intl as per recommendations from Firefox. It's not fully certain that the app actually gets updated here. firefoxpkg and firefoxpkg_intl will have built in updates and make sure the client is updated in the future." REQ
|
||||||
;;
|
;;
|
||||||
|
|||||||
@@ -2,6 +2,7 @@ firefoxpkg)
|
|||||||
name="Firefox"
|
name="Firefox"
|
||||||
type="pkg"
|
type="pkg"
|
||||||
downloadURL="https://download.mozilla.org/?product=firefox-pkg-latest-ssl&os=osx&lang=en-US"
|
downloadURL="https://download.mozilla.org/?product=firefox-pkg-latest-ssl&os=osx&lang=en-US"
|
||||||
|
appNewVersion=$(curl -fs https://www.mozilla.org/en-US/firefox/releases/ | grep '<html' | grep -o -i -e "data-latest-firefox=\"[0-9.]*\"" | cut -d '"' -f2)
|
||||||
expectedTeamID="43AQ936H96"
|
expectedTeamID="43AQ936H96"
|
||||||
blockingProcesses=( firefox )
|
blockingProcesses=( firefox )
|
||||||
;;
|
;;
|
||||||
|
|||||||
24
fragments/labels/firefoxpkg_intl.sh
Normal file
24
fragments/labels/firefoxpkg_intl.sh
Normal file
@@ -0,0 +1,24 @@
|
|||||||
|
firefoxpkg_intl)
|
||||||
|
# This label will try to figure out the selected language of the user,
|
||||||
|
# and install corrosponding version of Firefox ESR
|
||||||
|
name="Firefox"
|
||||||
|
type="pkg"
|
||||||
|
userLanguage=$(runAsUser defaults read .GlobalPreferences AppleLocale)
|
||||||
|
printlog "Found language $userLanguage to be used for Firefox." WARN
|
||||||
|
if ! curl -fs "https://ftp.mozilla.org/pub/firefox/releases/latest/README.txt" | grep -o "=$userLanguage"; then
|
||||||
|
userLanguage=$(echo $userLanguage | cut -c 1-2)
|
||||||
|
if ! curl -fs "https://ftp.mozilla.org/pub/firefox/releases/latest/README.txt" | grep "=$userLanguage"; then
|
||||||
|
userLanguage="en_US"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
printlog "Using language $userLanguage for download." WARN
|
||||||
|
downloadURL="https://download.mozilla.org/?product=firefox-pkg-latest-ssl&os=osx&lang=$userLanguage"
|
||||||
|
# https://download.mozilla.org/?product=firefox-pkg-latest-ssl&os=osx&lang=en-US
|
||||||
|
if ! curl -sfL --output /dev/null -r 0-0 "$downloadURL" ; then
|
||||||
|
printlog "Download not found for that language. Using en-US" WARN
|
||||||
|
downloadURL="https://download.mozilla.org/?product=firefox-pkg-latest-ssl&os=osx&lang=en-US"
|
||||||
|
fi
|
||||||
|
appNewVersion=$(curl -fsIL "$downloadURL" | grep -i location | cut -d "/" -f7)
|
||||||
|
expectedTeamID="43AQ936H96"
|
||||||
|
blockingProcesses=( firefox )
|
||||||
|
;;
|
||||||
8
fragments/labels/flycut.sh
Normal file
8
fragments/labels/flycut.sh
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
flycut)
|
||||||
|
name="Flycut"
|
||||||
|
type="zip"
|
||||||
|
archiveName="Flycut.[0-9.]*.zip"
|
||||||
|
downloadURL="$(downloadURLFromGit TermiT Flycut)"
|
||||||
|
appNewVersion=$(versionFromGit TermiT Flycut )
|
||||||
|
expectedTeamID="S8JLSG5ES7"
|
||||||
|
;;
|
||||||
9
fragments/labels/fontexplorer.sh
Executable file
9
fragments/labels/fontexplorer.sh
Executable file
@@ -0,0 +1,9 @@
|
|||||||
|
fontexplorer)
|
||||||
|
name="FontExplorer X Pro"
|
||||||
|
type="dmg"
|
||||||
|
packageID="com.linotype.FontExplorerX"
|
||||||
|
downloadURL="http://www.fontexplorerx.com/download/free-trial/Mac/"
|
||||||
|
appNewVersion=$( curl -fsL http://fex.linotype.com/update/client/mac/pro/version.plist | grep string | tail -n 1 | sed 's/[^0-9.]//g' )
|
||||||
|
expectedTeamID="2V7G2B7WG4"
|
||||||
|
;;
|
||||||
|
|
||||||
@@ -1,9 +0,0 @@
|
|||||||
forticlient_ztna)
|
|
||||||
name="FortiClient ZTNA"
|
|
||||||
type="pkgInDmg"
|
|
||||||
pkgName="Install.mpkg"
|
|
||||||
packageID="com.fortinet.forticlient."
|
|
||||||
downloadURL="https://links.fortinet.com/forticlient/mac/fabricagent"
|
|
||||||
appNewVersion="$(curl -fsL "$downloadURL" --remote-header-name --remote-name -w "%{url_effective}\n" -r 0-0 | cut -d "_" -f2)"
|
|
||||||
expectedTeamID="AH4XFXJ7DK"
|
|
||||||
;;
|
|
||||||
@@ -4,4 +4,5 @@ googlechrome)
|
|||||||
downloadURL="https://dl.google.com/chrome/mac/universal/stable/GGRO/googlechrome.dmg"
|
downloadURL="https://dl.google.com/chrome/mac/universal/stable/GGRO/googlechrome.dmg"
|
||||||
appNewVersion=$(curl -s https://omahaproxy.appspot.com/history | awk -F',' '/mac_arm64,stable/{print $3; exit}')
|
appNewVersion=$(curl -s https://omahaproxy.appspot.com/history | awk -F',' '/mac_arm64,stable/{print $3; exit}')
|
||||||
expectedTeamID="EQHXZ8M8AV"
|
expectedTeamID="EQHXZ8M8AV"
|
||||||
|
printlog "WARNING for ERROR: Label googlechrome should not be used. Instead use googlechromepkg as per recommendations from Google. It's not fully certain that the app actually gets updated here. googlechromepkg will have built in updates and make sure the client is updated in the future." REQ
|
||||||
;;
|
;;
|
||||||
|
|||||||
@@ -6,6 +6,7 @@ googlechromepkg)
|
|||||||
# https://support.google.com/chrome/a/answer/9915669
|
# https://support.google.com/chrome/a/answer/9915669
|
||||||
#
|
#
|
||||||
downloadURL="https://dl.google.com/chrome/mac/stable/accept_tos%3Dhttps%253A%252F%252Fwww.google.com%252Fintl%252Fen_ph%252Fchrome%252Fterms%252F%26_and_accept_tos%3Dhttps%253A%252F%252Fpolicies.google.com%252Fterms/googlechrome.pkg"
|
downloadURL="https://dl.google.com/chrome/mac/stable/accept_tos%3Dhttps%253A%252F%252Fwww.google.com%252Fintl%252Fen_ph%252Fchrome%252Fterms%252F%26_and_accept_tos%3Dhttps%253A%252F%252Fpolicies.google.com%252Fterms/googlechrome.pkg"
|
||||||
|
appNewVersion=$(curl -s https://omahaproxy.appspot.com/history | awk -F',' '/mac_arm64,stable/{print $3; exit}')
|
||||||
expectedTeamID="EQHXZ8M8AV"
|
expectedTeamID="EQHXZ8M8AV"
|
||||||
updateTool="/Library/Google/GoogleSoftwareUpdate/GoogleSoftwareUpdate.bundle/Contents/Resources/GoogleSoftwareUpdateAgent.app/Contents/MacOS/GoogleSoftwareUpdateAgent"
|
updateTool="/Library/Google/GoogleSoftwareUpdate/GoogleSoftwareUpdate.bundle/Contents/Resources/GoogleSoftwareUpdateAgent.app/Contents/MacOS/GoogleSoftwareUpdateAgent"
|
||||||
updateToolArguments=( -runMode oneshot -userInitiated YES )
|
updateToolArguments=( -runMode oneshot -userInitiated YES )
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ gpgsuite)
|
|||||||
type="pkgInDmg"
|
type="pkgInDmg"
|
||||||
pkgName="Install.pkg"
|
pkgName="Install.pkg"
|
||||||
downloadURL=$(curl -s https://gpgtools.org/ | grep https://releases.gpgtools.org/GPG_Suite- | grep Download | cut -d'"' -f4)
|
downloadURL=$(curl -s https://gpgtools.org/ | grep https://releases.gpgtools.org/GPG_Suite- | grep Download | cut -d'"' -f4)
|
||||||
|
appNewVersion=$(echo $downloadURL | cut -d "-" -f 2 | cut -d "." -f 1-2)
|
||||||
expectedTeamID="PKV8ZPD836"
|
expectedTeamID="PKV8ZPD836"
|
||||||
blockingProcesses=( "GPG Keychain" )
|
blockingProcesses=( "GPG Keychain" )
|
||||||
;;
|
;;
|
||||||
|
|||||||
@@ -1,9 +1,11 @@
|
|||||||
grammarly)
|
grammarly)
|
||||||
name="Grammarly Desktop"
|
name="Grammarly Desktop"
|
||||||
type="dmg"
|
type="dmg"
|
||||||
packageID="com.grammarly.ProjectLlama"
|
packageID="com.grammarly.ProjectLlama"
|
||||||
downloadURL=$(curl -fsL "https://download-mac.grammarly.com/appcast.xml" | xpath '//rss/channel/item[1]/enclosure/@url' 2>/dev/null | cut -d '"' -f 2)
|
downloadURL=$(curl -fsL "https://download-mac.grammarly.com/appcast.xml" | xpath '//rss/channel/item[1]/enclosure/@url' 2>/dev/null | cut -d '"' -f 2)
|
||||||
expectedTeamID="W8F64X92K3"
|
expectedTeamID="W8F64X92K3"
|
||||||
appNewVersion=$(curl -is "https://download-mac.grammarly.com/appcast.xml" | grep sparkle:version | tr ',' '\n' | grep sparkle:version | cut -d '"' -f 4)
|
appNewVersion=$(curl -is "https://download-mac.grammarly.com/appcast.xml" | grep sparkle:version | tr ',' '\n' | grep sparkle:version | cut -d '"' -f 4)
|
||||||
appName="Grammarly Installer.app"
|
# appName="Grammarly Installer.app"
|
||||||
;;
|
installerTool="Grammarly Installer.app"
|
||||||
|
CLIInstaller="Grammarly Installer.app/Contents/MacOS/Grammarly Desktop"
|
||||||
|
;;
|
||||||
|
|||||||
9
fragments/labels/hype.sh
Executable file
9
fragments/labels/hype.sh
Executable file
@@ -0,0 +1,9 @@
|
|||||||
|
hype)
|
||||||
|
name="Hype4"
|
||||||
|
type="dmg"
|
||||||
|
packageID="com.tumult.Hype4"
|
||||||
|
downloadURL="https://static.tumult.com/hype/download/Hype.dmg"
|
||||||
|
appNewVersion=$( curl -fsL https://tumult.com/hype/download/all/ | grep Ongoing | awk -F '<' '{print $4}' | sed 's/[^0-9.]//g' )
|
||||||
|
expectedTeamID="8J356DM772"
|
||||||
|
blockingProcesses=( NONE )
|
||||||
|
;;
|
||||||
9
fragments/labels/idrive.sh
Normal file
9
fragments/labels/idrive.sh
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
idrive)
|
||||||
|
name="IDrive"
|
||||||
|
type="pkgInDmg"
|
||||||
|
pkgName="IDrive.pkg"
|
||||||
|
downloadURL=$(curl -fs https://static.idriveonlinebackup.com/downloads/version_mac.js | sed -E 's/.*(https.*dmg).*/\1/g')
|
||||||
|
appNewVersion=$(curl -fs https://static.idriveonlinebackup.com/downloads/version_mac.js | sed -E 's/.*mac_vernum\=\"Version\ ([0-9.]*).*/\1/g')
|
||||||
|
versionKey="CFBundleVersion"
|
||||||
|
expectedTeamID="JWDCNYZ922"
|
||||||
|
;;
|
||||||
9
fragments/labels/idrivethin.sh
Normal file
9
fragments/labels/idrivethin.sh
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
idrivethin)
|
||||||
|
name="IDrive"
|
||||||
|
type="pkgInDmg"
|
||||||
|
pkgName="IDriveThin.pkg"
|
||||||
|
downloadURL=$(curl -fs https://static.idriveonlinebackup.com/downloads/idrivethin/thin_version.js | sed -E 's/.*thinclient-mac([^;]*).*/\1/g' | sed -E 's/.*(https.*dmg).*/\1/g')
|
||||||
|
appNewVersion=$(curl -fs https://static.idriveonlinebackup.com/downloads/idrivethin/thin_version.js | sed -E 's/.*thin\_mac\_ver\=\"Version\ ([0-9.]*).*/\1/g')
|
||||||
|
versionKey="CFBundleVersion"
|
||||||
|
expectedTeamID="JWDCNYZ922"
|
||||||
|
;;
|
||||||
9
fragments/labels/imageoptim.sh
Executable file
9
fragments/labels/imageoptim.sh
Executable file
@@ -0,0 +1,9 @@
|
|||||||
|
imageoptim)
|
||||||
|
name="imageoptim"
|
||||||
|
type="tbz"
|
||||||
|
packageID="net.pornel.ImageOptim"
|
||||||
|
downloadURL="https://imageoptim.com/ImageOptim.tbz2"
|
||||||
|
appNewVersion=$( curl -fsL https://imageoptim.com/appcast.xml | grep "title" | tail -n 1 | sed 's/[^0-9.]//g' )
|
||||||
|
expectedTeamID="59KZTZA4XR"
|
||||||
|
blockingProcesses=( NONE )
|
||||||
|
;;
|
||||||
15
fragments/labels/linear.sh
Normal file
15
fragments/labels/linear.sh
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
linear)
|
||||||
|
name="Linear"
|
||||||
|
type="dmg"
|
||||||
|
if [[ $(arch) == "arm64" ]]; then
|
||||||
|
downloadURL="https://desktop.linear.app/mac/dmg/arm64"
|
||||||
|
elif [[ $(arch) == "i386" ]]; then
|
||||||
|
downloadURL="https://desktop.linear.app/mac/dmg"
|
||||||
|
fi
|
||||||
|
appNewVersion=$(curl -sIkL $downloadURL | sed -r '/filename=/!d;s/.*filename=(.*)$/\1/' | awk '{print $2}')
|
||||||
|
expectedTeamID="7VZ2S3V9RV"
|
||||||
|
versionKey="CFBundleShortVersionString"
|
||||||
|
appName="Linear.app"
|
||||||
|
blockingProcesses=( "Linear" )
|
||||||
|
;;
|
||||||
|
|
||||||
@@ -1,5 +1,6 @@
|
|||||||
|
logioptions|\
|
||||||
logitechoptions)
|
logitechoptions)
|
||||||
name="Logitech Options"
|
name="Logi Options"
|
||||||
type="pkgInZip"
|
type="pkgInZip"
|
||||||
#downloadURL=$(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 -oie "https.*/.*/options/.*\.zip" | head -1)
|
#downloadURL=$(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 -oie "https.*/.*/options/.*\.zip" | head -1)
|
||||||
downloadURL="https://download01.logi.com/web/ftp/pub/techsupport/options/options_installer.zip"
|
downloadURL="https://download01.logi.com/web/ftp/pub/techsupport/options/options_installer.zip"
|
||||||
|
|||||||
8
fragments/labels/macoslaps.sh
Normal file
8
fragments/labels/macoslaps.sh
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
macoslaps)
|
||||||
|
name="macOSLAPS"
|
||||||
|
type="pkg"
|
||||||
|
packageID="edu.psu.macOSLAPS"
|
||||||
|
downloadURL="$(downloadURLFromGit joshua-d-miller macOSLAPS)"
|
||||||
|
appNewVersion="$(versionFromGit joshua-d-miller macOSLAPS)"
|
||||||
|
expectedTeamID="9UYK4F9BSM"
|
||||||
|
;;
|
||||||
7
fragments/labels/mindmanager.sh
Normal file
7
fragments/labels/mindmanager.sh
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
mindmanager)
|
||||||
|
name="MindManager"
|
||||||
|
type="dmg"
|
||||||
|
downloadURL="https://www.mindmanager.com/mm-mac-dmg"
|
||||||
|
appNewVersion="$(curl -fsIL "${downloadURL}" | grep -i "^location" | awk '{print $2}' | sed -E 's/.*_Mac_*([0-9.]*)\..*/\1/g')"
|
||||||
|
expectedTeamID="ZF6ZZ779N5"
|
||||||
|
;;
|
||||||
@@ -1,6 +1,11 @@
|
|||||||
onlyofficedesktop)
|
onlyofficedesktop)
|
||||||
name="ONLYOFFICE"
|
name="ONLYOFFICE"
|
||||||
type="dmg"
|
type="dmg"
|
||||||
downloadURL="https://download.onlyoffice.com/install/desktop/editors/mac/distrib/onlyoffice/ONLYOFFICE.dmg"
|
if [[ $(arch) == "arm64" ]]; then
|
||||||
|
downloadURL="https://download.onlyoffice.com/install/desktop/editors/mac/arm/distrib/ONLYOFFICE.dmg"
|
||||||
|
elif [[ $(arch) == "i386" ]]; then
|
||||||
|
downloadURL="https://download.onlyoffice.com/install/desktop/editors/mac/x86_64/distrib/ONLYOFFICE.dmg"
|
||||||
|
fi
|
||||||
|
appNewVersion=$(versionFromGit ONLYOFFICE DesktopEditors)
|
||||||
expectedTeamID="2WH24U26GJ"
|
expectedTeamID="2WH24U26GJ"
|
||||||
;;
|
;;
|
||||||
|
|||||||
9
fragments/labels/pika.sh
Executable file
9
fragments/labels/pika.sh
Executable file
@@ -0,0 +1,9 @@
|
|||||||
|
pika)
|
||||||
|
name="Pika"
|
||||||
|
type="dmg"
|
||||||
|
packageID="com.superhighfives.Pika"
|
||||||
|
downloadURL=$(downloadURLFromGit "superhighfives" "pika")
|
||||||
|
appNewVersion=$(versionFromGit "superhighfives" "pika")
|
||||||
|
expectedTeamID="TGHU37N6EX"
|
||||||
|
blockingProcesses=( NONE )
|
||||||
|
;;
|
||||||
@@ -1,8 +1,12 @@
|
|||||||
postman)
|
postman)
|
||||||
# credit: Mischa van der Bent
|
|
||||||
name="Postman"
|
name="Postman"
|
||||||
type="zip"
|
type="zip"
|
||||||
downloadURL="https://dl.pstmn.io/download/latest/osx"
|
if [[ $(arch) == "arm64" ]]; then
|
||||||
appNewVersion=$(curl -Ifs https://dl.pstmn.io/download/latest/osx | grep "content-disposition:" | sed -n -e 's/^.*Postman-osx-//p' | sed 's/\.zip//' | sed $'s/[^[:print:]\t]//g' )
|
downloadURL="https://dl.pstmn.io/download/latest/osx_arm64"
|
||||||
|
appNewVersion=$(curl -fsL --head "${downloadURL}" | grep "content-disposition:" | sed 's/^.*[^0-9]\([0-9]*\.[0-9]*\.[0-9]*\).*$/\1/')
|
||||||
|
elif [[ $(arch) == "i386" ]]; then
|
||||||
|
downloadURL="https://dl.pstmn.io/download/latest/osx_64"
|
||||||
|
appNewVersion=$(curl -fsL --head "${downloadURL}" | grep "content-disposition:" | sed 's/^.*[^0-9]\([0-9]*\.[0-9]*\.[0-9]*\).*$/\1/')
|
||||||
|
fi
|
||||||
expectedTeamID="H7H8Q7M5CK"
|
expectedTeamID="H7H8Q7M5CK"
|
||||||
;;
|
;;
|
||||||
|
|||||||
@@ -6,4 +6,4 @@ propresenter7)
|
|||||||
downloadURL=$(curl -s "https://api.renewedvision.com/v1/pro/upgrade?platform=macos&osVersion=12&appVersion=771&buildNumber=117899527&includeNotes=false" | grep -Eo '"downloadUrl":.*?[^\]",' | head -n 1 | cut -d \" -f 4 | sed -e 's/\\//g')
|
downloadURL=$(curl -s "https://api.renewedvision.com/v1/pro/upgrade?platform=macos&osVersion=12&appVersion=771&buildNumber=117899527&includeNotes=false" | grep -Eo '"downloadUrl":.*?[^\]",' | head -n 1 | cut -d \" -f 4 | sed -e 's/\\//g')
|
||||||
appNewVersion=$(curl -s "https://api.renewedvision.com/v1/pro/upgrade?platform=macos&osVersion=12&appVersion=771&buildNumber=117899527&includeNotes=false" | grep -Eo '"version":.*?[^\]",' | head -n 1 | cut -d \" -f 4)
|
appNewVersion=$(curl -s "https://api.renewedvision.com/v1/pro/upgrade?platform=macos&osVersion=12&appVersion=771&buildNumber=117899527&includeNotes=false" | grep -Eo '"version":.*?[^\]",' | head -n 1 | cut -d \" -f 4)
|
||||||
expectedTeamID="97GAAZ6CPX"
|
expectedTeamID="97GAAZ6CPX"
|
||||||
;;
|
;;
|
||||||
|
|||||||
7
fragments/labels/qgis-pr.sh
Normal file
7
fragments/labels/qgis-pr.sh
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
qgis-pr)
|
||||||
|
name="QGIS"
|
||||||
|
type="dmg"
|
||||||
|
downloadURL="https://download.qgis.org/downloads/macos/qgis-macos-pr.dmg"
|
||||||
|
appNewVersion="$(curl -fs "https://www.qgis.org/da/_static/documentation_options.js" | grep -i version | cut -d "'" -f2)"
|
||||||
|
expectedTeamID="4F7N4UDA22"
|
||||||
|
;;
|
||||||
@@ -1,8 +1,13 @@
|
|||||||
rancherdesktop)
|
rancherdesktop)
|
||||||
name="Rancher.Desktop-1.0.0-mac"
|
name="Rancher Desktop"
|
||||||
type="zip"
|
type="zip"
|
||||||
archiveName="Rancher.Desktop-[0-9.]*-mac.zip"
|
if [[ $(arch) == "arm64" ]]; then
|
||||||
downloadURL="$(downloadURLFromGit rancher-sandbox rancher-desktop)"
|
archiveName="Rancher.Desktop-[0-9.]*-mac.aarch64.zip"
|
||||||
|
downloadURL="$(downloadURLFromGit rancher-sandbox rancher-desktop)"
|
||||||
|
elif [[ $(arch) == "i386" ]]; then
|
||||||
|
archiveName="Rancher.Desktop-[0-9.]*-mac.x86_64.zip"
|
||||||
|
downloadURL="$(downloadURLFromGit rancher-sandbox rancher-desktop)"
|
||||||
|
fi
|
||||||
appNewVersion="$(versionFromGit rancher-sandbox rancher-desktop)"
|
appNewVersion="$(versionFromGit rancher-sandbox rancher-desktop)"
|
||||||
expectedTeamID="2Q6FHJR3H3"
|
expectedTeamID="2Q6FHJR3H3"
|
||||||
appName="Rancher Desktop.app"
|
appName="Rancher Desktop.app"
|
||||||
|
|||||||
@@ -1,7 +1,8 @@
|
|||||||
remotedesktopmanagerenterprise)
|
remotedesktopmanagerenterprise)
|
||||||
name="Remote Desktop Manager"
|
name="Remote Desktop Manager"
|
||||||
type="dmg"
|
type="dmg"
|
||||||
downloadURL=$(curl -fs https://remotedesktopmanager.com/home/thankyou/rdmmacbin | grep -oe "http.*\.dmg" | head -1)
|
downloadURL=$(curl -fs https://devolutions.net/remote-desktop-manager/home/thankyou/rdmmacbin | grep -oe "http.*\.dmg" | head -1)
|
||||||
appNewVersion=$(echo "$downloadURL" | sed -E 's/.*\.Mac\.([0-9.]*)\.dmg/\1/g')
|
appNewVersion=$(echo "$downloadURL" | sed -E 's/.*\.Mac\.([0-9.]*)\.dmg/\1/g')
|
||||||
expectedTeamID="N592S9ASDB"
|
expectedTeamID="N592S9ASDB"
|
||||||
|
blockingProcesses=( "$name" )
|
||||||
;;
|
;;
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
remotedesktopmanagerfree)
|
remotedesktopmanagerfree)
|
||||||
name="Remote Desktop Manager Free"
|
name="Remote Desktop Manager Free"
|
||||||
type="dmg"
|
type="dmg"
|
||||||
downloadURL=$(curl -fs https://remotedesktopmanager.com/home/thankyou/rdmmacfreebin | grep -oe "http.*\.dmg" | head -1)
|
downloadURL=$(curl -fs https://devolutions.net/remote-desktop-manager/home/thankyou/rdmmacfreebin | grep -oe "http.*\.dmg" | head -1)
|
||||||
appNewVersion=$(echo "$downloadURL" | sed -E 's/.*\.Mac\.([0-9.]*)\.dmg/\1/g')
|
appNewVersion=$(echo "$downloadURL" | sed -E 's/.*\.Mac\.([0-9.]*)\.dmg/\1/g')
|
||||||
expectedTeamID="N592S9ASDB"
|
expectedTeamID="N592S9ASDB"
|
||||||
;;
|
;;
|
||||||
|
|||||||
7
fragments/labels/shottr.sh
Normal file
7
fragments/labels/shottr.sh
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
shottr)
|
||||||
|
name="Shottr"
|
||||||
|
type="dmg"
|
||||||
|
downloadURL="https://shottr.cc/dl/Shottr-1.5.3.dmg"
|
||||||
|
appNewVersion=$( echo ${downloadURL} | sed -E 's/.*\/[a-zA-Z]*-([0-9.]*)\..*/\1/g' )
|
||||||
|
expectedTeamID="2Y683PRQWN"
|
||||||
|
;;
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
sketch)
|
sketch)
|
||||||
name="Sketch"
|
name="Sketch"
|
||||||
type="zip"
|
type="zip"
|
||||||
downloadURL=$(curl -sf https://www.sketch.com/downloads/mac/ | grep 'href="https://download.sketch.com' | sed -E 's/.*href=\"(.*)\".?/\1/g')
|
downloadURL=$(curl -sf https://www.sketch.com/downloads/mac/ | grep 'href="https://download.sketch.com' | tr '"' "\n" | grep -E "https.*.zip")
|
||||||
appNewVersion=$(curl -fs https://www.sketch.com/updates/ | grep "Sketch Version" | head -1 | sed -E 's/.*Version ([0-9.]*)<.*/\1/g') # version from update page
|
appNewVersion=$(curl -fs https://www.sketch.com/updates/ | grep "Sketch Version" | head -1 | sed -E 's/.*Version ([0-9.]*)<.*/\1/g') # version from update page
|
||||||
expectedTeamID="WUGMZZ5K46"
|
expectedTeamID="WUGMZZ5K46"
|
||||||
;;
|
;;
|
||||||
|
|||||||
12
fragments/labels/slab.sh
Normal file
12
fragments/labels/slab.sh
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
slab)
|
||||||
|
name="Slab"
|
||||||
|
type="dmg"
|
||||||
|
if [[ $(arch) == i386 ]]; then
|
||||||
|
archiveName="Slab-[0-9.]*-darwin-x64.dmg"
|
||||||
|
elif [[ $(arch) == arm64 ]]; then
|
||||||
|
archiveName="Slab-[0-9.]*-darwin-arm64.dmg"
|
||||||
|
fi
|
||||||
|
downloadURL=$(downloadURLFromGit slab desktop-releases)
|
||||||
|
appNewVersion=$(versionFromGit slab desktop-releases)
|
||||||
|
expectedTeamID="Q67SW996Z5"
|
||||||
|
;;
|
||||||
@@ -1,8 +1,8 @@
|
|||||||
snagit|\
|
snagit|\
|
||||||
snagit2021|\
|
snagit2022)
|
||||||
snagit2020)
|
name="Snagit 2022"
|
||||||
name="Snagit 2021"
|
|
||||||
type="dmg"
|
type="dmg"
|
||||||
downloadURL="https://download.techsmith.com/snagitmac/releases/Snagit.dmg"
|
downloadURL=$(curl -H "User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.1 Safari/605.1.15" -fs "https://support.techsmith.com/hc/en-us/articles/360004908652-Desktop-Product-Download-Links" | grep -A 3 "Snagit (Mac) 2022" | sed 's/.*href="//' | sed 's/".*//' | grep .dmg)
|
||||||
|
appNewVersion=$(curl -H "User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.1 Safari/605.1.15" -fs "https://support.techsmith.com/hc/en-us/articles/360004908652-Desktop-Product-Download-Links" | grep "Snagit (Mac) 2022" | sed -e 's/.*Snagit (Mac) //' -e 's/<\/td>.*//')
|
||||||
expectedTeamID="7TQL462TU8"
|
expectedTeamID="7TQL462TU8"
|
||||||
;;
|
;;
|
||||||
|
|||||||
7
fragments/labels/snagit2019.sh
Normal file
7
fragments/labels/snagit2019.sh
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
snagit2019)
|
||||||
|
name="Snagit 2019"
|
||||||
|
type="dmg"
|
||||||
|
downloadURL=$(curl -H "User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.1 Safari/605.1.15" -fs "https://support.techsmith.com/hc/en-us/articles/360004908652-Desktop-Product-Download-Links" | grep -A 3 "Snagit (Mac) 2019" | sed 's/.*href="//' | sed 's/".*//' | grep .dmg)
|
||||||
|
appNewVersion=$(curl -H "User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.1 Safari/605.1.15" -fs "https://support.techsmith.com/hc/en-us/articles/360004908652-Desktop-Product-Download-Links" | grep "Snagit (Mac) 2019" | sed -e 's/.*Snagit (Mac) //' -e 's/<\/td>.*//')
|
||||||
|
expectedTeamID="7TQL462TU8"
|
||||||
|
;;
|
||||||
7
fragments/labels/snagit2020.sh
Normal file
7
fragments/labels/snagit2020.sh
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
snagit2020)
|
||||||
|
name="Snagit 2020"
|
||||||
|
type="dmg"
|
||||||
|
downloadURL=$(curl -H "User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.1 Safari/605.1.15" -fs "https://support.techsmith.com/hc/en-us/articles/360004908652-Desktop-Product-Download-Links" | grep -A 3 "Snagit (Mac) 2020" | sed 's/.*href="//' | sed 's/".*//' | grep .dmg)
|
||||||
|
appNewVersion=$(curl -H "User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.1 Safari/605.1.15" -fs "https://support.techsmith.com/hc/en-us/articles/360004908652-Desktop-Product-Download-Links" | grep "Snagit (Mac) 2020" | sed -e 's/.*Snagit (Mac) //' -e 's/<\/td>.*//')
|
||||||
|
expectedTeamID="7TQL462TU8"
|
||||||
|
;;
|
||||||
7
fragments/labels/snagit2021.sh
Normal file
7
fragments/labels/snagit2021.sh
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
snagit2021)
|
||||||
|
name="Snagit 2021"
|
||||||
|
type="dmg"
|
||||||
|
downloadURL=$(curl -H "User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.1 Safari/605.1.15" -fs "https://support.techsmith.com/hc/en-us/articles/360004908652-Desktop-Product-Download-Links" | grep -A 3 "Snagit (Mac) 2021" | sed 's/.*href="//' | sed 's/".*//' | grep .dmg)
|
||||||
|
appNewVersion=$(curl -H "User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.1 Safari/605.1.15" -fs "https://support.techsmith.com/hc/en-us/articles/360004908652-Desktop-Product-Download-Links" | grep "Snagit (Mac) 2021" | sed -e 's/.*Snagit (Mac) //' -e 's/<\/td>.*//')
|
||||||
|
expectedTeamID="7TQL462TU8"
|
||||||
|
;;
|
||||||
9
fragments/labels/sonobus.sh
Normal file
9
fragments/labels/sonobus.sh
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
sonobus)
|
||||||
|
name="Sonobus"
|
||||||
|
type="pkgInDmg"
|
||||||
|
html_page_source="$(curl -fs 'https://www.sonobus.net')"
|
||||||
|
downloadFile="$(echo "${html_page_source}" | xmllint --html --xpath "string(//a[contains(@href, 'mac.dmg')]/@href)" - 2> /dev/null)"
|
||||||
|
downloadURL="https://www.sonobus.net/$downloadFile"
|
||||||
|
appNewVersion="$(echo "${downloadFile}" | sed 's/releases\/sonobus-//' | sed 's/\-mac.dmg//' )"
|
||||||
|
expectedTeamID="XCS435894D"
|
||||||
|
;;
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
talkdeskcallbar)
|
talkdeskcallbar)
|
||||||
name="Callbar"
|
name="Callbar"
|
||||||
type="dmg"
|
type="dmg"
|
||||||
downloadURL=https://downloadcallbar.talkdesk.com/Callbar-$(curl -fsL https://downloadcallbar.talkdesk.com/release_metadata.json | sed -n 's/^.*"version":"\([^"]*\)".*$/\1/p').dmg
|
appNewVersion=$(curl -fsL https://downloadcallbar.talkdesk.com/release_metadata.json | sed -n 's/^.*"version"[[:space:]]*:[[:space:]]*"\([^"]*\)".*$/\1/p')
|
||||||
appNewVersion=$(curl -fsL https://downloadcallbar.talkdesk.com/release_metadata.json | sed -n 's/^.*"version":"\([^"]*\)".*$/\1/p')
|
downloadURL=https://downloadcallbar.talkdesk.com/Callbar-${appNewVersion}.dmg
|
||||||
expectedTeamID="YGGJX44TB8"
|
expectedTeamID="YGGJX44TB8"
|
||||||
;;
|
;;
|
||||||
|
|||||||
7
fragments/labels/talkdeskcxcloud.sh
Normal file
7
fragments/labels/talkdeskcxcloud.sh
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
talkdeskcxcloud)
|
||||||
|
name="Talkdesk"
|
||||||
|
type="dmg"
|
||||||
|
appNewVersion=$(curl -fs https://td-infra-prd-us-east-1-s3-atlaselectron.s3.amazonaws.com/talkdesk-latest-metadata.json | sed -n -e 's/^.*"version"[[:space:]]*:[[:space:]]*"\([^"]*\)".*$/\1/p' | head -n 1)
|
||||||
|
downloadURL="https://td-infra-prd-us-east-1-s3-atlaselectron.s3.amazonaws.com/talkdesk-${appNewVersion}.dmg"
|
||||||
|
expectedTeamID="YGGJX44TB8"
|
||||||
|
;;
|
||||||
25
fragments/labels/thunderbird_intl.sh
Normal file
25
fragments/labels/thunderbird_intl.sh
Normal file
@@ -0,0 +1,25 @@
|
|||||||
|
thunderbird_intl)
|
||||||
|
# This label will try to figure out the selected language of the user,
|
||||||
|
# and install corrosponding version of Thunderbird
|
||||||
|
name="Thunderbird"
|
||||||
|
type="dmg"
|
||||||
|
userLanguage=$(runAsUser defaults read .GlobalPreferences AppleLocale | tr '_' '-')
|
||||||
|
printlog "Found language $userLanguage to be used for $name."
|
||||||
|
releaseURL="https://ftp.mozilla.org/pub/thunderbird/releases/latest/README.txt"
|
||||||
|
until curl -fs $releaseURL | grep -q "=$userLanguage"; do
|
||||||
|
if [ ${#userLanguage} -eq 2 ]; then
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
printlog "No locale matching '$userLanguage', trying '${userLanguage:0:2}'"
|
||||||
|
userLanguage=${userLanguage:0:2}
|
||||||
|
done
|
||||||
|
printlog "Using language '$userLanguage' for download."
|
||||||
|
downloadURL="https://download.mozilla.org/?product=thunderbird-latest&os=osx&lang=$userLanguage"
|
||||||
|
if ! curl -sfL --output /dev/null -r 0-0 $downloadURL; then
|
||||||
|
printlog "Download not found for '$userLanguage', using default ('en-US')."
|
||||||
|
downloadURL="https://download.mozilla.org/?product=thunderbird-latest&os=osx"
|
||||||
|
fi
|
||||||
|
appNewVersion=$(curl -fsIL $downloadURL | awk -F releases/ '/Location:/ {split($2,a,"/"); print a[1]}')
|
||||||
|
expectedTeamID="43AQ936H96"
|
||||||
|
blockingProcesses=( thunderbird )
|
||||||
|
;;
|
||||||
8
fragments/labels/ultimakercura.sh
Normal file
8
fragments/labels/ultimakercura.sh
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
ultimakercura)
|
||||||
|
name="Ultimaker Cura"
|
||||||
|
type="dmg"
|
||||||
|
downloadURL="$(downloadURLFromGit Ultimaker Cura)"
|
||||||
|
archiveName="Ultimaker_Cura-[0-9].*-Darwin.dmg"
|
||||||
|
appNewVersion=$(versionFromGit Ultimaker Cura )
|
||||||
|
expectedTeamID="V4B3JXRRQS"
|
||||||
|
;;
|
||||||
8
fragments/labels/unnaturalscrollwheels.sh
Normal file
8
fragments/labels/unnaturalscrollwheels.sh
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
unnaturalscrollwheels)
|
||||||
|
name="UnnaturalScrollWheels"
|
||||||
|
type="dmg"
|
||||||
|
downloadURL="$(downloadURLFromGit ther0n UnnaturalScrollWheels)"
|
||||||
|
appNewVersion="$(versionFromGit ther0n UnnaturalScrollWheels)"
|
||||||
|
expectedTeamID="D6H5W2T379"
|
||||||
|
blockingProcesses=( UnnaturalScrollWheels )
|
||||||
|
;;
|
||||||
6
fragments/labels/wechat.sh
Normal file
6
fragments/labels/wechat.sh
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
wechat)
|
||||||
|
name="WeChat"
|
||||||
|
type="dmg"
|
||||||
|
downloadURL="https://dldir1.qq.com/weixin/mac/WeChatMac.dmg"
|
||||||
|
expectedTeamID="5A4RE8SF68"
|
||||||
|
;;
|
||||||
9
fragments/labels/xeroxworkcentre7800.sh
Executable file
9
fragments/labels/xeroxworkcentre7800.sh
Executable file
@@ -0,0 +1,9 @@
|
|||||||
|
xeroxworkcentre7800)
|
||||||
|
name="XeroxWorkCentre"
|
||||||
|
type="pkgInDmg"
|
||||||
|
appCustomVersion(){ lpinfo -m | grep 783 | tail -n 1 | awk -F ', ' '{print $2}' }
|
||||||
|
appNewVersion=$( curl -fsL "https://www.support.xerox.com/nl-nl/product/workcentre-7800-series/downloads?platform=macOSx11" | grep .dmg | head -n 1 | awk -F '_' '{print $2}' )
|
||||||
|
downloadURL=$( curl -fsL "https://www.support.xerox.com/nl-nl/product/workcentre-7800-series/downloads?platform=macOSx11" | xmllint --html --format - 2>/dev/null | grep -o "https://.*XeroxDrivers.*.dmg" )
|
||||||
|
expectedTeamID="G59Y3XFNFR"
|
||||||
|
blockingProcesses=( NONE )
|
||||||
|
;;
|
||||||
8
fragments/labels/zohoworkdrivegenie.sh
Normal file
8
fragments/labels/zohoworkdrivegenie.sh
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
zohoworkdrivegenie)
|
||||||
|
name="Zoho WorkDrive Genie"
|
||||||
|
type="dmg"
|
||||||
|
# https://www.zoho.com/workdrive/genie.html
|
||||||
|
downloadURL="https://www.zoho.com/workdrive/downloads/edit-tool/Zoho_WorkDrive_Genie.dmg"
|
||||||
|
CLIInstaller="Zoho WorkDrive Genie.app/Contents/MacOS/Zoho WorkDrive Genie"
|
||||||
|
expectedTeamID="TZ824L8Y37"
|
||||||
|
;;
|
||||||
@@ -1 +1 @@
|
|||||||
10dev
|
9.2
|
||||||
|
|||||||
@@ -59,14 +59,16 @@ Pull requests against the `Installomator.sh` script in the root of the repo will
|
|||||||
|
|
||||||
### When you are familiar with git and GitHub
|
### When you are familiar with git and GitHub
|
||||||
|
|
||||||
- Create a new branch in your local Installomator fork repo.
|
- If you haven't already, create a fork of the Installomator repo. Clone the for to your local Mac.
|
||||||
|
- Create a new branch in your local Installomator (fork) repo.
|
||||||
- Copy the new or modified label file to `fragments/labels`. (replacing the original, when necessary)
|
- Copy the new or modified label file to `fragments/labels`. (replacing the original, when necessary)
|
||||||
- Create a pull request against the main Installomator dev branch.
|
- Test (push the change to your fork on GitHub. You can check that out on testing devices or vms.)
|
||||||
- Don't use this branch for any other modifications, unless you need to update this particular PR. (Pull Requests are against a _branch_, not a particular commit.)
|
- Create a pull request against the Installomator `main` branch.
|
||||||
|
- Don't use this branch for _any_ other modifications, unless you need to update this particular PR. (Pull Requests are against a _branch_, not a particular commit.)
|
||||||
|
|
||||||
If you have multiple labels you want to contribute, please create a separate local branch and a separate pull request for each label.
|
If you have multiple labels (or other changes) you want to contribute, please create a _separate_ local branch and a _separate_ pull request for each label. This allows us to accept, modify, or reject each label separately and simplifies the process.
|
||||||
|
|
||||||
Once your Pull Request is merged into the main repo, you can pull the change to your fork and delete the branch.
|
Once your Pull Request is merged into the main repo, you can pull the change to your local repo, push it to your fork, and delete the branch, because it should be fully merged.
|
||||||
|
|
||||||
### When you are not familiar with git and GitHub
|
### When you are not familiar with git and GitHub
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user