A command line tool for Jamf Pro patch definition management.
Project description
PatchCLI
A command line tool for generating Jamf Pro patch definitions, patch updates, and built-in integration to Patch Server and CommunityPatch APIs.
WARNING: This tool is under active development and the CLI interface and features will be changing frequently between updates.
Install
PatchCLI can be installed from the Python Package Index:
$ pip install patchlib
The patchlib module contains the patchcli command.
About
Basic Usage
$ patchcli -h usage: patchcli [-h] [-v] [-P PROFILE] {patch,validate,api,create_profile} ... PatchCLI is a command line tool for Jamf Pro patch definition management. Global Options: -h, --help show this help message and exit -v, --version Display version information. -P PROFILE, --profile PROFILE The Patch API profile name to use. Commands: patch Create a new definition JSON file validate Validate an existing definition JSON file. api Perform quick interactions with the Patch APIs. create_profile Create a profile to use the Patch API integrations.
Patch Command
$ patchcli patch -h usage: patchcli patch [-h] [-o <output_dir>] [-p <publisher_name>] [-n <name>] [-e <ext_att_path>] [--app-version <version>] [--min-sys-version <version>] [--patch-only] path positional arguments: path Path to the application optional arguments: -h, --help show this help message and exit -o <output_dir>, --output <output_dir> Directory path to write JSON file -p <publisher_name>, --publisher <publisher_name> Provide publisher name for a full definition -n <name>, --name <name> Provide the display name for a full definition -e <ext_att_path>, --extension-attribute <ext_att_path> Path to a script to include as an extension attribute * You can include multiple extension attribute arguments --app-version <version> Provide the version of the app (override CFBundleShortVersionString) --min-sys-version <version> Provide the minimum supported version fo macOS for this app (e.g. 10.9) --patch-only Only create a patch, not a full definition
Validate Command
$ patchcli validate -h usage: patchcli validate [-h] [-p] path positional arguments: path Path to the definition JSON file. optional arguments: -h, --help show this help message and exit -p, --patch Validate a patch, not a full definition.
API Commands
$ patchcli api -h usage: patchcli api [-h] {list_titles,get_title} ... optional arguments: -h, --help show this help message and exit API Commands: list_titles List available software titles get_title Get a software title definition
Patch API Profiles
$ patchcli create_profile -h usage: patchcli create_profile [-h] [-n <profile_name>] [-t <api_token>] (--ps <patch_server_url> | --cp | --cpb) [--overwrite] optional arguments: -h, --help show this help message and exit -n <profile_name>, --name <profile_name> Profile name -t <api_token>, --token <api_token> The API token --ps <patch_server_url>, --patch-server <patch_server_url> The URL to a local Patch Server instance --cp, --community-patch Use the Community Patch service --cpb, --community-patch-beta Use the Beta Community Patch service --overwrite Overwrite an existing profile of the same name.
PatchLib
Import and use the API clients for Patch Server and CommunityPatch.
History
Versions
0.3.0 (2018-10-31)
Added api and create_profile commands. New options allow basic API access with the command line interface and will be expanded to include more features and integrate directly into the patch command.
0.2.2 (2018-10-29)
Fix setup.py issues preventing installation via pip.
0.2.1 (2018-10-29)
Readme typos.
0.2.0 (2018-10-27)
Updated CLI interface to use sub-commands. All previous functionality of the patchstarter.py script has been moved into the patch command.
Added a validate command that allows a user to perform a schema validation on manually created/edited definition files prior to uploading to a patch server.
0.1.0 (2018-10-25)
Repository setup. Port existing patchstarter.py functionality as-is.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.