Last active
November 24, 2025 09:11
-
-
Save Ash258/245b6cae90165125e88fe9218e4aa5c5 to your computer and use it in GitHub Desktop.
autopkg.schema.json
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| { | |
| "$schema": "http://json-schema.org/draft-07/schema#", | |
| "title": "AutoPkg Recipe Schema", | |
| "type": "object", | |
| "additionalProperties": true, | |
| "definitions": { | |
| "basic-processor": { | |
| "type": "object", | |
| "properties": { | |
| "Processor": { | |
| "type": "string", | |
| "description": "The name of the processor to execute." | |
| }, | |
| "Arguments": { | |
| "type": "object", | |
| "description": "Arguments to pass to the processor.", | |
| "additionalProperties": true | |
| } | |
| }, | |
| "required": [ | |
| "Processor" | |
| ], | |
| "additionalProperties": false | |
| } | |
| }, | |
| "properties": { | |
| "$schema": { | |
| "type": "string", | |
| "description": "The schema URL." | |
| }, | |
| "Description": { | |
| "type": "string", | |
| "description": "A description of the recipe." | |
| }, | |
| "Identifier": { | |
| "type": "string", | |
| "description": "A unique identifier for the recipe." | |
| }, | |
| "MinimumVersion": { | |
| "type": "string", | |
| "description": "The minimum AutoPkg version required to run this recipe." | |
| }, | |
| "ParentRecipe": { | |
| "type": "string", | |
| "description": "The identifier of the parent recipe, if any." | |
| }, | |
| "Input": { | |
| "type": "object", | |
| "description": "Input variables for the recipe.", | |
| "additionalProperties": true | |
| }, | |
| "Process": { | |
| "type": "array", | |
| "description": "The list of processors to be executed in order.", | |
| "items": { | |
| "anyOf": [ | |
| { | |
| "$ref": "#/definitions/basic-processor" | |
| }, | |
| { | |
| "type": "object", | |
| "properties": { | |
| "Processor": { | |
| "type": "string", | |
| "enum": [ | |
| "AppDmgVersioner" | |
| ], | |
| "description": "Extracts bundle ID and version of app inside dmg." | |
| }, | |
| "Arguments": { | |
| "type": "object", | |
| "description": "Arguments to pass to the AppDmgVersioner processor.", | |
| "properties": { | |
| "dmg_path": { | |
| "type": "string", | |
| "description": "Path to a dmg containing an app." | |
| } | |
| }, | |
| "additionalProperties": true | |
| } | |
| }, | |
| "required": [ | |
| "Processor" | |
| ], | |
| "additionalProperties": false | |
| }, | |
| { | |
| "type": "object", | |
| "properties": { | |
| "Processor": { | |
| "type": "string", | |
| "enum": [ | |
| "AppPkgCreator" | |
| ], | |
| "description": "Calls autopkgserver to create a package from an application." | |
| }, | |
| "Arguments": { | |
| "type": "object", | |
| "description": "Arguments to pass to the AppPkgCreator processor.", | |
| "properties": { | |
| "app_path": { | |
| "type": "string", | |
| "description": "Path to an application to be packaged. Can be on a disk image and globbed. If not set, defaults to %pathname%/*.app. Typically %pathname% points to a disk image downloaded in a prior recipe step." | |
| }, | |
| "pkg_path": { | |
| "type": "string", | |
| "description": "The pathname for the pkg to be created. If not set, defaults to %RECIPE_CACHE_DIR%/%app_name%-%version%.pkg" | |
| }, | |
| "bundleid": { | |
| "type": "string", | |
| "description": "Bundle identifier of the app. If not set, will be extracted from the CFBundleIdentifier in the app's Info.plist." | |
| }, | |
| "version": { | |
| "type": "string", | |
| "description": "Version of the app. If not set, will be extracted from the CFBundleShortVersionString in the app's Info.plist." | |
| }, | |
| "version_key": { | |
| "type": "string", | |
| "description": "Alternate key from which to get the app version. If the key does not exist in the app's Info.plist, a ProcessorError will be raised." | |
| }, | |
| "force_pkg_build": { | |
| "type": "string", | |
| "description": "When set, this forces building a new package even if a package already exists in the output directory with the same identifier and version number. Defaults to False" | |
| } | |
| }, | |
| "additionalProperties": true | |
| } | |
| }, | |
| "required": [ | |
| "Processor" | |
| ], | |
| "additionalProperties": false | |
| }, | |
| { | |
| "type": "object", | |
| "properties": { | |
| "Processor": { | |
| "type": "string", | |
| "enum": [ | |
| "io.kandji.kappa/KAPPA" | |
| ] | |
| }, | |
| "Arguments": { | |
| "type": "object", | |
| "description": "Arguments to pass to the io.kandji.kappa/KAPPA processor.", | |
| "properties": { | |
| "NAME": { "type": "string", "description": "Name from AutoPkg recipe (used if no custom_name defined)" }, | |
| "pkg_path": { "type": "string", "description": "Path of the built PKG for upload" }, | |
| "app_name": { "type": "string", "description": "Name of .app in payload (for audit script)" }, | |
| "bundleid": { "type": "string", "description": "Bundle ID of .app in payload (for audit script; used if no val for app_name)" }, | |
| "version": { "type": "string", "description": "Version of .app in payload (for audit script)" }, | |
| "create_new": { "type": "boolean", "description": "Boolean to toggle creation of a new LI (default: False)" }, | |
| "dry_run": { "type": "string", "description": "Boolean setting KAPPA to execute a dry run, not making actual mods (default: False)" }, | |
| "NAME": { | |
| "type": "object", | |
| "description": "Used to set specify custom app names and Self Service categories", | |
| "properties": { | |
| "prod_name": { "type": "string", "description": "" }, | |
| "test_name": { "type": "string", "description": "" }, | |
| "ss_category": { "type": "string", "description": "" }, | |
| "test_category": { "type": "string", "description": "" } | |
| }, | |
| "additionalProperties": false | |
| } | |
| }, | |
| "additionalProperties": false | |
| } | |
| }, | |
| "required": [ | |
| "Processor" | |
| ], | |
| "additionalProperties": false | |
| }, | |
| { | |
| "type": "object", | |
| "properties": { | |
| "Processor": { | |
| "type": "string", | |
| "enum": [ | |
| "BrewCaskInfoProvider" | |
| ], | |
| "description": "ATTENTION: This processor is deprecated, may not work as expected with all known Casks, and may be removed in a future release of AutoPkg. Description follows: Provides crowd-sourced URL and version info from thousands of applications listed in brew-cask: https://github.com/caskroom/homebrew-cask. See available apps: https://github.com/caskroom/homebrew-cask/tree/master/Casks" | |
| }, | |
| "Arguments": { | |
| "type": "object", | |
| "description": "Arguments to pass to the BrewCaskInfoProvider processor.", | |
| "properties": { | |
| "cask_name": { | |
| "type": "string", | |
| "description": "Name of cask to fetch, as would be given to the 'brew' command. Example: 'audacity'" | |
| } | |
| }, | |
| "additionalProperties": true | |
| } | |
| }, | |
| "required": [ | |
| "Processor" | |
| ], | |
| "additionalProperties": false | |
| }, | |
| { | |
| "type": "object", | |
| "properties": { | |
| "Processor": { | |
| "type": "string", | |
| "enum": [ | |
| "CodeSignatureVerifier" | |
| ], | |
| "description": "Verifies application bundle or installer package signature.\n\n Requires version 0.3.1." | |
| }, | |
| "Arguments": { | |
| "type": "object", | |
| "description": "Arguments to pass to the CodeSignatureVerifier processor.", | |
| "properties": { | |
| "DISABLE_CODE_SIGNATURE_VERIFICATION": { | |
| "type": "string", | |
| "description": "Skip this Processor step altogether. Typically this would be invoked using AutoPkg's defaults or via '--key' CLI options at the time of the run, rather than being defined explicitly within a recipe." | |
| }, | |
| "input_path": { | |
| "type": "string", | |
| "description": "File path to an application bundle (.app) or installer package (.pkg or .mpkg). Can point to a path inside a .dmg which will be mounted." | |
| }, | |
| "expected_authority_names": { | |
| "type": "string", | |
| "description": "An array of strings defining a list of expected certificate authority names. Complete list of the certificate name chain is required and it needs to be in the correct order. These can be determined by running: \n\tpkgutil --check-signature <path_to_pkg>" | |
| }, | |
| "requirement": { | |
| "type": "string", | |
| "description": "A requirement string to pass to codesign. This should always be set to the original designated requirement of the application and can be determined by running:\n\t$ codesign --display -r- <path_to_app>" | |
| }, | |
| "deep_verification": { | |
| "type": "string", | |
| "description": "Boolean value to specify that any nested code content will be recursively verified as to its full content. Note that this option is ignored if the current system version is less than 10.9." | |
| }, | |
| "strict_verification": { | |
| "type": "string", | |
| "description": "Boolean value to control the strictness of signature validation. If not defined, codesign defaults are used. Note that this option is ignored if the current system version is less than 10.11." | |
| }, | |
| "codesign_additional_arguments": { | |
| "type": "string", | |
| "description": "Array of additional argument strings to pass to codesign." | |
| } | |
| }, | |
| "additionalProperties": true | |
| } | |
| }, | |
| "required": [ | |
| "Processor" | |
| ], | |
| "additionalProperties": false | |
| }, | |
| { | |
| "type": "object", | |
| "properties": { | |
| "Processor": { | |
| "type": "string", | |
| "enum": [ | |
| "Copier" | |
| ], | |
| "description": "Copies source_path to destination_path." | |
| }, | |
| "Arguments": { | |
| "type": "object", | |
| "description": "Arguments to pass to the Copier processor.", | |
| "properties": { | |
| "source_path": { | |
| "type": "string", | |
| "description": "Path to a file or directory to copy. Can point to a path inside a .dmg which will be mounted. This path may also contain globbing patterns such as the wildcard '*', or '**' that matches optional subdirectories but only the first result will be returned." | |
| }, | |
| "destination_path": { | |
| "type": "string", | |
| "description": "Path to destination." | |
| }, | |
| "overwrite": { | |
| "type": "string", | |
| "description": "Whether the destination will be overwritten if necessary. Uses a boolean value." | |
| } | |
| }, | |
| "additionalProperties": true | |
| } | |
| }, | |
| "required": [ | |
| "Processor" | |
| ], | |
| "additionalProperties": false | |
| }, | |
| { | |
| "type": "object", | |
| "properties": { | |
| "Processor": { | |
| "type": "string", | |
| "enum": [ | |
| "CURLDownloader" | |
| ], | |
| "description": "Downloads a URL to the specified download_dir using curl." | |
| }, | |
| "Arguments": { | |
| "type": "object", | |
| "description": "Arguments to pass to the CURLDownloader processor.", | |
| "properties": { | |
| "url": { | |
| "type": "string", | |
| "description": "The URL to download." | |
| }, | |
| "request_headers": { | |
| "type": "string", | |
| "description": "Optional dictionary of headers to include with the download request." | |
| }, | |
| "curl_opts": { | |
| "type": "string", | |
| "description": "Optional array of options to include with the download request." | |
| }, | |
| "download_dir": { | |
| "type": "string", | |
| "description": "The directory where the file will be downloaded to. Defaults to RECIPE_CACHE_DIR/downloads." | |
| }, | |
| "filename": { | |
| "type": "string", | |
| "description": "Filename to override the URL's tail." | |
| }, | |
| "prefetch_filename": { | |
| "type": "string", | |
| "description": "If True, URLDownloader attempts to determine filename from HTTP headers downloaded before the file itself. 'prefetch_filename' overrides 'filename' option. Filename is determined from the first available source of information in this order:\n\t1. Content-Disposition header\n\t2. Location header\n\t3. 'filename' option (if set)\n\t4. last part of 'url'. \n'prefetch_filename' is useful for URLs with redirects." | |
| }, | |
| "CHECK_FILESIZE_ONLY": { | |
| "type": "string", | |
| "description": "If True, a server's ETag and Last-Modified headers will not be checked to verify whether a download is newer than a cached item, and only Content-Length (filesize) will be used. This is useful for cases where a download always redirects to different mirrors, which could cause items to be needlessly re-downloaded. Defaults to False." | |
| }, | |
| "PKG": { | |
| "type": "string", | |
| "description": "Local path to the pkg/dmg we'd otherwise download. If provided, the download is skipped and we just use this package or disk image." | |
| } | |
| }, | |
| "additionalProperties": true | |
| } | |
| }, | |
| "required": [ | |
| "Processor" | |
| ], | |
| "additionalProperties": false | |
| }, | |
| { | |
| "type": "object", | |
| "properties": { | |
| "Processor": { | |
| "type": "string", | |
| "enum": [ | |
| "CURLTextSearcher" | |
| ], | |
| "description": "Downloads a URL using curl and performs a regular expression match\n on the text.\n\n Requires version 1.4." | |
| }, | |
| "Arguments": { | |
| "type": "object", | |
| "description": "Arguments to pass to the CURLTextSearcher processor.", | |
| "properties": { | |
| "re_pattern": { | |
| "type": "string", | |
| "description": "Regular expression (Python) to match against page." | |
| }, | |
| "url": { | |
| "type": "string", | |
| "description": "URL to download" | |
| }, | |
| "result_output_var_name": { | |
| "type": "string", | |
| "description": "The name of the output variable that is returned by the match. If not specified then a default of \"match\" will be used." | |
| }, | |
| "request_headers": { | |
| "type": "string", | |
| "description": "Optional dictionary of headers to include with the download request." | |
| }, | |
| "curl_opts": { | |
| "type": "string", | |
| "description": "Optional array of curl options to include with the download request." | |
| }, | |
| "re_flags": { | |
| "type": "string", | |
| "description": "Optional array of strings of Python regular expression flags. E.g. IGNORECASE." | |
| } | |
| }, | |
| "additionalProperties": true | |
| } | |
| }, | |
| "required": [ | |
| "Processor" | |
| ], | |
| "additionalProperties": false | |
| }, | |
| { | |
| "type": "object", | |
| "properties": { | |
| "Processor": { | |
| "type": "string", | |
| "enum": [ | |
| "DeprecationWarning" | |
| ], | |
| "description": "This processor outputs a warning that the recipe has been deprecated." | |
| }, | |
| "Arguments": { | |
| "type": "object", | |
| "description": "Arguments to pass to the DeprecationWarning processor.", | |
| "properties": { | |
| "warning_message": { | |
| "type": "string", | |
| "description": "Warning message to output." | |
| } | |
| }, | |
| "additionalProperties": true | |
| } | |
| }, | |
| "required": [ | |
| "Processor" | |
| ], | |
| "additionalProperties": false | |
| }, | |
| { | |
| "type": "object", | |
| "properties": { | |
| "Processor": { | |
| "type": "string", | |
| "enum": [ | |
| "DmgCreator" | |
| ], | |
| "description": "Creates a disk image from a directory." | |
| }, | |
| "Arguments": { | |
| "type": "object", | |
| "description": "Arguments to pass to the DmgCreator processor.", | |
| "properties": { | |
| "dmg_root": { | |
| "type": "string", | |
| "description": "Directory that will be copied to a disk image." | |
| }, | |
| "dmg_path": { | |
| "type": "string", | |
| "description": "The dmg to be created." | |
| }, | |
| "dmg_format": { | |
| "type": "string", | |
| "description": "The dmg format. Defaults to UDZO." | |
| }, | |
| "dmg_filesystem": { | |
| "type": "string", | |
| "description": "The dmg filesystem. Defaults to HFS+." | |
| }, | |
| "dmg_zlib_level": { | |
| "type": "string", | |
| "description": "Compression level between '1' and '9' to use when using UDZO. Defaults to '5', a point beyond which very little space savings is gained." | |
| }, | |
| "dmg_megabytes": { | |
| "type": "string", | |
| "description": "Value to set for the '-megabytes' option, useful as a workaround when hdiutil cannot accurately estimate the required size for the dmg before compression. Not normally required, and the option will not be used if this variable is not defined." | |
| } | |
| }, | |
| "additionalProperties": true | |
| } | |
| }, | |
| "required": [ | |
| "Processor" | |
| ], | |
| "additionalProperties": false | |
| }, | |
| { | |
| "type": "object", | |
| "properties": { | |
| "Processor": { | |
| "type": "string", | |
| "enum": [ | |
| "DmgMounter" | |
| ], | |
| "description": "Base class for Processors that need to mount disk images." | |
| }, | |
| "Arguments": { | |
| "type": "object", | |
| "description": "Arguments to pass to the DmgMounter processor.", | |
| "properties": {}, | |
| "additionalProperties": true | |
| } | |
| }, | |
| "required": [ | |
| "Processor" | |
| ], | |
| "additionalProperties": false | |
| }, | |
| { | |
| "type": "object", | |
| "properties": { | |
| "Processor": { | |
| "type": "string", | |
| "enum": [ | |
| "EndOfCheckPhase" | |
| ], | |
| "description": "This processor performs no action, but serves as a marker to signal\n where AutoPkg should stop when the -c/--check options are used." | |
| }, | |
| "Arguments": { | |
| "type": "object", | |
| "description": "Arguments to pass to the EndOfCheckPhase processor.", | |
| "properties": {}, | |
| "additionalProperties": true | |
| } | |
| }, | |
| "required": [ | |
| "Processor" | |
| ], | |
| "additionalProperties": false | |
| }, | |
| { | |
| "type": "object", | |
| "properties": { | |
| "Processor": { | |
| "type": "string", | |
| "enum": [ | |
| "FileCreator" | |
| ], | |
| "description": "Create a file." | |
| }, | |
| "Arguments": { | |
| "type": "object", | |
| "description": "Arguments to pass to the FileCreator processor.", | |
| "properties": { | |
| "file_path": { | |
| "type": "string", | |
| "description": "Path to a file to create." | |
| }, | |
| "file_content": { | |
| "type": "string", | |
| "description": "Contents to put in file." | |
| }, | |
| "file_mode": { | |
| "type": "string", | |
| "description": "String. Numeric mode for file in octal format." | |
| } | |
| }, | |
| "additionalProperties": true | |
| } | |
| }, | |
| "required": [ | |
| "Processor" | |
| ], | |
| "additionalProperties": false | |
| }, | |
| { | |
| "type": "object", | |
| "properties": { | |
| "Processor": { | |
| "type": "string", | |
| "enum": [ | |
| "FileFinder" | |
| ], | |
| "description": "Finds a filename for use in other Processors.\n\n Currently only supports glob filename patterns.\n\n Requires version 0.2.3.\n " | |
| }, | |
| "Arguments": { | |
| "type": "object", | |
| "description": "Arguments to pass to the FileFinder processor.", | |
| "properties": { | |
| "pattern": { | |
| "type": "string", | |
| "description": "Shell glob pattern to match files by" | |
| }, | |
| "find_method": { | |
| "type": "string", | |
| "description": "Type of pattern to match. Currently only supported type is \"glob\" (also the default)" | |
| } | |
| }, | |
| "additionalProperties": true | |
| } | |
| }, | |
| "required": [ | |
| "Processor" | |
| ], | |
| "additionalProperties": false | |
| }, | |
| { | |
| "type": "object", | |
| "properties": { | |
| "Processor": { | |
| "type": "string", | |
| "enum": [ | |
| "FileMover" | |
| ], | |
| "description": "Moves/renames a file.\n\n Requires version 0.2.9." | |
| }, | |
| "Arguments": { | |
| "type": "object", | |
| "description": "Arguments to pass to the FileMover processor.", | |
| "properties": { | |
| "source": { | |
| "type": "string", | |
| "description": "Source file" | |
| }, | |
| "target": { | |
| "type": "string", | |
| "description": "Target file" | |
| } | |
| }, | |
| "additionalProperties": true | |
| } | |
| }, | |
| "required": [ | |
| "Processor" | |
| ], | |
| "additionalProperties": false | |
| }, | |
| { | |
| "type": "object", | |
| "properties": { | |
| "Processor": { | |
| "type": "string", | |
| "enum": [ | |
| "FindAndReplace" | |
| ], | |
| "description": "Searches the provided 'input_string' and replaces instances of the 'find'\n string with the 'replace' string.\n\n Returns 'output_string' (or other variable specified by 'result_output_var_name')\n containing the result of the find/replace operation.\n\n Requires version 2.7.6.\n " | |
| }, | |
| "Arguments": { | |
| "type": "object", | |
| "description": "Arguments to pass to the FindAndReplace processor.", | |
| "properties": { | |
| "input_string": { | |
| "type": "string", | |
| "description": "The string you want to perform find/replace on." | |
| }, | |
| "find": { | |
| "type": "string", | |
| "description": "This string, if found, will be replaced with the \"replace\" string." | |
| }, | |
| "replace": { | |
| "type": "string", | |
| "description": "The string that you want to replace the \"find\" string with." | |
| }, | |
| "result_output_var_name": { | |
| "type": "string", | |
| "description": "The name of the output variable containing the result of the find/replace operation. If not specified then a default of \"output_string\" will \"be used." | |
| } | |
| }, | |
| "additionalProperties": true | |
| } | |
| }, | |
| "required": [ | |
| "Processor" | |
| ], | |
| "additionalProperties": false | |
| }, | |
| { | |
| "type": "object", | |
| "properties": { | |
| "Processor": { | |
| "type": "string", | |
| "enum": [ | |
| "FlatPkgPacker" | |
| ], | |
| "description": "Flatten an expanded package using pkgutil.\n\n Requires version 0.2.4.\n " | |
| }, | |
| "Arguments": { | |
| "type": "object", | |
| "description": "Arguments to pass to the FlatPkgPacker processor.", | |
| "properties": { | |
| "source_flatpkg_dir": { | |
| "type": "string", | |
| "description": "Path to an extracted flat package" | |
| }, | |
| "destination_pkg": { | |
| "type": "string", | |
| "description": "Name of destination pkg to be flattened" | |
| } | |
| }, | |
| "additionalProperties": true | |
| } | |
| }, | |
| "required": [ | |
| "Processor" | |
| ], | |
| "additionalProperties": false | |
| }, | |
| { | |
| "type": "object", | |
| "properties": { | |
| "Processor": { | |
| "type": "string", | |
| "enum": [ | |
| "FlatPkgUnpacker" | |
| ], | |
| "description": "Expands a flat package using pkgutil or xar.\n For xar it also optionally skips extracting the payload." | |
| }, | |
| "Arguments": { | |
| "type": "object", | |
| "description": "Arguments to pass to the FlatPkgUnpacker processor.", | |
| "properties": { | |
| "flat_pkg_path": { | |
| "type": "string", | |
| "description": "Path to a flat package. Can point to a globbed path inside a .dmg which will be mounted." | |
| }, | |
| "skip_payload": { | |
| "type": "string", | |
| "description": "If true, 'Payload' files will be skipped. Defaults to False. Note if this option is used then the files are extracted using xar(1) instead of pkgutil(1). This means components of the package will not be extracted such as scripts." | |
| }, | |
| "destination_path": { | |
| "type": "string", | |
| "description": "Directory where archive will be unpacked, created if necessary." | |
| }, | |
| "purge_destination": { | |
| "type": "string", | |
| "description": "Whether the contents of the destination directory will be removed before unpacking. Note that unless skip_payload argument is used the destination directory will be removed as pkgutil requires an empty destination." | |
| } | |
| }, | |
| "additionalProperties": true | |
| } | |
| }, | |
| "required": [ | |
| "Processor" | |
| ], | |
| "additionalProperties": false | |
| }, | |
| { | |
| "type": "object", | |
| "properties": { | |
| "Processor": { | |
| "type": "string", | |
| "enum": [ | |
| "GitHubReleasesInfoProvider" | |
| ], | |
| "description": "Get metadata from the latest release from a GitHub project using the GitHub Releases API.\nRequires version 0.5.0." | |
| }, | |
| "Arguments": { | |
| "type": "object", | |
| "description": "Arguments to pass to the GitHubReleasesInfoProvider processor.", | |
| "properties": { | |
| "asset_regex": { | |
| "type": "string", | |
| "description": "If set, return only a release asset that matches this regex." | |
| }, | |
| "github_repo": { | |
| "type": "string", | |
| "description": "Name of a GitHub user and repo, ie. 'MagerValp/AutoDMG'" | |
| }, | |
| "include_prereleases": { | |
| "type": "string", | |
| "description": "If set to True or a non-empty value, include prereleases." | |
| }, | |
| "latest_only": { | |
| "type": "string", | |
| "description": "If True or a non-empty value, API call will fetch only the release marked as 'latest' in GitHub. May not play well with 'include_prereleases'." | |
| }, | |
| "sort_by_highest_tag_names": { | |
| "type": "string", | |
| "description": "Set this to have releases sorted by highest to lowest tag version. By default, releases are sorted descending by date posted. This changes this behavior for cases where an 'older' release may be posted later." | |
| }, | |
| "curl_opts": { | |
| "type": "string", | |
| "description": "Optional array of curl options to include with the download request." | |
| }, | |
| "CURL_PATH": { | |
| "type": "string", | |
| "description": "Path to curl binary. Defaults to /usr/bin/curl." | |
| }, | |
| "GITHUB_URL": { | |
| "type": "string", | |
| "description": "If your organization has an internal GitHub instance set this value to your internal GitHub URL ie. 'https://git.internal.corp.com/api/v3'" | |
| }, | |
| "GITHUB_TOKEN_PATH": { | |
| "type": "string", | |
| "description": "Path to a file containing your GitHub token. Can be a relative path or absolute path. ie. '~/.custom_gh_token' or '/path/to/token' NOTE: the AutoPkg preference 'GITHUB_TOKEN' takes precedence over this value." | |
| } | |
| }, | |
| "additionalProperties": true | |
| } | |
| }, | |
| "required": [ | |
| "Processor" | |
| ], | |
| "additionalProperties": false | |
| }, | |
| { | |
| "type": "object", | |
| "properties": { | |
| "Processor": { | |
| "type": "string", | |
| "enum": [ | |
| "Installer" | |
| ], | |
| "description": "Calls autopkginstalld to install a package." | |
| }, | |
| "Arguments": { | |
| "type": "object", | |
| "description": "Arguments to pass to the Installer processor.", | |
| "properties": { | |
| "pkg_path": { | |
| "type": "string", | |
| "description": "Path to the package to be installed. Can be inside a disk image." | |
| }, | |
| "new_package_request": { | |
| "type": "string", | |
| "description": "new_package_request is set by the PkgCreator processor to indicate that a new package was built. If this key is set in the environment and is False or empty the installation will be skipped." | |
| }, | |
| "download_changed": { | |
| "type": "string", | |
| "description": "download_changed is set by the URLDownloader processor to indicate that a new file was downloaded. If this key is set in the environment and is False or empty the installation will be skipped, unless new_package_request is non-False." | |
| } | |
| }, | |
| "additionalProperties": true | |
| } | |
| }, | |
| "required": [ | |
| "Processor" | |
| ], | |
| "additionalProperties": false | |
| }, | |
| { | |
| "type": "object", | |
| "properties": { | |
| "Processor": { | |
| "type": "string", | |
| "enum": [ | |
| "InstallFromDMG" | |
| ], | |
| "description": "Calls autopkginstalld to copy items from a disk image to the root\n filesystem." | |
| }, | |
| "Arguments": { | |
| "type": "object", | |
| "description": "Arguments to pass to the InstallFromDMG processor.", | |
| "properties": { | |
| "dmg_path": { | |
| "type": "string", | |
| "description": "Path to the disk image." | |
| }, | |
| "items_to_copy": { | |
| "type": "string", | |
| "description": "Array of dictionaries describing what is to be copied. Each item should contain 'source_item' and 'destination_path', and may optionally include: 'destination_item' to rename the item on copy, and 'user', 'group' and 'mode' to explicitly set those items." | |
| }, | |
| "download_changed": { | |
| "type": "string", | |
| "description": "download_changed is set by the URLDownloader processor to indicate that a new file was downloaded. If this key is set in the environment and is False or empty the installation will be skipped." | |
| } | |
| }, | |
| "additionalProperties": true | |
| } | |
| }, | |
| "required": [ | |
| "Processor" | |
| ], | |
| "additionalProperties": false | |
| }, | |
| { | |
| "type": "object", | |
| "properties": { | |
| "Processor": { | |
| "type": "string", | |
| "enum": [ | |
| "MunkiCatalogBuilder" | |
| ], | |
| "description": "DEPRECATED. This processor now emits a warning and performs no function.\n Previously it rebuilt Munki catalogs." | |
| }, | |
| "Arguments": { | |
| "type": "object", | |
| "description": "Arguments to pass to the MunkiCatalogBuilder processor.", | |
| "properties": {}, | |
| "additionalProperties": true | |
| } | |
| }, | |
| "required": [ | |
| "Processor" | |
| ], | |
| "additionalProperties": false | |
| }, | |
| { | |
| "type": "object", | |
| "properties": { | |
| "Processor": { | |
| "type": "string", | |
| "enum": [ | |
| "MunkiImporter" | |
| ], | |
| "description": "Imports a pkg or dmg to the Munki repo." | |
| }, | |
| "Arguments": { | |
| "type": "object", | |
| "description": "Arguments to pass to the MunkiImporter processor.", | |
| "properties": { | |
| "MUNKI_REPO": { | |
| "type": "string", | |
| "description": "Path to a mounted Munki repo." | |
| }, | |
| "MUNKI_REPO_PLUGIN": { | |
| "type": "string", | |
| "description": "Munki repo plugin. Defaults to FileRepo. Munki must be installed and available at MUNKILIB_DIR if a plugin other than FileRepo is specified." | |
| }, | |
| "MUNKILIB_DIR": { | |
| "type": "string", | |
| "description": "Directory path that contains munkilib. Defaults to /usr/local/munki" | |
| }, | |
| "force_munki_repo_lib": { | |
| "type": "string", | |
| "description": "When True, munki code libraries will be utilized when the FileRepo plugin is used. Munki must be installed and available at MUNKILIB_DIR" | |
| }, | |
| "pkg_path": { | |
| "type": "string", | |
| "description": "Path to a pkg or dmg to import." | |
| }, | |
| "munkiimport_pkgname": { | |
| "type": "string", | |
| "description": "Corresponds to --pkgname option to munkiimport." | |
| }, | |
| "munkiimport_appname": { | |
| "type": "string", | |
| "description": "Corresponds to --appname option to munkiimport." | |
| }, | |
| "repo_subdirectory": { | |
| "type": "string", | |
| "description": "The subdirectory under pkgs to which the item will be copied, and under pkgsinfo where the pkginfo will be created." | |
| }, | |
| "pkginfo": { | |
| "type": "string", | |
| "description": "Dictionary of pkginfo keys to copy to generated pkginfo." | |
| }, | |
| "extract_icon": { | |
| "type": "string", | |
| "description": "If not empty, attempt to extract and import an icon from the installer item. Munki must be installed and available at MUNKILIB_DIR." | |
| }, | |
| "force_munkiimport": { | |
| "type": "string", | |
| "description": "If not False or Null, causes the pkg/dmg to be imported even if there is a matching pkg already in the repo." | |
| }, | |
| "additional_makepkginfo_options": { | |
| "type": "string", | |
| "description": "Array of additional command-line options that will be inserted when calling 'makepkginfo'." | |
| }, | |
| "version_comparison_key": { | |
| "type": "string", | |
| "description": "String to set 'version_comparison_key' for any generated installs items." | |
| }, | |
| "uninstaller_pkg_path": { | |
| "type": "string", | |
| "description": "Path to an uninstaller pkg, supported for Adobe installer_type items." | |
| }, | |
| "MUNKI_PKGINFO_FILE_EXTENSION": { | |
| "type": "string", | |
| "description": "Extension for output pkginfo files. Default is 'plist'." | |
| }, | |
| "metadata_additions": { | |
| "type": "string", | |
| "description": "A dictionary that will be merged with the pkginfo _metadata. Unique keys will be added, but overlapping keys will replace existing values." | |
| } | |
| }, | |
| "additionalProperties": true | |
| } | |
| }, | |
| "required": [ | |
| "Processor" | |
| ], | |
| "additionalProperties": false | |
| }, | |
| { | |
| "type": "object", | |
| "properties": { | |
| "Processor": { | |
| "type": "string", | |
| "enum": [ | |
| "MunkiInfoCreator" | |
| ], | |
| "description": "Creates a pkginfo file for a munki package." | |
| }, | |
| "Arguments": { | |
| "type": "object", | |
| "description": "Arguments to pass to the MunkiInfoCreator processor.", | |
| "properties": { | |
| "pkg_path": { | |
| "type": "string", | |
| "description": "Path to a pkg or dmg in the munki repository." | |
| }, | |
| "version": { | |
| "type": "string", | |
| "description": "Version to override makepkginfo." | |
| }, | |
| "name": { | |
| "type": "string", | |
| "description": "Name to override makepkginfo." | |
| }, | |
| "info_path": { | |
| "type": "string", | |
| "description": "Path to the pkgsinfo file." | |
| } | |
| }, | |
| "additionalProperties": true | |
| } | |
| }, | |
| "required": [ | |
| "Processor" | |
| ], | |
| "additionalProperties": false | |
| }, | |
| { | |
| "type": "object", | |
| "properties": { | |
| "Processor": { | |
| "type": "string", | |
| "enum": [ | |
| "MunkiInstallsItemsCreator" | |
| ], | |
| "description": "Generates an installs array for a pkginfo file." | |
| }, | |
| "Arguments": { | |
| "type": "object", | |
| "description": "Arguments to pass to the MunkiInstallsItemsCreator processor.", | |
| "properties": { | |
| "installs_item_paths": { | |
| "type": "string", | |
| "description": "Array of paths to create installs items for." | |
| }, | |
| "derive_minimum_os_version": { | |
| "type": "string", | |
| "description": "If minosversion is present in the installs array within additional_pkginfo, then an additional key will be added to additional_pkginfo named minimum_os_version with the value of minosversion." | |
| }, | |
| "faux_root": { | |
| "type": "string", | |
| "description": "The root of an expanded package or filesystem." | |
| }, | |
| "version_comparison_key": { | |
| "type": "string", | |
| "description": "Set 'version_comparison_key' for installs items. If this is a string, it is set to this value for all items given to 'installs_item_paths'. If this is a dictionary, takes a mapping of a path as given to 'installs_item_paths' to the desired version_comparison_key.\nExample:\n{'/Applications/Foo.app': 'CFBundleVersion',\n'/Library/Bar.plugin': 'CFBundleShortVersionString'}" | |
| } | |
| }, | |
| "additionalProperties": true | |
| } | |
| }, | |
| "required": [ | |
| "Processor" | |
| ], | |
| "additionalProperties": false | |
| }, | |
| { | |
| "type": "object", | |
| "properties": { | |
| "Processor": { | |
| "type": "string", | |
| "enum": [ | |
| "MunkiOptionalReceiptEditor" | |
| ], | |
| "description": "Modifies the receipts key in a Munki pkginfo." | |
| }, | |
| "Arguments": { | |
| "type": "object", | |
| "description": "Arguments to pass to the MunkiOptionalReceiptEditor processor.", | |
| "properties": { | |
| "pkginfo_repo_path": { | |
| "type": "string", | |
| "description": "The repo path where the pkginfo was written." | |
| }, | |
| "pkg_ids_set_optional_true": { | |
| "type": "string", | |
| "description": "Array of package IDs to turn optional for Munki" | |
| } | |
| }, | |
| "additionalProperties": true | |
| } | |
| }, | |
| "required": [ | |
| "Processor" | |
| ], | |
| "additionalProperties": false | |
| }, | |
| { | |
| "type": "object", | |
| "properties": { | |
| "Processor": { | |
| "type": "string", | |
| "enum": [ | |
| "MunkiPkginfoMerger" | |
| ], | |
| "description": "Merges two pkginfo dictionaries." | |
| }, | |
| "Arguments": { | |
| "type": "object", | |
| "description": "Arguments to pass to the MunkiPkginfoMerger processor.", | |
| "properties": { | |
| "pkginfo": { | |
| "type": "string", | |
| "description": "Dictionary of Munki pkginfo." | |
| }, | |
| "additional_pkginfo": { | |
| "type": "string", | |
| "description": "Dictionary containing additional Munki pkginfo. This will be added to or replace keys in the pkginfo." | |
| } | |
| }, | |
| "additionalProperties": true | |
| } | |
| }, | |
| "required": [ | |
| "Processor" | |
| ], | |
| "additionalProperties": false | |
| }, | |
| { | |
| "type": "object", | |
| "properties": { | |
| "Processor": { | |
| "type": "string", | |
| "enum": [ | |
| "MunkiSetDefaultCatalog" | |
| ], | |
| "description": "Edit current munki pkginfo to set the 'catalog' key to the default\n catalog preference for munkiimport (com.googlecode.munki.munkiimport),\n if one has been set. Typically this would be run as a preprocessor." | |
| }, | |
| "Arguments": { | |
| "type": "object", | |
| "description": "Arguments to pass to the MunkiSetDefaultCatalog processor.", | |
| "properties": { | |
| "pkginfo": { | |
| "type": "string", | |
| "description": "Dictionary of Munki pkginfo." | |
| } | |
| }, | |
| "additionalProperties": true | |
| } | |
| }, | |
| "required": [ | |
| "Processor" | |
| ], | |
| "additionalProperties": false | |
| }, | |
| { | |
| "type": "object", | |
| "properties": { | |
| "Processor": { | |
| "type": "string", | |
| "enum": [ | |
| "PackageRequired" | |
| ], | |
| "description": "Raises a ProcessorError if the PKG variable doesn't exist.\n\n Requires version 0.5.1." | |
| }, | |
| "Arguments": { | |
| "type": "object", | |
| "description": "Arguments to pass to the PackageRequired processor.", | |
| "properties": {}, | |
| "additionalProperties": true | |
| } | |
| }, | |
| "required": [ | |
| "Processor" | |
| ], | |
| "additionalProperties": false | |
| }, | |
| { | |
| "type": "object", | |
| "properties": { | |
| "Processor": { | |
| "type": "string", | |
| "enum": [ | |
| "PathDeleter" | |
| ], | |
| "description": "Deletes file paths." | |
| }, | |
| "Arguments": { | |
| "type": "object", | |
| "description": "Arguments to pass to the PathDeleter processor.", | |
| "properties": { | |
| "path_list": { | |
| "type": "string", | |
| "description": "An array or list of pathnames to be deleted, even if that list contains a single item." | |
| } | |
| }, | |
| "additionalProperties": true | |
| } | |
| }, | |
| "required": [ | |
| "Processor" | |
| ], | |
| "additionalProperties": false | |
| }, | |
| { | |
| "type": "object", | |
| "properties": { | |
| "Processor": { | |
| "type": "string", | |
| "enum": [ | |
| "PkgCopier" | |
| ], | |
| "description": "Copies source_pkg to pkg_path." | |
| }, | |
| "Arguments": { | |
| "type": "object", | |
| "description": "Arguments to pass to the PkgCopier processor.", | |
| "properties": { | |
| "source_pkg": { | |
| "type": "string", | |
| "description": "Path to a pkg to copy. Can point to a path inside a .dmg which will be mounted. This path may also contain basic globbing characters such as the wildcard '*', but only the first result will be returned." | |
| }, | |
| "pkg_path": { | |
| "type": "string", | |
| "description": "Path to destination. Defaults to RECIPE_CACHE_DIR/os.path.basename(source_pkg)" | |
| } | |
| }, | |
| "additionalProperties": true | |
| } | |
| }, | |
| "required": [ | |
| "Processor" | |
| ], | |
| "additionalProperties": false | |
| }, | |
| { | |
| "type": "object", | |
| "properties": { | |
| "Processor": { | |
| "type": "string", | |
| "enum": [ | |
| "PkgCreator" | |
| ], | |
| "description": "Calls autopkgserver to create a package." | |
| }, | |
| "Arguments": { | |
| "type": "object", | |
| "description": "Arguments to pass to the PkgCreator processor.", | |
| "properties": { | |
| "pkg_request": { | |
| "type": "string", | |
| "description": "A package request dictionary. See Code/autopkgserver/autopkgserver for more details." | |
| }, | |
| "force_pkg_build": { | |
| "type": "string", | |
| "description": "When set, this forces building a new package even if a package already exists in the output directory with the same identifier and version number. Defaults to False" | |
| } | |
| }, | |
| "additionalProperties": true | |
| } | |
| }, | |
| "required": [ | |
| "Processor" | |
| ], | |
| "additionalProperties": false | |
| }, | |
| { | |
| "type": "object", | |
| "properties": { | |
| "Processor": { | |
| "type": "string", | |
| "enum": [ | |
| "PkgExtractor" | |
| ], | |
| "description": "Extracts the contents of a bundle-style pkg (possibly on a disk image)\n to pkgroot." | |
| }, | |
| "Arguments": { | |
| "type": "object", | |
| "description": "Arguments to pass to the PkgExtractor processor.", | |
| "properties": { | |
| "pkg_path": { | |
| "type": "string", | |
| "description": "Path to a package." | |
| }, | |
| "extract_root": { | |
| "type": "string", | |
| "description": "Path to where the new package root will be created." | |
| } | |
| }, | |
| "additionalProperties": true | |
| } | |
| }, | |
| "required": [ | |
| "Processor" | |
| ], | |
| "additionalProperties": false | |
| }, | |
| { | |
| "type": "object", | |
| "properties": { | |
| "Processor": { | |
| "type": "string", | |
| "enum": [ | |
| "PkgInfoCreator" | |
| ], | |
| "description": "Creates an PackageInfo file for a package." | |
| }, | |
| "Arguments": { | |
| "type": "object", | |
| "description": "Arguments to pass to the PkgInfoCreator processor.", | |
| "properties": { | |
| "template_path": { | |
| "type": "string", | |
| "description": "An Info.plist template." | |
| }, | |
| "version": { | |
| "type": "string", | |
| "description": "Version of the package." | |
| }, | |
| "pkgroot": { | |
| "type": "string", | |
| "description": "Virtual root of the package." | |
| }, | |
| "infofile": { | |
| "type": "string", | |
| "description": "Path to the info file to create." | |
| }, | |
| "pkgtype": { | |
| "type": "string", | |
| "description": "'flat' or 'bundle'." | |
| } | |
| }, | |
| "additionalProperties": true | |
| } | |
| }, | |
| "required": [ | |
| "Processor" | |
| ], | |
| "additionalProperties": false | |
| }, | |
| { | |
| "type": "object", | |
| "properties": { | |
| "Processor": { | |
| "type": "string", | |
| "enum": [ | |
| "PkgPayloadUnpacker" | |
| ], | |
| "description": "Unpacks a package payload." | |
| }, | |
| "Arguments": { | |
| "type": "object", | |
| "description": "Arguments to pass to the PkgPayloadUnpacker processor.", | |
| "properties": { | |
| "pkg_payload_path": { | |
| "type": "string", | |
| "description": "Path to a payload from an expanded flat package or Archive.pax.gz in a bundle package." | |
| }, | |
| "destination_path": { | |
| "type": "string", | |
| "description": "Destination directory." | |
| }, | |
| "purge_destination": { | |
| "type": "string", | |
| "description": "Whether the contents of the destination directory will be removed before unpacking." | |
| } | |
| }, | |
| "additionalProperties": true | |
| } | |
| }, | |
| "required": [ | |
| "Processor" | |
| ], | |
| "additionalProperties": false | |
| }, | |
| { | |
| "type": "object", | |
| "properties": { | |
| "Processor": { | |
| "type": "string", | |
| "enum": [ | |
| "PkgRootCreator" | |
| ], | |
| "description": "Creates a package root and a directory structure.\n (Can also be used to create directory structures for other purposes.)" | |
| }, | |
| "Arguments": { | |
| "type": "object", | |
| "description": "Arguments to pass to the PkgRootCreator processor.", | |
| "properties": { | |
| "pkgroot": { | |
| "type": "string", | |
| "description": "Path to where the package root will be created." | |
| }, | |
| "pkgdirs": { | |
| "type": "string", | |
| "description": "A dictionary of directories to be created inside the pkgroot, with their modes in octal form." | |
| } | |
| }, | |
| "additionalProperties": true | |
| } | |
| }, | |
| "required": [ | |
| "Processor" | |
| ], | |
| "additionalProperties": false | |
| }, | |
| { | |
| "type": "object", | |
| "properties": { | |
| "Processor": { | |
| "type": "string", | |
| "enum": [ | |
| "PlistEditor" | |
| ], | |
| "description": "Merges data with an input plist (which can be empty) and writes a new\n plist." | |
| }, | |
| "Arguments": { | |
| "type": "object", | |
| "description": "Arguments to pass to the PlistEditor processor.", | |
| "properties": { | |
| "input_plist_path": { | |
| "type": "string", | |
| "description": "File path to a plist; empty or undefined to start with an empty plist." | |
| }, | |
| "output_plist_path": { | |
| "type": "string", | |
| "description": "File path to a plist. Can be the same path as input_plist." | |
| }, | |
| "plist_data": { | |
| "type": "string", | |
| "description": "A dictionary of data to be merged with the data from the input plist." | |
| } | |
| }, | |
| "additionalProperties": true | |
| } | |
| }, | |
| "required": [ | |
| "Processor" | |
| ], | |
| "additionalProperties": false | |
| }, | |
| { | |
| "type": "object", | |
| "properties": { | |
| "Processor": { | |
| "type": "string", | |
| "enum": [ | |
| "PlistReader" | |
| ], | |
| "description": "Extracts values from top-level keys in a plist file, and assigns to\n arbitrary output variables. This behavior is different from other\n processors that pre-define all their possible output variables.\n As it is often used for versioning, it defaults to extracting\n 'CFBundleShortVersionString' to 'version'. This can be used as a replacement\n for both the AppDmgVersioner and Versioner processors.\n\n Requires version 0.2.5." | |
| }, | |
| "Arguments": { | |
| "type": "object", | |
| "description": "Arguments to pass to the PlistReader processor.", | |
| "properties": { | |
| "info_path": { | |
| "type": "string", | |
| "description": "Path to a plist to be read. If a path to a bundle (ie. a .app) is given, its Info.plist will be found and used. If the path is a folder, it will be searched and the first found bundle will be used. The path can also contain a dmg/iso file and it will be mounted." | |
| }, | |
| "plist_keys": { | |
| "type": "string", | |
| "description": [ | |
| "Dictionary of plist values to query. Key names should match a top-level key to read. Values should be the desired output variable name. Defaults to: ", | |
| "{'CFBundleShortVersionString': 'version'}" | |
| ] | |
| } | |
| }, | |
| "additionalProperties": true | |
| } | |
| }, | |
| "required": [ | |
| "Processor" | |
| ], | |
| "additionalProperties": false | |
| }, | |
| { | |
| "type": "object", | |
| "properties": { | |
| "Processor": { | |
| "type": "string", | |
| "enum": [ | |
| "SparkleUpdateInfoProvider" | |
| ], | |
| "description": "Provides URL to the highest version number or latest update." | |
| }, | |
| "Arguments": { | |
| "type": "object", | |
| "description": "Arguments to pass to the SparkleUpdateInfoProvider processor.", | |
| "properties": { | |
| "appcast_url": { | |
| "type": "string", | |
| "description": "URL for a Sparkle Appcast feed xml." | |
| }, | |
| "appcast_request_headers": { | |
| "type": "string", | |
| "description": "Dictionary of additional HTTP headers to include in request." | |
| }, | |
| "appcast_query_pairs": { | |
| "type": "string", | |
| "description": "Dictionary of additional query pairs to include in request. Manual url-encoding isn't necessary." | |
| }, | |
| "alternate_xmlns_url": { | |
| "type": "string", | |
| "description": "Alternate URL for the XML namespace, if the appcast is using an alternate one. Defaults to that used for 'vanilla' Sparkle appcasts." | |
| }, | |
| "curl_opts": { | |
| "type": "string", | |
| "description": "Optional array of options to include with the download request." | |
| }, | |
| "pkginfo_keys_to_copy_from_sparkle_feed": { | |
| "type": "string", | |
| "description": "Array of pkginfo keys that will be derived from any available metadata from the Sparkle feed and copied to 'additional_pkginfo'. The usefulness of these keys will depend on the admin's environment and the nature of the metadata provided by the application vendor. Note that the 'description' is usually equivalent to 'release notes' for that specific version. Defaults to ['minimum_os_version']. Currently supported keys: description, minimum_os_version" | |
| }, | |
| "urlencode_path_component": { | |
| "type": "string", | |
| "description": "Boolean value to specify if the path component from the sparkle feed needs to be urlencoded. Defaults to True." | |
| }, | |
| "update_channel": { | |
| "type": "string", | |
| "description": "Sparkle 2 provides specifying what channel an update is on. You can specify which channel to look for via this key. If a channel is defined, and exists, then this defined channel will be used." | |
| }, | |
| "PKG": { | |
| "type": "string", | |
| "description": "Local path to the pkg/dmg we'd otherwise download. If provided, the download is skipped and we just use this package or disk image." | |
| } | |
| }, | |
| "additionalProperties": true | |
| } | |
| }, | |
| "required": [ | |
| "Processor" | |
| ], | |
| "additionalProperties": false | |
| }, | |
| { | |
| "type": "object", | |
| "properties": { | |
| "Processor": { | |
| "type": "string", | |
| "enum": [ | |
| "StopProcessingIf" | |
| ], | |
| "description": "Sets a variable to tell AutoPackager to stop processing a recipe if a\n predicate comparison evaluates to true." | |
| }, | |
| "Arguments": { | |
| "type": "object", | |
| "description": "Arguments to pass to the StopProcessingIf processor.", | |
| "properties": { | |
| "predicate": { | |
| "type": "string", | |
| "description": "NSPredicate-style comparison against an environment key. See http://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/Predicates/Articles/pSyntax.html" | |
| } | |
| }, | |
| "additionalProperties": true | |
| } | |
| }, | |
| "required": [ | |
| "Processor" | |
| ], | |
| "additionalProperties": false | |
| }, | |
| { | |
| "type": "object", | |
| "properties": { | |
| "Processor": { | |
| "type": "string", | |
| "enum": [ | |
| "Symlinker" | |
| ], | |
| "description": "Copies source_path to destination_path." | |
| }, | |
| "Arguments": { | |
| "type": "object", | |
| "description": "Arguments to pass to the Symlinker processor.", | |
| "properties": { | |
| "source_path": { | |
| "type": "string", | |
| "description": "Path to a file or directory to symlink." | |
| }, | |
| "destination_path": { | |
| "type": "string", | |
| "description": "Path to destination." | |
| }, | |
| "overwrite": { | |
| "type": "string", | |
| "description": "Whether the destination will be overwritten if necessary." | |
| } | |
| }, | |
| "additionalProperties": true | |
| } | |
| }, | |
| "required": [ | |
| "Processor" | |
| ], | |
| "additionalProperties": false | |
| }, | |
| { | |
| "type": "object", | |
| "properties": { | |
| "Processor": { | |
| "type": "string", | |
| "enum": [ | |
| "Unarchiver" | |
| ], | |
| "description": "Archive decompressor for zip and common tar-compressed formats." | |
| }, | |
| "Arguments": { | |
| "type": "object", | |
| "description": "Arguments to pass to the Unarchiver processor.", | |
| "properties": { | |
| "archive_path": { | |
| "type": "string", | |
| "description": "Path to an archive. Defaults to contents of the 'pathname' variable, for example as is set by URLDownloader." | |
| }, | |
| "destination_path": { | |
| "type": "string", | |
| "description": "Directory where archive will be unpacked, created if necessary. Defaults to RECIPE_CACHE_DIR/NAME." | |
| }, | |
| "purge_destination": { | |
| "type": "string", | |
| "description": "Whether the contents of the destination directory will be removed before unpacking." | |
| }, | |
| "archive_format": { | |
| "type": "string", | |
| "description": "The archive format. Currently supported: 'zip', 'tar_gzip', 'tar_bzip2', 'tar'. If omitted, the file extension is used to guess the format." | |
| }, | |
| "USE_PYTHON_NATIVE_EXTRACTOR": { | |
| "type": "string", | |
| "description": "Controls whether or not Unarchiver extracts the archive with native Python code, or calls out to a platform specific utility. The default is determined on a platform specific basis. Currently, this means that on macOS platform utilities are used, and otherwise Python is used." | |
| } | |
| }, | |
| "additionalProperties": true | |
| } | |
| }, | |
| "required": [ | |
| "Processor" | |
| ], | |
| "additionalProperties": false | |
| }, | |
| { | |
| "type": "object", | |
| "properties": { | |
| "Processor": { | |
| "type": "string", | |
| "enum": [ | |
| "URLDownloader" | |
| ], | |
| "description": "Downloads a URL to the specified download_dir using curl." | |
| }, | |
| "Arguments": { | |
| "type": "object", | |
| "description": "Arguments to pass to the URLDownloader processor.", | |
| "properties": { | |
| "url": { | |
| "type": "string", | |
| "description": "The URL to download." | |
| }, | |
| "request_headers": { | |
| "type": "string", | |
| "description": "Optional dictionary of headers to include with the download request." | |
| }, | |
| "curl_opts": { | |
| "type": "string", | |
| "description": "Optional array of options to include with the download request." | |
| }, | |
| "download_dir": { | |
| "type": "string", | |
| "description": "The directory where the file will be downloaded to. Defaults to RECIPE_CACHE_DIR/downloads." | |
| }, | |
| "filename": { | |
| "type": "string", | |
| "description": "Filename to override the URL's tail." | |
| }, | |
| "prefetch_filename": { | |
| "type": "string", | |
| "description": "If True, URLDownloader attempts to determine filename from HTTP headers downloaded before the file itself. 'prefetch_filename' overrides 'filename' option. Filename is determined from the first available source of information in this order:\n\t1. Content-Disposition header\n\t2. Location header\n\t3. 'filename' option (if set)\n\t4. last part of 'url'. \n'prefetch_filename' is useful for URLs with redirects." | |
| }, | |
| "CHECK_FILESIZE_ONLY": { | |
| "type": "string", | |
| "description": "If True, a server's ETag and Last-Modified headers will not be checked to verify whether a download is newer than a cached item, and only Content-Length (filesize) will be used. This is useful for cases where a download always redirects to different mirrors, which could cause items to be needlessly re-downloaded. Defaults to False." | |
| }, | |
| "PKG": { | |
| "type": "string", | |
| "description": "Local path to the pkg/dmg we'd otherwise download. If provided, the download is skipped and we just use this package or disk image." | |
| } | |
| }, | |
| "additionalProperties": true | |
| } | |
| }, | |
| "required": [ | |
| "Processor" | |
| ], | |
| "additionalProperties": false | |
| }, | |
| { | |
| "type": "object", | |
| "properties": { | |
| "Processor": { | |
| "type": "string", | |
| "enum": [ | |
| "URLDownloaderPython" | |
| ], | |
| "description": "This is meant to be a pure python replacement for URLDownloader\n See: https://github.com/autopkg/autopkg/blob/master/Code/autopkglib/URLDownloader.py\n " | |
| }, | |
| "Arguments": { | |
| "type": "object", | |
| "description": "Arguments to pass to the URLDownloaderPython processor.", | |
| "properties": { | |
| "url": { | |
| "type": "string", | |
| "description": "The URL to download." | |
| }, | |
| "download_dir": { | |
| "type": "string", | |
| "description": "The directory where the file will be downloaded to. Defaults to RECIPE_CACHE_DIR/downloads." | |
| }, | |
| "filename": { | |
| "type": "string", | |
| "description": "Filename to override the URL's tail." | |
| }, | |
| "prefetch_filename": { | |
| "type": "string", | |
| "description": "If True, URLDownloader attempts to determine filename from HTTP headers downloaded before the file itself. 'prefetch_filename' overrides 'filename' option. Filename is determined from the first available source of information in this order:\n\t1. Content-Disposition header\n\t2. Location header\n\t3. 'filename' option (if set)\n\t4. last part of 'url'. \n'prefetch_filename' is useful for URLs with redirects." | |
| }, | |
| "CHECK_FILESIZE_ONLY": { | |
| "type": "string", | |
| "description": "If True, a server's ETag and Last-Modified headers will not be checked to verify whether a download is newer than a cached item, and only Content-Length (filesize) will be used. This is useful for cases where a download always redirects to different mirrors, which could cause items to be needlessly re-downloaded. Defaults to False." | |
| }, | |
| "PKG": { | |
| "type": "string", | |
| "description": "Local path to the pkg/dmg we'd otherwise download. If provided, the download is skipped and we just use this package or disk image." | |
| }, | |
| "COMPUTE_HASHES": { | |
| "type": "string", | |
| "description": "Determine whether to compute md5, sha1, and sha256 hashes of the downloaded file." | |
| }, | |
| "HEADERS_TO_TEST": { | |
| "type": "string", | |
| "description": "List of HTTP headers to compare against the previous download to detect changes. If 'CHECK_FILESIZE_ONLY' is enabled, this list is overridden to ['Content-Length'] only." | |
| } | |
| }, | |
| "additionalProperties": true | |
| } | |
| }, | |
| "required": [ | |
| "Processor" | |
| ], | |
| "additionalProperties": false | |
| }, | |
| { | |
| "type": "object", | |
| "properties": { | |
| "Processor": { | |
| "type": "string", | |
| "enum": [ | |
| "URLGetter" | |
| ], | |
| "description": "Handles curl HTTP operations. Serves only as superclass. Not for direct use." | |
| }, | |
| "Arguments": { | |
| "type": "object", | |
| "description": "Arguments to pass to the URLGetter processor.", | |
| "properties": {}, | |
| "additionalProperties": true | |
| } | |
| }, | |
| "required": [ | |
| "Processor" | |
| ], | |
| "additionalProperties": false | |
| }, | |
| { | |
| "type": "object", | |
| "properties": { | |
| "Processor": { | |
| "type": "string", | |
| "enum": [ | |
| "URLTextSearcher" | |
| ], | |
| "description": "Downloads a URL using curl and performs a regular expression match\n on the text.\n\n Requires version 1.4." | |
| }, | |
| "Arguments": { | |
| "type": "object", | |
| "description": "Arguments to pass to the URLTextSearcher processor.", | |
| "properties": { | |
| "re_pattern": { | |
| "type": "string", | |
| "description": "Regular expression (Python) to match against page." | |
| }, | |
| "url": { | |
| "type": "string", | |
| "description": "URL to download" | |
| }, | |
| "result_output_var_name": { | |
| "type": "string", | |
| "description": "The name of the output variable that is returned by the match. If not specified then a default of \"match\" will be used." | |
| }, | |
| "request_headers": { | |
| "type": "string", | |
| "description": "Optional dictionary of headers to include with the download request." | |
| }, | |
| "curl_opts": { | |
| "type": "string", | |
| "description": "Optional array of curl options to include with the download request." | |
| }, | |
| "re_flags": { | |
| "type": "string", | |
| "description": "Optional array of strings of Python regular expression flags. E.g. IGNORECASE." | |
| } | |
| }, | |
| "additionalProperties": true | |
| } | |
| }, | |
| "required": [ | |
| "Processor" | |
| ], | |
| "additionalProperties": false | |
| }, | |
| { | |
| "type": "object", | |
| "properties": { | |
| "Processor": { | |
| "type": "string", | |
| "enum": [ | |
| "Versioner" | |
| ], | |
| "description": "Returns version information from a plist" | |
| }, | |
| "Arguments": { | |
| "type": "object", | |
| "description": "Arguments to pass to the Versioner processor.", | |
| "properties": { | |
| "input_plist_path": { | |
| "type": "string", | |
| "description": "File path to a plist. Can point to a path inside a .dmg which will be mounted." | |
| }, | |
| "plist_version_key": { | |
| "type": "string", | |
| "description": "Which plist key to use; defaults to CFBundleShortVersionString" | |
| }, | |
| "skip_single_root_dir": { | |
| "type": "string", | |
| "description": "If this flag is set, `input_plist_path` points inside a zip file, and there is a single directory inside the zip file at the root of the archive, then interpret the path in the archive as being relative to that directory. Example:\n input_plist_path=/tmp/some/archive.zip/path/to/version.plist\n archive.zip\n archive-abcdef/\n path/to/version.plist\n Will use `archive-abcdef/path/to/version.plist` as the final path. If there is more than one file or directory at the root, the Processor will fail." | |
| } | |
| }, | |
| "additionalProperties": true | |
| } | |
| }, | |
| "required": [ | |
| "Processor" | |
| ], | |
| "additionalProperties": false | |
| } | |
| ] | |
| } | |
| } | |
| } | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment