patch.py - univ-of-utah-marriott-library-apple/jctl GitHub Wiki
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.
patch.py --help
patch.py list --help
patch.py upload --help
patch.py remove --help
patch.py info --help
patch.py update --help
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
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
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
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
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>
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
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
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>