Skip to content

Commit

Permalink
Recipe Updates and Additions
Browse files Browse the repository at this point in the history
- Adding PathDeleter to Webex Recipe
- Adding new iTerm2 Recipies to support "jamf" and "sign" steps
- New Defender "jamf" recipe
  • Loading branch information
smithjw committed Nov 23, 2021
1 parent 567e252 commit 2d326fa
Show file tree
Hide file tree
Showing 9 changed files with 206 additions and 1 deletion.
7 changes: 6 additions & 1 deletion Cisco/Webex.pkg.recipe.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -18,4 +18,9 @@ Process:
- Processor: AppPkgCreator
Arguments:
app_path: '%pathname%/Webex.app'
pkg_path: '%RECIPE_CACHE_DIR%/%NAME%-%ARCHITECTURE%-%version%.pkg'
pkg_path: '%RECIPE_CACHE_DIR%/%NAME%-%ARCHITECTURE%-%version%.pkg'

- Processor: PathDeleter
Arguments:
path_list:
- '%RECIPE_CACHE_DIR%/payload'
46 changes: 46 additions & 0 deletions Microsoft/Microsoft_Defender.jamf.recipe.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
Description: Downloads the latest version of the Microsoft Defender ATP installer package, renames the package, then imports it into your Jamf instance.
Identifier: com.github.smithjw.jamf.microsoft_defender
ParentRecipe: com.github.smithjw.pkg.microsoft_defender
MinimumVersion: '2.3'

Input:
NAME: Microsoft Defender
CATEGORY: Compliance
GROUP_NAME: '%NAME%-update-smart'
GROUP_TEMPLATE: SmartGroup-update-smart-regex.xml
TESTING_GROUP_NAME: Testing
POLICY_CATEGORY: Testing
POLICY_TEMPLATE: Policy-install-latest.xml
POLICY_NAME: 'Install Latest %NAME%'
POLICY_RUN_COMMAND: ' '
SELF_SERVICE_DISPLAY_NAME: 'Install Latest %NAME%'
SELF_SERVICE_DESCRIPTION: 'Installs the latest version of Microsoft Defender'
SELF_SERVICE_ICON: '%SOFTWARE_TITLE%.png'
SOFTWARE_TITLE: Microsoft_Defender
INSTALL_BUTTON_TEXT: 'Install'
REINSTALL_BUTTON_TEXT: 'Install'
UPDATE_PREDICATE: 'pkg_uploaded == False'

Process:
- Processor: com.github.grahampugh.jamf-upload.processors/JamfCategoryUploader
Arguments:
category_name: '%CATEGORY%'

- Processor: com.github.grahampugh.jamf-upload.processors/JamfPackageUploader
Arguments:
pkg_category: '%CATEGORY%'

- Processor: StopProcessingIf
Arguments:
predicate: '%UPDATE_PREDICATE%'

- Processor: com.github.grahampugh.jamf-upload.processors/JamfComputerGroupUploader
Arguments:
computergroup_template: '%GROUP_TEMPLATE%'
computergroup_name: '%GROUP_NAME%'

- Processor: com.github.grahampugh.jamf-upload.processors/JamfPolicyUploader
Arguments:
policy_template: '%POLICY_TEMPLATE%'
policy_name: '%POLICY_NAME%'
icon: '%SELF_SERVICE_ICON%'
39 changes: 39 additions & 0 deletions Microsoft/Microsoft_Defender.pkg.recipe.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
Description: Downloads the latest version of the Microsoft Defender ATP installer package and renames the package.
Identifier: com.github.smithjw.pkg.microsoft_defender
ParentRecipe: com.github.rtrouton.download.microsoftdefenderatp
MinimumVersion: '2.3'

Input:
NAME: Microsoft Defender
SOFTWARE_TITLE: Microsoft_Defender

Process:
- Processor: FlatPkgUnpacker
Arguments:
destination_path: '%RECIPE_CACHE_DIR%/unpack'
flat_pkg_path: '%pathname%'

- Processor: FileFinder
Arguments:
pattern: '%RECIPE_CACHE_DIR%/unpack/*wdav*.pkg'

- Processor: PkgPayloadUnpacker
Arguments:
destination_path: '%RECIPE_CACHE_DIR%/payload'
pkg_payload_path: '%found_filename%/Payload'

- Processor: Versioner
Arguments:
input_plist_path: '%RECIPE_CACHE_DIR%/payload/Microsoft Defender ATP.app/Contents/Info.plist'
plist_version_key: 'CFBundleShortVersionString'

- Processor: PkgCopier
Arguments:
pkg_path: '%RECIPE_CACHE_DIR%/%SOFTWARE_TITLE%-%version%.pkg'
source_pkg: '%pathname%'

- Processor: PathDeleter
Arguments:
path_list:
- '%RECIPE_CACHE_DIR%/unpack'
- '%RECIPE_CACHE_DIR%/payload'
Binary file added Microsoft/Microsoft_Defender.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
30 changes: 30 additions & 0 deletions iTerm2/iTerm2.download.recipe.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
Description: Downloads the latest version of iTerm2.
Identifier: com.github.smithjw.download.iterm2
MinimumVersion: '2.3'

Input:
NAME: iTerm2
DOWNLOAD_URL: 'https://iterm2.com/downloads/stable/latest'

