mirror of
https://github.com/mtan93/Installomator.git
synced 2026-03-08 05:31:53 +00:00
Merge branch 'Installomator:dev' into dev
This commit is contained in:
@@ -2,8 +2,8 @@
|
||||
|
||||
- script is now assembled from fragments. This helps avoid merging conflicts on git and allows the core team to work on the script logic while also accepting new labels. See the "Assemble Script ReadMe" for details.
|
||||
- Change in finding installed apps. We now look in /Applications and /Applications/Utilities first. If not found there, we use spotligt to find it. (We discovered a problem when a user has Parallels Windows installed with Microsoft Edge in it. Then Installomator wanted to update the app all the time, becaus spotligt found that Windows version of the app that Parallels created.)
|
||||
- Added bunch of new labels
|
||||
- Renamed `buildCaseStatement.sh` to `buildLabel.sh` and improved it a lot. It is a great start when figuring out how to create a new label for an app, or a piece of software.
|
||||
- Added bunch of new labels, and improved others.
|
||||
- Renamed `buildCaseStatement.sh` to `buildLabel.sh` and improved it a lot. It is a great start when figuring out how to create a new label for an app, or a piece of software. Look at the tutorials in our wiki.
|
||||
- Mosyle changed their app name from Business to Self-Service
|
||||
|
||||
## v0.6 - 2021-07-14
|
||||
|
||||
@@ -30,6 +30,7 @@ asana
|
||||
atext
|
||||
atom
|
||||
audacity
|
||||
authydesktop
|
||||
autodmg
|
||||
autopkgr
|
||||
aviatrix
|
||||
@@ -238,6 +239,7 @@ ringcentralmeetings
|
||||
ringcentralphone
|
||||
rocket
|
||||
rocketchat
|
||||
rodeconnect
|
||||
royaltsx
|
||||
rstudio
|
||||
santa
|
||||
@@ -316,6 +318,7 @@ xink
|
||||
xquartz
|
||||
yubikeymanagerqt
|
||||
zappy
|
||||
zeplin
|
||||
zohoworkdrive
|
||||
zoom
|
||||
zoomclient
|
||||
|
||||
@@ -1,10 +1,12 @@
|
||||
# Installomator
|
||||
|
||||
__Please note, that if you are contributing to this project with new labels or other suggestions in PRs, please put your changes in the fragmented files, not the full `Installomator.sh` script. The full script is now a build of the fragments, and will be overwritten.__
|
||||
|
||||
_The one installer script to rule them all._
|
||||
|
||||
   
