mirror of
https://github.com/mtan93/Installomator.git
synced 2026-03-15 05:10:56 +00:00
Compare commits
100 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
4d4e22379e | ||
|
|
fc01e2f8de | ||
|
|
4283329b25 | ||
|
|
2e207f6982 | ||
|
|
b99d3b50f4 | ||
|
|
c669250d8c | ||
|
|
76a38cdffc | ||
|
|
c53e49d406 | ||
|
|
125fadd4f4 | ||
|
|
53f043ede5 | ||
|
|
3530130b48 | ||
|
|
71fe13b311 | ||
|
|
2c613803b5 | ||
|
|
edff222adc | ||
|
|
4a124f2151 | ||
|
|
977e46d33f | ||
|
|
5bfeddbecf | ||
|
|
0dd63eae75 | ||
|
|
dff5b8c61a | ||
|
|
57da0331bf | ||
|
|
96c998413f | ||
|
|
933c51e00f | ||
|
|
cd9247360a | ||
|
|
a0d93f1799 | ||
|
|
138301f61e | ||
|
|
901f99459a | ||
|
|
f653833dc2 | ||
|
|
eb802b9a95 | ||
|
|
04a2c74dd8 | ||
|
|
4d49e51789 | ||
|
|
2e07291c60 | ||
|
|
5c5dadfe9b | ||
|
|
bd49d7ca97 | ||
|
|
3d4c1b45c9 | ||
|
|
961816236f | ||
|
|
be0f0a9cd0 | ||
|
|
22bd79af0e | ||
|
|
912a0e0046 | ||
|
|
5059673fc7 | ||
|
|
8a56d05a8a | ||
|
|
65d8996118 | ||
|
|
ef27dfde6d | ||
|
|
e81c8114b4 | ||
|
|
d84ce01eb5 | ||
|
|
09d0230256 | ||
|
|
c65df61524 | ||
|
|
5dff7ee718 | ||
|
|
555a7631b9 | ||
|
|
9c96b5a764 | ||
|
|
2ddbd2ab1e | ||
|
|
ec7e479372 | ||
|
|
a32b5fc0a2 | ||
|
|
2d1777ca6e | ||
|
|
37b36c8c13 | ||
|
|
9508357243 | ||
|
|
c99aabccbb | ||
|
|
a4df3399b4 | ||
|
|
7438aa403c | ||
|
|
965cf310e4 | ||
|
|
da5f99639a | ||
|
|
65f5c57772 | ||
|
|
42ec528870 | ||
|
|
7f264733a7 | ||
|
|
0a96de8449 | ||
|
|
7d6f4db736 | ||
|
|
adf34cb6f3 | ||
|
|
8544796b75 | ||
|
|
315398b3fc | ||
|
|
1bc4847402 | ||
|
|
0124a7fed1 | ||
|
|
ea2d4d47e5 | ||
|
|
56e38de821 | ||
|
|
d191b23a50 | ||
|
|
246ce74f4e | ||
|
|
39d3dfceac | ||
|
|
65d0d64127 | ||
|
|
201edabfd0 | ||
|
|
8c96d9e263 | ||
|
|
54218459a2 | ||
|
|
4c7edc2ddd | ||
|
|
5f469e0dc5 | ||
|
|
eed3681118 | ||
|
|
b4c987317a | ||
|
|
5a605172b1 | ||
|
|
51baa0636b | ||
|
|
9e42ec21f2 | ||
|
|
4c23c453b0 | ||
|
|
9e4b67efed | ||
|
|
44a4c05df6 | ||
|
|
892f715dbf | ||
|
|
7e40dc1e36 | ||
|
|
decc5274f0 | ||
|
|
ee91690a0d | ||
|
|
127866750e | ||
|
|
9e2221f943 | ||
|
|
85dcfc70bd | ||
|
|
d0fc403323 | ||
|
|
ca57ff9de6 | ||
|
|
8b1298a148 | ||
|
|
3ca4dce814 |
28
CHANGELOG.md
Normal file
28
CHANGELOG.md
Normal file
@@ -0,0 +1,28 @@
|
|||||||
|
## v0.4 - 2020-10-19
|
||||||
|
|
||||||
|
- you can now set script variables as an argument in the form `VARIABLE=value`. More detail on this in the README file, 'Configuration from Arguments.' (#26, #50, #72, and #73)
|
||||||
|
- change `downloadFromGit` to match file types better (#58)
|
||||||
|
- implemented a workaround for changed behavior of `xpath` in Big Sur (#80)
|
||||||
|
- added an option `prompt_user_the_kill` to `BLOCKING_PROCESS_ACTION` which will kill the process after the third unsuccessful attempt to quit (#78, thanks Patrick Atoon @raptor399)
|
||||||
|
- added several new labels for total of 116
|
||||||
|
|
||||||
|
|
||||||
|
## v0.3 - 2020-07-23
|
||||||
|
|
||||||
|
- added several new labels for total of 98
|
||||||
|
- removed the powershell labels, since the installer is not notarized
|
||||||
|
- when run without any arguments, the script now lists all labels
|
||||||
|
- changed how zips are expanded because this was broken on Mojave
|
||||||
|
- improved logging in some statements
|
||||||
|
- several more minor improvements
|
||||||
|
|
||||||
|
## v0.2 - 2020-06-09
|
||||||
|
|
||||||
|
- many fixes for broken URLs and other bugs
|
||||||
|
- the `pkgInDmg` and `pkgInZip` now search for a pkg file in the archive in case the file name varies with the version
|
||||||
|
- notification on successful installation can be suppressed with the `NOTIFY` variable
|
||||||
|
- Apple signed installers and apps that don’t have a Team ID are verified correctly now
|
||||||
|
improved logging
|
||||||
|
- several new applications: count increased from 62 in 0.1 to 87 in 0.2
|
||||||
|
|
||||||
|
## v0.1 - 2020-05-12
|
||||||
1881
Installomator.sh
1881
Installomator.sh
File diff suppressed because it is too large
Load Diff
33
Labels.txt
33
Labels.txt
@@ -1,19 +1,35 @@
|
|||||||
1password7
|
1password7
|
||||||
|
8x8
|
||||||
adobereaderdc
|
adobereaderdc
|
||||||
|
adobereaderdc-install
|
||||||
|
adobereaderdc-update
|
||||||
|
airserver
|
||||||
|
alfred
|
||||||
|
amazonworkspaces
|
||||||
|
apparency
|
||||||
appcleaner
|
appcleaner
|
||||||
|
aquaskk
|
||||||
atom
|
atom
|
||||||
autodmg
|
autodmg
|
||||||
|
autopkgr
|
||||||
aviatrix
|
aviatrix
|
||||||
bbedit
|
bbedit
|
||||||
|
bettertouchtool
|
||||||
boxdrive
|
boxdrive
|
||||||
brave
|
brave
|
||||||
|
camtasia
|
||||||
|
citrixworkspace
|
||||||
|
code42
|
||||||
coderunner
|
coderunner
|
||||||
cyberduck
|
cyberduck
|
||||||
depnotify
|
depnotify
|
||||||
desktoppr
|
desktoppr
|
||||||
|
detectxswift
|
||||||
|
dialpad
|
||||||
discord
|
discord
|
||||||
docker
|
docker
|
||||||
dropbox
|
dropbox
|
||||||
|
egnyte
|
||||||
eraseinstall
|
eraseinstall
|
||||||
firefox
|
firefox
|
||||||
firefoxesrpkg
|
firefoxesrpkg
|
||||||
@@ -26,11 +42,14 @@ googlejapaneseinput
|
|||||||
grandperspective
|
grandperspective
|
||||||
handbrake
|
handbrake
|
||||||
icons
|
icons
|
||||||
|
istatmenus
|
||||||
iterm2
|
iterm2
|
||||||
jamfmigrator
|
jamfmigrator
|
||||||
jamfpppcutility
|
jamfpppcutility
|
||||||
jamfreenroller
|
jamfreenroller
|
||||||
karabinerelements
|
karabinerelements
|
||||||
|
keepassxc
|
||||||
|
krisp
|
||||||
malwarebytes
|
malwarebytes
|
||||||
microsoftautoupdate
|
microsoftautoupdate
|
||||||
microsoftcompanyportal
|
microsoftcompanyportal
|
||||||
@@ -50,15 +69,15 @@ microsoftskypeforbusiness
|
|||||||
microsoftteams
|
microsoftteams
|
||||||
microsoftword
|
microsoftword
|
||||||
netnewswire
|
netnewswire
|
||||||
|
nomad
|
||||||
omnifocus3
|
omnifocus3
|
||||||
omnigraffle7
|
omnigraffle7
|
||||||
openvpnconnect
|
openvpnconnect
|
||||||
pacifist
|
pacifist
|
||||||
plisteditpro
|
plisteditpro
|
||||||
postman
|
postman
|
||||||
powershell
|
|
||||||
powershell-lts
|
|
||||||
privileges
|
privileges
|
||||||
|
r
|
||||||
resiliosynchome
|
resiliosynchome
|
||||||
ringcentralapp
|
ringcentralapp
|
||||||
ringcentralmeetings
|
ringcentralmeetings
|
||||||
@@ -66,8 +85,13 @@ royaltsx
|
|||||||
santa
|
santa
|
||||||
sfsymbols
|
sfsymbols
|
||||||
signal
|
signal
|
||||||
|
sizeup
|
||||||
|
skitch
|
||||||
slack
|
slack
|
||||||
|
snagit2020
|
||||||
sonos
|
sonos
|
||||||
|
sonoss1
|
||||||
|
sonoss2
|
||||||
sourcetree
|
sourcetree
|
||||||
spotify
|
spotify
|
||||||
sublimetext
|
sublimetext
|
||||||
@@ -76,12 +100,17 @@ swiftruntimeforcommandlinetools
|
|||||||
teamviewer
|
teamviewer
|
||||||
textmate
|
textmate
|
||||||
things
|
things
|
||||||
|
torbrowser
|
||||||
tunnelbear
|
tunnelbear
|
||||||
|
tunnelblick
|
||||||
umbrellaroamingclient
|
umbrellaroamingclient
|
||||||
|
virtualbox
|
||||||
visualstudiocode
|
visualstudiocode
|
||||||
vlc
|
vlc
|
||||||
|
vscodium
|
||||||
webexmeetings
|
webexmeetings
|
||||||
webexteams
|
webexteams
|
||||||
whatsapp
|
whatsapp
|
||||||
wwdcformac
|
wwdcformac
|
||||||
|
yubikeymanagerqt
|
||||||
zoom
|
zoom
|
||||||
|
|||||||
63
README.md
63
README.md
@@ -10,6 +10,20 @@ Your production and deployment environment will be different, please test thorou
|
|||||||
|
|
||||||
I have put a lot of work into making it stable and safe, but I cannot - of course - make _any_ promises that it won't break in some not yet encountered edge case.
|
I have put a lot of work into making it stable and safe, but I cannot - of course - make _any_ promises that it won't break in some not yet encountered edge case.
|
||||||
|
|
||||||
|
## Support and Contributing
|
||||||
|
|
||||||
|
Discussion, support and advice around Installomator happens in the `#installomator` channel in the [MacAdmins Slack](https:/macadmins.org). Go there for support questions.
|
||||||
|
|
||||||
|
Do not create an issue just when you have a questions, but do file an issue or pull request for bugs or wrong behavior. When in doubt, ask in the above Slack channel.
|
||||||
|
|
||||||
|
If you have added a new label, then please file a pull request. (and Thank you!)
|
||||||
|
|
||||||
|
## More reading
|
||||||
|
|
||||||
|
There are a few interesting post on Installomator on my weblog:
|
||||||
|
|
||||||
|
- [Introducing Installomator](https://scriptingosx.com/2020/05/introducing-installomator/)
|
||||||
|
- [Using Installomator with Jamf Pro](https://scriptingosx.com/2020/06/using-installomator-with-jamf-pro/) by Mischa van der Bent
|
||||||
|
|
||||||
## Background
|
## Background
|
||||||
|
|
||||||
@@ -97,12 +111,12 @@ There is a debug mode and one other setting that can be controlled with variable
|
|||||||
As of this writing, Installomator knows how to download and install more than 50 different applications. You can add more by adding a block to the _long_ `case` statement starting on line 160. Some of them are more elaborate, but most of them just need this information:
|
As of this writing, Installomator knows how to download and install more than 50 different applications. You can add more by adding a block to the _long_ `case` statement starting on line 160. Some of them are more elaborate, but most of them just need this information:
|
||||||
|
|
||||||
```
|
```
|
||||||
googlechrome)
|
googlechrome)
|
||||||
name="Google Chrome"
|
name="Google Chrome"
|
||||||
type="dmg"
|
type="dmg"
|
||||||
downloadURL="https://dl.google.com/chrome/mac/stable/GGRO/googlechrome.dmg"
|
downloadURL="https://dl.google.com/chrome/mac/stable/GGRO/googlechrome.dmg"
|
||||||
expectedTeamID="EQHXZ8M8AV"
|
expectedTeamID="EQHXZ8M8AV"
|
||||||
;;
|
;;
|
||||||
```
|
```
|
||||||
|
|
||||||
When you know how to extract these pieces of information from the application and/or download, then you can add an application to Installomator.
|
When you know how to extract these pieces of information from the application and/or download, then you can add an application to Installomator.
|
||||||
@@ -211,12 +225,12 @@ The `NOTIFY` variable controls the notifications shown to the user. As of now, t
|
|||||||
The script requires four pieces of information to download and install an application:
|
The script requires four pieces of information to download and install an application:
|
||||||
|
|
||||||
```
|
```
|
||||||
spotify)
|
spotify)
|
||||||
name="Spotify"
|
name="Spotify"
|
||||||
type="dmg"
|
type="dmg"
|
||||||
downloadURL="https://download.scdn.co/Spotify.dmg"
|
downloadURL="https://download.scdn.co/Spotify.dmg"
|
||||||
expectedTeamID="2FNC3A47ZF"
|
expectedTeamID="2FNC3A47ZF"
|
||||||
;;
|
;;
|
||||||
```
|
```
|
||||||
|
|
||||||
The four required variables are
|
The four required variables are
|
||||||
@@ -244,7 +258,7 @@ The 10-character Developer Team ID with which the application or pkg is signed a
|
|||||||
- Applications (in dmgs or zips)
|
- Applications (in dmgs or zips)
|
||||||
`spctl -a -vv /Applications/BBEdit.app`
|
`spctl -a -vv /Applications/BBEdit.app`
|
||||||
|
|
||||||
- Pkgs
|
- Installation Packages (pkg)
|
||||||
`spctl -a -vv -t install ~/Downloads/desktoppr-0.2.pkg`
|
`spctl -a -vv -t install ~/Downloads/desktoppr-0.2.pkg`
|
||||||
|
|
||||||
|
|
||||||
@@ -291,6 +305,27 @@ Depending on the application or pkg there are a few more variables you can or ne
|
|||||||
- `updateToolRunAsCurrentUser`:
|
- `updateToolRunAsCurrentUser`:
|
||||||
When this variable is set (any value), `$updateTool` will be run as the current user. Default is unset and
|
When this variable is set (any value), `$updateTool` will be run as the current user. Default is unset and
|
||||||
|
|
||||||
|
### Configuration from Arguments
|
||||||
|
|
||||||
|
You can provide a configuration variable, such as `DEBUG` or `NOTIFY` as an argument in the form `VAR=value`. For example:
|
||||||
|
|
||||||
|
```
|
||||||
|
./Installomator.sh desktoppr DEBUG=0 NOTIFY=silent
|
||||||
|
```
|
||||||
|
|
||||||
|
Providing variables this way will override any variables set in the script.
|
||||||
|
|
||||||
|
You can even provide _all_ the variables necessary for download and installation. Of course, without a label the argument parsing will fail, so I created a special label `valuesfromarguments` which only checks if the four required values are present:
|
||||||
|
|
||||||
|
```
|
||||||
|
./Installomator.sh name=desktoppr type=pkg downloadURL=https://github.com/scriptingosx/desktoppr/releases/download/v0.3/desktoppr-0.3.pkg expectedTeamID=JME5BW3F3R valuesfromarguments
|
||||||
|
```
|
||||||
|
|
||||||
|
The order of the variables and label is not relevant. But, when you provide more than one label, all but the _last_ label will be ignored.
|
||||||
|
|
||||||
|
Providing all the variables this way might be useful for certain downloads that have a customized URL for each vendor/customer (like customized TeamView or Watchman Monitoring) or are local downloads.
|
||||||
|
|
||||||
|
|
||||||
## Frequently Asked Questions
|
## Frequently Asked Questions
|
||||||
|
|
||||||
### What if the latest version of the app is already installed?
|
### What if the latest version of the app is already installed?
|
||||||
@@ -337,5 +372,5 @@ But it is not suited as a client install automation tool.
|
|||||||
|
|
||||||
### Why don't you just use brew?
|
### Why don't you just use brew?
|
||||||
|
|
||||||
Read the explanation for `autopkg`, pretty much the same applies for `brew`, i.e. While it is useful on a single Mac, it is a un-manageable mess when you think about deploying and managing on a fleet of computers.
|
Read the explanation for `autopkg`, pretty much the same applies for `brew`, i.e. while it is useful on a single Mac, it is a un-manageable mess when you think about deploying and managing on a fleet of computers.
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user