Merge branch 'dev' into Return-label-name

This commit is contained in:
Søren Theilgaard
2022-01-09 21:23:24 +01:00
committed by GitHub
16 changed files with 69 additions and 17 deletions

View File

@@ -2,6 +2,8 @@
- We have moved the root check to the beginning of the script, and improved DEBUG handling with two different modes. `DEBUG=0` is still for production, and `1` is still for the DEBUG we previously knew downloading to the directory it is running from, but `2` will download to temporary folder, will detect updates, but will not install anything, but it will notify the user (almost as running the script without root before).
- New variable `RETURN_LABEL_NAME`. If given the value `1`, like `RETURN_LABEL_NAME=1` then Installomator only returns the name of the label. It makes for a better user friendly message for displaying in DEPNotify if that is integrated.
- Changed logic if `IGNORE_APP_STORE_APPS=yes`. Before this version a label like `microsoftonedrive` that was installed from App Store, and that we want to replace with the “ordinary” version, Installomator would still use `updateTool`, even though `IGNORE_APP_STORE_APPS=yes`. So we would have to have `INSTALL=force` in order to have the app replaced, as `updateTool` would be used. But now if `IGNORE_APP_STORE_APPS=yes` then `updateTool` will be not set, and the App Store app will be replaced. BUT if the installed software was not from App Store, then `updateTool` will not be used, and it would be a kind of a forced install (in the example of `microsoftonedrive`), except if the version is the same (where installation is skipped).
- Added variable `SYSTEMOWNER` that is used when copying files when installing. Default `0` is to change owner of the app to the current user on the Mac, like this user was installing this app themselves. When using `1` we will put “root:wheel” on the app, which can be useful for shared machines.
## v8.0

View File

@@ -328,6 +328,7 @@ textmate
theunarchiver
things
thunderbird
tidal
toggltrack
tom4aconverter
torbrowser

View File

@@ -262,6 +262,12 @@ __options:__
- `no`: If installed app is from App Store (which include VPP installed apps) it will not be touched, no matter it's version (default)
- `yes`: Replace App Store (and VPP) version of app and handle future updates using Installomator, even if latest version. Shouldnt give any problems for the user in most cases. Known bad example: Slack will loose all settings.
### Owner of copied apps
Default is `SYSTEMOWNER=0`
__options:__
- `0`: Current user will be owner of copied apps, just like if they installed it themselves (default).
- `1`: root:wheel will be set on the copied app. Useful for shared machines.
### Install behavior (force installation)
Since we now make a version checking, and only installs the software if the version is different, an `INSTALL` variable can be used to force the installation:

View File

@@ -396,11 +396,12 @@ installAppWithPath() { # $1: path to app to install in $targetDir
fi
# set ownership to current user
if [ "$currentUser" != "loginwindow" ]; then
if [[ "$currentUser" != "loginwindow" && $SYSTEMOWNER -ne 1 ]]; then
printlog "Changing owner to $currentUser"
chown -R "$currentUser" "$targetDir/$appName"
else
printlog "No user logged in, not changing user"
printlog "No user logged in or SYSTEMOWNER=1, setting owner to root:wheel"
chown -R root:wheel "$targetDir/$appName"
fi
elif [[ ! -z $CLIInstaller ]]; then

View File

@@ -88,6 +88,13 @@ IGNORE_APP_STORE_APPS=no
# Shouldnt give any problems for the user in most cases.
# Known bad example: Slack will loose all settings.
# Owner of copied apps
SYSTEMOWNER=0
# options:
# - 0 Current user will be owner of copied apps, just like if they
# installed it themselves (default).
# - 1 root:wheel will be set on the copied app.
# Useful for shared machines.
# install behavior
INSTALL=""

View File

@@ -3,5 +3,5 @@ applenyfonts)
type="pkgInDmg"
downloadURL="https://devimages-cdn.apple.com/design/resources/download/NY.dmg"
packageID="com.apple.pkg.NYFonts"
expectedTeamID="Development Update"
expectedTeamID="Software Update"
;;

View File

@@ -3,5 +3,5 @@ applesfcompact)
type="pkgInDmg"
downloadURL="https://devimages-cdn.apple.com/design/resources/download/SF-Compact.dmg"
packageID="com.apple.pkg.SanFranciscoCompact"
expectedTeamID="Development Update"
expectedTeamID="Software Update"
;;

View File

@@ -3,5 +3,5 @@ applesfpro)
type="pkgInDmg"
downloadURL="https://devimages-cdn.apple.com/design/resources/download/SF-Pro.dmg"
packageID="com.apple.pkg.SanFranciscoPro"
expectedTeamID="Development Update"
expectedTeamID="Software Update"
;;

View File

@@ -1,12 +1,6 @@
boxdrive)
# credit: Isaac Ordonez, Mann consulting (@mannconsulting)
name="Box"
type="pkg"
if [[ $(arch) == "arm64" ]]; then
#Note: https://support.box.com/hc/en-us/articles/1500004479962-Box-Drive-support-on-devices-with-M1-chips
downloadURL="https://e3.boxcdn.net/desktop/pre-releases/mac/BoxDrive.2.20.140-M1-beta.pkg"
elif [[ $(arch) == "i386" ]]; then
downloadURL="https://e3.boxcdn.net/box-installers/desktop/releases/mac/Box.pkg"
fi
downloadURL="https://e3.boxcdn.net/box-installers/desktop/releases/mac/Box.pkg"
expectedTeamID="M683GB7CPW"
;;

7
fragments/labels/iina Normal file
View File

@@ -0,0 +1,7 @@
iina)
name="IINA"
type="dmg"
downloadURL=$(downloadURLFromGit iina iina )
appNewVersion=$(versionFromGit iina iina )
expectedTeamID="67CQ77V27R"
;;

View File

@@ -0,0 +1,7 @@
itsycal)
name="Itsycal"
type="zip"
downloadURL=$(curl -fs https://s3.amazonaws.com/itsycal/itsycal-apple-silicon.xml | xpath '(//rss/channel/item/enclosure/@url)[1]' 2>/dev/null | head -1 | cut -d '"' -f 2)
appNewVersion=$(curl -fs https://s3.amazonaws.com/itsycal/itsycal-apple-silicon.xml | xpath '(//rss/channel/item/enclosure/@sparkle:shortVersionString)[1]' 2>/dev/null | head -1 | cut -d '"' -f 2)
expectedTeamID="HFT3T55WND"
;;

View File

@@ -0,0 +1,13 @@
pritunl)
name="Pritunl"
type="pkgInZip"
packageID="com.pritunl.pkg.Pritunl"
if [[ $(arch) == "arm64" ]]; then
archiveName="Pritunl.arm64.pkg.zip"
elif [[ $(arch) == "i386" ]]; then
archiveName="Pritunl.pkg.zip"
fi
downloadURL=$(downloadURLFromGit pritunl pritunl-client-electron)
appNewVersion=$(versionFromGit pritunl pritunl-client-electron)
expectedTeamID="U22BLATN63"
;;

View File

@@ -0,0 +1,8 @@
secretive)
name="Secretive"
type="zip"
downloadURL=$(downloadURLFromGit maxgoedjen secretive)
appNewVersion=$(versionFromGit maxgoedjen secretive)
expectedTeamID="Z72PRUAWF6"
;;

View File

@@ -1,7 +1,7 @@
textexpander)
name="TextExpander"
type="dmg"
downloadURL="https://textexpander.com/cgi-bin/redirect.pl?cmd=download&platform=osx"
appNewVersion=$( curl -fsIL "https://textexpander.com/cgi-bin/redirect.pl?cmd=download&platform=osx" | grep -i "^location" | awk '{print $2}' | tail -1 | cut -d "_" -f2 | sed -nre 's/^[^0-9]*(([0-9]+\.)*[0-9]+).*/\1/p' )
downloadURL="https://cgi.textexpander.com/cgi-bin/redirect.pl?cmd=download&platform=osx"
appNewVersion=$( curl -fsIL "https://cgi.textexpander.com/cgi-bin/redirect.pl?cmd=download&platform=osx" | grep -i "^location" | awk '{print $2}' | tail -1 | cut -d "_" -f2 | sed -nre 's/^[^0-9]*(([0-9]+\.)*[0-9]+).*/\1/p' )
expectedTeamID="7PKJ6G4DXL"
;;

View File

@@ -0,0 +1,7 @@
tidal)
name="TIDAL"
type="dmg"
downloadURL="https://download.tidal.com/desktop/TIDAL.dmg"
appNewVersion=$(curl -fs https://update.tidal.com/updates/latest\?v\=1 | cut -d '"' -f4 | sed -E 's/https.*\/TIDAL\.([0-9.]*)\.zip/\1/g')
expectedTeamID="GK2243L7KB"
;;

View File

@@ -123,9 +123,8 @@ getAppVersion
printlog "appversion: $appversion"
# MARK: Exit if new version is the same as installed version (appNewVersion specified)
# credit: Søren Theilgaard (@theilgaard)
if [[ $INSTALL == "force" ]]; then
printlog "Using force to install, so not using updateTool."
if [[ "$type" != "updateronly" && ($INSTALL == "force" || $IGNORE_APP_STORE_APPS == "yes") ]]; then
printlog "Label is not of type “updateronly”, and its set to use force to install or ignoring app store apps, so not using updateTool."
updateTool=""
fi
if [[ -n $appNewVersion ]]; then