|
||||
|
||||
This script is in the "we find it useful, it is working for us" stage.
|
||||
This script is in the “we find it useful, it is working for us” stage.
|
||||
|
||||
Your production and deployment environment will be different, please test thoroughly before rolling it out to your production.
|
||||
|
||||
@@ -18,6 +20,10 @@ Do not create an issue just when you have a questions, but do file an issue or p
|
||||
|
||||
If you have added a new label, then please file a pull request. (and Thank you!)
|
||||
|
||||
__Please note, that if you are contributing to this project with new labels or other suggestions in PRs, please put your changes in the fragmented files, not the full `Installomator.sh` script. The full script is now a build of the fragments, and will be overwritten.__
|
||||
|
||||
We try to keep the script as short as possible, and with more than 300 labels, we can save 300 lines in the script, if we do not have credit lines on each of these. So we are thankful for your contribution, but we will be removing these lines in the coming releases.
|
||||
|
||||
## More reading
|
||||
|
||||
There are a few interesting post on Installomator on my weblog:
|
||||
|
||||
8
fragments/disabled/parallels.sh
Normal file
8
fragments/disabled/parallels.sh
Normal file
@@ -0,0 +1,8 @@
|
||||
parallels)
|
||||
# This downloads an installer app, so not really useful here
|
||||
name="Parallels Desktop"
|
||||
type="dmg"
|
||||
downloadURL="https://parallels.com/directdownload/pd15/"
|
||||
appNewVersion=$(curl -fsIL "${downloadURL}" | grep -i ^location | tail -1 | cut -d "/" -f6)
|
||||
expectedTeamID="4C6364ACXT"
|
||||
;;
|
||||
@@ -68,7 +68,9 @@ LOGO=appstore
|
||||
# - mosyleb Mosyle Business
|
||||
# - mosylem Mosyle Manager (Education)
|
||||
# - addigy Addigy
|
||||
# path can also be set in the command call, and if file exists, it will be used, like 'LOGO="/System/Applications/App\ Store.app/Contents/Resources/AppIcon.icns"' (spaces are escaped).
|
||||
# path can also be set in the command call, and if file exists, it will be used.
|
||||
# Like 'LOGO="/System/Applications/App\ Store.app/Contents/Resources/AppIcon.icns"'
|
||||
# (spaces have to be escaped).
|
||||
|
||||
|
||||
# install behavior
|
||||
|
||||
7
fragments/labels/authydesktop.sh
Normal file
7
fragments/labels/authydesktop.sh
Normal file
@@ -0,0 +1,7 @@
|
||||
authydesktop)
|
||||
name="Authy Desktop"
|
||||
type="dmg"
|
||||
downloadURL="https://electron.authy.com/download?channel=stable&arch=x64&platform=darwin&version=latest&product=authy"
|
||||
appNewVersion="$(curl -sfL --output /dev/null -r 0-0 "${downloadURL}" --remote-header-name --remote-name -w "%{url_effective}\n" | grep -o -E '([a-zA-Z0-9\_.%-]*)\.(dmg|pkg|zip|tbz)$' | sed -E 's/.*-([0-9.]*)\.dmg/\1/g')"
|
||||
expectedTeamID="9EVH78F4V4"
|
||||
;;
|
||||
@@ -1,6 +1,10 @@
|
||||
figma)
|
||||
name="Figma"
|
||||
type="zip"
|
||||
if [[ $(arch) == "arm64" ]]; then
|
||||
downloadURL="https://desktop.figma.com/mac-arm/Figma.zip"
|
||||
elif [[ $(arch) == "i386" ]]; then
|
||||
downloadURL="https://desktop.figma.com/mac/Figma.zip"
|
||||
fi
|
||||
expectedTeamID="T8RA8NE3B7"
|
||||
;;
|
||||
|
||||
@@ -2,6 +2,7 @@ microsoftofficebusinesspro)
|
||||
name="MicrosoftOfficeBusinessPro"
|
||||
type="pkg"
|
||||
downloadURL="https://go.microsoft.com/fwlink/?linkid=2009112"
|
||||
appNewVersion=$(curl -fsIL "$downloadURL" | grep -i location: | grep -o "/Microsoft_.*pkg" | cut -d "_" -f 3)
|
||||
expectedTeamID="UBF8T346G9"
|
||||
# using MS PowerPoint as the 'stand-in' for the entire suite
|
||||
appName="Microsoft PowerPoint.app"
|
||||
|
||||
8
fragments/labels/montereyblocker.sh
Normal file
8
fragments/labels/montereyblocker.sh
Normal file
@@ -0,0 +1,8 @@
|
||||
montereyblocker)
|
||||
name="montereyblocker"
|
||||
type="pkg"
|
||||
packageID="dk.envo-it.montereyblocker"
|
||||
downloadURL=$(downloadURLFromGit Theile montereyblocker )
|
||||
appNewVersion=$(versionFromGit Theile montereyblocker )
|
||||
expectedTeamID="FXW6QXBFW5"
|
||||
;;
|
||||
8
fragments/labels/rodeconnect.sh
Normal file
8
fragments/labels/rodeconnect.sh
Normal file
@@ -0,0 +1,8 @@
|
||||
rodeconnect)
|
||||
name="RODE Connect"
|
||||
type="pkgInZip"
|
||||
#packageID="com.rodeconnect.installer" #Versioned wrong as 0 in 1.1.0 pkg
|
||||
downloadURL="https://cdn1.rode.com/rodeconnect_installer_mac.zip"
|
||||
appNewVersion="$(curl -fs https://rode.com/software/rode-connect | grep -i -o ">Current version .*<" | cut -d " " -f4)"
|
||||
expectedTeamID="Z9T72PWTJA"
|
||||
;;
|
||||
@@ -2,6 +2,6 @@ slack)
|
||||
name="Slack"
|
||||
type="dmg"
|
||||
downloadURL="https://slack.com/ssb/download-osx-universal" # Universal
|
||||
appNewVersion=$( curl -fsIL "${downloadURL}" | grep -i "^location" | awk '{print $2}' | tr -d '\r\n' | sed -E 's/.*macos\/([0-9.]*)\/.*/\1/g' )
|
||||
appNewVersion=$( curl -fsIL "${downloadURL}" | grep -i "^location" | cut -d "/" -f6 )
|
||||
expectedTeamID="BQR82RBBHL"
|
||||
;;
|
||||
|
||||
7
fragments/labels/zeplin.sh
Normal file
7
fragments/labels/zeplin.sh
Normal file
@@ -0,0 +1,7 @@
|
||||
zeplin)
|
||||
name="Zeplin"
|
||||
type="zip"
|
||||
downloadURL="https://zpl.io/download-mac"
|
||||
appNewVersion="$(curl -fs "https://api.appcenter.ms/v0.1/public/sparkle/apps/8926efff-e734-b6d3-03d0-9f41d90c34fc" | xpath '(//rss/channel/item/enclosure/@sparkle:shortVersionString)[1]' 2>/dev/null | cut -d '"' -f 2)"
|
||||
expectedTeamID="8U3Y4X5WDQ"
|
||||
;;
|
||||
@@ -11,7 +11,7 @@ downloadURL=${1?:"need to provide a download URL."}
|
||||
# ./buildLabel.sh <URL to download software>
|
||||
|
||||
# Use working directory as download folder
|
||||
tmpDir=$(date "+%Y-%m-%d-%H-%M-%S")
|
||||
tmpDir="$(pwd)/$(date "+%Y-%m-%d-%H-%M-%S")"
|
||||
# Create a n almost unique folder name
|
||||
mkdir $tmpDir
|
||||
|
||||
@@ -65,14 +65,14 @@ appInvestigation() {
|
||||
fi
|
||||
}
|
||||
|
||||
echo "downloadOut:\n${downloadOut}"
|
||||
#echo "downloadOut:\n${downloadOut}"
|
||||
archiveTempName=$( echo "${downloadOut}" | head -1 )
|
||||
echo "archiveTempName: $archiveTempName"
|
||||
archivePath=$( echo "${downloadOut}" | tail -1 )
|
||||
echo "archivePath: $archivePath"
|
||||
|
||||
try1archiveName=${archiveTempName##*/}
|
||||
try2archiveName=${archivePath##*/}
|
||||
try1archiveName=${${archiveTempName##*/}%%\?*}
|
||||
try2archiveName=${${archivePath##*/}%%\?*}
|
||||
fileName_re='^([a-zA-Z0-9\_.%-]*)\.(dmg|pkg|zip|tbz)$'
|
||||
if [[ "${try1archiveName}" =~ $fileName_re ]]; then
|
||||
archiveName=${try1archiveName}
|
||||
@@ -80,10 +80,11 @@ elif [[ "${try2archiveName}" =~ $fileName_re ]]; then
|
||||
archiveName=${try2archiveName}
|
||||
else
|
||||
echo "Could not determine archiveName from “$try1archiveName” and “$try2archiveName”"
|
||||
#echo "Extensions $archiveTempName:t:e $archivePath:t:e"
|
||||
exit
|
||||
fi
|
||||
|
||||
echo "archiveName: $archiveName"
|
||||
echo "Calculated archiveName: $archiveName"
|
||||
mv $archiveTempName $archiveName
|
||||
name=${archiveName%.*}
|
||||
echo "name: $name"
|
||||
|
||||
@@ -171,7 +171,7 @@ for label in $allLabels; do
|
||||
else
|
||||
URLextension=$( echo "${URLfilename}" | tail -1 | sed -E 's/.*\.([a-zA-Z]*)\s*/\1/g' | tr -d '\r\n' )
|
||||
fi
|
||||
URLextension=${URLextension:l}
|
||||
URLextension=${${URLextension:l}%%\?*}
|
||||
if [[ "${URLextension}" == "${expectedExtension}" ]]; then
|
||||
echo "${GREEN}OK: download extension MATCH on ${URLextension}${NC}"
|
||||
else
|
||||
|
||||
Reference in New Issue
Block a user