Skip to content

patch.py

James Reynolds edited this page Dec 2, 2021 · 3 revisions

Patch

patch.py is a script designed to automate the patching process.

Note: most of this tool has been deprecated and replaced with various jctl subcommands. Also, the package upload functionality quit working around Jamf Pro 10.28.0. Please see jamf-upload for a replacement.

Originally, this project was "patch" and it focused on patch management, including installer package management, patch management, assigning package to patch definition, updating versions, version release branching (i.e. development, testing, production), and scripting and automation.

Note, that some of the functionality of "patch" is specific to the Marriott Library's environment & usage and will not work properly for other environments. We will not be fixing this but plan on completely removing this tool.

For now, it is still included.

Getting Help

patch.py --help
patch.py list --help
patch.py upload --help
patch.py remove --help
patch.py info --help
patch.py update --help

List all Patch Management Title Names

DEPRECATED: patch.py list has been replaced with jctl patchsoftwaretitles.

patch.py list

For example...

$ patch.py list
1Password 7
ATLAS.ti
Adobe AIR
Adobe Acrobat DC
Adobe Acrobat Reader DC
Adobe After Effects 2020
Adobe After Effects 2021 - Intel
Adobe Animate 2020
Adobe Animate 2021 - Intel
Adobe Audition 2020
Adobe Audition 2021 - Intel
Adobe Bridge 2020
Adobe Bridge 2021 - Intel
Adobe Character Animator 2020
Adobe Character Animator 2021 - Intel
Adobe Digital Editions
Adobe Dimension - Intel
Adobe Dreamweaver 2020
Adobe Dreamweaver 2021 - Intel
Adobe Flash Player
Adobe Illustrator 2020
Adobe Illustrator 2021 - Intel
Adobe InCopy 2020
Adobe InCopy 2021 - Intel
Adobe InDesign 2020
Adobe InDesign 2021 - Intel
Adobe Lightroom CC
Adobe Lightroom Classic
Adobe Media Encoder 2020
Adobe Media Encoder 2021
Adobe Photoshop 2020
Adobe Photoshop 2021
Adobe Prelude 2020
Adobe Prelude 2021
Adobe Premiere Pro 2020
Adobe Premiere Pro 2021
Adobe Premiere Rush
Adobe Shockwave Player
Adobe XD
Alfred
Amadeus Pro
Amphetamine
.
.
.
Xcode
YakYak
Zoom Plugin for Microsoft Outlook
Zotero
calibre
iMazing Profile Editor
iMovie
iTerm
macOS
texmaker
zoom.us

List all Uploaded Packages

DEPRECATED: patch.py list --pkgs has been replaced with jctl packages.

patch.py list --pkgs

For example...

$ patch.py list --pkgs
1password_7_7.4.1_2019.11.18_rcg.pkg
1password_7_7.4.3_2020.04.07_rcg.pkg
1password_7_7.4.4_2020.04.09_rcg.pkg
1password_7_7.5_2020.05.08_rcg.pkg
1password_7_7.6_2020.07.13_rcg.pkg
1password_7_7.7_2020.11.17_rcg.pkg
1password_7_7.8.1_2021.04.16_rcg.pkg
1password_7_7.8.2_2021.05.10_rcg.pkg
1password_7_7.8.3_2021.05.21_rcg.pkg
1password_7_7.8.4_2021.05.27_rcg.pkg
1password_7_7.8.5_2021.06.02_rcg.pkg
1password_7_7.8.6_2021.06.16_rcg.pkg
1password_7_7.8.7_2021.08.13_rcg.pkg
1password_7_7.8.8_2021.10.04_rcg.pkg
1password_7_7.8_2021.03.10_rcg.pkg
1password_7_7.9_2021.10.15_rcg.pkg
Anaconda3-2021.05-MacOSX-x86_64.pkg
.
.
.
zotero_5.0.74_2019.09.05_rcg.pkg
zotero_5.0.87_2020.05.18_rcg.pkg
zotero_5.0.96_2021.09.20_rcg.pkg

List All Versions (and associated packages)

DEPRECATED: patch.py list --pkgs has been replaced with jctl patchsoftwaretitles -n <Patch Name> -S versions.

patch.py list --versions <Patch Name>

For example...

