From 0452099dadefd832da6fcb9bb919656beb34b100 Mon Sep 17 00:00:00 2001 From: James Smith Date: Wed, 24 Nov 2021 20:57:16 +1100 Subject: [PATCH] Adding jamf recipe for Xcode --- Xcode/Xcode.extract.recipe.yaml | 44 +++++++++++++++---------------- Xcode/Xcode.jamf.recipe.yaml | 46 +++++++++++++++++++++++++++++++++ Xcode/Xcode.pkg.recipe.yaml | 25 +++++++++--------- 3 files changed, 80 insertions(+), 35 deletions(-) create mode 100644 Xcode/Xcode.jamf.recipe.yaml diff --git a/Xcode/Xcode.extract.recipe.yaml b/Xcode/Xcode.extract.recipe.yaml index e5de3e2..6fb0cd4 100644 --- a/Xcode/Xcode.extract.recipe.yaml +++ b/Xcode/Xcode.extract.recipe.yaml @@ -7,29 +7,29 @@ Input: NAME: Xcode Process: -- Processor: XcodeXIPUnpacker - Arguments: - PKG: '%RECIPE_CACHE_DIR%/%NAME%-%version%.xip' - output_path: '%RECIPE_CACHE_DIR%/extract' + - Processor: XcodeXIPUnpacker + Arguments: + PKG: '%RECIPE_CACHE_DIR%/%NAME%-%version%.xip' + output_path: '%RECIPE_CACHE_DIR%/%NAME%' -- Processor: FileFinder - Arguments: - pattern: '%RECIPE_CACHE_DIR%/extract/*.app' + - Processor: FileFinder + Arguments: + pattern: '%RECIPE_CACHE_DIR%/%NAME%/*.app' -- Processor: CodeSignatureVerifier - Arguments: - input_path: '%found_filename%' - requirement: identifier "com.apple.dt.Xcode" and anchor apple + - Processor: CodeSignatureVerifier + Arguments: + input_path: '%found_filename%' + requirement: identifier "com.apple.dt.Xcode" and anchor apple -- Processor: PlistReader - Arguments: - info_path: '%found_filename%/Contents/version.plist' - plist_keys: - CFBundleShortVersionString: version - CFBundleVersion: bundle_version - ProductBuildVersion: build_version + - Processor: PlistReader + Arguments: + info_path: '%found_filename%/Contents/version.plist' + plist_keys: + CFBundleShortVersionString: version + CFBundleVersion: bundle_version + ProductBuildVersion: build_version -- Processor: XcodeVersioner - Arguments: - app_path: '%found_filename%' - version: '%version%' + - Processor: XcodeVersioner + Arguments: + app_path: '%found_filename%' + version: '%version%' diff --git a/Xcode/Xcode.jamf.recipe.yaml b/Xcode/Xcode.jamf.recipe.yaml new file mode 100644 index 0000000..6d3ba50 --- /dev/null +++ b/Xcode/Xcode.jamf.recipe.yaml @@ -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.xcode +ParentRecipe: com.github.smithjw.pkg.Xcode +MinimumVersion: '2.3' + +Input: + NAME: Xcode + CATEGORY: Developer + 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: 'Xcode includes everything developers need to create great applications for Mac, iPhone, iPad, Apple TV, and Apple Watch.' + SELF_SERVICE_ICON: '%NAME%.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%' diff --git a/Xcode/Xcode.pkg.recipe.yaml b/Xcode/Xcode.pkg.recipe.yaml index 65c2f58..bab8deb 100644 --- a/Xcode/Xcode.pkg.recipe.yaml +++ b/Xcode/Xcode.pkg.recipe.yaml @@ -7,18 +7,17 @@ Input: NAME: Xcode Process: -- Processor: PkgRootCreator - Arguments: - pkgroot: '%RECIPE_CACHE_DIR%/%NAME%' - pkgdirs: - Applications: '0775' + - Processor: FileMover + Arguments: + source: '%found_filename%' + target: '%RECIPE_CACHE_DIR%/%NAME%/Applications/%NAME%-%major_version%.%minor_version%.app' -- Processor: FileMover - Arguments: - source: '%found_filename%' - target: '%RECIPE_CACHE_DIR%/Xcode/Applications/%NAME%-%major_version%.%minor_version%.app' + - Processor: DmgCreator + Arguments: + dmg_path: '%RECIPE_CACHE_DIR%/%NAME%-%major_version%.%minor_version%.dmg' + dmg_root: '%RECIPE_CACHE_DIR%/%NAME%' -- Processor: DmgCreator - Arguments: - dmg_path: '%RECIPE_CACHE_DIR%/%NAME%-%major_version%.%minor_version%.dmg' - dmg_root: '%RECIPE_CACHE_DIR%/%NAME%' + - Processor: PathDeleter + Arguments: + path_list: + - '%RECIPE_CACHE_DIR%/%NAME%'