-
Notifications
You must be signed in to change notification settings - Fork 8
Managed Deployment
The Swift version of loopdown supports (in theory) an MDM profile targeting the com.github.carlashley.loopdown domain as a configuration of which content and apps to deploy content for. Please note that this is considered an experimental feature.
This managed deployment mode must be invoked using loopdown deploy --managed - see loopdown deploy -h for more information.
When this managed deployment mode is called and no configuration data exists, a number of sane defaults are used to deploy content, these are:
- ignore all arguments other than
-n/--dry-run,--cache-auto-retries,--cache-retry-delay, and--log-level - default to deploying content for all installed apps
- default to deploying only the essential/core content for apps
- default to using
-c/--cache-server autoif no mirror server or caching server is provided - installs modern content packs to
/Users/Shared/Logic Pro Library.bundle
The managed deployment mode supports more nuanced deployment arguments, for example, if you want to deploy GarageBand and the modern Logic Pro, you can deploy just the core content for GarageBand and just the essential content packs for Logic Pro 12+. See the appPolicies section of the Payloads documentation below.
Target the com.github.carlashley.loopdown preference domain for MDM deployed profiles; if using DDM or you do not have an MDM and can deploy a Property List file through alternative means, ensure /Library/Managed Preferences/com.github.carlashley.loopdown.plist exists with applicable keys and values.
apps:
type: [String]
default: [] # empty = all installed apps
values: garageband, logicpro, mainstage
essential:
type: Bool
default: true # inferred true when essential, core, and optional are all absent
# Selects essential content packages (ecp* — Logic Pro 12+ / MainStage 4+ only).
core:
type: Bool
default: true # inferred true when essential, core, and optional are all absent
# Selects core content packages (ccp*; equivalent to required for legacy apps).
optional:
type: Bool
default: false
appPolicies:
type: [{app: String, essential: Bool, core: Bool, optional: Bool}]
default: [] # empty = use top-level flags for all apps
# Per-app overrides. Apps not listed fall back to the top-level flags.
# Example:
# - app: logicpro
# essential: true
# core: true
# optional: false
# - app: garageband
# essential: false
# core: true
# optional: true
forceDeploy:
type: Bool
default: false
skipSignatureCheck:
type: Bool
default: false
logLevel:
type: String
default: info
values: debug, info, notice, warning, error, critical
cacheServer:
type: String
default: auto # inferred when both cacheServer and mirrorServer are absent
values: auto, http://host:port
mirrorServer:
type: String
default: ~ # absent; overrides cacheServer when present
values: https://host
dryRun:
type: Bool
default: false # also overridable by --dry-run CLI flag
quietRun:
type: Bool
default: false
libraryDest:
type: String
default: /Users/Shared/Logic Pro Library.bundle
# Destination directory for modern Logic Pro 12+ and MainStage 4+ content.