mirror of
https://github.com/mtan93/Installomator.git
synced 2026-03-11 05:11:58 +00:00
Compare commits
62 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
db5b6a5a55 | ||
|
|
b333528379 | ||
|
|
89dfe63606 | ||
|
|
88cd4114ae | ||
|
|
b1dc94ad1d | ||
|
|
0b5495ffbf | ||
|
|
1fae99b322 | ||
|
|
c8677eddf5 | ||
|
|
40bc37c2f6 | ||
|
|
b9f8d569b6 | ||
|
|
a618c63b50 | ||
|
|
9aef18b89d | ||
|
|
0a8eeaf0f6 | ||
|
|
f0b7e579e3 | ||
|
|
e066a7c3bf | ||
|
|
7c45573a0e | ||
|
|
c26cfa24ba | ||
|
|
87b671f0e5 | ||
|
|
2b5ce2f90e | ||
|
|
fc33d2aaff | ||
|
|
bc4a612e15 | ||
|
|
b7d67e6967 | ||
|
|
8c853ddd30 | ||
|
|
fa26867583 | ||
|
|
dbcdea3a72 | ||
|
|
68d389ab7f | ||
|
|
8dbabec280 | ||
|
|
98f0fb1a77 | ||
|
|
d795598a22 | ||
|
|
afc906161a | ||
|
|
a8a1082d34 | ||
|
|
dfc9950a31 | ||
|
|
e22a7754bd | ||
|
|
2362e8a9d0 | ||
|
|
a7224fcbea | ||
|
|
2a0385d30d | ||
|
|
03177d4e9d | ||
|
|
8b19773a7f | ||
|
|
9ef19139d2 | ||
|
|
c4fbcd6f3a | ||
|
|
6ee318f655 | ||
|
|
b0bc3c3c81 | ||
|
|
f75d789322 | ||
|
|
94a1d2fc32 | ||
|
|
97f8b9ad26 | ||
|
|
b5a51c3cbf | ||
|
|
719fe6e925 | ||
|
|
651a5ce067 | ||
|
|
b1df345814 | ||
|
|
a626375906 | ||
|
|
5d968b0816 | ||
|
|
69c959c923 | ||
|
|
e88e2a56ea | ||
|
|
95901cfa6b | ||
|
|
7dabe54f18 | ||
|
|
ac874a9f28 | ||
|
|
3c8a4ff067 | ||
|
|
57fd2e57fc | ||
|
|
a5421ad226 | ||
|
|
5ab42971e5 | ||
|
|
0a9957169e | ||
|
|
96bad4bd84 |
27
CHANGELOG.md
27
CHANGELOG.md
@@ -1,3 +1,30 @@
|
|||||||
|
## v10
|
||||||
|
|
||||||
|
- updates to MDM sample scripts (#738)
|
||||||
|
- updates to Swift Dialog integration (#717)
|
||||||
|
- documentation updates (#711)
|
||||||
|
|
||||||
|
And everything from the betas ([beta1](https://github.com/Installomator/Installomator/releases/tag/v10beta1), [beta2](https://github.com/Installomator/Installomator/releases/tag/v10beta2), [beta3](https://github.com/Installomator/Installomator/releases/tag/v10beta3))
|
||||||
|
|
||||||
|
- new labels:
|
||||||
|
- ibmnotifier (#716)
|
||||||
|
- ipvisionconnect (#749)
|
||||||
|
- logitechoptionsplus (#719)
|
||||||
|
- lucidlink (#722)
|
||||||
|
- mactex (#685)
|
||||||
|
- onscreencontrol (#581)
|
||||||
|
- projectplace (#688)
|
||||||
|
- subethaedit (#728)
|
||||||
|
- sublimemerge (#729)
|
||||||
|
- venturablocker (#712)
|
||||||
|
- vysor (#710)
|
||||||
|
|
||||||
|
- updated labels:
|
||||||
|
- googleadseditor (#739)
|
||||||
|
- openvpnconnectv3 (#750)
|
||||||
|
- tunnelblick (#618)
|
||||||
|
|
||||||
|
|
||||||
## v10beta3
|
## v10beta3
|
||||||
|
|
||||||
- option to add item to dock if dockutil is installed (#701 requires dockutil https://github.com/kcrawford/dockutil )
|
- option to add item to dock if dockutil is installed (#701 requires dockutil https://github.com/kcrawford/dockutil )
|
||||||
|
|||||||
107
Installomator.sh
107
Installomator.sh
@@ -322,8 +322,8 @@ if [[ $(/usr/bin/arch) == "arm64" ]]; then
|
|||||||
rosetta2=no
|
rosetta2=no
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
VERSION="10.0beta3"
|
VERSION="10.0"
|
||||||
VERSIONDATE="2022-10-03"
|
VERSIONDATE="2022-11-18"
|
||||||
|
|
||||||
# MARK: Functions
|
# MARK: Functions
|
||||||
|
|
||||||
@@ -1345,7 +1345,7 @@ updateDialog() {
|
|||||||
echo "progress: $progress" >> $cmd_file
|
echo "progress: $progress" >> $cmd_file
|
||||||
fi
|
fi
|
||||||
if [[ $message != "" ]]; then
|
if [[ $message != "" ]]; then
|
||||||
echo "progresstext: $name - $message" >> $cmd_file
|
echo "progresstext: $message" >> $cmd_file
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
# list item has a value, so we update the progress and text in the list
|
# list item has a value, so we update the progress and text in the list
|
||||||
@@ -3030,7 +3030,9 @@ googleadseditor)
|
|||||||
name="Google Ads Editor"
|
name="Google Ads Editor"
|
||||||
type="dmg"
|
type="dmg"
|
||||||
downloadURL="https://dl.google.com/adwords_editor/google_ads_editor.dmg"
|
downloadURL="https://dl.google.com/adwords_editor/google_ads_editor.dmg"
|
||||||
appNewVersion=""
|
# Version not found in installed app, but on we it is here
|
||||||
|
#appNewVersion="$(curl -fs "https://support.google.com/google-ads/editor/answer/30513" | grep "Current Mac version" | sed -E 's/.*Current Mac version: *([0-9.]*)<.*/\1/')"
|
||||||
|
#appCustomVersion(){ }
|
||||||
expectedTeamID="EQHXZ8M8AV"
|
expectedTeamID="EQHXZ8M8AV"
|
||||||
;;
|
;;
|
||||||
googlechrome)
|
googlechrome)
|
||||||
@@ -3261,6 +3263,14 @@ ibarcoder)
|
|||||||
appNewVersion="$(curl -fs "https://cristallight.com/iBarcoder/" | grep -i version: | head -1 | awk '{print $2}')"
|
appNewVersion="$(curl -fs "https://cristallight.com/iBarcoder/" | grep -i version: | head -1 | awk '{print $2}')"
|
||||||
expectedTeamID="JAXVB9AH9M"
|
expectedTeamID="JAXVB9AH9M"
|
||||||
;;
|
;;
|
||||||
|
ibmnotifier)
|
||||||
|
name="IBM Notifier"
|
||||||
|
type="zip"
|
||||||
|
downloadURL="$(downloadURLFromGit IBM mac-ibm-notifications)"
|
||||||
|
#appNewVersion="$(versionFromGit IBM mac-ibm-notifications)"
|
||||||
|
appNewVersion="$(curl -sLI "https://github.com/IBM/mac-ibm-notifications/releases/latest" | grep -i "^location" | tr "/" "\n" | tail -1 | cut -d "-" -f2 | sed 's/[^0-9\.]//g')"
|
||||||
|
expectedTeamID="PETKK2G752"
|
||||||
|
;;
|
||||||
icons)
|
icons)
|
||||||
name="Icons"
|
name="Icons"
|
||||||
type="zip"
|
type="zip"
|
||||||
@@ -3354,6 +3364,15 @@ ipswupdater)
|
|||||||
appNewVersion=$(getJSONValue "$ipswupdaterVersions" "[0].version")
|
appNewVersion=$(getJSONValue "$ipswupdaterVersions" "[0].version")
|
||||||
expectedTeamID="YRW6NUGA63"
|
expectedTeamID="YRW6NUGA63"
|
||||||
;;
|
;;
|
||||||
|
ipvisionconnect)
|
||||||
|
name="ipvision Connect"
|
||||||
|
type="dmg"
|
||||||
|
# Description: A softphone client from ipvision.dk
|
||||||
|
downloadStore="https://my.ipvision.dk/connect/"
|
||||||
|
downloadURL="${downloadStore}$(curl -fs "https://my.ipvision.dk/connect/" | grep osx | sort | tail -1 | cut -d '"' -f2)"
|
||||||
|
appNewVersion="$(curl -fs "${downloadStore}" | grep osx | sort | tail -1 | sed -E 's/.*ipvision_connect_([0-9_]*)_osx.*/\1/' | tr "_" ".")"
|
||||||
|
expectedTeamID="5RLWBLKGL2"
|
||||||
|
;;
|
||||||
istatmenus)
|
istatmenus)
|
||||||
# credit: AP Orlebeke (@apizz)
|
# credit: AP Orlebeke (@apizz)
|
||||||
name="iStat Menus"
|
name="iStat Menus"
|
||||||
@@ -3733,6 +3752,17 @@ logitechoptions)
|
|||||||
pkgName=LogiMgr.pkg
|
pkgName=LogiMgr.pkg
|
||||||
expectedTeamID="QED4VVPZWA"
|
expectedTeamID="QED4VVPZWA"
|
||||||
;;
|
;;
|
||||||
|
logitechoptionsplus)
|
||||||
|
name="Logi Options+"
|
||||||
|
archiveName="logioptionsplus_installer.zip"
|
||||||
|
appName="logioptionsplus_installer.app"
|
||||||
|
type="zip"
|
||||||
|
downloadURL="https://download01.logi.com/web/ftp/pub/techsupport/optionsplus/logioptionsplus_installer.zip"
|
||||||
|
appNewVersion=$(curl -fs "https://support.logi.com/api/v2/help_center/en-us/articles.json?label_names=webcontent=productdownload,webos=mac-macos-x-11.0" | tr "," "\n" | grep -A 10 "macOS" | grep -B 5 -ie "https.*/.*/optionsplus/.*\.zip" | grep "Software Version" | sed 's/\\u[0-9a-z][0-9a-z][0-9a-z][0-9a-z]//g' | grep -ioe "Software Version.*[0-9.]*" | tr "/" "\n" | grep -oe "[0-9.]*" | head -1)
|
||||||
|
CLIInstaller="logioptionsplus_installer.app/Contents/MacOS/logioptionsplus_installer"
|
||||||
|
CLIArguments=(--quiet)
|
||||||
|
expectedTeamID="QED4VVPZWA"
|
||||||
|
;;
|
||||||
logseq)
|
logseq)
|
||||||
name="Logseq"
|
name="Logseq"
|
||||||
type="dmg"
|
type="dmg"
|
||||||
@@ -3765,6 +3795,14 @@ lowprofile)
|
|||||||
appNewVersion="$(versionFromGit ninxsoft LowProfile)"
|
appNewVersion="$(versionFromGit ninxsoft LowProfile)"
|
||||||
expectedTeamID="7K3HVCLV7Z"
|
expectedTeamID="7K3HVCLV7Z"
|
||||||
;;
|
;;
|
||||||
|
lucidlink)
|
||||||
|
name="Lucid"
|
||||||
|
# https://www.lucidlink.com/download
|
||||||
|
type="pkg"
|
||||||
|
downloadURL="https://www.lucidlink.com/download/latest/osx/stable/"
|
||||||
|
appNewVersion=$( curl -fsIL "${downloadURL}" | grep -i "^location" | awk '{print $2}' | sed -E 's/.*\/[a-zA-Z]*-([0-9.]*)\..*/\1/g' )
|
||||||
|
expectedTeamID="Y4KMJPU2B4"
|
||||||
|
;;
|
||||||
lucifer)
|
lucifer)
|
||||||
# credit: Drew Diver (@grumpydrew on MacAdmins Slack)
|
# credit: Drew Diver (@grumpydrew on MacAdmins Slack)
|
||||||
name="Lucifer"
|
name="Lucifer"
|
||||||
@@ -3836,6 +3874,13 @@ macports)
|
|||||||
appCustomVersion(){ if [ -x /opt/local/bin/port ]; then /opt/local/bin/port version | awk '{print $2}'; else "0"; fi }
|
appCustomVersion(){ if [ -x /opt/local/bin/port ]; then /opt/local/bin/port version | awk '{print $2}'; else "0"; fi }
|
||||||
expectedTeamID="QTA3A3B7F3"
|
expectedTeamID="QTA3A3B7F3"
|
||||||
;;
|
;;
|
||||||
|
mactex)
|
||||||
|
name="MacTeX"
|
||||||
|
appName="TeX Live Utility.app"
|
||||||
|
type="pkg"
|
||||||
|
downloadURL="https://mirror.ctan.org/systems/mac/mactex/MacTeX.pkg"
|
||||||
|
expectedTeamID="RBGCY5RJWM"
|
||||||
|
;;
|
||||||
malwarebytes)
|
malwarebytes)
|
||||||
name="Malwarebytes"
|
name="Malwarebytes"
|
||||||
type="pkg"
|
type="pkg"
|
||||||
@@ -4520,6 +4565,15 @@ onlyofficedesktop)
|
|||||||
appNewVersion=$(versionFromGit ONLYOFFICE DesktopEditors)
|
appNewVersion=$(versionFromGit ONLYOFFICE DesktopEditors)
|
||||||
expectedTeamID="2WH24U26GJ"
|
expectedTeamID="2WH24U26GJ"
|
||||||
;;
|
;;
|
||||||
|
onscreencontrol)
|
||||||
|
name="OnScreen Control"
|
||||||
|
type="pkgInZip"
|
||||||
|
packageID="com.LGSI.OnScreen-Control"
|
||||||
|
releaseURL="https://www.lg.com/de/support/software-select-category-result?csSalesCode=34WK95U-W.AEU"
|
||||||
|
appNewVersion=$(curl -sf $releaseURL | grep -m 1 "Mac_OSC_" | sed -E 's/.*OSC_([0-9.]*).zip.*/\1/g')
|
||||||
|
downloadURL=$(curl -sf $releaseURL | grep -m 1 "Mac_OSC_" | sed "s|.*href=\"\(.*\)\" title.*|\\1|")
|
||||||
|
expectedTeamID="5SKT5H4CPQ"
|
||||||
|
;;
|
||||||
openvpnconnect)
|
openvpnconnect)
|
||||||
# credit: Erik Stam (@erikstam)
|
# credit: Erik Stam (@erikstam)
|
||||||
name="OpenVPN"
|
name="OpenVPN"
|
||||||
@@ -4532,6 +4586,11 @@ openvpnconnectv3)
|
|||||||
# credit: @lotnix
|
# credit: @lotnix
|
||||||
name="OpenVPN Connect"
|
name="OpenVPN Connect"
|
||||||
type="pkgInDmg"
|
type="pkgInDmg"
|
||||||
|
if [[ $(arch) == "arm64" ]]; then
|
||||||
|
pkgName="/OpenVPN_Connect_[0-9_()]*_arm64_Installer_signed.pkg"
|
||||||
|
elif [[ $(arch) == "i386" ]]; then
|
||||||
|
pkgName="OpenVPN_Connect_[0-9_()]*_x86_64_Installer_signed.pkg"
|
||||||
|
fi
|
||||||
downloadURL="https://openvpn.net/downloads/openvpn-connect-v3-macos.dmg"
|
downloadURL="https://openvpn.net/downloads/openvpn-connect-v3-macos.dmg"
|
||||||
expectedTeamID="ACV7L3WCD8"
|
expectedTeamID="ACV7L3WCD8"
|
||||||
;;
|
;;
|
||||||
@@ -4711,6 +4770,12 @@ proctortrack)
|
|||||||
downloadURL="https://storage.googleapis.com/verificientstatic/ProctortrackApp/Production/Proctortrack.zip"
|
downloadURL="https://storage.googleapis.com/verificientstatic/ProctortrackApp/Production/Proctortrack.zip"
|
||||||
expectedTeamID="SNHZD6TJE6"
|
expectedTeamID="SNHZD6TJE6"
|
||||||
;;
|
;;
|
||||||
|
projectplace)
|
||||||
|
name="Projectplace"
|
||||||
|
type="dmg"
|
||||||
|
downloadURL="https://service.projectplace.com/client_apps/desktop/Projectplace-for-mac.dmg"
|
||||||
|
expectedTeamID="8333HW99E8"
|
||||||
|
;;
|
||||||
promiseutility|\
|
promiseutility|\
|
||||||
promiseutilityr)
|
promiseutilityr)
|
||||||
name="Promise Utility"
|
name="Promise Utility"
|
||||||
@@ -5231,6 +5296,24 @@ strongsync)
|
|||||||
versionKey="CFBundleVersion"
|
versionKey="CFBundleVersion"
|
||||||
expectedTeamID="CH86M498V4"
|
expectedTeamID="CH86M498V4"
|
||||||
;;
|
;;
|
||||||
|
subethaedit)
|
||||||
|
name="SubEthaEdit"
|
||||||
|
# Home: https://github.com/subethaedit/SubEthaEdit
|
||||||
|
# Description: General purpose plain text editor for macOS. Widely known for its live collaboration feature.
|
||||||
|
type="zip"
|
||||||
|
downloadURL="$(downloadURLFromGit subethaedit SubEthaEdit)"
|
||||||
|
appNewVersion="$(versionFromGit subethaedit SubEthaEdit)"
|
||||||
|
expectedTeamID="S76GCAG929"
|
||||||
|
;;
|
||||||
|
sublimemerge)
|
||||||
|
# Home: https://www.sublimemerge.com
|
||||||
|
# Description: Git Client, done Sublime. Line-by-line Staging. Commit Editing. Unmatched Performance.
|
||||||
|
name="Sublime Merge"
|
||||||
|
type="zip"
|
||||||
|
downloadURL="$(curl -fs "https://www.sublimemerge.com/download_thanks?target=mac#direct-downloads" | grep -io "https://download.*_mac.zip" | head -1)"
|
||||||
|
appNewVersion=$(curl -fs https://www.sublimemerge.com/download | grep -i -A 4 "id.*changelog" | grep -io "Build [0-9]*")
|
||||||
|
expectedTeamID="Z6D26JE4Y4"
|
||||||
|
;;
|
||||||
sublimetext)
|
sublimetext)
|
||||||
# credit: Søren Theilgaard (@theilgaard)
|
# credit: Søren Theilgaard (@theilgaard)
|
||||||
name="Sublime Text"
|
name="Sublime Text"
|
||||||
@@ -5528,6 +5611,7 @@ tunnelblick)
|
|||||||
name="Tunnelblick"
|
name="Tunnelblick"
|
||||||
type="dmg"
|
type="dmg"
|
||||||
downloadURL=$(downloadURLFromGit TunnelBlick Tunnelblick )
|
downloadURL=$(downloadURLFromGit TunnelBlick Tunnelblick )
|
||||||
|
appNewVersion=$(curl -sf https://github.com/Tunnelblick/Tunnelblick/releases | grep -m 1 "/Tunnelblick/Tunnelblick/releases/tag/" | sed -r 's/.*Tunnelblick ([^<]+).*/\1/')
|
||||||
expectedTeamID="Z2SG5H3HC8"
|
expectedTeamID="Z2SG5H3HC8"
|
||||||
;;
|
;;
|
||||||
typinator)
|
typinator)
|
||||||
@@ -5604,6 +5688,14 @@ vanilla)
|
|||||||
downloadURL="https://macrelease.matthewpalmer.net/Vanilla.dmg"
|
downloadURL="https://macrelease.matthewpalmer.net/Vanilla.dmg"
|
||||||
expectedTeamID="Z4JV2M65MH"
|
expectedTeamID="Z4JV2M65MH"
|
||||||
;;
|
;;
|
||||||
|
venturablocker)
|
||||||
|
name="venturablocker"
|
||||||
|
type="pkg"
|
||||||
|
packageID="dk.envo-it.venturablocker"
|
||||||
|
downloadURL=$(downloadURLFromGit Theile venturablocker )
|
||||||
|
appNewVersion=$(versionFromGit Theile venturablocker )
|
||||||
|
expectedTeamID="FXW6QXBFW5"
|
||||||
|
;;
|
||||||
veracrypt)
|
veracrypt)
|
||||||
name="VeraCrypt"
|
name="VeraCrypt"
|
||||||
type="pkgInDmg"
|
type="pkgInDmg"
|
||||||
@@ -5673,6 +5765,13 @@ vscodium)
|
|||||||
expectedTeamID="C7S3ZQ2B8V"
|
expectedTeamID="C7S3ZQ2B8V"
|
||||||
blockingProcesses=( Electron )
|
blockingProcesses=( Electron )
|
||||||
;;
|
;;
|
||||||
|
vysor)
|
||||||
|
name="Vysor"
|
||||||
|
type="zip"
|
||||||
|
downloadURL="$(downloadURLFromGit koush vysor.io)"
|
||||||
|
appNewVersion="$(versionFromGit koush vysor.io)"
|
||||||
|
expectedTeamID="XT4C9EJNUG"
|
||||||
|
;;
|
||||||
wacomdrivers)
|
wacomdrivers)
|
||||||
name="Wacom Desktop Center"
|
name="Wacom Desktop Center"
|
||||||
type="pkgInDmg"
|
type="pkgInDmg"
|
||||||
|
|||||||
11
Labels.txt
11
Labels.txt
@@ -198,6 +198,7 @@ hpeasystart
|
|||||||
hype
|
hype
|
||||||
hyper
|
hyper
|
||||||
ibarcoder
|
ibarcoder
|
||||||
|
ibmnotifier
|
||||||
icons
|
icons
|
||||||
idrive
|
idrive
|
||||||
idrivethin
|
idrivethin
|
||||||
@@ -211,6 +212,7 @@ installomator
|
|||||||
installomator_theile
|
installomator_theile
|
||||||
intellijideace
|
intellijideace
|
||||||
ipswupdater
|
ipswupdater
|
||||||
|
ipvisionconnect
|
||||||
istatmenus
|
istatmenus
|
||||||
iterm2
|
iterm2
|
||||||
itsycal
|
itsycal
|
||||||
@@ -251,9 +253,11 @@ libreoffice
|
|||||||
linear
|
linear
|
||||||
logioptions
|
logioptions
|
||||||
logitechoptions
|
logitechoptions
|
||||||
|
logitechoptionsplus
|
||||||
logseq
|
logseq
|
||||||
loom
|
loom
|
||||||
lowprofile
|
lowprofile
|
||||||
|
lucidlink
|
||||||
lucifer
|
lucifer
|
||||||
lulu
|
lulu
|
||||||
macadminspython
|
macadminspython
|
||||||
@@ -261,6 +265,7 @@ maccyapp
|
|||||||
macfuse
|
macfuse
|
||||||
macoslaps
|
macoslaps
|
||||||
macports
|
macports
|
||||||
|
mactex
|
||||||
malwarebytes
|
malwarebytes
|
||||||
marathon
|
marathon
|
||||||
marathon2
|
marathon2
|
||||||
@@ -331,6 +336,7 @@ omniplan4
|
|||||||
omnipresence
|
omnipresence
|
||||||
onionshare
|
onionshare
|
||||||
onlyofficedesktop
|
onlyofficedesktop
|
||||||
|
onscreencontrol
|
||||||
openvpnconnect
|
openvpnconnect
|
||||||
openvpnconnectv3
|
openvpnconnectv3
|
||||||
opera
|
opera
|
||||||
@@ -356,6 +362,7 @@ prism9
|
|||||||
pritunl
|
pritunl
|
||||||
privileges
|
privileges
|
||||||
proctortrack
|
proctortrack
|
||||||
|
projectplace
|
||||||
promiseutility
|
promiseutility
|
||||||
promiseutilityr
|
promiseutilityr
|
||||||
propresenter7
|
propresenter7
|
||||||
@@ -429,6 +436,8 @@ sqlprostudio
|
|||||||
steelseriesengine
|
steelseriesengine
|
||||||
strongdm
|
strongdm
|
||||||
strongsync
|
strongsync
|
||||||
|
subethaedit
|
||||||
|
sublimemerge
|
||||||
sublimetext
|
sublimetext
|
||||||
superhuman
|
superhuman
|
||||||
supportapp
|
supportapp
|
||||||
@@ -476,6 +485,7 @@ unnaturalscrollwheels
|
|||||||
utm
|
utm
|
||||||
vagrant
|
vagrant
|
||||||
vanilla
|
vanilla
|
||||||
|
venturablocker
|
||||||
veracrypt
|
veracrypt
|
||||||
vimac
|
vimac
|
||||||
virtualbox
|
virtualbox
|
||||||
@@ -485,6 +495,7 @@ vivaldi
|
|||||||
vlc
|
vlc
|
||||||
vmwarehorizonclient
|
vmwarehorizonclient
|
||||||
vscodium
|
vscodium
|
||||||
|
vysor
|
||||||
wacomdrivers
|
wacomdrivers
|
||||||
wallyezflash
|
wallyezflash
|
||||||
webex
|
webex
|
||||||
|
|||||||
@@ -5,7 +5,11 @@
|
|||||||
|
|
||||||
LOGO="" # "mosyleb", "mosylem", "addigy", "microsoft", "ws1"
|
LOGO="" # "mosyleb", "mosylem", "addigy", "microsoft", "ws1"
|
||||||
|
|
||||||
#item="gfxcardstatus" # enter the software to install (if it has a label in future version of Installomator)
|
# Have the label been submittet in a PR for Installomator?
|
||||||
|
# What version of Installomator is it expected to be included in?
|
||||||
|
# Version 10.0
|
||||||
|
|
||||||
|
item="gfxcardstatus" # enter the software to install (if it has a label in future version of Installomator)
|
||||||
|
|
||||||
# Label variables below
|
# Label variables below
|
||||||
|
|
||||||
@@ -104,9 +108,10 @@ installomatorOptions="BLOCKING_PROCESS_ACTION=prompt_user DIALOG_CMD_FILE=${dial
|
|||||||
# INSTALL=force
|
# INSTALL=force
|
||||||
######################################################################
|
######################################################################
|
||||||
# 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 "item" above with a label.
|
# Fill out the label variables above, and those will be included in the Installomator call, circa on line 248
|
||||||
# Script will run this label through Installomator.
|
# Script will run this label through Installomator.
|
||||||
######################################################################
|
######################################################################
|
||||||
|
# v. 10.0.3 : A bit more logging on succes, and change in ending Dialog part.
|
||||||
# v. 10.0.2 : Improved icon checks and failovers
|
# v. 10.0.2 : Improved icon checks and failovers
|
||||||
# v. 10.0.1 : github-functions added. Improved appIcon handling. Can add the app to Dock using dockutil.
|
# v. 10.0.1 : github-functions added. Improved appIcon handling. Can add the app to Dock using dockutil.
|
||||||
# v. 10.0 : Integration with Dialog and Installomator v. 10
|
# v. 10.0 : Integration with Dialog and Installomator v. 10
|
||||||
@@ -119,6 +124,10 @@ export PATH=/usr/bin:/bin:/usr/sbin:/sbin
|
|||||||
|
|
||||||
echo "$(date +%F\ %T) [LOG-BEGIN] $item"
|
echo "$(date +%F\ %T) [LOG-BEGIN] $item"
|
||||||
|
|
||||||
|
if [[ -z "$item" ]]; then
|
||||||
|
item="$name"
|
||||||
|
fi
|
||||||
|
|
||||||
dialogUpdate() {
|
dialogUpdate() {
|
||||||
# $1: dialog command
|
# $1: dialog command
|
||||||
local dcommand="$1"
|
local dcommand="$1"
|
||||||
@@ -129,19 +138,19 @@ dialogUpdate() {
|
|||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
checkCmdOutput () {
|
checkCmdOutput () {
|
||||||
# $1: cmdOutput
|
local checkOutput="$1"
|
||||||
local cmdOutput="$1"
|
exitStatus="$( echo "${checkOutput}" | grep --binary-files=text -i "exit" | tail -1 | sed -E 's/.*exit code ([0-9]).*/\1/g' || true )"
|
||||||
exitStatus="$( echo "${cmdOutput}" | grep --binary-files=text -i "exit" | tail -1 | sed -E 's/.*exit code ([0-9]).*/\1/g' || true )"
|
|
||||||
if [[ ${exitStatus} -eq 0 ]] ; then
|
if [[ ${exitStatus} -eq 0 ]] ; then
|
||||||
echo "${item} succesfully installed."
|
echo "${item} succesfully installed."
|
||||||
warnOutput="$( echo "${cmdOutput}" | grep --binary-files=text -i "warn" || true )"
|
selectedOutput="$( echo "${checkOutput}" | grep --binary-files=text -E ": (REQ|ERROR|WARN)" || true )"
|
||||||
echo "$warnOutput"
|
echo "$selectedOutput"
|
||||||
else
|
else
|
||||||
echo "ERROR installing ${item}. Exit code ${exitStatus}"
|
echo "ERROR installing ${item}. Exit code ${exitStatus}"
|
||||||
echo "$cmdOutput"
|
echo "$checkOutput"
|
||||||
#errorOutput="$( echo "${cmdOutput}" | grep --binary-files=text -i "error" || true )"
|
#errorOutput="$( echo "${checkOutput}" | grep --binary-files=text -i "error" || true )"
|
||||||
#echo "$errorOutput"
|
#echo "$errorOutput"
|
||||||
fi
|
fi
|
||||||
|
#echo "$checkOutput"
|
||||||
}
|
}
|
||||||
|
|
||||||
# Check the currently logged in user
|
# Check the currently logged in user
|
||||||
@@ -176,9 +185,10 @@ caffexit () {
|
|||||||
# Mark: Installation begins
|
# Mark: Installation begins
|
||||||
installomatorVersion="$(${destFile} version | cut -d "." -f1 || true)"
|
installomatorVersion="$(${destFile} version | cut -d "." -f1 || true)"
|
||||||
|
|
||||||
if [[ $installomatorVersion -lt 10 ]] || [[ $(sw_vers -buildVersion) < "20A" ]]; then
|
if [[ $installomatorVersion -lt 10 ]] || [[ $(sw_vers -buildVersion | cut -c1-2) -lt 20 ]]; then
|
||||||
echo "Installomator should be at least version 10 to support Dialog. Installed version $installomatorVersion."
|
echo "Skipping swiftDialog UI, using notifications."
|
||||||
echo "And macOS 11 Big Sur (build 20A) is required for Dialog. Installed build $(sw_vers -buildVersion)."
|
#echo "Installomator should be at least version 10 to support swiftDialog. Installed version $installomatorVersion."
|
||||||
|
#echo "And macOS 11 Big Sur (build 20A) is required for swiftDialog. Installed build $(sw_vers -buildVersion)."
|
||||||
installomatorNotify="NOTIFY=all"
|
installomatorNotify="NOTIFY=all"
|
||||||
else
|
else
|
||||||
installomatorNotify="NOTIFY=silent"
|
installomatorNotify="NOTIFY=silent"
|
||||||
@@ -187,7 +197,7 @@ else
|
|||||||
echo "Cannot find dialog at $dialogApp"
|
echo "Cannot find dialog at $dialogApp"
|
||||||
# Install using Installlomator
|
# Install using Installlomator
|
||||||
cmdOutput="$(${destFile} dialog LOGO=$LOGO BLOCKING_PROCESS_ACTION=ignore LOGGING=REQ NOTIFY=silent || true)"
|
cmdOutput="$(${destFile} dialog LOGO=$LOGO BLOCKING_PROCESS_ACTION=ignore LOGGING=REQ NOTIFY=silent || true)"
|
||||||
checkCmdOutput $cmdOutput
|
checkCmdOutput "${cmdOutput}"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Configure and display swiftDialog
|
# Configure and display swiftDialog
|
||||||
@@ -200,24 +210,24 @@ else
|
|||||||
echo "$item $itemName"
|
echo "$item $itemName"
|
||||||
|
|
||||||
#Check icon (expecting beginning with “http” to be web-link and “/” to be disk file)
|
#Check icon (expecting beginning with “http” to be web-link and “/” to be disk file)
|
||||||
echo "icon before check: $icon"
|
#echo "icon before check: $icon"
|
||||||
if [[ "$(echo ${icon} | grep -iE "^(http|ftp).*")" != "" ]]; then
|
if [[ "$(echo ${icon} | grep -iE "^(http|ftp).*")" != "" ]]; then
|
||||||
echo "icon looks to be web-link"
|
#echo "icon looks to be web-link"
|
||||||
if ! curl -sfL --output /dev/null -r 0-0 "${icon}" ; then
|
if ! curl -sfL --output /dev/null -r 0-0 "${icon}" ; then
|
||||||
echo "ERROR: Cannot download link. Reset icon."
|
echo "ERROR: Cannot download ${icon} link. Reset icon."
|
||||||
icon=""
|
icon=""
|
||||||
fi
|
fi
|
||||||
elif [[ "$(echo ${icon} | grep -iE "^\/.*")" != "" ]]; then
|
elif [[ "$(echo ${icon} | grep -iE "^\/.*")" != "" ]]; then
|
||||||
echo "icon looks to be a file"
|
#echo "icon looks to be a file"
|
||||||
if [[ ! -a "${icon}" ]]; then
|
if [[ ! -a "${icon}" ]]; then
|
||||||
echo "ERROR: Cannot find file. Reset icon."
|
echo "ERROR: Cannot find icon file ${icon}. Reset icon."
|
||||||
icon=""
|
icon=""
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
echo "ERROR: Cannot figure out icon. Reset icon."
|
echo "ERROR: Cannot figure out icon ${icon}. Reset icon."
|
||||||
icon=""
|
icon=""
|
||||||
fi
|
fi
|
||||||
echo "icon after first check: $icon"
|
#echo "icon after first check: $icon"
|
||||||
# If no icon defined we are trying to search for installed app icon
|
# If no icon defined we are trying to search for installed app icon
|
||||||
if [[ "$icon" == "" ]]; then
|
if [[ "$icon" == "" ]]; then
|
||||||
appPath=$(mdfind "kind:application AND name:$itemName" | head -1 || true)
|
appPath=$(mdfind "kind:application AND name:$itemName" | head -1 || true)
|
||||||
@@ -226,7 +236,7 @@ else
|
|||||||
appIcon="${appIcon}.icns"
|
appIcon="${appIcon}.icns"
|
||||||
fi
|
fi
|
||||||
icon="${appPath}/Contents/Resources/${appIcon}"
|
icon="${appPath}/Contents/Resources/${appIcon}"
|
||||||
echo "Icon before file check: ${icon}"
|
#echo "Icon before file check: ${icon}"
|
||||||
if [ ! -f "${icon}" ]; then
|
if [ ! -f "${icon}" ]; then
|
||||||
# Using LOGO variable to show logo in swiftDialog
|
# Using LOGO variable to show logo in swiftDialog
|
||||||
case $LOGO in
|
case $LOGO in
|
||||||
@@ -294,7 +304,7 @@ fi
|
|||||||
|
|
||||||
# Install software using Installomator with valuesfromarguments
|
# Install software using Installomator with valuesfromarguments
|
||||||
cmdOutput="$(${destFile} valuesfromarguments LOGO=$LOGO \
|
cmdOutput="$(${destFile} valuesfromarguments LOGO=$LOGO \
|
||||||
name=${name} \
|
name=\"${name}\" \
|
||||||
type=${type} \
|
type=${type} \
|
||||||
packageID=${packageID} \
|
packageID=${packageID} \
|
||||||
downloadURL=\"$downloadURL\" \
|
downloadURL=\"$downloadURL\" \
|
||||||
@@ -303,7 +313,7 @@ cmdOutput="$(${destFile} valuesfromarguments LOGO=$LOGO \
|
|||||||
expectedTeamID=${expectedTeamID} \
|
expectedTeamID=${expectedTeamID} \
|
||||||
${installomatorOptions} ${installomatorNotify} || true)"
|
${installomatorOptions} ${installomatorNotify} || true)"
|
||||||
|
|
||||||
checkCmdOutput $cmdOutput
|
checkCmdOutput "${cmdOutput}"
|
||||||
|
|
||||||
# Mark: dockutil stuff
|
# Mark: dockutil stuff
|
||||||
if [[ $addToDock -eq 1 ]]; then
|
if [[ $addToDock -eq 1 ]]; then
|
||||||
@@ -312,7 +322,7 @@ if [[ $addToDock -eq 1 ]]; then
|
|||||||
echo "Cannot find dockutil at $dockutil, trying installation"
|
echo "Cannot find dockutil at $dockutil, trying installation"
|
||||||
# Install using Installlomator
|
# Install using Installlomator
|
||||||
cmdOutput="$(${destFile} dockutil LOGO=$LOGO BLOCKING_PROCESS_ACTION=ignore LOGGING=REQ NOTIFY=silent || true)"
|
cmdOutput="$(${destFile} dockutil LOGO=$LOGO BLOCKING_PROCESS_ACTION=ignore LOGGING=REQ NOTIFY=silent || true)"
|
||||||
checkCmdOutput $cmdOutput
|
checkCmdOutput "${cmdOutput}"
|
||||||
fi
|
fi
|
||||||
echo "Adding to Dock"
|
echo "Adding to Dock"
|
||||||
$dockutil --add "${appPath}" "${userHome}/Library/Preferences/com.apple.dock.plist" || true
|
$dockutil --add "${appPath}" "${userHome}/Library/Preferences/com.apple.dock.plist" || true
|
||||||
@@ -322,9 +332,7 @@ else
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
# Mark: Ending
|
# Mark: Ending
|
||||||
if [[ $installomatorVersion -lt 10 ]]; then
|
if [[ $installomatorVersion -ge 10 && $(sw_vers -buildVersion | cut -c1-2) -ge 20 ]]; then
|
||||||
echo "Again skipping Dialog stuff."
|
|
||||||
else
|
|
||||||
# close and quit dialog
|
# close and quit dialog
|
||||||
dialogUpdate "progress: complete"
|
dialogUpdate "progress: complete"
|
||||||
dialogUpdate "progresstext: Done"
|
dialogUpdate "progresstext: Done"
|
||||||
|
|||||||
@@ -5,15 +5,18 @@
|
|||||||
|
|
||||||
LOGO="" # "mosyleb", "mosylem", "addigy", "microsoft", "ws1"
|
LOGO="" # "mosyleb", "mosylem", "addigy", "microsoft", "ws1"
|
||||||
|
|
||||||
#item="" # enter the software to install (if it has a label in future version of Installomator)
|
# Have the label been submittet in a PR for Installomator?
|
||||||
|
# What version of Installomator is it expected to be included in?
|
||||||
|
# Version 10.0
|
||||||
|
|
||||||
|
item="clickshare" # enter the software to install (if it has a label in future version of Installomator)
|
||||||
|
|
||||||
# Variables for label
|
# Variables for label
|
||||||
name="ClickShare"
|
name="ClickShare" # If spaces in the name, fill out "${name}" in Installomator-call below, circa line 249. Spaces should be escaped in that line.
|
||||||
type="appInDmgInZip"
|
type="appInDmgInZip"
|
||||||
packageID=""
|
packageID=""
|
||||||
downloadURL="https://www.barco.com$( curl -fs "https://www.barco.com/en/clickshare/app" | grep -A6 -i "macos" | grep -i "FileNumber" | tr '"' "\n" | grep -i "FileNumber" )"
|
downloadURL="https://www.barco.com$( curl -fs "https://www.barco.com/en/clickshare/app" | grep -A6 -i "macos" | grep -i "FileNumber" | tr '"' "\n" | grep -i "FileNumber" )"
|
||||||
appNewVersion="$(eval "$( echo $downloadURL | sed -E 's/.*(MajorVersion.*BuildVersion=[0-9]*).*/\1/' | sed 's/&//g' )" ; ((MajorVersion++)) ; ((MajorVersion--)); ((MinorVersion++)) ; ((MinorVersion--)); ((PatchVersion++)) ; ((PatchVersion--)); ((BuildVersion++)) ; ((BuildVersion--)); echo "${MajorVersion}.${MinorVersion}.${PatchVersion}-b${BuildVersion}")"
|
appNewVersion="$(eval "$( echo $downloadURL | sed -E 's/.*(MajorVersion.*BuildVersion=[0-9]*).*/\1/' | sed 's/&//g' )" ; ((MajorVersion++)) ; ((MajorVersion--)); ((MinorVersion++)) ; ((MinorVersion--)); ((PatchVersion++)) ; ((PatchVersion--)); ((BuildVersion++)) ; ((BuildVersion--)); echo "${MajorVersion}.${MinorVersion}.${PatchVersion}-b${BuildVersion}")"
|
||||||
versionKey=""
|
|
||||||
expectedTeamID="P6CDJZR997"
|
expectedTeamID="P6CDJZR997"
|
||||||
|
|
||||||
# Dialog icon
|
# Dialog icon
|
||||||
@@ -51,9 +54,10 @@ installomatorOptions="BLOCKING_PROCESS_ACTION=prompt_user DIALOG_CMD_FILE=${dial
|
|||||||
# INSTALL=force
|
# INSTALL=force
|
||||||
######################################################################
|
######################################################################
|
||||||
# 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 "item" above with a label.
|
# Fill out the label variables above, and those will be included in the Installomator call, circa on line 248
|
||||||
# Script will run this label through Installomator.
|
# Script will run this label through Installomator.
|
||||||
######################################################################
|
######################################################################
|
||||||
|
# v. 10.0.3 : A bit more logging on succes, and change in ending Dialog part.
|
||||||
# v. 10.0.2 : Improved icon checks and failovers
|
# v. 10.0.2 : Improved icon checks and failovers
|
||||||
# v. 10.0.1 : Improved appIcon handling. Can add the app to Dock using dockutil
|
# v. 10.0.1 : Improved appIcon handling. Can add the app to Dock using dockutil
|
||||||
# v. 10.0 : Integration with Dialog and Installomator v. 10
|
# v. 10.0 : Integration with Dialog and Installomator v. 10
|
||||||
@@ -66,6 +70,10 @@ export PATH=/usr/bin:/bin:/usr/sbin:/sbin
|
|||||||
|
|
||||||
echo "$(date +%F\ %T) [LOG-BEGIN] $item"
|
echo "$(date +%F\ %T) [LOG-BEGIN] $item"
|
||||||
|
|
||||||
|
if [[ -z "$item" ]]; then
|
||||||
|
item="$name"
|
||||||
|
fi
|
||||||
|
|
||||||
dialogUpdate() {
|
dialogUpdate() {
|
||||||
# $1: dialog command
|
# $1: dialog command
|
||||||
local dcommand="$1"
|
local dcommand="$1"
|
||||||
@@ -76,24 +84,24 @@ dialogUpdate() {
|
|||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
checkCmdOutput () {
|
checkCmdOutput () {
|
||||||
# $1: cmdOutput
|
local checkOutput="$1"
|
||||||
local cmdOutput="$1"
|
exitStatus="$( echo "${checkOutput}" | grep --binary-files=text -i "exit" | tail -1 | sed -E 's/.*exit code ([0-9]).*/\1/g' || true )"
|
||||||
exitStatus="$( echo "${cmdOutput}" | grep --binary-files=text -i "exit" | tail -1 | sed -E 's/.*exit code ([0-9]).*/\1/g' || true )"
|
|
||||||
if [[ ${exitStatus} -eq 0 ]] ; then
|
if [[ ${exitStatus} -eq 0 ]] ; then
|
||||||
echo "${item} succesfully installed."
|
echo "${item} succesfully installed."
|
||||||
warnOutput="$( echo "${cmdOutput}" | grep --binary-files=text -i "warn" || true )"
|
selectedOutput="$( echo "${checkOutput}" | grep --binary-files=text -E ": (REQ|ERROR|WARN)" || true )"
|
||||||
echo "$warnOutput"
|
echo "$selectedOutput"
|
||||||
else
|
else
|
||||||
echo "ERROR installing ${item}. Exit code ${exitStatus}"
|
echo "ERROR installing ${item}. Exit code ${exitStatus}"
|
||||||
echo "$cmdOutput"
|
echo "$checkOutput"
|
||||||
#errorOutput="$( echo "${cmdOutput}" | grep --binary-files=text -i "error" || true )"
|
#errorOutput="$( echo "${checkOutput}" | grep --binary-files=text -i "error" || true )"
|
||||||
#echo "$errorOutput"
|
#echo "$errorOutput"
|
||||||
fi
|
fi
|
||||||
|
#echo "$checkOutput"
|
||||||
}
|
}
|
||||||
|
|
||||||
# Check the currently logged in user
|
# Check the currently logged in user
|
||||||
currentUser=$(stat -f "%Su" /dev/console)
|
currentUser=$(stat -f "%Su" /dev/console)
|
||||||
if [ -z "$currentUser" ] || [ "$currentUser" = "loginwindow" ] || [ "$currentUser" = "_mbsetupuser" ] || [ "$currentUser" = "root" ]; then
|
if [[ -z "$currentUser" ]] || [[ "$currentUser" = "loginwindow" ]] || [[ "$currentUser" = "_mbsetupuser" ]] || [[ "$currentUser" = "root" ]]; then
|
||||||
echo "ERROR. Logged in user is $currentUser! Cannot proceed."
|
echo "ERROR. Logged in user is $currentUser! Cannot proceed."
|
||||||
exit 97
|
exit 97
|
||||||
fi
|
fi
|
||||||
@@ -123,9 +131,10 @@ caffexit () {
|
|||||||
# Mark: Installation begins
|
# Mark: Installation begins
|
||||||
installomatorVersion="$(${destFile} version | cut -d "." -f1 || true)"
|
installomatorVersion="$(${destFile} version | cut -d "." -f1 || true)"
|
||||||
|
|
||||||
if [[ $installomatorVersion -lt 10 ]] || [[ $(sw_vers -buildVersion) < "20A" ]]; then
|
if [[ $installomatorVersion -lt 10 ]] || [[ $(sw_vers -buildVersion | cut -c1-2) -lt 20 ]]; then
|
||||||
echo "Installomator should be at least version 10 to support Dialog. Installed version $installomatorVersion."
|
echo "Skipping swiftDialog UI, using notifications."
|
||||||
echo "And macOS 11 Big Sur (build 20A) is required for Dialog. Installed build $(sw_vers -buildVersion)."
|
#echo "Installomator should be at least version 10 to support swiftDialog. Installed version $installomatorVersion."
|
||||||
|
#echo "And macOS 11 Big Sur (build 20A) is required for swiftDialog. Installed build $(sw_vers -buildVersion)."
|
||||||
installomatorNotify="NOTIFY=all"
|
installomatorNotify="NOTIFY=all"
|
||||||
else
|
else
|
||||||
installomatorNotify="NOTIFY=silent"
|
installomatorNotify="NOTIFY=silent"
|
||||||
@@ -134,7 +143,7 @@ else
|
|||||||
echo "Cannot find dialog at $dialogApp"
|
echo "Cannot find dialog at $dialogApp"
|
||||||
# Install using Installlomator
|
# Install using Installlomator
|
||||||
cmdOutput="$(${destFile} dialog LOGO=$LOGO BLOCKING_PROCESS_ACTION=ignore LOGGING=REQ NOTIFY=silent || true)"
|
cmdOutput="$(${destFile} dialog LOGO=$LOGO BLOCKING_PROCESS_ACTION=ignore LOGGING=REQ NOTIFY=silent || true)"
|
||||||
checkCmdOutput $cmdOutput
|
checkCmdOutput "${cmdOutput}"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Configure and display swiftDialog
|
# Configure and display swiftDialog
|
||||||
@@ -147,24 +156,24 @@ else
|
|||||||
echo "$item $itemName"
|
echo "$item $itemName"
|
||||||
|
|
||||||
#Check icon (expecting beginning with “http” to be web-link and “/” to be disk file)
|
#Check icon (expecting beginning with “http” to be web-link and “/” to be disk file)
|
||||||
echo "icon before check: $icon"
|
#echo "icon before check: $icon"
|
||||||
if [[ "$(echo ${icon} | grep -iE "^(http|ftp).*")" != "" ]]; then
|
if [[ "$(echo ${icon} | grep -iE "^(http|ftp).*")" != "" ]]; then
|
||||||
echo "icon looks to be web-link"
|
#echo "icon looks to be web-link"
|
||||||
if ! curl -sfL --output /dev/null -r 0-0 "${icon}" ; then
|
if ! curl -sfL --output /dev/null -r 0-0 "${icon}" ; then
|
||||||
echo "ERROR: Cannot download link. Reset icon."
|
echo "ERROR: Cannot download ${icon} link. Reset icon."
|
||||||
icon=""
|
icon=""
|
||||||
fi
|
fi
|
||||||
elif [[ "$(echo ${icon} | grep -iE "^\/.*")" != "" ]]; then
|
elif [[ "$(echo ${icon} | grep -iE "^\/.*")" != "" ]]; then
|
||||||
echo "icon looks to be a file"
|
#echo "icon looks to be a file"
|
||||||
if [[ ! -a "${icon}" ]]; then
|
if [[ ! -a "${icon}" ]]; then
|
||||||
echo "ERROR: Cannot find file. Reset icon."
|
echo "ERROR: Cannot find icon file ${icon}. Reset icon."
|
||||||
icon=""
|
icon=""
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
echo "ERROR: Cannot figure out icon. Reset icon."
|
echo "ERROR: Cannot figure out icon ${icon}. Reset icon."
|
||||||
icon=""
|
icon=""
|
||||||
fi
|
fi
|
||||||
echo "icon after first check: $icon"
|
#echo "icon after first check: $icon"
|
||||||
# If no icon defined we are trying to search for installed app icon
|
# If no icon defined we are trying to search for installed app icon
|
||||||
if [[ "$icon" == "" ]]; then
|
if [[ "$icon" == "" ]]; then
|
||||||
appPath=$(mdfind "kind:application AND name:$itemName" | head -1 || true)
|
appPath=$(mdfind "kind:application AND name:$itemName" | head -1 || true)
|
||||||
@@ -173,7 +182,7 @@ else
|
|||||||
appIcon="${appIcon}.icns"
|
appIcon="${appIcon}.icns"
|
||||||
fi
|
fi
|
||||||
icon="${appPath}/Contents/Resources/${appIcon}"
|
icon="${appPath}/Contents/Resources/${appIcon}"
|
||||||
echo "Icon before file check: ${icon}"
|
#echo "Icon before file check: ${icon}"
|
||||||
if [ ! -f "${icon}" ]; then
|
if [ ! -f "${icon}" ]; then
|
||||||
# Using LOGO variable to show logo in swiftDialog
|
# Using LOGO variable to show logo in swiftDialog
|
||||||
case $LOGO in
|
case $LOGO in
|
||||||
@@ -241,7 +250,7 @@ fi
|
|||||||
|
|
||||||
# Install software using Installomator with valuesfromarguments
|
# Install software using Installomator with valuesfromarguments
|
||||||
cmdOutput="$(${destFile} valuesfromarguments LOGO=$LOGO \
|
cmdOutput="$(${destFile} valuesfromarguments LOGO=$LOGO \
|
||||||
name=${name} \
|
name=\"${name}\" \
|
||||||
type=${type} \
|
type=${type} \
|
||||||
packageID=${packageID} \
|
packageID=${packageID} \
|
||||||
downloadURL=\"$downloadURL\" \
|
downloadURL=\"$downloadURL\" \
|
||||||
@@ -250,7 +259,7 @@ cmdOutput="$(${destFile} valuesfromarguments LOGO=$LOGO \
|
|||||||
expectedTeamID=${expectedTeamID} \
|
expectedTeamID=${expectedTeamID} \
|
||||||
${installomatorOptions} ${installomatorNotify} || true)"
|
${installomatorOptions} ${installomatorNotify} || true)"
|
||||||
|
|
||||||
checkCmdOutput $cmdOutput
|
checkCmdOutput "${cmdOutput}"
|
||||||
|
|
||||||
# Mark: dockutil stuff
|
# Mark: dockutil stuff
|
||||||
if [[ $addToDock -eq 1 ]]; then
|
if [[ $addToDock -eq 1 ]]; then
|
||||||
@@ -259,7 +268,7 @@ if [[ $addToDock -eq 1 ]]; then
|
|||||||
echo "Cannot find dockutil at $dockutil, trying installation"
|
echo "Cannot find dockutil at $dockutil, trying installation"
|
||||||
# Install using Installlomator
|
# Install using Installlomator
|
||||||
cmdOutput="$(${destFile} dockutil LOGO=$LOGO BLOCKING_PROCESS_ACTION=ignore LOGGING=REQ NOTIFY=silent || true)"
|
cmdOutput="$(${destFile} dockutil LOGO=$LOGO BLOCKING_PROCESS_ACTION=ignore LOGGING=REQ NOTIFY=silent || true)"
|
||||||
checkCmdOutput $cmdOutput
|
checkCmdOutput "${cmdOutput}"
|
||||||
fi
|
fi
|
||||||
echo "Adding to Dock"
|
echo "Adding to Dock"
|
||||||
$dockutil --add "${appPath}" "${userHome}/Library/Preferences/com.apple.dock.plist" || true
|
$dockutil --add "${appPath}" "${userHome}/Library/Preferences/com.apple.dock.plist" || true
|
||||||
@@ -269,9 +278,7 @@ else
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
# Mark: Ending
|
# Mark: Ending
|
||||||
if [[ $installomatorVersion -lt 10 ]]; then
|
if [[ $installomatorVersion -ge 10 && $(sw_vers -buildVersion | cut -c1-2) -ge 20 ]]; then
|
||||||
echo "Again skipping Dialog stuff."
|
|
||||||
else
|
|
||||||
# close and quit dialog
|
# close and quit dialog
|
||||||
dialogUpdate "progress: complete"
|
dialogUpdate "progress: complete"
|
||||||
dialogUpdate "progresstext: Done"
|
dialogUpdate "progresstext: Done"
|
||||||
|
|||||||
@@ -45,6 +45,7 @@ installomatorOptions="BLOCKING_PROCESS_ACTION=tell_user_then_quit DIALOG_CMD_FIL
|
|||||||
# Fill the variable "item" above with a label.
|
# Fill the variable "item" above with a label.
|
||||||
# Script will run this label through Installomator.
|
# Script will run this label through Installomator.
|
||||||
######################################################################
|
######################################################################
|
||||||
|
# v. 10.0.3 : A bit more logging on succes, and change in ending Dialog part.
|
||||||
# v. 10.0.2 : Improved icon checks and failovers
|
# v. 10.0.2 : Improved icon checks and failovers
|
||||||
# v. 10.0.1 : Improved appIcon handling. Can add the app to Dock using dockutil
|
# v. 10.0.1 : Improved appIcon handling. Can add the app to Dock using dockutil
|
||||||
# v. 10.0 : Integration with Dialog and Installomator v. 10
|
# v. 10.0 : Integration with Dialog and Installomator v. 10
|
||||||
@@ -67,19 +68,19 @@ dialogUpdate() {
|
|||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
checkCmdOutput () {
|
checkCmdOutput () {
|
||||||
# $1: cmdOutput
|
local checkOutput="$1"
|
||||||
local cmdOutput="$1"
|
exitStatus="$( echo "${checkOutput}" | grep --binary-files=text -i "exit" | tail -1 | sed -E 's/.*exit code ([0-9]).*/\1/g' || true )"
|
||||||
exitStatus="$( echo "${cmdOutput}" | grep --binary-files=text -i "exit" | tail -1 | sed -E 's/.*exit code ([0-9]).*/\1/g' || true )"
|
|
||||||
if [[ ${exitStatus} -eq 0 ]] ; then
|
if [[ ${exitStatus} -eq 0 ]] ; then
|
||||||
echo "${item} succesfully installed."
|
echo "${item} succesfully installed."
|
||||||
warnOutput="$( echo "${cmdOutput}" | grep --binary-files=text -i "warn" || true )"
|
selectedOutput="$( echo "${checkOutput}" | grep --binary-files=text -E ": (REQ|ERROR|WARN)" || true )"
|
||||||
echo "$warnOutput"
|
echo "$selectedOutput"
|
||||||
else
|
else
|
||||||
echo "ERROR installing ${item}. Exit code ${exitStatus}"
|
echo "ERROR installing ${item}. Exit code ${exitStatus}"
|
||||||
echo "$cmdOutput"
|
echo "$checkOutput"
|
||||||
#errorOutput="$( echo "${cmdOutput}" | grep --binary-files=text -i "error" || true )"
|
#errorOutput="$( echo "${checkOutput}" | grep --binary-files=text -i "error" || true )"
|
||||||
#echo "$errorOutput"
|
#echo "$errorOutput"
|
||||||
fi
|
fi
|
||||||
|
#echo "$checkOutput"
|
||||||
}
|
}
|
||||||
|
|
||||||
# Check the currently logged in user
|
# Check the currently logged in user
|
||||||
@@ -114,9 +115,10 @@ caffexit () {
|
|||||||
# Mark: Installation begins
|
# Mark: Installation begins
|
||||||
installomatorVersion="$(${destFile} version | cut -d "." -f1 || true)"
|
installomatorVersion="$(${destFile} version | cut -d "." -f1 || true)"
|
||||||
|
|
||||||
if [[ $installomatorVersion -lt 10 ]] || [[ $(sw_vers -buildVersion) < "20A" ]]; then
|
if [[ $installomatorVersion -lt 10 ]] || [[ $(sw_vers -buildVersion | cut -c1-2) -lt 20 ]]; then
|
||||||
echo "Installomator should be at least version 10 to support Dialog. Installed version $installomatorVersion."
|
echo "Skipping swiftDialog UI, using notifications."
|
||||||
echo "And macOS 11 Big Sur (build 20A) is required for Dialog. Installed build $(sw_vers -buildVersion)."
|
#echo "Installomator should be at least version 10 to support swiftDialog. Installed version $installomatorVersion."
|
||||||
|
#echo "And macOS 11 Big Sur (build 20A) is required for swiftDialog. Installed build $(sw_vers -buildVersion)."
|
||||||
installomatorNotify="NOTIFY=all"
|
installomatorNotify="NOTIFY=all"
|
||||||
else
|
else
|
||||||
installomatorNotify="NOTIFY=silent"
|
installomatorNotify="NOTIFY=silent"
|
||||||
@@ -125,7 +127,7 @@ else
|
|||||||
echo "Cannot find dialog at $dialogApp"
|
echo "Cannot find dialog at $dialogApp"
|
||||||
# Install using Installlomator
|
# Install using Installlomator
|
||||||
cmdOutput="$(${destFile} dialog LOGO=$LOGO BLOCKING_PROCESS_ACTION=ignore LOGGING=REQ NOTIFY=silent || true)"
|
cmdOutput="$(${destFile} dialog LOGO=$LOGO BLOCKING_PROCESS_ACTION=ignore LOGGING=REQ NOTIFY=silent || true)"
|
||||||
checkCmdOutput $cmdOutput
|
checkCmdOutput "${cmdOutput}"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Configure and display swiftDialog
|
# Configure and display swiftDialog
|
||||||
@@ -138,24 +140,24 @@ else
|
|||||||
echo "$item $itemName"
|
echo "$item $itemName"
|
||||||
|
|
||||||
#Check icon (expecting beginning with “http” to be web-link and “/” to be disk file)
|
#Check icon (expecting beginning with “http” to be web-link and “/” to be disk file)
|
||||||
echo "icon before check: $icon"
|
#echo "icon before check: $icon"
|
||||||
if [[ "$(echo ${icon} | grep -iE "^(http|ftp).*")" != "" ]]; then
|
if [[ "$(echo ${icon} | grep -iE "^(http|ftp).*")" != "" ]]; then
|
||||||
echo "icon looks to be web-link"
|
#echo "icon looks to be web-link"
|
||||||
if ! curl -sfL --output /dev/null -r 0-0 "${icon}" ; then
|
if ! curl -sfL --output /dev/null -r 0-0 "${icon}" ; then
|
||||||
echo "ERROR: Cannot download link. Reset icon."
|
echo "ERROR: Cannot download ${icon} link. Reset icon."
|
||||||
icon=""
|
icon=""
|
||||||
fi
|
fi
|
||||||
elif [[ "$(echo ${icon} | grep -iE "^\/.*")" != "" ]]; then
|
elif [[ "$(echo ${icon} | grep -iE "^\/.*")" != "" ]]; then
|
||||||
echo "icon looks to be a file"
|
#echo "icon looks to be a file"
|
||||||
if [[ ! -a "${icon}" ]]; then
|
if [[ ! -a "${icon}" ]]; then
|
||||||
echo "ERROR: Cannot find file. Reset icon."
|
echo "ERROR: Cannot find icon file ${icon}. Reset icon."
|
||||||
icon=""
|
icon=""
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
echo "ERROR: Cannot figure out icon. Reset icon."
|
echo "ERROR: Cannot figure out icon ${icon}. Reset icon."
|
||||||
icon=""
|
icon=""
|
||||||
fi
|
fi
|
||||||
echo "icon after first check: $icon"
|
#echo "icon after first check: $icon"
|
||||||
# If no icon defined we are trying to search for installed app icon
|
# If no icon defined we are trying to search for installed app icon
|
||||||
if [[ "$icon" == "" ]]; then
|
if [[ "$icon" == "" ]]; then
|
||||||
appPath=$(mdfind "kind:application AND name:$itemName" | head -1 || true)
|
appPath=$(mdfind "kind:application AND name:$itemName" | head -1 || true)
|
||||||
@@ -164,7 +166,7 @@ else
|
|||||||
appIcon="${appIcon}.icns"
|
appIcon="${appIcon}.icns"
|
||||||
fi
|
fi
|
||||||
icon="${appPath}/Contents/Resources/${appIcon}"
|
icon="${appPath}/Contents/Resources/${appIcon}"
|
||||||
echo "Icon before file check: ${icon}"
|
#echo "Icon before file check: ${icon}"
|
||||||
if [ ! -f "${icon}" ]; then
|
if [ ! -f "${icon}" ]; then
|
||||||
# Using LOGO variable to show logo in swiftDialog
|
# Using LOGO variable to show logo in swiftDialog
|
||||||
case $LOGO in
|
case $LOGO in
|
||||||
@@ -232,7 +234,7 @@ fi
|
|||||||
|
|
||||||
# Install software using Installomator
|
# Install software using Installomator
|
||||||
cmdOutput="$(${destFile} ${item} LOGO=$LOGO ${installomatorOptions} ${installomatorNotify} || true)"
|
cmdOutput="$(${destFile} ${item} LOGO=$LOGO ${installomatorOptions} ${installomatorNotify} || true)"
|
||||||
checkCmdOutput $cmdOutput
|
checkCmdOutput "${cmdOutput}"
|
||||||
|
|
||||||
# Mark: dockutil stuff
|
# Mark: dockutil stuff
|
||||||
if [[ $addToDock -eq 1 ]]; then
|
if [[ $addToDock -eq 1 ]]; then
|
||||||
@@ -241,7 +243,7 @@ if [[ $addToDock -eq 1 ]]; then
|
|||||||
echo "Cannot find dockutil at $dockutil, trying installation"
|
echo "Cannot find dockutil at $dockutil, trying installation"
|
||||||
# Install using Installlomator
|
# Install using Installlomator
|
||||||
cmdOutput="$(${destFile} dockutil LOGO=$LOGO BLOCKING_PROCESS_ACTION=ignore LOGGING=REQ NOTIFY=silent || true)"
|
cmdOutput="$(${destFile} dockutil LOGO=$LOGO BLOCKING_PROCESS_ACTION=ignore LOGGING=REQ NOTIFY=silent || true)"
|
||||||
checkCmdOutput $cmdOutput
|
checkCmdOutput "${cmdOutput}"
|
||||||
fi
|
fi
|
||||||
echo "Adding to Dock"
|
echo "Adding to Dock"
|
||||||
$dockutil --add "${appPath}" "${userHome}/Library/Preferences/com.apple.dock.plist" || true
|
$dockutil --add "${appPath}" "${userHome}/Library/Preferences/com.apple.dock.plist" || true
|
||||||
@@ -251,9 +253,7 @@ else
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
# Mark: Ending
|
# Mark: Ending
|
||||||
if [[ $installomatorVersion -lt 10 ]]; then
|
if [[ $installomatorVersion -ge 10 && $(sw_vers -buildVersion | cut -c1-2) -ge 20 ]]; then
|
||||||
echo "Again skipping Dialog stuff."
|
|
||||||
else
|
|
||||||
# close and quit dialog
|
# close and quit dialog
|
||||||
dialogUpdate "progress: complete"
|
dialogUpdate "progress: complete"
|
||||||
dialogUpdate "progresstext: Done"
|
dialogUpdate "progresstext: Done"
|
||||||
|
|||||||
@@ -45,6 +45,7 @@ installomatorOptions="BLOCKING_PROCESS_ACTION=prompt_user DIALOG_CMD_FILE=${dial
|
|||||||
# Fill the variable "item" above with a label.
|
# Fill the variable "item" above with a label.
|
||||||
# Script will run this label through Installomator.
|
# Script will run this label through Installomator.
|
||||||
######################################################################
|
######################################################################
|
||||||
|
# v. 10.0.3 : A bit more logging on succes, and change in ending Dialog part.
|
||||||
# v. 10.0.2 : Improved icon checks and failovers
|
# v. 10.0.2 : Improved icon checks and failovers
|
||||||
# v. 10.0.1 : Improved appIcon handling. Can add the app to Dock using dockutil
|
# v. 10.0.1 : Improved appIcon handling. Can add the app to Dock using dockutil
|
||||||
# v. 10.0 : Integration with Dialog and Installomator v. 10
|
# v. 10.0 : Integration with Dialog and Installomator v. 10
|
||||||
@@ -67,19 +68,19 @@ dialogUpdate() {
|
|||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
checkCmdOutput () {
|
checkCmdOutput () {
|
||||||
# $1: cmdOutput
|
local checkOutput="$1"
|
||||||
local cmdOutput="$1"
|
exitStatus="$( echo "${checkOutput}" | grep --binary-files=text -i "exit" | tail -1 | sed -E 's/.*exit code ([0-9]).*/\1/g' || true )"
|
||||||
exitStatus="$( echo "${cmdOutput}" | grep --binary-files=text -i "exit" | tail -1 | sed -E 's/.*exit code ([0-9]).*/\1/g' || true )"
|
|
||||||
if [[ ${exitStatus} -eq 0 ]] ; then
|
if [[ ${exitStatus} -eq 0 ]] ; then
|
||||||
echo "${item} succesfully installed."
|
echo "${item} succesfully installed."
|
||||||
warnOutput="$( echo "${cmdOutput}" | grep --binary-files=text -i "warn" || true )"
|
selectedOutput="$( echo "${checkOutput}" | grep --binary-files=text -E ": (REQ|ERROR|WARN)" || true )"
|
||||||
echo "$warnOutput"
|
echo "$selectedOutput"
|
||||||
else
|
else
|
||||||
echo "ERROR installing ${item}. Exit code ${exitStatus}"
|
echo "ERROR installing ${item}. Exit code ${exitStatus}"
|
||||||
echo "$cmdOutput"
|
echo "$checkOutput"
|
||||||
#errorOutput="$( echo "${cmdOutput}" | grep --binary-files=text -i "error" || true )"
|
#errorOutput="$( echo "${checkOutput}" | grep --binary-files=text -i "error" || true )"
|
||||||
#echo "$errorOutput"
|
#echo "$errorOutput"
|
||||||
fi
|
fi
|
||||||
|
#echo "$checkOutput"
|
||||||
}
|
}
|
||||||
|
|
||||||
# Check the currently logged in user
|
# Check the currently logged in user
|
||||||
@@ -114,9 +115,10 @@ caffexit () {
|
|||||||
# Mark: Installation begins
|
# Mark: Installation begins
|
||||||
installomatorVersion="$(${destFile} version | cut -d "." -f1 || true)"
|
installomatorVersion="$(${destFile} version | cut -d "." -f1 || true)"
|
||||||
|
|
||||||
if [[ $installomatorVersion -lt 10 ]] || [[ $(sw_vers -buildVersion) < "20A" ]]; then
|
if [[ $installomatorVersion -lt 10 ]] || [[ $(sw_vers -buildVersion | cut -c1-2) -lt 20 ]]; then
|
||||||
echo "Installomator should be at least version 10 to support Dialog. Installed version $installomatorVersion."
|
echo "Skipping swiftDialog UI, using notifications."
|
||||||
echo "And macOS 11 Big Sur (build 20A) is required for Dialog. Installed build $(sw_vers -buildVersion)."
|
#echo "Installomator should be at least version 10 to support swiftDialog. Installed version $installomatorVersion."
|
||||||
|
#echo "And macOS 11 Big Sur (build 20A) is required for swiftDialog. Installed build $(sw_vers -buildVersion)."
|
||||||
installomatorNotify="NOTIFY=all"
|
installomatorNotify="NOTIFY=all"
|
||||||
else
|
else
|
||||||
installomatorNotify="NOTIFY=silent"
|
installomatorNotify="NOTIFY=silent"
|
||||||
@@ -125,7 +127,7 @@ else
|
|||||||
echo "Cannot find dialog at $dialogApp"
|
echo "Cannot find dialog at $dialogApp"
|
||||||
# Install using Installlomator
|
# Install using Installlomator
|
||||||
cmdOutput="$(${destFile} dialog LOGO=$LOGO BLOCKING_PROCESS_ACTION=ignore LOGGING=REQ NOTIFY=silent || true)"
|
cmdOutput="$(${destFile} dialog LOGO=$LOGO BLOCKING_PROCESS_ACTION=ignore LOGGING=REQ NOTIFY=silent || true)"
|
||||||
checkCmdOutput $cmdOutput
|
checkCmdOutput "${cmdOutput}"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Configure and display swiftDialog
|
# Configure and display swiftDialog
|
||||||
@@ -138,24 +140,24 @@ else
|
|||||||
echo "$item $itemName"
|
echo "$item $itemName"
|
||||||
|
|
||||||
#Check icon (expecting beginning with “http” to be web-link and “/” to be disk file)
|
#Check icon (expecting beginning with “http” to be web-link and “/” to be disk file)
|
||||||
echo "icon before check: $icon"
|
#echo "icon before check: $icon"
|
||||||
if [[ "$(echo ${icon} | grep -iE "^(http|ftp).*")" != "" ]]; then
|
if [[ "$(echo ${icon} | grep -iE "^(http|ftp).*")" != "" ]]; then
|
||||||
echo "icon looks to be web-link"
|
#echo "icon looks to be web-link"
|
||||||
if ! curl -sfL --output /dev/null -r 0-0 "${icon}" ; then
|
if ! curl -sfL --output /dev/null -r 0-0 "${icon}" ; then
|
||||||
echo "ERROR: Cannot download link. Reset icon."
|
echo "ERROR: Cannot download ${icon} link. Reset icon."
|
||||||
icon=""
|
icon=""
|
||||||
fi
|
fi
|
||||||
elif [[ "$(echo ${icon} | grep -iE "^\/.*")" != "" ]]; then
|
elif [[ "$(echo ${icon} | grep -iE "^\/.*")" != "" ]]; then
|
||||||
echo "icon looks to be a file"
|
#echo "icon looks to be a file"
|
||||||
if [[ ! -a "${icon}" ]]; then
|
if [[ ! -a "${icon}" ]]; then
|
||||||
echo "ERROR: Cannot find file. Reset icon."
|
echo "ERROR: Cannot find icon file ${icon}. Reset icon."
|
||||||
icon=""
|
icon=""
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
echo "ERROR: Cannot figure out icon. Reset icon."
|
echo "ERROR: Cannot figure out icon ${icon}. Reset icon."
|
||||||
icon=""
|
icon=""
|
||||||
fi
|
fi
|
||||||
echo "icon after first check: $icon"
|
#echo "icon after first check: $icon"
|
||||||
# If no icon defined we are trying to search for installed app icon
|
# If no icon defined we are trying to search for installed app icon
|
||||||
if [[ "$icon" == "" ]]; then
|
if [[ "$icon" == "" ]]; then
|
||||||
appPath=$(mdfind "kind:application AND name:$itemName" | head -1 || true)
|
appPath=$(mdfind "kind:application AND name:$itemName" | head -1 || true)
|
||||||
@@ -164,7 +166,7 @@ else
|
|||||||
appIcon="${appIcon}.icns"
|
appIcon="${appIcon}.icns"
|
||||||
fi
|
fi
|
||||||
icon="${appPath}/Contents/Resources/${appIcon}"
|
icon="${appPath}/Contents/Resources/${appIcon}"
|
||||||
echo "Icon before file check: ${icon}"
|
#echo "Icon before file check: ${icon}"
|
||||||
if [ ! -f "${icon}" ]; then
|
if [ ! -f "${icon}" ]; then
|
||||||
# Using LOGO variable to show logo in swiftDialog
|
# Using LOGO variable to show logo in swiftDialog
|
||||||
case $LOGO in
|
case $LOGO in
|
||||||
@@ -232,7 +234,7 @@ fi
|
|||||||
|
|
||||||
# Install software using Installomator
|
# Install software using Installomator
|
||||||
cmdOutput="$(${destFile} ${item} LOGO=$LOGO ${installomatorOptions} ${installomatorNotify} || true)"
|
cmdOutput="$(${destFile} ${item} LOGO=$LOGO ${installomatorOptions} ${installomatorNotify} || true)"
|
||||||
checkCmdOutput $cmdOutput
|
checkCmdOutput "${cmdOutput}"
|
||||||
|
|
||||||
# Mark: dockutil stuff
|
# Mark: dockutil stuff
|
||||||
if [[ $addToDock -eq 1 ]]; then
|
if [[ $addToDock -eq 1 ]]; then
|
||||||
@@ -241,7 +243,7 @@ if [[ $addToDock -eq 1 ]]; then
|
|||||||
echo "Cannot find dockutil at $dockutil, trying installation"
|
echo "Cannot find dockutil at $dockutil, trying installation"
|
||||||
# Install using Installlomator
|
# Install using Installlomator
|
||||||
cmdOutput="$(${destFile} dockutil LOGO=$LOGO BLOCKING_PROCESS_ACTION=ignore LOGGING=REQ NOTIFY=silent || true)"
|
cmdOutput="$(${destFile} dockutil LOGO=$LOGO BLOCKING_PROCESS_ACTION=ignore LOGGING=REQ NOTIFY=silent || true)"
|
||||||
checkCmdOutput $cmdOutput
|
checkCmdOutput "${cmdOutput}"
|
||||||
fi
|
fi
|
||||||
echo "Adding to Dock"
|
echo "Adding to Dock"
|
||||||
for appPath in "${appPaths[@]}"; do
|
for appPath in "${appPaths[@]}"; do
|
||||||
@@ -254,9 +256,7 @@ else
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
# Mark: Ending
|
# Mark: Ending
|
||||||
if [[ $installomatorVersion -lt 10 ]]; then
|
iif [[ $installomatorVersion -ge 10 && $(sw_vers -buildVersion | cut -c1-2) -ge 20 ]]; then
|
||||||
echo "Again skipping Dialog stuff."
|
|
||||||
else
|
|
||||||
# close and quit dialog
|
# close and quit dialog
|
||||||
dialogUpdate "progress: complete"
|
dialogUpdate "progress: complete"
|
||||||
dialogUpdate "progresstext: Done"
|
dialogUpdate "progresstext: Done"
|
||||||
|
|||||||
@@ -42,6 +42,7 @@ installomatorOptions="BLOCKING_PROCESS_ACTION=prompt_user DIALOG_CMD_FILE=${dial
|
|||||||
# Fill the variable "item" above with a label.
|
# Fill the variable "item" above with a label.
|
||||||
# Script will run this label through Installomator.
|
# Script will run this label through Installomator.
|
||||||
######################################################################
|
######################################################################
|
||||||
|
# v. 10.0.3 : A bit more logging on succes, and change in ending Dialog part.
|
||||||
# v. 10.0.2 : Improved icon checks and failovers
|
# v. 10.0.2 : Improved icon checks and failovers
|
||||||
# v. 10.0.1 : Improved appIcon handling. Can add the app to Dock using dockutil
|
# v. 10.0.1 : Improved appIcon handling. Can add the app to Dock using dockutil
|
||||||
# v. 10.0 : Integration with Dialog and Installomator v. 10
|
# v. 10.0 : Integration with Dialog and Installomator v. 10
|
||||||
@@ -64,19 +65,19 @@ dialogUpdate() {
|
|||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
checkCmdOutput () {
|
checkCmdOutput () {
|
||||||
# $1: cmdOutput
|
local checkOutput="$1"
|
||||||
local cmdOutput="$1"
|
exitStatus="$( echo "${checkOutput}" | grep --binary-files=text -i "exit" | tail -1 | sed -E 's/.*exit code ([0-9]).*/\1/g' || true )"
|
||||||
exitStatus="$( echo "${cmdOutput}" | grep --binary-files=text -i "exit" | tail -1 | sed -E 's/.*exit code ([0-9]).*/\1/g' || true )"
|
|
||||||
if [[ ${exitStatus} -eq 0 ]] ; then
|
if [[ ${exitStatus} -eq 0 ]] ; then
|
||||||
echo "${item} succesfully installed."
|
echo "${item} succesfully installed."
|
||||||
warnOutput="$( echo "${cmdOutput}" | grep --binary-files=text -i "warn" || true )"
|
selectedOutput="$( echo "${checkOutput}" | grep --binary-files=text -E ": (REQ|ERROR|WARN)" || true )"
|
||||||
echo "$warnOutput"
|
echo "$selectedOutput"
|
||||||
else
|
else
|
||||||
echo "ERROR installing ${item}. Exit code ${exitStatus}"
|
echo "ERROR installing ${item}. Exit code ${exitStatus}"
|
||||||
echo "$cmdOutput"
|
echo "$checkOutput"
|
||||||
#errorOutput="$( echo "${cmdOutput}" | grep --binary-files=text -i "error" || true )"
|
#errorOutput="$( echo "${checkOutput}" | grep --binary-files=text -i "error" || true )"
|
||||||
#echo "$errorOutput"
|
#echo "$errorOutput"
|
||||||
fi
|
fi
|
||||||
|
#echo "$checkOutput"
|
||||||
}
|
}
|
||||||
|
|
||||||
# Check the currently logged in user
|
# Check the currently logged in user
|
||||||
@@ -111,9 +112,10 @@ caffexit () {
|
|||||||
# Mark: Installation begins
|
# Mark: Installation begins
|
||||||
installomatorVersion="$(${destFile} version | cut -d "." -f1 || true)"
|
installomatorVersion="$(${destFile} version | cut -d "." -f1 || true)"
|
||||||
|
|
||||||
if [[ $installomatorVersion -lt 10 ]] || [[ $(sw_vers -buildVersion) < "20A" ]]; then
|
if [[ $installomatorVersion -lt 10 ]] || [[ $(sw_vers -buildVersion | cut -c1-2) -lt 20 ]]; then
|
||||||
echo "Installomator should be at least version 10 to support Dialog. Installed version $installomatorVersion."
|
echo "Skipping swiftDialog UI, using notifications."
|
||||||
echo "And macOS 11 Big Sur (build 20A) is required for Dialog. Installed build $(sw_vers -buildVersion)."
|
#echo "Installomator should be at least version 10 to support swiftDialog. Installed version $installomatorVersion."
|
||||||
|
#echo "And macOS 11 Big Sur (build 20A) is required for swiftDialog. Installed build $(sw_vers -buildVersion)."
|
||||||
installomatorNotify="NOTIFY=all"
|
installomatorNotify="NOTIFY=all"
|
||||||
else
|
else
|
||||||
installomatorNotify="NOTIFY=silent"
|
installomatorNotify="NOTIFY=silent"
|
||||||
@@ -122,7 +124,7 @@ else
|
|||||||
echo "Cannot find dialog at $dialogApp"
|
echo "Cannot find dialog at $dialogApp"
|
||||||
# Install using Installlomator
|
# Install using Installlomator
|
||||||
cmdOutput="$(${destFile} dialog LOGO=$LOGO BLOCKING_PROCESS_ACTION=ignore LOGGING=REQ NOTIFY=silent || true)"
|
cmdOutput="$(${destFile} dialog LOGO=$LOGO BLOCKING_PROCESS_ACTION=ignore LOGGING=REQ NOTIFY=silent || true)"
|
||||||
checkCmdOutput $cmdOutput
|
checkCmdOutput "${cmdOutput}"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Configure and display swiftDialog
|
# Configure and display swiftDialog
|
||||||
@@ -135,24 +137,24 @@ else
|
|||||||
echo "$item $itemName"
|
echo "$item $itemName"
|
||||||
|
|
||||||
#Check icon (expecting beginning with “http” to be web-link and “/” to be disk file)
|
#Check icon (expecting beginning with “http” to be web-link and “/” to be disk file)
|
||||||
echo "icon before check: $icon"
|
#echo "icon before check: $icon"
|
||||||
if [[ "$(echo ${icon} | grep -iE "^(http|ftp).*")" != "" ]]; then
|
if [[ "$(echo ${icon} | grep -iE "^(http|ftp).*")" != "" ]]; then
|
||||||
echo "icon looks to be web-link"
|
#echo "icon looks to be web-link"
|
||||||
if ! curl -sfL --output /dev/null -r 0-0 "${icon}" ; then
|
if ! curl -sfL --output /dev/null -r 0-0 "${icon}" ; then
|
||||||
echo "ERROR: Cannot download link. Reset icon."
|
echo "ERROR: Cannot download ${icon} link. Reset icon."
|
||||||
icon=""
|
icon=""
|
||||||
fi
|
fi
|
||||||
elif [[ "$(echo ${icon} | grep -iE "^\/.*")" != "" ]]; then
|
elif [[ "$(echo ${icon} | grep -iE "^\/.*")" != "" ]]; then
|
||||||
echo "icon looks to be a file"
|
#echo "icon looks to be a file"
|
||||||
if [[ ! -a "${icon}" ]]; then
|
if [[ ! -a "${icon}" ]]; then
|
||||||
echo "ERROR: Cannot find file. Reset icon."
|
echo "ERROR: Cannot find icon file ${icon}. Reset icon."
|
||||||
icon=""
|
icon=""
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
echo "ERROR: Cannot figure out icon. Reset icon."
|
echo "ERROR: Cannot figure out icon ${icon}. Reset icon."
|
||||||
icon=""
|
icon=""
|
||||||
fi
|
fi
|
||||||
echo "icon after first check: $icon"
|
#echo "icon after first check: $icon"
|
||||||
# If no icon defined we are trying to search for installed app icon
|
# If no icon defined we are trying to search for installed app icon
|
||||||
if [[ "$icon" == "" ]]; then
|
if [[ "$icon" == "" ]]; then
|
||||||
appPath=$(mdfind "kind:application AND name:$itemName" | head -1 || true)
|
appPath=$(mdfind "kind:application AND name:$itemName" | head -1 || true)
|
||||||
@@ -161,7 +163,7 @@ else
|
|||||||
appIcon="${appIcon}.icns"
|
appIcon="${appIcon}.icns"
|
||||||
fi
|
fi
|
||||||
icon="${appPath}/Contents/Resources/${appIcon}"
|
icon="${appPath}/Contents/Resources/${appIcon}"
|
||||||
echo "Icon before file check: ${icon}"
|
#echo "Icon before file check: ${icon}"
|
||||||
if [ ! -f "${icon}" ]; then
|
if [ ! -f "${icon}" ]; then
|
||||||
# Using LOGO variable to show logo in swiftDialog
|
# Using LOGO variable to show logo in swiftDialog
|
||||||
case $LOGO in
|
case $LOGO in
|
||||||
@@ -229,7 +231,7 @@ fi
|
|||||||
|
|
||||||
# Install software using Installomator
|
# Install software using Installomator
|
||||||
cmdOutput="$(${destFile} ${item} LOGO=$LOGO ${installomatorOptions} ${installomatorNotify} || true)"
|
cmdOutput="$(${destFile} ${item} LOGO=$LOGO ${installomatorOptions} ${installomatorNotify} || true)"
|
||||||
checkCmdOutput $cmdOutput
|
checkCmdOutput "${cmdOutput}"
|
||||||
|
|
||||||
# Mark: dockutil stuff
|
# Mark: dockutil stuff
|
||||||
if [[ $addToDock -eq 1 ]]; then
|
if [[ $addToDock -eq 1 ]]; then
|
||||||
@@ -238,7 +240,7 @@ if [[ $addToDock -eq 1 ]]; then
|
|||||||
echo "Cannot find dockutil at $dockutil, trying installation"
|
echo "Cannot find dockutil at $dockutil, trying installation"
|
||||||
# Install using Installlomator
|
# Install using Installlomator
|
||||||
cmdOutput="$(${destFile} dockutil LOGO=$LOGO BLOCKING_PROCESS_ACTION=ignore LOGGING=REQ NOTIFY=silent || true)"
|
cmdOutput="$(${destFile} dockutil LOGO=$LOGO BLOCKING_PROCESS_ACTION=ignore LOGGING=REQ NOTIFY=silent || true)"
|
||||||
checkCmdOutput $cmdOutput
|
checkCmdOutput "${cmdOutput}"
|
||||||
fi
|
fi
|
||||||
echo "Adding to Dock"
|
echo "Adding to Dock"
|
||||||
$dockutil --add "${appPath}" "${userHome}/Library/Preferences/com.apple.dock.plist" || true
|
$dockutil --add "${appPath}" "${userHome}/Library/Preferences/com.apple.dock.plist" || true
|
||||||
@@ -248,9 +250,7 @@ else
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
# Mark: Ending
|
# Mark: Ending
|
||||||
if [[ $installomatorVersion -lt 10 ]]; then
|
if [[ $installomatorVersion -ge 10 && $(sw_vers -buildVersion | cut -c1-2) -ge 20 ]]; then
|
||||||
echo "Again skipping Dialog stuff."
|
|
||||||
else
|
|
||||||
# close and quit dialog
|
# close and quit dialog
|
||||||
dialogUpdate "progress: complete"
|
dialogUpdate "progress: complete"
|
||||||
dialogUpdate "progresstext: Done"
|
dialogUpdate "progresstext: Done"
|
||||||
|
|||||||
@@ -21,7 +21,7 @@ dialog_command_file="/var/tmp/dialog.log"
|
|||||||
dialogApp="/Library/Application Support/Dialog/Dialog.app"
|
dialogApp="/Library/Application Support/Dialog/Dialog.app"
|
||||||
dockutil="/usr/local/bin/dockutil"
|
dockutil="/usr/local/bin/dockutil"
|
||||||
|
|
||||||
installomatorOptions="BLOCKING_PROCESS_ACTION=ignore NOTIFY=silent DIALOG_CMD_FILE=${dialog_command_file}" # Separated by space
|
installomatorOptions="BLOCKING_PROCESS_ACTION=ignore DIALOG_CMD_FILE=${dialog_command_file}" # Separated by space
|
||||||
|
|
||||||
# Other installomatorOptions:
|
# Other installomatorOptions:
|
||||||
# LOGGING=REQ
|
# LOGGING=REQ
|
||||||
@@ -45,6 +45,7 @@ installomatorOptions="BLOCKING_PROCESS_ACTION=ignore NOTIFY=silent DIALOG_CMD_FI
|
|||||||
# Fill the variable "item" above with a label.
|
# Fill the variable "item" above with a label.
|
||||||
# Script will run this label through Installomator.
|
# Script will run this label through Installomator.
|
||||||
######################################################################
|
######################################################################
|
||||||
|
# v. 10.0.3 : A bit more logging on succes, and change in ending Dialog part.
|
||||||
# v. 10.0.2 : Improved icon checks and failovers
|
# v. 10.0.2 : Improved icon checks and failovers
|
||||||
# v. 10.0.1 : Can add the app to Dock using dockutil
|
# v. 10.0.1 : Can add the app to Dock using dockutil
|
||||||
# v. 10.0 : Integration with Dialog and Installomator v. 10
|
# v. 10.0 : Integration with Dialog and Installomator v. 10
|
||||||
@@ -67,19 +68,19 @@ dialogUpdate() {
|
|||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
checkCmdOutput () {
|
checkCmdOutput () {
|
||||||
# $1: cmdOutput
|
local checkOutput="$1"
|
||||||
local cmdOutput="$1"
|
exitStatus="$( echo "${checkOutput}" | grep --binary-files=text -i "exit" | tail -1 | sed -E 's/.*exit code ([0-9]).*/\1/g' || true )"
|
||||||
exitStatus="$( echo "${cmdOutput}" | grep --binary-files=text -i "exit" | tail -1 | sed -E 's/.*exit code ([0-9]).*/\1/g' || true )"
|
|
||||||
if [[ ${exitStatus} -eq 0 ]] ; then
|
if [[ ${exitStatus} -eq 0 ]] ; then
|
||||||
echo "${item} succesfully installed."
|
echo "${item} succesfully installed."
|
||||||
warnOutput="$( echo "${cmdOutput}" | grep --binary-files=text -i "warn" || true )"
|
selectedOutput="$( echo "${checkOutput}" | grep --binary-files=text -E ": (REQ|ERROR|WARN)" || true )"
|
||||||
echo "$warnOutput"
|
echo "$selectedOutput"
|
||||||
else
|
else
|
||||||
echo "ERROR installing ${item}. Exit code ${exitStatus}"
|
echo "ERROR installing ${item}. Exit code ${exitStatus}"
|
||||||
echo "$cmdOutput"
|
echo "$checkOutput"
|
||||||
#errorOutput="$( echo "${cmdOutput}" | grep --binary-files=text -i "error" || true )"
|
#errorOutput="$( echo "${checkOutput}" | grep --binary-files=text -i "error" || true )"
|
||||||
#echo "$errorOutput"
|
#echo "$errorOutput"
|
||||||
fi
|
fi
|
||||||
|
#echo "$checkOutput"
|
||||||
}
|
}
|
||||||
|
|
||||||
# Check the currently logged in user
|
# Check the currently logged in user
|
||||||
@@ -114,9 +115,10 @@ caffexit () {
|
|||||||
# Mark: Installation begins
|
# Mark: Installation begins
|
||||||
installomatorVersion="$(${destFile} version | cut -d "." -f1 || true)"
|
installomatorVersion="$(${destFile} version | cut -d "." -f1 || true)"
|
||||||
|
|
||||||
if [[ $installomatorVersion -lt 10 ]] || [[ $(sw_vers -buildVersion) < "20A" ]]; then
|
if [[ $installomatorVersion -lt 10 ]] || [[ $(sw_vers -buildVersion | cut -c1-2) -lt 20 ]]; then
|
||||||
echo "Installomator should be at least version 10 to support Dialog. Installed version $installomatorVersion."
|
echo "Skipping swiftDialog UI, using notifications."
|
||||||
echo "And macOS 11 Big Sur (build 20A) is required for Dialog. Installed build $(sw_vers -buildVersion)."
|
#echo "Installomator should be at least version 10 to support swiftDialog. Installed version $installomatorVersion."
|
||||||
|
#echo "And macOS 11 Big Sur (build 20A) is required for swiftDialog. Installed build $(sw_vers -buildVersion)."
|
||||||
installomatorNotify="NOTIFY=all"
|
installomatorNotify="NOTIFY=all"
|
||||||
else
|
else
|
||||||
installomatorNotify="NOTIFY=silent"
|
installomatorNotify="NOTIFY=silent"
|
||||||
@@ -125,7 +127,7 @@ else
|
|||||||
echo "Cannot find dialog at $dialogApp"
|
echo "Cannot find dialog at $dialogApp"
|
||||||
# Install using Installlomator
|
# Install using Installlomator
|
||||||
cmdOutput="$(${destFile} dialog LOGO=$LOGO BLOCKING_PROCESS_ACTION=ignore LOGGING=REQ NOTIFY=silent || true)"
|
cmdOutput="$(${destFile} dialog LOGO=$LOGO BLOCKING_PROCESS_ACTION=ignore LOGGING=REQ NOTIFY=silent || true)"
|
||||||
checkCmdOutput $cmdOutput
|
checkCmdOutput "${cmdOutput}"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Configure and display swiftDialog
|
# Configure and display swiftDialog
|
||||||
@@ -138,24 +140,24 @@ else
|
|||||||
echo "$item $itemName"
|
echo "$item $itemName"
|
||||||
|
|
||||||
#Check icon (expecting beginning with “http” to be web-link and “/” to be disk file)
|
#Check icon (expecting beginning with “http” to be web-link and “/” to be disk file)
|
||||||
echo "icon before check: $icon"
|
#echo "icon before check: $icon"
|
||||||
if [[ "$(echo ${icon} | grep -iE "^(http|ftp).*")" != "" ]]; then
|
if [[ "$(echo ${icon} | grep -iE "^(http|ftp).*")" != "" ]]; then
|
||||||
echo "icon looks to be web-link"
|
#echo "icon looks to be web-link"
|
||||||
if ! curl -sfL --output /dev/null -r 0-0 "${icon}" ; then
|
if ! curl -sfL --output /dev/null -r 0-0 "${icon}" ; then
|
||||||
echo "ERROR: Cannot download link. Reset icon."
|
echo "ERROR: Cannot download ${icon} link. Reset icon."
|
||||||
icon=""
|
icon=""
|
||||||
fi
|
fi
|
||||||
elif [[ "$(echo ${icon} | grep -iE "^\/.*")" != "" ]]; then
|
elif [[ "$(echo ${icon} | grep -iE "^\/.*")" != "" ]]; then
|
||||||
echo "icon looks to be a file"
|
#echo "icon looks to be a file"
|
||||||
if [[ ! -a "${icon}" ]]; then
|
if [[ ! -a "${icon}" ]]; then
|
||||||
echo "ERROR: Cannot find file. Reset icon."
|
echo "ERROR: Cannot find icon file ${icon}. Reset icon."
|
||||||
icon=""
|
icon=""
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
echo "ERROR: Cannot figure out icon. Reset icon."
|
echo "ERROR: Cannot figure out icon ${icon}. Reset icon."
|
||||||
icon=""
|
icon=""
|
||||||
fi
|
fi
|
||||||
echo "icon after first check: $icon"
|
#echo "icon after first check: $icon"
|
||||||
# If no icon defined we are trying to search for installed app icon
|
# If no icon defined we are trying to search for installed app icon
|
||||||
if [[ "$icon" == "" ]]; then
|
if [[ "$icon" == "" ]]; then
|
||||||
appPath=$(mdfind "kind:application AND name:$itemName" | head -1 || true)
|
appPath=$(mdfind "kind:application AND name:$itemName" | head -1 || true)
|
||||||
@@ -164,7 +166,7 @@ else
|
|||||||
appIcon="${appIcon}.icns"
|
appIcon="${appIcon}.icns"
|
||||||
fi
|
fi
|
||||||
icon="${appPath}/Contents/Resources/${appIcon}"
|
icon="${appPath}/Contents/Resources/${appIcon}"
|
||||||
echo "Icon before file check: ${icon}"
|
#echo "Icon before file check: ${icon}"
|
||||||
if [ ! -f "${icon}" ]; then
|
if [ ! -f "${icon}" ]; then
|
||||||
# Using LOGO variable to show logo in swiftDialog
|
# Using LOGO variable to show logo in swiftDialog
|
||||||
case $LOGO in
|
case $LOGO in
|
||||||
@@ -232,7 +234,7 @@ fi
|
|||||||
|
|
||||||
# Install software using Installomator
|
# Install software using Installomator
|
||||||
cmdOutput="$(${destFile} ${item} LOGO=$LOGO ${installomatorOptions} ${installomatorNotify} || true)"
|
cmdOutput="$(${destFile} ${item} LOGO=$LOGO ${installomatorOptions} ${installomatorNotify} || true)"
|
||||||
checkCmdOutput $cmdOutput
|
checkCmdOutput "${cmdOutput}"
|
||||||
|
|
||||||
# Mark: dockutil stuff
|
# Mark: dockutil stuff
|
||||||
if [[ $addToDock -eq 1 ]]; then
|
if [[ $addToDock -eq 1 ]]; then
|
||||||
@@ -241,7 +243,7 @@ if [[ $addToDock -eq 1 ]]; then
|
|||||||
echo "Cannot find dockutil at $dockutil, trying installation"
|
echo "Cannot find dockutil at $dockutil, trying installation"
|
||||||
# Install using Installlomator
|
# Install using Installlomator
|
||||||
cmdOutput="$(${destFile} dockutil LOGO=$LOGO BLOCKING_PROCESS_ACTION=ignore LOGGING=REQ NOTIFY=silent || true)"
|
cmdOutput="$(${destFile} dockutil LOGO=$LOGO BLOCKING_PROCESS_ACTION=ignore LOGGING=REQ NOTIFY=silent || true)"
|
||||||
checkCmdOutput $cmdOutput
|
checkCmdOutput "${cmdOutput}"
|
||||||
fi
|
fi
|
||||||
echo "Adding to Dock"
|
echo "Adding to Dock"
|
||||||
$dockutil --add "${appPath}" "${userHome}/Library/Preferences/com.apple.dock.plist" || true
|
$dockutil --add "${appPath}" "${userHome}/Library/Preferences/com.apple.dock.plist" || true
|
||||||
@@ -251,9 +253,7 @@ else
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
# Mark: Ending
|
# Mark: Ending
|
||||||
if [[ $installomatorVersion -lt 10 ]]; then
|
if [[ $installomatorVersion -ge 10 && $(sw_vers -buildVersion | cut -c1-2) -ge 20 ]]; then
|
||||||
echo "Again skipping Dialog stuff."
|
|
||||||
else
|
|
||||||
# close and quit dialog
|
# close and quit dialog
|
||||||
dialogUpdate "progress: complete"
|
dialogUpdate "progress: complete"
|
||||||
dialogUpdate "progresstext: Done"
|
dialogUpdate "progresstext: Done"
|
||||||
|
|||||||
@@ -5,10 +5,14 @@
|
|||||||
|
|
||||||
LOGO="" # "mosyleb", "mosylem", "addigy", "microsoft", "ws1"
|
LOGO="" # "mosyleb", "mosylem", "addigy", "microsoft", "ws1"
|
||||||
|
|
||||||
#item="" # enter the software to install (if it has a label in future version of Installomator)
|
# Have the label been submittet in a PR for Installomator?
|
||||||
|
# What version of Installomator is it expected to be included in?
|
||||||
|
# Version 10
|
||||||
|
|
||||||
|
item="" # enter the software to install (if it has a label in future version of Installomator)
|
||||||
|
|
||||||
# Variables for label
|
# Variables for label
|
||||||
name="ClickShare"
|
name="ClickShare" # Spaces in the name will not work
|
||||||
type="appInDmgInZip"
|
type="appInDmgInZip"
|
||||||
packageID=""
|
packageID=""
|
||||||
downloadURL="https://www.barco.com$( curl -fs "https://www.barco.com/en/clickshare/app" | grep -A6 -i "macos" | grep -i "FileNumber" | tr '"' "\n" | grep -i "FileNumber" )"
|
downloadURL="https://www.barco.com$( curl -fs "https://www.barco.com/en/clickshare/app" | grep -A6 -i "macos" | grep -i "FileNumber" | tr '"' "\n" | grep -i "FileNumber" )"
|
||||||
@@ -40,6 +44,7 @@ installomatorOptions="BLOCKING_PROCESS_ACTION=prompt_user LOGGING=INFO NOTIFY=al
|
|||||||
# Fill the variable "what" above with a label.
|
# Fill the variable "what" above with a label.
|
||||||
# Script will run this label through Installomator.
|
# Script will run this label through Installomator.
|
||||||
######################################################################
|
######################################################################
|
||||||
|
# v. 9.2.2 : A bit more logging on succes.
|
||||||
# v. 9.2.1 : Better logging handling and installomatorOptions fix.
|
# v. 9.2.1 : Better logging handling and installomatorOptions fix.
|
||||||
######################################################################
|
######################################################################
|
||||||
|
|
||||||
@@ -84,8 +89,8 @@ cmdOutput="$(${destFile} valuesfromarguments LOGO=$LOGO \
|
|||||||
exitStatus="$( echo "${cmdOutput}" | grep --binary-files=text -i "exit" | tail -1 | sed -E 's/.*exit code ([0-9]).*/\1/g' || true )"
|
exitStatus="$( echo "${cmdOutput}" | grep --binary-files=text -i "exit" | tail -1 | sed -E 's/.*exit code ([0-9]).*/\1/g' || true )"
|
||||||
if [[ ${exitStatus} -eq 0 ]] ; then
|
if [[ ${exitStatus} -eq 0 ]] ; then
|
||||||
echo "${what} succesfully installed."
|
echo "${what} succesfully installed."
|
||||||
warnOutput="$( echo "${cmdOutput}" | grep --binary-files=text -i "warn" || true )"
|
selectedOutput="$( echo "${cmdOutput}" | grep --binary-files=text -E ": (REQ|ERROR|WARN)" || true )"
|
||||||
echo "$warnOutput"
|
echo "$selectedOutput"
|
||||||
else
|
else
|
||||||
echo "ERROR installing ${what}. Exit code ${exitStatus}"
|
echo "ERROR installing ${what}. Exit code ${exitStatus}"
|
||||||
echo "$cmdOutput"
|
echo "$cmdOutput"
|
||||||
|
|||||||
@@ -31,6 +31,7 @@ installomatorOptions="BLOCKING_PROCESS_ACTION=tell_user_then_quit" # Separated b
|
|||||||
# Fill the variable "item" above with a label.
|
# Fill the variable "item" above with a label.
|
||||||
# Script will run this label through Installomator.
|
# Script will run this label through Installomator.
|
||||||
######################################################################
|
######################################################################
|
||||||
|
# v. 9.2.2 : A bit more logging on succes.
|
||||||
# v. 9.2.1 : Better logging handling and installomatorOptions fix.
|
# v. 9.2.1 : Better logging handling and installomatorOptions fix.
|
||||||
######################################################################
|
######################################################################
|
||||||
|
|
||||||
@@ -65,8 +66,8 @@ cmdOutput="$(${destFile} ${item} LOGO=$LOGO ${installomatorOptions} || true)"
|
|||||||
exitStatus="$( echo "${cmdOutput}" | grep --binary-files=text -i "exit" | tail -1 | sed -E 's/.*exit code ([0-9]).*/\1/g' || true )"
|
exitStatus="$( echo "${cmdOutput}" | grep --binary-files=text -i "exit" | tail -1 | sed -E 's/.*exit code ([0-9]).*/\1/g' || true )"
|
||||||
if [[ ${exitStatus} -eq 0 ]] ; then
|
if [[ ${exitStatus} -eq 0 ]] ; then
|
||||||
echo "${item} succesfully installed."
|
echo "${item} succesfully installed."
|
||||||
warnOutput="$( echo "${cmdOutput}" | grep --binary-files=text -i "warn" || true )"
|
selectedOutput="$( echo "${cmdOutput}" | grep --binary-files=text -E ": (REQ|ERROR|WARN)" || true )"
|
||||||
echo "$warnOutput"
|
echo "$selectedOutput"
|
||||||
else
|
else
|
||||||
echo "ERROR installing ${item}. Exit code ${exitStatus}"
|
echo "ERROR installing ${item}. Exit code ${exitStatus}"
|
||||||
echo "$cmdOutput"
|
echo "$cmdOutput"
|
||||||
|
|||||||
@@ -31,6 +31,7 @@ installomatorOptions="BLOCKING_PROCESS_ACTION=tell_user_then_quit NOTIFY=all" #
|
|||||||
# Fill the variable "what" above with a label.
|
# Fill the variable "what" above with a label.
|
||||||
# Script will run this label through Installomator.
|
# Script will run this label through Installomator.
|
||||||
######################################################################
|
######################################################################
|
||||||
|
# v. 9.2.2 : A bit more logging on succes.
|
||||||
# v. 9.2.1 : Better logging handling and installomatorOptions fix.
|
# v. 9.2.1 : Better logging handling and installomatorOptions fix.
|
||||||
######################################################################
|
######################################################################
|
||||||
|
|
||||||
@@ -65,8 +66,8 @@ cmdOutput="$(${destFile} ${what} LOGO=$LOGO ${installomatorOptions} || true)"
|
|||||||
exitStatus="$( echo "${cmdOutput}" | grep --binary-files=text -i "exit" | tail -1 | sed -E 's/.*exit code ([0-9]).*/\1/g' || true )"
|
exitStatus="$( echo "${cmdOutput}" | grep --binary-files=text -i "exit" | tail -1 | sed -E 's/.*exit code ([0-9]).*/\1/g' || true )"
|
||||||
if [[ ${exitStatus} -eq 0 ]] ; then
|
if [[ ${exitStatus} -eq 0 ]] ; then
|
||||||
echo "${what} succesfully installed."
|
echo "${what} succesfully installed."
|
||||||
warnOutput="$( echo "${cmdOutput}" | grep --binary-files=text -i "warn" || true )"
|
selectedOutput="$( echo "${cmdOutput}" | grep --binary-files=text -E ": (REQ|ERROR|WARN)" || true )"
|
||||||
echo "$warnOutput"
|
echo "$selectedOutput"
|
||||||
else
|
else
|
||||||
echo "ERROR installing ${what}. Exit code ${exitStatus}"
|
echo "ERROR installing ${what}. Exit code ${exitStatus}"
|
||||||
echo "$cmdOutput"
|
echo "$cmdOutput"
|
||||||
|
|||||||
@@ -31,6 +31,7 @@ installomatorOptions="BLOCKING_PROCESS_ACTION=tell_user" # Separated by space
|
|||||||
# Fill the variable "item" above with a label.
|
# Fill the variable "item" above with a label.
|
||||||
# Script will run this label through Installomator.
|
# Script will run this label through Installomator.
|
||||||
######################################################################
|
######################################################################
|
||||||
|
# v. 9.2.2 : A bit more logging on succes.
|
||||||
# v. 9.2.1 : Better logging handling and installomatorOptions fix.
|
# v. 9.2.1 : Better logging handling and installomatorOptions fix.
|
||||||
######################################################################
|
######################################################################
|
||||||
|
|
||||||
@@ -65,8 +66,8 @@ cmdOutput="$(${destFile} ${item} LOGO=$LOGO ${installomatorOptions} || true)"
|
|||||||
exitStatus="$( echo "${cmdOutput}" | grep --binary-files=text -i "exit" | tail -1 | sed -E 's/.*exit code ([0-9]).*/\1/g' || true )"
|
exitStatus="$( echo "${cmdOutput}" | grep --binary-files=text -i "exit" | tail -1 | sed -E 's/.*exit code ([0-9]).*/\1/g' || true )"
|
||||||
if [[ ${exitStatus} -eq 0 ]] ; then
|
if [[ ${exitStatus} -eq 0 ]] ; then
|
||||||
echo "${item} succesfully installed."
|
echo "${item} succesfully installed."
|
||||||
warnOutput="$( echo "${cmdOutput}" | grep --binary-files=text -i "warn" || true )"
|
selectedOutput="$( echo "${cmdOutput}" | grep --binary-files=text -E ": (REQ|ERROR|WARN)" || true )"
|
||||||
echo "$warnOutput"
|
echo "$selectedOutput"
|
||||||
else
|
else
|
||||||
echo "ERROR installing ${item}. Exit code ${exitStatus}"
|
echo "ERROR installing ${item}. Exit code ${exitStatus}"
|
||||||
echo "$cmdOutput"
|
echo "$cmdOutput"
|
||||||
|
|||||||
@@ -32,6 +32,7 @@ installomatorOptions="BLOCKING_PROCESS_ACTION=prompt_user NOTIFY=all" # Separate
|
|||||||
# Fill the variable "item" above with a label.
|
# Fill the variable "item" above with a label.
|
||||||
# Script will run this label through Installomator.
|
# Script will run this label through Installomator.
|
||||||
######################################################################
|
######################################################################
|
||||||
|
# v. 9.2.2 : A bit more logging on succes.
|
||||||
# v. 9.2.1 : Better logging handling and installomatorOptions fix.
|
# v. 9.2.1 : Better logging handling and installomatorOptions fix.
|
||||||
######################################################################
|
######################################################################
|
||||||
|
|
||||||
@@ -66,8 +67,8 @@ cmdOutput="$(${destFile} ${item} LOGO=$LOGO ${installomatorOptions} || true)"
|
|||||||
exitStatus="$( echo "${cmdOutput}" | grep --binary-files=text -i "exit" | tail -1 | sed -E 's/.*exit code ([0-9]).*/\1/g' || true )"
|
exitStatus="$( echo "${cmdOutput}" | grep --binary-files=text -i "exit" | tail -1 | sed -E 's/.*exit code ([0-9]).*/\1/g' || true )"
|
||||||
if [[ ${exitStatus} -eq 0 ]] ; then
|
if [[ ${exitStatus} -eq 0 ]] ; then
|
||||||
echo "${item} succesfully installed."
|
echo "${item} succesfully installed."
|
||||||
warnOutput="$( echo "${cmdOutput}" | grep --binary-files=text -i "warn" || true )"
|
selectedOutput="$( echo "${cmdOutput}" | grep --binary-files=text -E ": (REQ|ERROR|WARN)" || true )"
|
||||||
echo "$warnOutput"
|
echo "$selectedOutput"
|
||||||
else
|
else
|
||||||
echo "ERROR installing ${item}. Exit code ${exitStatus}"
|
echo "ERROR installing ${item}. Exit code ${exitStatus}"
|
||||||
echo "$cmdOutput"
|
echo "$cmdOutput"
|
||||||
|
|||||||
@@ -31,6 +31,7 @@ installomatorOptions="BLOCKING_PROCESS_ACTION=ignore NOTIFY=silent" # Separated
|
|||||||
# Fill the variable "item" above with a label.
|
# Fill the variable "item" above with a label.
|
||||||
# Script will run this label through Installomator.
|
# Script will run this label through Installomator.
|
||||||
######################################################################
|
######################################################################
|
||||||
|
# v. 9.2.2 : A bit more logging on succes.
|
||||||
# v. 9.2.1 : Better logging handling and installomatorOptions fix.
|
# v. 9.2.1 : Better logging handling and installomatorOptions fix.
|
||||||
######################################################################
|
######################################################################
|
||||||
|
|
||||||
@@ -65,8 +66,8 @@ cmdOutput="$(${destFile} ${item} LOGO=$LOGO ${installomatorOptions} || true)"
|
|||||||
exitStatus="$( echo "${cmdOutput}" | grep --binary-files=text -i "exit" | tail -1 | sed -E 's/.*exit code ([0-9]).*/\1/g' || true )"
|
exitStatus="$( echo "${cmdOutput}" | grep --binary-files=text -i "exit" | tail -1 | sed -E 's/.*exit code ([0-9]).*/\1/g' || true )"
|
||||||
if [[ ${exitStatus} -eq 0 ]] ; then
|
if [[ ${exitStatus} -eq 0 ]] ; then
|
||||||
echo "${item} succesfully installed."
|
echo "${item} succesfully installed."
|
||||||
warnOutput="$( echo "${cmdOutput}" | grep --binary-files=text -i "warn" || true )"
|
selectedOutput="$( echo "${cmdOutput}" | grep --binary-files=text -E ": (REQ|ERROR|WARN)" || true )"
|
||||||
echo "$warnOutput"
|
echo "$selectedOutput"
|
||||||
else
|
else
|
||||||
echo "ERROR installing ${item}. Exit code ${exitStatus}"
|
echo "ERROR installing ${item}. Exit code ${exitStatus}"
|
||||||
echo "$cmdOutput"
|
echo "$cmdOutput"
|
||||||
|
|||||||
@@ -33,6 +33,7 @@ installomatorOptions="BLOCKING_PROCESS_ACTION=tell_user_then_quit" # Separated b
|
|||||||
# Fill the variable "item" above with a label.
|
# Fill the variable "item" above with a label.
|
||||||
# Script will run this label through Installomator.
|
# Script will run this label through Installomator.
|
||||||
######################################################################
|
######################################################################
|
||||||
|
# v. 9.2.2 : A bit more logging on succes.
|
||||||
# v. 9.2.1 : Better logging handling and installomatorOptions fix.
|
# v. 9.2.1 : Better logging handling and installomatorOptions fix.
|
||||||
######################################################################
|
######################################################################
|
||||||
|
|
||||||
@@ -77,8 +78,8 @@ cmdOutput="$(${destFile} ${item} LOGO=$LOGO ${installomatorOptions} || true)"
|
|||||||
exitStatus="$( echo "${cmdOutput}" | grep --binary-files=text -i "exit" | tail -1 | sed -E 's/.*exit code ([0-9]).*/\1/g' || true )"
|
exitStatus="$( echo "${cmdOutput}" | grep --binary-files=text -i "exit" | tail -1 | sed -E 's/.*exit code ([0-9]).*/\1/g' || true )"
|
||||||
if [[ ${exitStatus} -eq 0 ]] ; then
|
if [[ ${exitStatus} -eq 0 ]] ; then
|
||||||
echo "${item} succesfully installed."
|
echo "${item} succesfully installed."
|
||||||
warnOutput="$( echo "${cmdOutput}" | grep --binary-files=text -i "warn" || true )"
|
selectedOutput="$( echo "${cmdOutput}" | grep --binary-files=text -E ": (REQ|ERROR|WARN)" || true )"
|
||||||
echo "$warnOutput"
|
echo "$selectedOutput"
|
||||||
else
|
else
|
||||||
echo "ERROR installing ${item}. Exit code ${exitStatus}"
|
echo "ERROR installing ${item}. Exit code ${exitStatus}"
|
||||||
echo "$cmdOutput"
|
echo "$cmdOutput"
|
||||||
|
|||||||
@@ -33,6 +33,7 @@ installomatorOptions="BLOCKING_PROCESS_ACTION=prompt_user" # Separated by space
|
|||||||
# Fill the variable "item" above with a label.
|
# Fill the variable "item" above with a label.
|
||||||
# Script will run this label through Installomator.
|
# Script will run this label through Installomator.
|
||||||
######################################################################
|
######################################################################
|
||||||
|
# v. 9.2.2 : A bit more logging on succes.
|
||||||
# v. 9.2.1 : Better logging handling and installomatorOptions fix.
|
# v. 9.2.1 : Better logging handling and installomatorOptions fix.
|
||||||
######################################################################
|
######################################################################
|
||||||
|
|
||||||
@@ -77,8 +78,8 @@ cmdOutput="$(${destFile} ${item} LOGO=$LOGO ${installomatorOptions} || true)"
|
|||||||
exitStatus="$( echo "${cmdOutput}" | grep --binary-files=text -i "exit" | tail -1 | sed -E 's/.*exit code ([0-9]).*/\1/g' || true )"
|
exitStatus="$( echo "${cmdOutput}" | grep --binary-files=text -i "exit" | tail -1 | sed -E 's/.*exit code ([0-9]).*/\1/g' || true )"
|
||||||
if [[ ${exitStatus} -eq 0 ]] ; then
|
if [[ ${exitStatus} -eq 0 ]] ; then
|
||||||
echo "${item} succesfully installed."
|
echo "${item} succesfully installed."
|
||||||
warnOutput="$( echo "${cmdOutput}" | grep --binary-files=text -i "warn" || true )"
|
selectedOutput="$( echo "${cmdOutput}" | grep --binary-files=text -E ": (REQ|ERROR|WARN)" || true )"
|
||||||
echo "$warnOutput"
|
echo "$selectedOutput"
|
||||||
else
|
else
|
||||||
echo "ERROR installing ${item}. Exit code ${exitStatus}"
|
echo "ERROR installing ${item}. Exit code ${exitStatus}"
|
||||||
echo "$cmdOutput"
|
echo "$cmdOutput"
|
||||||
|
|||||||
19
MDM/Collect Installomator.log.sh
Normal file
19
MDM/Collect Installomator.log.sh
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
# A small script to grab Installomator log from a client Mac.
|
||||||
|
# Can be sent to the client so the result can be seen in MDM
|
||||||
|
# Only uncomment the line below for the things you want to see.
|
||||||
|
|
||||||
|
logFile="/var/log/Installomator.log"
|
||||||
|
|
||||||
|
# Show latest 100 lines of the log
|
||||||
|
tail -100 "${logFile}"
|
||||||
|
|
||||||
|
# Show latest 500 lines but filter to REQ|ERROR|WARN lines
|
||||||
|
# Great overview of the log
|
||||||
|
#tail -500 "${logFile}" | grep --binary-files=text -E ": (REQ|ERROR|WARN)"
|
||||||
|
|
||||||
|
# Show only one label
|
||||||
|
# Great to see everything for a label that might fail or not working as expected
|
||||||
|
label="valuesfromarguments"
|
||||||
|
#cat "${logFile}" | grep --binary-files=text ": ${label}"
|
||||||
@@ -54,7 +54,8 @@ errorMessage="A problem was encountered setting up this Mac. Please contact IT."
|
|||||||
# https://github.com/Installomator/Installomator
|
# https://github.com/Installomator/Installomator
|
||||||
#
|
#
|
||||||
######################################################################
|
######################################################################
|
||||||
scriptVersion="9.5"
|
scriptVersion="9.6"
|
||||||
|
# v. 9.6 : 2022-11-15 : GitHub API call is first, only try alternative if that fails.
|
||||||
# v. 9.5 : 2022-09-21 : change of GitHub download
|
# v. 9.5 : 2022-09-21 : change of GitHub download
|
||||||
# v. 9.4 : 2022-09-14 : downloadURL can fall back on GitHub API
|
# v. 9.4 : 2022-09-14 : downloadURL can fall back on GitHub API
|
||||||
# v. 9.3 : 2022-08-29 : installomatorOptions in quotes and ignore blocking processes. Improved installation with looping if it fails, so it can try again. Improved GitHub handling. ws1 support.
|
# v. 9.3 : 2022-08-29 : installomatorOptions in quotes and ignore blocking processes. Improved installation with looping if it fails, so it can try again. Improved GitHub handling. ws1 support.
|
||||||
@@ -207,11 +208,11 @@ gitusername="Installomator"
|
|||||||
gitreponame="Installomator"
|
gitreponame="Installomator"
|
||||||
#printlog "$gitusername $gitreponame"
|
#printlog "$gitusername $gitreponame"
|
||||||
filetype="pkg"
|
filetype="pkg"
|
||||||
#downloadURL="https://github.com$(curl -sfL "https://github.com/$gitusername/$gitreponame/releases/latest" | tr '"' "\n" | grep -i "^/.*\/releases\/download\/.*\.$filetype" | head -1)"
|
downloadURL=$(curl -sfL "https://api.github.com/repos/$gitusername/$gitreponame/releases/latest" | awk -F '"' "/browser_download_url/ && /$filetype\"/ { print \$4; exit }")
|
||||||
downloadURL="https://github.com$(curl -sfL "$(curl -sfL "https://github.com/$gitusername/$gitreponame/releases/latest" | tr '"' "\n" | grep -i "expanded_assets" | head -1)" | tr '"' "\n" | grep -i "^/.*\/releases\/download\/.*\.$filetype" | head -1)"
|
|
||||||
if [[ "$(echo $downloadURL | grep -ioE "https.*.$filetype")" == "" ]]; then
|
if [[ "$(echo $downloadURL | grep -ioE "https.*.$filetype")" == "" ]]; then
|
||||||
printlog "Trying GitHub API for download URL."
|
printlog "GitHub API failed, trying failover."
|
||||||
downloadURL=$(curl -sfL "https://api.github.com/repos/$gitusername/$gitreponame/releases/latest" | awk -F '"' "/browser_download_url/ && /$filetype\"/ { print \$4; exit }")
|
#downloadURL="https://github.com$(curl -sfL "https://github.com/$gitusername/$gitreponame/releases/latest" | tr '"' "\n" | grep -i "^/.*\/releases\/download\/.*\.$filetype" | head -1)"
|
||||||
|
downloadURL="https://github.com$(curl -sfL "$(curl -sfL "https://github.com/$gitusername/$gitreponame/releases/latest" | tr '"' "\n" | grep -i "expanded_assets" | head -1)" | tr '"' "\n" | grep -i "^/.*\/releases\/download\/.*\.$filetype" | head -1)"
|
||||||
fi
|
fi
|
||||||
#printlog "$downloadURL"
|
#printlog "$downloadURL"
|
||||||
appNewVersion=$(curl -sLI "https://github.com/$gitusername/$gitreponame/releases/latest" | grep -i "^location" | tr "/" "\n" | tail -1 | sed 's/[^0-9\.]//g')
|
appNewVersion=$(curl -sLI "https://github.com/$gitusername/$gitreponame/releases/latest" | grep -i "^location" | tr "/" "\n" | tail -1 | sed 's/[^0-9\.]//g')
|
||||||
|
|||||||
@@ -52,7 +52,8 @@ errorMessage="A problem was encountered setting up this Mac. Please contact IT."
|
|||||||
# https://github.com/Installomator/Installomator
|
# https://github.com/Installomator/Installomator
|
||||||
#
|
#
|
||||||
######################################################################
|
######################################################################
|
||||||
scriptVersion="9.5"
|
scriptVersion="9.6"
|
||||||
|
# v. 9.6 : 2022-11-15 : GitHub API call is first, only try alternative if that fails.
|
||||||
# v. 9.5 : 2022-09-21 : change of GitHub download
|
# v. 9.5 : 2022-09-21 : change of GitHub download
|
||||||
# v. 9.4 : 2022-09-14 : Making error message optional. downloadURL can fall back on GitHub API.
|
# v. 9.4 : 2022-09-14 : Making error message optional. downloadURL can fall back on GitHub API.
|
||||||
# v. 9.3 : 2022-08-29 : installomatorOptions in quotes and ignore blocking processes. Improved installation with looping if it fails, so it can try again. Improved GitHub handling. ws1 support.
|
# v. 9.3 : 2022-08-29 : installomatorOptions in quotes and ignore blocking processes. Improved installation with looping if it fails, so it can try again. Improved GitHub handling. ws1 support.
|
||||||
@@ -178,11 +179,11 @@ gitusername="Installomator"
|
|||||||
gitreponame="Installomator"
|
gitreponame="Installomator"
|
||||||
#printlog "$gitusername $gitreponame"
|
#printlog "$gitusername $gitreponame"
|
||||||
filetype="pkg"
|
filetype="pkg"
|
||||||
#downloadURL="https://github.com$(curl -sfL "https://github.com/$gitusername/$gitreponame/releases/latest" | tr '"' "\n" | grep -i "^/.*\/releases\/download\/.*\.$filetype" | head -1)"
|
downloadURL=$(curl -sfL "https://api.github.com/repos/$gitusername/$gitreponame/releases/latest" | awk -F '"' "/browser_download_url/ && /$filetype\"/ { print \$4; exit }")
|
||||||
downloadURL="https://github.com$(curl -sfL "$(curl -sfL "https://github.com/$gitusername/$gitreponame/releases/latest" | tr '"' "\n" | grep -i "expanded_assets" | head -1)" | tr '"' "\n" | grep -i "^/.*\/releases\/download\/.*\.$filetype" | head -1)"
|
|
||||||
if [[ "$(echo $downloadURL | grep -ioE "https.*.$filetype")" == "" ]]; then
|
if [[ "$(echo $downloadURL | grep -ioE "https.*.$filetype")" == "" ]]; then
|
||||||
printlog "Trying GitHub API for download URL."
|
printlog "GitHub API failed, trying failover."
|
||||||
downloadURL=$(curl -sfL "https://api.github.com/repos/$gitusername/$gitreponame/releases/latest" | awk -F '"' "/browser_download_url/ && /$filetype\"/ { print \$4; exit }")
|
#downloadURL="https://github.com$(curl -sfL "https://github.com/$gitusername/$gitreponame/releases/latest" | tr '"' "\n" | grep -i "^/.*\/releases\/download\/.*\.$filetype" | head -1)"
|
||||||
|
downloadURL="https://github.com$(curl -sfL "$(curl -sfL "https://github.com/$gitusername/$gitreponame/releases/latest" | tr '"' "\n" | grep -i "expanded_assets" | head -1)" | tr '"' "\n" | grep -i "^/.*\/releases\/download\/.*\.$filetype" | head -1)"
|
||||||
fi
|
fi
|
||||||
#printlog "$downloadURL"
|
#printlog "$downloadURL"
|
||||||
appNewVersion=$(curl -sLI "https://github.com/$gitusername/$gitreponame/releases/latest" | grep -i "^location" | tr "/" "\n" | tail -1 | sed 's/[^0-9\.]//g')
|
appNewVersion=$(curl -sLI "https://github.com/$gitusername/$gitreponame/releases/latest" | grep -i "^location" | tr "/" "\n" | tail -1 | sed 's/[^0-9\.]//g')
|
||||||
|
|||||||
@@ -54,7 +54,8 @@ errorMessage="A problem was encountered setting up this Mac. Please contact IT."
|
|||||||
# https://github.com/Installomator/Installomator
|
# https://github.com/Installomator/Installomator
|
||||||
#
|
#
|
||||||
######################################################################
|
######################################################################
|
||||||
scriptVersion="9.5"
|
scriptVersion="9.6"
|
||||||
|
# v. 9.6 : 2022-11-15 : GitHub API call is first, only try alternative if that fails.
|
||||||
# v. 9.5 : 2022-09-21 : change of GitHub download
|
# v. 9.5 : 2022-09-21 : change of GitHub download
|
||||||
# v. 9.4 : 2022-09-14 : downloadURL can fall back on GitHub API
|
# v. 9.4 : 2022-09-14 : downloadURL can fall back on GitHub API
|
||||||
# v. 9.3 : 2022-08-29 : installomatorOptions in quotes and ignore blocking processes. Improved installation with looping if it fails, so it can try again. Improved GitHub handling. ws1 support.
|
# v. 9.3 : 2022-08-29 : installomatorOptions in quotes and ignore blocking processes. Improved installation with looping if it fails, so it can try again. Improved GitHub handling. ws1 support.
|
||||||
@@ -207,11 +208,11 @@ gitusername="Installomator"
|
|||||||
gitreponame="Installomator"
|
gitreponame="Installomator"
|
||||||
#printlog "$gitusername $gitreponame"
|
#printlog "$gitusername $gitreponame"
|
||||||
filetype="pkg"
|
filetype="pkg"
|
||||||
#downloadURL="https://github.com$(curl -sfL "https://github.com/$gitusername/$gitreponame/releases/latest" | tr '"' "\n" | grep -i "^/.*\/releases\/download\/.*\.$filetype" | head -1)"
|
downloadURL=$(curl -sfL "https://api.github.com/repos/$gitusername/$gitreponame/releases/latest" | awk -F '"' "/browser_download_url/ && /$filetype\"/ { print \$4; exit }")
|
||||||
downloadURL="https://github.com$(curl -sfL "$(curl -sfL "https://github.com/$gitusername/$gitreponame/releases/latest" | tr '"' "\n" | grep -i "expanded_assets" | head -1)" | tr '"' "\n" | grep -i "^/.*\/releases\/download\/.*\.$filetype" | head -1)"
|
|
||||||
if [[ "$(echo $downloadURL | grep -ioE "https.*.$filetype")" == "" ]]; then
|
if [[ "$(echo $downloadURL | grep -ioE "https.*.$filetype")" == "" ]]; then
|
||||||
printlog "Trying GitHub API for download URL."
|
printlog "GitHub API failed, trying failover."
|
||||||
downloadURL=$(curl -sfL "https://api.github.com/repos/$gitusername/$gitreponame/releases/latest" | awk -F '"' "/browser_download_url/ && /$filetype\"/ { print \$4; exit }")
|
#downloadURL="https://github.com$(curl -sfL "https://github.com/$gitusername/$gitreponame/releases/latest" | tr '"' "\n" | grep -i "^/.*\/releases\/download\/.*\.$filetype" | head -1)"
|
||||||
|
downloadURL="https://github.com$(curl -sfL "$(curl -sfL "https://github.com/$gitusername/$gitreponame/releases/latest" | tr '"' "\n" | grep -i "expanded_assets" | head -1)" | tr '"' "\n" | grep -i "^/.*\/releases\/download\/.*\.$filetype" | head -1)"
|
||||||
fi
|
fi
|
||||||
#printlog "$downloadURL"
|
#printlog "$downloadURL"
|
||||||
appNewVersion=$(curl -sLI "https://github.com/$gitusername/$gitreponame/releases/latest" | grep -i "^location" | tr "/" "\n" | tail -1 | sed 's/[^0-9\.]//g')
|
appNewVersion=$(curl -sLI "https://github.com/$gitusername/$gitreponame/releases/latest" | grep -i "^location" | tr "/" "\n" | tail -1 | sed 's/[^0-9\.]//g')
|
||||||
|
|||||||
@@ -51,7 +51,8 @@ errorMessage="A problem was encountered setting up this Mac. Please contact IT."
|
|||||||
# https://github.com/Installomator/Installomator
|
# https://github.com/Installomator/Installomator
|
||||||
#
|
#
|
||||||
######################################################################
|
######################################################################
|
||||||
scriptVersion="9.5"
|
scriptVersion="9.6"
|
||||||
|
# v. 9.6 : 2022-11-15 : GitHub API call is first, only try alternative if that fails.
|
||||||
# v. 9.5 : 2022-09-21 : change of GitHub download
|
# v. 9.5 : 2022-09-21 : change of GitHub download
|
||||||
# v. 9.4 : 2022-09-14 : Making error message optional. downloadURL can fall back on GitHub API.
|
# v. 9.4 : 2022-09-14 : Making error message optional. downloadURL can fall back on GitHub API.
|
||||||
# v. 9.3 : 2022-08-29 : installomatorOptions in quotes and ignore blocking processes. Improved installation with looping if it fails, so it can try again. Improved GitHub handling. ws1 support.
|
# v. 9.3 : 2022-08-29 : installomatorOptions in quotes and ignore blocking processes. Improved installation with looping if it fails, so it can try again. Improved GitHub handling. ws1 support.
|
||||||
@@ -177,11 +178,11 @@ gitusername="Installomator"
|
|||||||
gitreponame="Installomator"
|
gitreponame="Installomator"
|
||||||
#printlog "$gitusername $gitreponame"
|
#printlog "$gitusername $gitreponame"
|
||||||
filetype="pkg"
|
filetype="pkg"
|
||||||
#downloadURL="https://github.com$(curl -sfL "https://github.com/$gitusername/$gitreponame/releases/latest" | tr '"' "\n" | grep -i "^/.*\/releases\/download\/.*\.$filetype" | head -1)"
|
downloadURL=$(curl -sfL "https://api.github.com/repos/$gitusername/$gitreponame/releases/latest" | awk -F '"' "/browser_download_url/ && /$filetype\"/ { print \$4; exit }")
|
||||||
downloadURL="https://github.com$(curl -sfL "$(curl -sfL "https://github.com/$gitusername/$gitreponame/releases/latest" | tr '"' "\n" | grep -i "expanded_assets" | head -1)" | tr '"' "\n" | grep -i "^/.*\/releases\/download\/.*\.$filetype" | head -1)"
|
|
||||||
if [[ "$(echo $downloadURL | grep -ioE "https.*.$filetype")" == "" ]]; then
|
if [[ "$(echo $downloadURL | grep -ioE "https.*.$filetype")" == "" ]]; then
|
||||||
printlog "Trying GitHub API for download URL."
|
printlog "GitHub API failed, trying failover."
|
||||||
downloadURL=$(curl -sfL "https://api.github.com/repos/$gitusername/$gitreponame/releases/latest" | awk -F '"' "/browser_download_url/ && /$filetype\"/ { print \$4; exit }")
|
#downloadURL="https://github.com$(curl -sfL "https://github.com/$gitusername/$gitreponame/releases/latest" | tr '"' "\n" | grep -i "^/.*\/releases\/download\/.*\.$filetype" | head -1)"
|
||||||
|
downloadURL="https://github.com$(curl -sfL "$(curl -sfL "https://github.com/$gitusername/$gitreponame/releases/latest" | tr '"' "\n" | grep -i "expanded_assets" | head -1)" | tr '"' "\n" | grep -i "^/.*\/releases\/download\/.*\.$filetype" | head -1)"
|
||||||
fi
|
fi
|
||||||
#printlog "$downloadURL"
|
#printlog "$downloadURL"
|
||||||
appNewVersion=$(curl -sLI "https://github.com/$gitusername/$gitreponame/releases/latest" | grep -i "^location" | tr "/" "\n" | tail -1 | sed 's/[^0-9\.]//g')
|
appNewVersion=$(curl -sLI "https://github.com/$gitusername/$gitreponame/releases/latest" | grep -i "^location" | tr "/" "\n" | tail -1 | sed 's/[^0-9\.]//g')
|
||||||
|
|||||||
@@ -54,11 +54,11 @@ gitusername="bartreardon"
|
|||||||
gitreponame="swiftDialog"
|
gitreponame="swiftDialog"
|
||||||
#echo "$gitusername $gitreponame"
|
#echo "$gitusername $gitreponame"
|
||||||
filetype="pkg"
|
filetype="pkg"
|
||||||
#downloadURL="https://github.com$(curl -sfL "https://github.com/$gitusername/$gitreponame/releases/latest" | tr '"' "\n" | grep -i "^/.*\/releases\/download\/.*\.$filetype" | head -1)"
|
downloadURL=$(curl -sfL "https://api.github.com/repos/$gitusername/$gitreponame/releases/latest" | awk -F '"' "/browser_download_url/ && /$filetype\"/ { print \$4; exit }")
|
||||||
downloadURL="https://github.com$(curl -sfL "$(curl -sfL "https://github.com/$gitusername/$gitreponame/releases/latest" | tr '"' "\n" | grep -i "expanded_assets" | head -1)" | tr '"' "\n" | grep -i "^/.*\/releases\/download\/.*\.$filetype" | head -1)"
|
|
||||||
if [[ "$(echo $downloadURL | grep -ioE "https.*.$filetype")" == "" ]]; then
|
if [[ "$(echo $downloadURL | grep -ioE "https.*.$filetype")" == "" ]]; then
|
||||||
echo "Trying GitHub API for download URL."
|
printlog "GitHub API failed, trying failover."
|
||||||
downloadURL=$(curl -sfL "https://api.github.com/repos/$gitusername/$gitreponame/releases/latest" | awk -F '"' "/browser_download_url/ && /$filetype\"/ { print \$4; exit }")
|
#downloadURL="https://github.com$(curl -sfL "https://github.com/$gitusername/$gitreponame/releases/latest" | tr '"' "\n" | grep -i "^/.*\/releases\/download\/.*\.$filetype" | head -1)"
|
||||||
|
downloadURL="https://github.com$(curl -sfL "$(curl -sfL "https://github.com/$gitusername/$gitreponame/releases/latest" | tr '"' "\n" | grep -i "expanded_assets" | head -1)" | tr '"' "\n" | grep -i "^/.*\/releases\/download\/.*\.$filetype" | head -1)"
|
||||||
fi
|
fi
|
||||||
#echo "$downloadURL"
|
#echo "$downloadURL"
|
||||||
appNewVersion=$(curl -sLI "https://github.com/$gitusername/$gitreponame/releases/latest" | grep -i "^location" | tr "/" "\n" | tail -1 | sed 's/[^0-9\.]//g')
|
appNewVersion=$(curl -sLI "https://github.com/$gitusername/$gitreponame/releases/latest" | grep -i "^location" | tr "/" "\n" | tail -1 | sed 's/[^0-9\.]//g')
|
||||||
|
|||||||
@@ -86,7 +86,8 @@ errorMessage="A problem was encountered setting up this Mac. Please contact IT."
|
|||||||
# Or fonts, like:
|
# Or fonts, like:
|
||||||
# "Apple SF Pro Font,/Library/Fonts/SF-Pro.ttf"
|
# "Apple SF Pro Font,/Library/Fonts/SF-Pro.ttf"
|
||||||
######################################################################
|
######################################################################
|
||||||
scriptVersion="9.5"
|
scriptVersion="9.6"
|
||||||
|
# v. 9.6 : 2022-11-15 : GitHub API call is first, only try alternative if that fails.
|
||||||
# v. 9.5 : 2022-09-21 : change of GitHub download
|
# v. 9.5 : 2022-09-21 : change of GitHub download
|
||||||
# v. 9.4 : 2022-09-14 : downloadURL can fall back on GitHub API
|
# v. 9.4 : 2022-09-14 : downloadURL can fall back on GitHub API
|
||||||
# v. 9.3 : 2022-08-29 : Logging changed for current version. Improved installation with looping if it fails, so it can try again. Improved GitHub handling.
|
# v. 9.3 : 2022-08-29 : Logging changed for current version. Improved installation with looping if it fails, so it can try again. Improved GitHub handling.
|
||||||
@@ -230,11 +231,11 @@ gitusername="bartreardon"
|
|||||||
gitreponame="swiftDialog"
|
gitreponame="swiftDialog"
|
||||||
#printlog "$gitusername $gitreponame"
|
#printlog "$gitusername $gitreponame"
|
||||||
filetype="pkg"
|
filetype="pkg"
|
||||||
#downloadURL="https://github.com$(curl -sfL "https://github.com/$gitusername/$gitreponame/releases/latest" | tr '"' "\n" | grep -i "^/.*\/releases\/download\/.*\.$filetype" | head -1)"
|
downloadURL=$(curl -sfL "https://api.github.com/repos/$gitusername/$gitreponame/releases/latest" | awk -F '"' "/browser_download_url/ && /$filetype\"/ { print \$4; exit }")
|
||||||
downloadURL="https://github.com$(curl -sfL "$(curl -sfL "https://github.com/$gitusername/$gitreponame/releases/latest" | tr '"' "\n" | grep -i "expanded_assets" | head -1)" | tr '"' "\n" | grep -i "^/.*\/releases\/download\/.*\.$filetype" | head -1)"
|
|
||||||
if [[ "$(echo $downloadURL | grep -ioE "https.*.$filetype")" == "" ]]; then
|
if [[ "$(echo $downloadURL | grep -ioE "https.*.$filetype")" == "" ]]; then
|
||||||
printlog "Trying GitHub API for download URL."
|
printlog "GitHub API failed, trying failover."
|
||||||
downloadURL=$(curl -sfL "https://api.github.com/repos/$gitusername/$gitreponame/releases/latest" | awk -F '"' "/browser_download_url/ && /$filetype\"/ { print \$4; exit }")
|
#downloadURL="https://github.com$(curl -sfL "https://github.com/$gitusername/$gitreponame/releases/latest" | tr '"' "\n" | grep -i "^/.*\/releases\/download\/.*\.$filetype" | head -1)"
|
||||||
|
downloadURL="https://github.com$(curl -sfL "$(curl -sfL "https://github.com/$gitusername/$gitreponame/releases/latest" | tr '"' "\n" | grep -i "expanded_assets" | head -1)" | tr '"' "\n" | grep -i "^/.*\/releases\/download\/.*\.$filetype" | head -1)"
|
||||||
fi
|
fi
|
||||||
#printlog "$downloadURL"
|
#printlog "$downloadURL"
|
||||||
appNewVersion=$(curl -sLI "https://github.com/$gitusername/$gitreponame/releases/latest" | grep -i "^location" | tr "/" "\n" | tail -1 | sed 's/[^0-9\.]//g')
|
appNewVersion=$(curl -sLI "https://github.com/$gitusername/$gitreponame/releases/latest" | grep -i "^location" | tr "/" "\n" | tail -1 | sed 's/[^0-9\.]//g')
|
||||||
@@ -245,6 +246,7 @@ versionKey="CFBundleShortVersionString" #CFBundleVersion
|
|||||||
|
|
||||||
currentInstalledVersion="$(defaults read "${destFile}/Contents/Info.plist" $versionKey || true)"
|
currentInstalledVersion="$(defaults read "${destFile}/Contents/Info.plist" $versionKey || true)"
|
||||||
printlog "${name} version: $currentInstalledVersion"
|
printlog "${name} version: $currentInstalledVersion"
|
||||||
|
destFile="/usr/local/bin/dialog"
|
||||||
if [[ ! -e "${destFile}" || "$currentInstalledVersion" != "$appNewVersion" ]]; then
|
if [[ ! -e "${destFile}" || "$currentInstalledVersion" != "$appNewVersion" ]]; then
|
||||||
printlog "$name not found or version not latest."
|
printlog "$name not found or version not latest."
|
||||||
printlog "${destFile}"
|
printlog "${destFile}"
|
||||||
|
|||||||
@@ -16,7 +16,8 @@
|
|||||||
# https://github.com/Installomator/Installomator
|
# https://github.com/Installomator/Installomator
|
||||||
#
|
#
|
||||||
######################################################################
|
######################################################################
|
||||||
scriptVersion="9.5"
|
scriptVersion="9.6"
|
||||||
|
# v. 9.6 : 2022-11-15 : GitHub API call is first, only try alternative if that fails.
|
||||||
# v. 9.5 : 2022-09-21 : change of GitHub download
|
# v. 9.5 : 2022-09-21 : change of GitHub download
|
||||||
# v. 9.4 : 2022-09-14 : downloadURL can fall back on GitHub API
|
# v. 9.4 : 2022-09-14 : downloadURL can fall back on GitHub API
|
||||||
# v. 9.3 : 2022-08-29 : Logging changed for current version. Improved installation with looping if it fails, so it can try again. Improved GitHub handling.
|
# v. 9.3 : 2022-08-29 : Logging changed for current version. Improved installation with looping if it fails, so it can try again. Improved GitHub handling.
|
||||||
@@ -65,11 +66,11 @@ gitusername="Installomator"
|
|||||||
gitreponame="Installomator"
|
gitreponame="Installomator"
|
||||||
#printlog "$gitusername $gitreponame"
|
#printlog "$gitusername $gitreponame"
|
||||||
filetype="pkg"
|
filetype="pkg"
|
||||||
#downloadURL="https://github.com$(curl -sfL "https://github.com/$gitusername/$gitreponame/releases/latest" | tr '"' "\n" | grep -i "^/.*\/releases\/download\/.*\.$filetype" | head -1)"
|
downloadURL=$(curl -sfL "https://api.github.com/repos/$gitusername/$gitreponame/releases/latest" | awk -F '"' "/browser_download_url/ && /$filetype\"/ { print \$4; exit }")
|
||||||
downloadURL="https://github.com$(curl -sfL "$(curl -sfL "https://github.com/$gitusername/$gitreponame/releases/latest" | tr '"' "\n" | grep -i "expanded_assets" | head -1)" | tr '"' "\n" | grep -i "^/.*\/releases\/download\/.*\.$filetype" | head -1)"
|
|
||||||
if [[ "$(echo $downloadURL | grep -ioE "https.*.$filetype")" == "" ]]; then
|
if [[ "$(echo $downloadURL | grep -ioE "https.*.$filetype")" == "" ]]; then
|
||||||
printlog "Trying GitHub API for download URL."
|
printlog "GitHub API failed, trying failover."
|
||||||
downloadURL=$(curl -sfL "https://api.github.com/repos/$gitusername/$gitreponame/releases/latest" | awk -F '"' "/browser_download_url/ && /$filetype\"/ { print \$4; exit }")
|
#downloadURL="https://github.com$(curl -sfL "https://github.com/$gitusername/$gitreponame/releases/latest" | tr '"' "\n" | grep -i "^/.*\/releases\/download\/.*\.$filetype" | head -1)"
|
||||||
|
downloadURL="https://github.com$(curl -sfL "$(curl -sfL "https://github.com/$gitusername/$gitreponame/releases/latest" | tr '"' "\n" | grep -i "expanded_assets" | head -1)" | tr '"' "\n" | grep -i "^/.*\/releases\/download\/.*\.$filetype" | head -1)"
|
||||||
fi
|
fi
|
||||||
#printlog "$downloadURL"
|
#printlog "$downloadURL"
|
||||||
appNewVersion=$(curl -sLI "https://github.com/$gitusername/$gitreponame/releases/latest" | grep -i "^location" | tr "/" "\n" | tail -1 | sed 's/[^0-9\.]//g')
|
appNewVersion=$(curl -sLI "https://github.com/$gitusername/$gitreponame/releases/latest" | grep -i "^location" | tr "/" "\n" | tail -1 | sed 's/[^0-9\.]//g')
|
||||||
|
|||||||
@@ -16,7 +16,8 @@
|
|||||||
# https://github.com/Installomator/Installomator
|
# https://github.com/Installomator/Installomator
|
||||||
#
|
#
|
||||||
######################################################################
|
######################################################################
|
||||||
scriptVersion="9.5"
|
scriptVersion="9.6"
|
||||||
|
# v. 9.6 : 2022-11-15 : GitHub API call is first, only try alternative if that fails.
|
||||||
# v. 9.5 : 2022-09-21 : change of GitHub download
|
# v. 9.5 : 2022-09-21 : change of GitHub download
|
||||||
# v. 9.4 : 2022-09-14 : downloadURL can fall back on GitHub API.
|
# v. 9.4 : 2022-09-14 : downloadURL can fall back on GitHub API.
|
||||||
# v. 9.3 : 2022-08-29 : Logging changed for current version. Improved installation with looping if it fails, so it can try again. Improved GitHub handling.
|
# v. 9.3 : 2022-08-29 : Logging changed for current version. Improved installation with looping if it fails, so it can try again. Improved GitHub handling.
|
||||||
@@ -65,11 +66,11 @@ gitusername="bartreardon"
|
|||||||
gitreponame="swiftDialog"
|
gitreponame="swiftDialog"
|
||||||
#printlog "$gitusername $gitreponame"
|
#printlog "$gitusername $gitreponame"
|
||||||
filetype="pkg"
|
filetype="pkg"
|
||||||
#downloadURL="https://github.com$(curl -sfL "https://github.com/$gitusername/$gitreponame/releases/latest" | tr '"' "\n" | grep -i "^/.*\/releases\/download\/.*\.$filetype" | head -1)"
|
downloadURL=$(curl -sfL "https://api.github.com/repos/$gitusername/$gitreponame/releases/latest" | awk -F '"' "/browser_download_url/ && /$filetype\"/ { print \$4; exit }")
|
||||||
downloadURL="https://github.com$(curl -sfL "$(curl -sfL "https://github.com/$gitusername/$gitreponame/releases/latest" | tr '"' "\n" | grep -i "expanded_assets" | head -1)" | tr '"' "\n" | grep -i "^/.*\/releases\/download\/.*\.$filetype" | head -1)"
|
|
||||||
if [[ "$(echo $downloadURL | grep -ioE "https.*.$filetype")" == "" ]]; then
|
if [[ "$(echo $downloadURL | grep -ioE "https.*.$filetype")" == "" ]]; then
|
||||||
printlog "Trying GitHub API for download URL."
|
printlog "GitHub API failed, trying failover."
|
||||||
downloadURL=$(curl -sfL "https://api.github.com/repos/$gitusername/$gitreponame/releases/latest" | awk -F '"' "/browser_download_url/ && /$filetype\"/ { print \$4; exit }")
|
#downloadURL="https://github.com$(curl -sfL "https://github.com/$gitusername/$gitreponame/releases/latest" | tr '"' "\n" | grep -i "^/.*\/releases\/download\/.*\.$filetype" | head -1)"
|
||||||
|
downloadURL="https://github.com$(curl -sfL "$(curl -sfL "https://github.com/$gitusername/$gitreponame/releases/latest" | tr '"' "\n" | grep -i "expanded_assets" | head -1)" | tr '"' "\n" | grep -i "^/.*\/releases\/download\/.*\.$filetype" | head -1)"
|
||||||
fi
|
fi
|
||||||
#printlog "$downloadURL"
|
#printlog "$downloadURL"
|
||||||
appNewVersion=$(curl -sLI "https://github.com/$gitusername/$gitreponame/releases/latest" | grep -i "^location" | tr "/" "\n" | tail -1 | sed 's/[^0-9\.]//g')
|
appNewVersion=$(curl -sLI "https://github.com/$gitusername/$gitreponame/releases/latest" | grep -i "^location" | tr "/" "\n" | tail -1 | sed 's/[^0-9\.]//g')
|
||||||
@@ -80,6 +81,7 @@ versionKey="CFBundleShortVersionString" #CFBundleVersion
|
|||||||
|
|
||||||
currentInstalledVersion="$(defaults read "${destFile}/Contents/Info.plist" $versionKey || true)"
|
currentInstalledVersion="$(defaults read "${destFile}/Contents/Info.plist" $versionKey || true)"
|
||||||
printlog "${name} version: $currentInstalledVersion"
|
printlog "${name} version: $currentInstalledVersion"
|
||||||
|
destFile="/usr/local/bin/dialog"
|
||||||
if [[ ! -e "${destFile}" || "$currentInstalledVersion" != "$appNewVersion" ]]; then
|
if [[ ! -e "${destFile}" || "$currentInstalledVersion" != "$appNewVersion" ]]; then
|
||||||
printlog "$name not found or version not latest."
|
printlog "$name not found or version not latest."
|
||||||
printlog "${destFile}"
|
printlog "${destFile}"
|
||||||
|
|||||||
@@ -97,7 +97,7 @@ At some point, in 2018, Armin got frustrated at the number of scripts he was mai
|
|||||||
|
|
||||||
So Armin made the version for Jamf Pro but universally for any MDM to adopt.
|
So Armin made the version for Jamf Pro but universally for any MDM to adopt.
|
||||||
|
|
||||||
Søren looked at this, and wanted this approach to work in Mosyle and Addigy, and for these solutions we need Installomator to be locally installed on. the Mac, and then the MDM can call this script from their scripts features. For some time Søren had a version of Installomator that was supplied with a notarized pkg, so it could be deployed as part of DEP or however was needed.
|
Søren looked at this, and wanted this approach to work in Mosyle and Addigy, and for these solutions we need Installomator to be locally installed on the Mac, and then the MDM can call this script from their scripts features. For some time Søren had a version of Installomator that was supplied with a notarized pkg, so it could be deployed as part of DEP or however was needed.
|
||||||
|
|
||||||
This has now been merged into Installomator, and with contributions of Isaac and Adam, new features and labels have been added more frequently.
|
This has now been merged into Installomator, and with contributions of Isaac and Adam, new features and labels have been added more frequently.
|
||||||
|
|
||||||
|
|||||||
@@ -1018,7 +1018,7 @@ updateDialog() {
|
|||||||
echo "progress: $progress" >> $cmd_file
|
echo "progress: $progress" >> $cmd_file
|
||||||
fi
|
fi
|
||||||
if [[ $message != "" ]]; then
|
if [[ $message != "" ]]; then
|
||||||
echo "progresstext: $name - $message" >> $cmd_file
|
echo "progresstext: $message" >> $cmd_file
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
# list item has a value, so we update the progress and text in the list
|
# list item has a value, so we update the progress and text in the list
|
||||||
|
|||||||
@@ -2,6 +2,8 @@ googleadseditor)
|
|||||||
name="Google Ads Editor"
|
name="Google Ads Editor"
|
||||||
type="dmg"
|
type="dmg"
|
||||||
downloadURL="https://dl.google.com/adwords_editor/google_ads_editor.dmg"
|
downloadURL="https://dl.google.com/adwords_editor/google_ads_editor.dmg"
|
||||||
appNewVersion=""
|
# Version not found in installed app, but on we it is here
|
||||||
|
#appNewVersion="$(curl -fs "https://support.google.com/google-ads/editor/answer/30513" | grep "Current Mac version" | sed -E 's/.*Current Mac version: *([0-9.]*)<.*/\1/')"
|
||||||
|
#appCustomVersion(){ }
|
||||||
expectedTeamID="EQHXZ8M8AV"
|
expectedTeamID="EQHXZ8M8AV"
|
||||||
;;
|
;;
|
||||||
|
|||||||
8
fragments/labels/ibmnotifier.sh
Normal file
8
fragments/labels/ibmnotifier.sh
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
ibmnotifier)
|
||||||
|
name="IBM Notifier"
|
||||||
|
type="zip"
|
||||||
|
downloadURL="$(downloadURLFromGit IBM mac-ibm-notifications)"
|
||||||
|
#appNewVersion="$(versionFromGit IBM mac-ibm-notifications)"
|
||||||
|
appNewVersion="$(curl -sLI "https://github.com/IBM/mac-ibm-notifications/releases/latest" | grep -i "^location" | tr "/" "\n" | tail -1 | cut -d "-" -f2 | sed 's/[^0-9\.]//g')"
|
||||||
|
expectedTeamID="PETKK2G752"
|
||||||
|
;;
|
||||||
9
fragments/labels/ipvisionconnect.sh
Normal file
9
fragments/labels/ipvisionconnect.sh
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
ipvisionconnect)
|
||||||
|
name="ipvision Connect"
|
||||||
|
type="dmg"
|
||||||
|
# Description: A softphone client from ipvision.dk
|
||||||
|
downloadStore="https://my.ipvision.dk/connect/"
|
||||||
|
downloadURL="${downloadStore}$(curl -fs "https://my.ipvision.dk/connect/" | grep osx | sort | tail -1 | cut -d '"' -f2)"
|
||||||
|
appNewVersion="$(curl -fs "${downloadStore}" | grep osx | sort | tail -1 | sed -E 's/.*ipvision_connect_([0-9_]*)_osx.*/\1/' | tr "_" ".")"
|
||||||
|
expectedTeamID="5RLWBLKGL2"
|
||||||
|
;;
|
||||||
11
fragments/labels/logitechoptionsplus.sh
Normal file
11
fragments/labels/logitechoptionsplus.sh
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
logitechoptionsplus)
|
||||||
|
name="Logi Options+"
|
||||||
|
archiveName="logioptionsplus_installer.zip"
|
||||||
|
appName="logioptionsplus_installer.app"
|
||||||
|
type="zip"
|
||||||
|
downloadURL="https://download01.logi.com/web/ftp/pub/techsupport/optionsplus/logioptionsplus_installer.zip"
|
||||||
|
appNewVersion=$(curl -fs "https://support.logi.com/api/v2/help_center/en-us/articles.json?label_names=webcontent=productdownload,webos=mac-macos-x-11.0" | tr "," "\n" | grep -A 10 "macOS" | grep -B 5 -ie "https.*/.*/optionsplus/.*\.zip" | grep "Software Version" | sed 's/\\u[0-9a-z][0-9a-z][0-9a-z][0-9a-z]//g' | grep -ioe "Software Version.*[0-9.]*" | tr "/" "\n" | grep -oe "[0-9.]*" | head -1)
|
||||||
|
CLIInstaller="logioptionsplus_installer.app/Contents/MacOS/logioptionsplus_installer"
|
||||||
|
CLIArguments=(--quiet)
|
||||||
|
expectedTeamID="QED4VVPZWA"
|
||||||
|
;;
|
||||||
8
fragments/labels/lucidlink.sh
Normal file
8
fragments/labels/lucidlink.sh
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
lucidlink)
|
||||||
|
name="Lucid"
|
||||||
|
# https://www.lucidlink.com/download
|
||||||
|
type="pkg"
|
||||||
|
downloadURL="https://www.lucidlink.com/download/latest/osx/stable/"
|
||||||
|
appNewVersion=$( curl -fsIL "${downloadURL}" | grep -i "^location" | awk '{print $2}' | sed -E 's/.*\/[a-zA-Z]*-([0-9.]*)\..*/\1/g' )
|
||||||
|
expectedTeamID="Y4KMJPU2B4"
|
||||||
|
;;
|
||||||
7
fragments/labels/mactex.sh
Normal file
7
fragments/labels/mactex.sh
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
mactex)
|
||||||
|
name="MacTeX"
|
||||||
|
appName="TeX Live Utility.app"
|
||||||
|
type="pkg"
|
||||||
|
downloadURL="https://mirror.ctan.org/systems/mac/mactex/MacTeX.pkg"
|
||||||
|
expectedTeamID="RBGCY5RJWM"
|
||||||
|
;;
|
||||||
9
fragments/labels/onscreencontrol.sh
Normal file
9
fragments/labels/onscreencontrol.sh
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
onscreencontrol)
|
||||||
|
name="OnScreen Control"
|
||||||
|
type="pkgInZip"
|
||||||
|
packageID="com.LGSI.OnScreen-Control"
|
||||||
|
releaseURL="https://www.lg.com/de/support/software-select-category-result?csSalesCode=34WK95U-W.AEU"
|
||||||
|
appNewVersion=$(curl -sf $releaseURL | grep -m 1 "Mac_OSC_" | sed -E 's/.*OSC_([0-9.]*).zip.*/\1/g')
|
||||||
|
downloadURL=$(curl -sf $releaseURL | grep -m 1 "Mac_OSC_" | sed "s|.*href=\"\(.*\)\" title.*|\\1|")
|
||||||
|
expectedTeamID="5SKT5H4CPQ"
|
||||||
|
;;
|
||||||
@@ -2,6 +2,11 @@ openvpnconnectv3)
|
|||||||
# credit: @lotnix
|
# credit: @lotnix
|
||||||
name="OpenVPN Connect"
|
name="OpenVPN Connect"
|
||||||
type="pkgInDmg"
|
type="pkgInDmg"
|
||||||
|
if [[ $(arch) == "arm64" ]]; then
|
||||||
|
pkgName="/OpenVPN_Connect_[0-9_()]*_arm64_Installer_signed.pkg"
|
||||||
|
elif [[ $(arch) == "i386" ]]; then
|
||||||
|
pkgName="OpenVPN_Connect_[0-9_()]*_x86_64_Installer_signed.pkg"
|
||||||
|
fi
|
||||||
downloadURL="https://openvpn.net/downloads/openvpn-connect-v3-macos.dmg"
|
downloadURL="https://openvpn.net/downloads/openvpn-connect-v3-macos.dmg"
|
||||||
expectedTeamID="ACV7L3WCD8"
|
expectedTeamID="ACV7L3WCD8"
|
||||||
;;
|
;;
|
||||||
|
|||||||
6
fragments/labels/projectplace.sh
Normal file
6
fragments/labels/projectplace.sh
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
projectplace)
|
||||||
|
name="Projectplace"
|
||||||
|
type="dmg"
|
||||||
|
downloadURL="https://service.projectplace.com/client_apps/desktop/Projectplace-for-mac.dmg"
|
||||||
|
expectedTeamID="8333HW99E8"
|
||||||
|
;;
|
||||||
9
fragments/labels/subethaedit.sh
Normal file
9
fragments/labels/subethaedit.sh
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
subethaedit)
|
||||||
|
name="SubEthaEdit"
|
||||||
|
# Home: https://github.com/subethaedit/SubEthaEdit
|
||||||
|
# Description: General purpose plain text editor for macOS. Widely known for its live collaboration feature.
|
||||||
|
type="zip"
|
||||||
|
downloadURL="$(downloadURLFromGit subethaedit SubEthaEdit)"
|
||||||
|
appNewVersion="$(versionFromGit subethaedit SubEthaEdit)"
|
||||||
|
expectedTeamID="S76GCAG929"
|
||||||
|
;;
|
||||||
9
fragments/labels/sublimemerge.sh
Normal file
9
fragments/labels/sublimemerge.sh
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
sublimemerge)
|
||||||
|
# Home: https://www.sublimemerge.com
|
||||||
|
# Description: Git Client, done Sublime. Line-by-line Staging. Commit Editing. Unmatched Performance.
|
||||||
|
name="Sublime Merge"
|
||||||
|
type="zip"
|
||||||
|
downloadURL="$(curl -fs "https://www.sublimemerge.com/download_thanks?target=mac#direct-downloads" | grep -io "https://download.*_mac.zip" | head -1)"
|
||||||
|
appNewVersion=$(curl -fs https://www.sublimemerge.com/download | grep -i -A 4 "id.*changelog" | grep -io "Build [0-9]*")
|
||||||
|
expectedTeamID="Z6D26JE4Y4"
|
||||||
|
;;
|
||||||
@@ -2,5 +2,6 @@ tunnelblick)
|
|||||||
name="Tunnelblick"
|
name="Tunnelblick"
|
||||||
type="dmg"
|
type="dmg"
|
||||||
downloadURL=$(downloadURLFromGit TunnelBlick Tunnelblick )
|
downloadURL=$(downloadURLFromGit TunnelBlick Tunnelblick )
|
||||||
|
appNewVersion=$(curl -sf https://github.com/Tunnelblick/Tunnelblick/releases | grep -m 1 "/Tunnelblick/Tunnelblick/releases/tag/" | sed -r 's/.*Tunnelblick ([^<]+).*/\1/')
|
||||||
expectedTeamID="Z2SG5H3HC8"
|
expectedTeamID="Z2SG5H3HC8"
|
||||||
;;
|
;;
|
||||||
|
|||||||
8
fragments/labels/venturablocker.sh
Normal file
8
fragments/labels/venturablocker.sh
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
venturablocker)
|
||||||
|
name="venturablocker"
|
||||||
|
type="pkg"
|
||||||
|
packageID="dk.envo-it.venturablocker"
|
||||||
|
downloadURL=$(downloadURLFromGit Theile venturablocker )
|
||||||
|
appNewVersion=$(versionFromGit Theile venturablocker )
|
||||||
|
expectedTeamID="FXW6QXBFW5"
|
||||||
|
;;
|
||||||
7
fragments/labels/vysor.sh
Normal file
7
fragments/labels/vysor.sh
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
vysor)
|
||||||
|
name="Vysor"
|
||||||
|
type="zip"
|
||||||
|
downloadURL="$(downloadURLFromGit koush vysor.io)"
|
||||||
|
appNewVersion="$(versionFromGit koush vysor.io)"
|
||||||
|
expectedTeamID="XT4C9EJNUG"
|
||||||
|
;;
|
||||||
8
fragments/labels/zerotier.sh
Normal file
8
fragments/labels/zerotier.sh
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
zerotier)
|
||||||
|
# credit: Michael T (PurpleComputing)
|
||||||
|
name="ZeroTier%20One"
|
||||||
|
type="pkg"
|
||||||
|
packageID="com.zerotier.pkg.ZeroTierOne"
|
||||||
|
downloadURL="https://download.zerotier.com/dist/ZeroTier%20One.pkg"
|
||||||
|
expectedTeamID="8ZD9JUCZ4V"
|
||||||
|
;;
|
||||||
@@ -1 +1 @@
|
|||||||
10.0beta3
|
10.1beta
|
||||||
|
|||||||
@@ -14,7 +14,9 @@ if ! gh pr checkout $pr_num -b "pr/$pr_num"; then
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
if ! utils/assemble.sh $label; then
|
if ! utils/assemble.sh $label; then
|
||||||
|
exitcode=$?
|
||||||
echo "something went wrong, stopping here"
|
echo "something went wrong, stopping here"
|
||||||
|
echo "exit code: $exitcode"
|
||||||
else
|
else
|
||||||
echo
|
echo
|
||||||
echo "All good!"
|
echo "All good!"
|
||||||
|
|||||||
Reference in New Issue
Block a user