mirror of
https://github.com/mtan93/Installomator.git
synced 2026-03-08 05:31:53 +00:00
Update README.md
This commit is contained in:
111
README.md
111
README.md
@@ -324,6 +324,117 @@ The order of the variables and label is not relevant. But, when you provide more
|
||||
|
||||
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.
|
||||
|
||||
## Adding applications/label blocks
|
||||
|
||||
### Required Variables
|
||||
|
||||
The script requires four pieces of information to download and install an application:
|
||||
|
||||
```
|
||||
spotify)
|
||||
name="Spotify"
|
||||
type="dmg"
|
||||
downloadURL="https://download.scdn.co/Spotify.dmg"
|
||||
expectedTeamID="2FNC3A47ZF"
|
||||
;;
|
||||
```
|
||||
|
||||
The four required variables are
|
||||
|
||||
- `name`:
|
||||
The display name of the installed application without the `.app` extensions.
|
||||
|
||||
- `type`:
|
||||
The type of installation. Possible values:
|
||||
- `dmg`: application in disk image file (drag'n drop installation)
|
||||
- `pkg`: flat pkg download
|
||||
- `zip`: application in zip archive (`zip` extension)
|
||||
- `tbz`: application in tbz archive (`tbz` extension)
|
||||
- `pkgInDmg`: a pkg file inside a disk image
|
||||
- `pkgInZip`: a pkg file inside a zip
|
||||
- `appInDmgInZip`: an app in a dmg file that has been zip'ed
|
||||
|
||||
- `downloadURL`:
|
||||
The URL from which to download the archive.
|
||||
The URL can be generated by a series of commands, for example when you need to parse an xml file for the latest URL. (See `bbedit`, `desktoppr`, or `omnigraffle` for examples.)
|
||||
Sometimes version differs between Intel and Apple Silicon versions. (See `brave`, `obsidian`, `omnidisksweeper`, or `notion`).
|
||||
|
||||
- `appNewVersion` (optional, but recommended):
|
||||
Version of the downloaded software.
|
||||
If given, it will be compared to installed version, to see if download is different.
|
||||
It does not check for newer or not, only different.
|
||||
Not always easy to figure out how to make this. Sometimes this is listed on the downloads page, sometimes in other places. And how can we isolate it in a genral manner? (See `abstract`, `bbedit`, `brave`, `desktoppr`, `googlechrome`, or `omnidisksweeper`).
|
||||
|
||||
- `packageID` (optional, but recommended for pkgs without an app)
|
||||
This variable is for pkg bundle IDs. Very usefull if a pkg only install command line tools, or the like that does not install an app. (See label `desktoppr`, `golang`, `installomator_st`, `odrive`, or `teamviewerhost`).
|
||||
|
||||
- `expectedTeamID`:
|
||||
The 10-character Developer Team ID with which the application or pkg is signed and notarized.
|
||||
|
||||
Obtain the team ID by running:
|
||||
|
||||
- Applications (in dmgs or zips)
|
||||
`spctl -a -vv /Applications/BBEdit.app`
|
||||
|
||||
- Installation Packages (pkg)
|
||||
`spctl -a -vv -t install ~/Downloads/desktoppr-0.2.pkg`
|
||||
|
||||
### Optional Variables
|
||||
|
||||
Depending on the application or pkg there are a few more variables you can or need to set. Many of these are derived from the required variables, but may need to be set manually if those derived values do not work.
|
||||
|
||||
- `archiveName`: (optional)
|
||||
The name of the downloaded file.
|
||||
When not given the `archiveName` is set to `$name.$type`
|
||||
|
||||
- `appName`: (optional)
|
||||
File name of the app bundle in the dmg to verify and copy (include the `.app`).
|
||||
When not given, the `appName` is set to `$name.app`.
|
||||
This is also the name of the app that will get reopned, if we closed any `blockingProcesses` (see further down)
|
||||
|
||||
- `targetDir`: (optional)
|
||||
dmg or zip:
|
||||
Applications will be copied to this directory.
|
||||
Default value is '`/Applications`' for dmg and zip installations.
|
||||
pkg:
|
||||
`targetDir` is used as the install-location. Default is '`/`'.
|
||||
|
||||
- `blockingProcesses`: (optional)
|
||||
Array of process names that will block the installation or update.
|
||||
If no `blockingProcesses` array is given the default will be:
|
||||
`blockingProcesses=( $name )`
|
||||
When a package contains multiple applications, _all_ should be listed, e.g:
|
||||
`blockingProcesses=( "Keynote" "Pages" "Numbers" )`
|
||||
When a workflow has no blocking processes, use
|
||||
`blockingProcesses=( NONE )`
|
||||
|
||||
- `pkgName`: (optional, only used for `dmgInPkg` and `dmgInZip`)
|
||||
File name of the pkg file _inside_ the dmg or zip.
|
||||
When not given the pkgName is set to `$name.pkg`.
|
||||
|
||||
- `updateTool`, `updateToolArguments`:
|
||||
When Installomator detects an existing installation of the application,
|
||||
and the `updateTool` variable is set then
|
||||
`$updateTool $updateArguments`
|
||||
Will be run instead of of downloading and installing a complete new version.
|
||||
Use this when the `updateTool` does differential and optimized downloads.
|
||||
e.g. `msupdate` (see various Microsoft installations).
|
||||
|
||||
- `updateToolRunAsCurrentUser`:
|
||||
When this variable is set (any value), `$updateTool` will be run as the current user. Default is unset and
|
||||
|
||||
- `CLIInstaller`:
|
||||
- `CLIArguments`:
|
||||
If the downloaded dmg is actually an installer that we can call using CLI, we can use these two variables for what to call.
|
||||
We need to define `name` for the installed app (to be version checked), as well as `installerTool` for the installer app (if named differently that `name`. Installomator will add the path to the folder/disk image with the binary, and it will be called like this:
|
||||
`$CLIInstaller $CLIArguments`
|
||||
For most installations `CLIInstaller` should contain the `installerTool` for the CLI call (if it’s the same).
|
||||
We can support a whole range of other software titles by implementing this.
|
||||
See label adobecreativeclouddesktop.
|
||||
|
||||
- `installerTool`:
|
||||
Introduced as part of `CLIInstaller`. If the installer in the DMG or ZIP is named differently than the installed app, then this variable can be used to name the installer that should be located after mounting/expanding the downloaded archive.
|
||||
See label adobecreativeclouddesktop
|
||||
|
||||
## Frequently Asked Questions
|
||||
|
||||
|
||||
Reference in New Issue
Block a user