$ patch.py list --version Zotero
 5.0.96.3: zotero_5.0.96_2021.09.20_rcg.pkg
 5.0.96.2: -
 5.0.96.1: -
 5.0.96:  -
 5.0.95.3: -
 5.0.95.2: -
 5.0.95:  -
 5.0.94:  -
 5.0.93:  -
 5.0.92:  -
 5.0.91:  -
 5.0.90:  -
 5.0.89:  -
 5.0.88:  -
 5.0.87:  zotero_5.0.87_2020.05.18_rcg.pkg
 5.0.86:  -
 5.0.85:  -
 5.0.84:  -
 5.0.83:  -
 5.0.82:  -
 5.0.81:  -
 5.0.80:  -
 5.0.79:  -
 5.0.78:  -
 5.0.77:  -
 5.0.76:  -
 5.0.75:  -
 5.0.74:  zotero_5.0.74_2019.09.05_rcg.pkg
 5.0.73:  -
 5.0.72:  -
 5.0.71:  -
 5.0.70:  -
 5.0.69:  -
 5.0.68:  -
 5.0.67.3: -
 5.0.67:  -
 5.0.66:  -
 5.0.65:  -
 5.0.64:  -
 5.0.63:  -
 5.0.62:  -
 5.0.61:  -
 5.0.60:  -
 5.0.59:  -
 5.0.58:  -
 5.0.57:  -
 5.0.56:  -
 5.0.55.1: -
 5.0.55:  -
 5.0.54:  -
 5.0.53:  -
 5.0.52:  -
 5.0.51:  -
 5.0.50:  -
 5.0.49:  -
 5.0.48:  -
 5.0.47:  -
 5.0.46:  -
 5.0.45:  -
 5.0.44:  -
 5.0.43:  -
 5.0.42:  -
 5.0.41:  -
 5.0.40:  -
 5.0.39:  -
 5.0.38:  -
 5.0.37:  -
 5.0.36:  -
 5.0.35.1: -
 5.0.35:  -
 5.0.34.6: -
 5.0.34.5: -
 5.0.34.4: -
 5.0.34.3: -
 5.0.34.2: -
 5.0.34.1: -
 5.0.34:  -
 5.0.33:  -
 5.0.32:  -
 5.0.31:  -
 5.0.30:  -
 5.0.29:  -
 5.0.28:  -
 5.0.27:  -
 5.0.26:  -
 5.0.25:  -
 5.0.24:  -
 5.0.23:  -
 5.0.22:  -
 5.0.21:  -
 5.0.20:  -
 5.0.19:  -
 5.0.18:  -
 5.0.17:  -
 5.0.16:  -
 5.0.15:  -
 5.0.14:  -
 5.0.13:  -
 5.0.12:  -
 5.0.11:  -
 5.0.10:  -
 5.0.9:	-
 5.0.8:	-
 5.0.7:	-
 5.0.6:	-
 5.0.5:	-
 5.0.4:	-
 5.0.3:	-
 5.0.2:	-
 5.0.1:	-
 5.0:	 -

And example...

$ patch.py list --pkg Zotero
zotero_5.0.74_2019.09.05_rcg.pkg
zotero_5.0.87_2020.05.18_rcg.pkg
zotero_5.0.96_2021.09.20_rcg.pkg

List Patch Versions & Patch Policy

DEPRECATED: patch.py patch list --patch <Patch Name> has been replaced with jctl patchsoftwaretitles -n <Patch Name> -S patchpolicies.

patch.py patch list --patch <Patch Name>

For example...

$ patch.py patch list --patch Zotero
5.0.87:  Guinea Pig - Lab -  Zotero
5.0.87:  Guinea Pig - Staff -  Zotero
5.0.87:  Stable - Lab -  Zotero
5.0.87:  Stable - Staff -  Zotero
5.0.87:  Tech - Main Boxes -  Zotero
5.0.87:  Tech - Test Boxes -  Zotero

Update Patch Versions by Patch Policy

DEPRECATED: This has been replaced with jctl patchpolicies -n <Name of Patch Policy> -S set_version "<version>".

patch.py update <Name of Patch Policy> <Patch Version> <Patch Name>

Update Patch Version for Individual Patch Policy

For example...

$ patch.py update --tech 5.0.96.3 Zotero
$ patch.py update --guinea-pig 5.0.96.3 Zotero
$ patch.py update --stable 5.0.96.3 Zotero

Assign Package to New Patch Definition Version

DEPRECATED: This has been replaced with jctl patchsoftwaretitles -n <Patch Name> -S set_package_for_version <Installer Package Name> <Patch Version>.

$ patch.py update --pkg <Patch Version> <Installer Package Name> <Patch Name>

For example...

$ patch.py update --pkg 5.0.96.3 zotero_5.0.96_2021.09.20_rcg.pkg Zotero
2021-10-15 15:40:45,526:	  INFO: __main__ - update_softwaretitle_packages(): updating patch software title: Zotero (370)
2021-10-15 15:40:46,311:	  INFO: __main__ - update_softwaretitle_packages(): succesfully updated: Zotero

Modify Patch settings

The following requires the user to have Jamf Admin Privileges

patch.py info /PATH/TO/PACKAGE
patch.py upload /PATH/TO/PACKAGE
patch.py remove <PACKAGE NAME>
Clone this wiki locally