Process:
- Processor: URLDownloader
Arguments:
prefetch_filename: true
url: '%DOWNLOAD_URL%'

- Processor: EndOfCheckPhase

- Processor: Unarchiver
Arguments:
destination_path: '%RECIPE_CACHE_DIR%/unpack'
purge_destination: true

- Processor: CodeSignatureVerifier
Arguments:
input_path: '%RECIPE_CACHE_DIR%/unpack/iTerm.app'
requirement: 'anchor apple generic and identifier "com.googlecode.iterm2" and (certificate leaf[field.1.2.840.113635.100.6.1.9] /* exists */ or certificate 1[field.1.2.840.113635.100.6.2.6] /* exists */ and certificate leaf[field.1.2.840.113635.100.6.1.13] /* exists */ and certificate leaf[subject.OU] = H7V7XYVQ7D)'

- Processor: Versioner
Arguments:
input_plist_path: '%RECIPE_CACHE_DIR%/unpack/iTerm.app/Contents/Info.plist'
plist_version_key: CFBundleShortVersionString
46 changes: 46 additions & 0 deletions iTerm2/iTerm2.jamf.recipe.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
Description: Downloads the latest version and makes a pkg. Then, uploads the package to the Jamf Pro Server and creates a Self Service Policy and Smart Group.
Identifier: com.github.smithjw.jamf.iterm2
ParentRecipe: com.github.smithjw.sign.iterm2
MinimumVersion: '2.3'

Input:
NAME: iTerm2
CATEGORY: Development
GROUP_NAME: '%NAME%-update-smart'
GROUP_TEMPLATE: SmartGroup-update-smart-regex.xml
TESTING_GROUP_NAME: Testing
POLICY_CATEGORY: Testing
POLICY_TEMPLATE: Policy-install-latest.xml
POLICY_NAME: 'Install Latest %NAME%'
POLICY_RUN_COMMAND: 'chown -R "$(stat -f%Su /dev/console):staff" "/Applications/%NAME%.app" && echo "Corrected permissions for %NAME%."'
SELF_SERVICE_DISPLAY_NAME: 'Install Latest %NAME%'
SELF_SERVICE_DESCRIPTION: 'iTerm2 is a replacement for Terminal and the successor to iTerm. It works on Macs with macOS 10.14 or newer. iTerm2 brings the terminal into the modern age with features you never knew you always wanted.'
SELF_SERVICE_ICON: '%SOFTWARE_TITLE%.png'
SOFTWARE_TITLE: '%NAME%'
INSTALL_BUTTON_TEXT: 'Install'
REINSTALL_BUTTON_TEXT: 'Install'
UPDATE_PREDICATE: 'pkg_uploaded == False'

Process:
- Processor: com.github.grahampugh.jamf-upload.processors/JamfCategoryUploader
Arguments:
category_name: '%CATEGORY%'

- Processor: com.github.grahampugh.jamf-upload.processors/JamfPackageUploader
Arguments:
pkg_category: '%CATEGORY%'

- Processor: StopProcessingIf
Arguments:
predicate: '%UPDATE_PREDICATE%'

- Processor: com.github.grahampugh.jamf-upload.processors/JamfComputerGroupUploader
Arguments:
computergroup_template: '%GROUP_TEMPLATE%'
computergroup_name: '%GROUP_NAME%'

- Processor: com.github.grahampugh.jamf-upload.processors/JamfPolicyUploader
Arguments:
policy_template: '%POLICY_TEMPLATE%'
policy_name: '%POLICY_NAME%'
icon: '%SELF_SERVICE_ICON%'
19 changes: 19 additions & 0 deletions iTerm2/iTerm2.pkg.recipe.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
Description: Downloads the latest version of iTerm2 and creates a package.
Identifier: com.github.smithjw.pkg.iterm2
ParentRecipe: com.github.smithjw.download.iterm2
MinimumVersion: '2.3'

Input:
NAME: iTerm2

Process:
- Processor: AppPkgCreator
Arguments:
app_path: '%RECIPE_CACHE_DIR%/unpack/iTerm.app'
pkg_path: '%RECIPE_CACHE_DIR%/%NAME%-%version%.pkg'

- Processor: PathDeleter
Arguments:
path_list:
- '%RECIPE_CACHE_DIR%/unpack'
- '%RECIPE_CACHE_DIR%/payload'
Binary file added iTerm2/iTerm2.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
20 changes: 20 additions & 0 deletions iTerm2/iTerm2.sign.recipe.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
Comment: |
In order to use this Recipe, you must have a Developer ID Installer certificate in your Keychain
Description: Downloads the latest version of iTerm2, creates a package, then signs it.
Identifier: com.github.smithjw.sign.iterm2
ParentRecipe: com.github.smithjw.pkg.iterm2
MinimumVersion: '2.3'

Input:
SIGNING_CERTIFICATE: Override_This_Value

Process:

- Processor: com.github.rtrouton.SharedProcessors/PkgSigner
Arguments:
signing_cert: '%SIGNING_CERTIFICATE%'

- Processor: PathDeleter
Arguments:
path_list:
- '%RECIPE_CACHE_DIR%/%NAME%-%version%-unsigned.pkg'

0 comments on commit 2d326fa

Please sign in to comment.