autopkg__datajar-recipes METASEP

AWSCLI/AWSCLI/Resources/English.lproj/Description.plist METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>IFPkgDescriptionDescription</key>
	<string>http://aws.amazon.com/cli/</string>
	<key>IFPkgDescriptionTitle</key>
	<string>AWS Command Line Interface</string>
</dict>
</plist>

AWSCLI/AWSCLI/Scripts/preinstall METASEP
#!/bin/bash

exit 0

AWSCLI/AWSCLI/Scripts/postinstall METASEP
#!/bin/bash

path_root="$3"; if [ -z "${path_root}" ] || [ "${path_root}" = "/" ]; then path_root=""; fi #++ fix //
formatted_date=$(date +"%Y%m%d%H%M%S") #++ date to string

#++ not configuring JAVA_HOME, EC2_HOME, AWS_ACCESS_KEY or AWS_SECRET_KEY here but that could be an option...

sudo /tmp/awscli-bundle/install -i /usr/local/aws -b /usr/local/bin/aws

exit 0

AWSCLI/AWSCLI/Resources/welcome.html METASEP
<!DOCTYPE html>
<html>
<head>
<style>
body { font-family:"Lucida Sans Unicode", "Lucida Grande", sans-serif; }
</style>
</head>
<body>

<h1>AWSCLI</h1>

<p>Downloads and installs http://docs.aws.amazon.com/cli/latest/userguide/installing.html#install-bundle-other-os</p>
<code>sudo /tmp/awscli-bundle/install -i /usr/local/aws -b /usr/local/bin/aws</code>

</body>
</html>
AWSCLI/AWSCLI/Resources/distribution.xml METASEP
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<installer-gui-script minSpecVersion="1">
    <options customize="never" rootVolumeOnly="true" require-scripts="false"/>
    <pkg-ref id="com.github.autopkg.cgerke-recipes.pkg.PIP">
        <bundle-version/>
    </pkg-ref>
    <conclusion file="conclusion.html" mime-type="text/html" />
    <license file="license.html" mime-type="text/html" />
    <welcome file="welcome.html" mime-type="text/html" />
    <choices-outline>
        <line choice="default">
            <line choice="com.github.autopkg.cgerke-recipes.pkg.PIP"/>
        </line>
    </choices-outline>
    <choice id="default"/>
    <choice id="com.github.autopkg.cgerke-recipes.pkg.PIP" visible="false">
        <pkg-ref id="com.github.autopkg.cgerke-recipes.pkg.PIP"/>
    </choice>
    <pkg-ref id="com.github.autopkg.cgerke-recipes.pkg.PIP" onConclusion="none">PIP.pkg</pkg-ref>
</installer-gui-script>

AWSCLI/AWSCLI/Resources/conclusion.html METASEP
<!DOCTYPE html>
<html>
<head>
<style>
body { font-family:"Lucida Sans Unicode", "Lucida Grande", sans-serif; }
</style>
</head>
<body>

<h1>Conclusion</h1>

<p>No reboot required.</p>

</body>
</html>
Zevrix LinkOptimizer/LinkOptimizer_Scripts/postinstall METASEP
#!/bin/bash

# LinkOptimizer Postinstall
#
# Copies the LinkOptimizer application to InDesign's Plug-Ins directory.
# Creates a Symlink for LinkOptimizer's startup script in InDesign's Scripts directory.

OIFS=$IFS
IFS=$'\n'
inDesignDirs=($(/usr/bin/mdfind -onlyin "/Applications" -name "Adobe InDesign" kind:folder))

if [[ -z "${inDesignDirs}" ]]; then
    /bin/echo "Adobe InDesign is not installed, exiting..."
    exit 1
fi

for dir in "${inDesignDirs[@]}"; do
    /bin/echo "Directory found, copying application and linking startup script: ${dir} ..."
    
    if [[ -e "${dir}/Plug-Ins/Zevrix/LinkOptimizer.app" ]]; then
        /bin/echo "Application found, replacing: ${dir}/Plug-Ins/Zevrix/LinkOptimizer.app ..."
        /bin/rm -rf "${dir}/Plug-Ins/Zevrix/LinkOptimizer.app"
    fi
    
    if [[ ! -e "${dir}/Plug-Ins/Zevrix" ]]; then
        /bin/echo "Directory not found, creating: ${dir}/Plug-Ins/Zevrix..."
        /bin/mkdir -p "${dir}/Plug-Ins/Zevrix"
    fi
    
    /bin/cp -r "/private/tmp/LinkOptimizer/LinkOptimizer.app" "${dir}/Plug-Ins/Zevrix"
    
    if [[ -L "${dir}/Scripts/startup scripts/.LinkOptimizer.startup.scpt" ]]; then
        /bin/echo "Symlink found, replacing: ${dir}/Scripts/startup scripts/.LinkOptimizer.startup.scpt ..."
        /bin/rm -rf "${dir}/Scripts/startup scripts/.LinkOptimizer.startup.scpt"
    fi
    
    if [[ ! -e "${dir}/Scripts/startup scripts" ]]; then
        /bin/echo "Directory not found, creating: ${dir}/Scripts/startup scripts ..."
        /bin/mkdir -p "${dir}/Scripts/startup scripts"
    fi
    
    /bin/ln -s "${dir}/Plug-Ins/Zevrix/LinkOptimizer.app/Contents/Resources/LinkOptimizer.startup.scpt" "${dir}/Scripts/startup scripts/.LinkOptimizer.startup.scpt"
done

IFS=$OIFS

/bin/echo "LinkOptimizer postinstall finished, exiting..."
Zevrix LinkOptimizer 6/Scripts/postinstall METASEP
#!/bin/bash

# LinkOptimizer Postinstall
#
# Copies the LinkOptimizer application to InDesign's Plug-Ins directory.
# Creates a Symlink for LinkOptimizer's startup script in InDesign's Scripts directory.

OIFS=$IFS
IFS=$'\n'
inDesignDirs=($(/usr/bin/mdfind -onlyin "/Applications" -name "Adobe InDesign" kind:folder))

if [[ -z "${inDesignDirs}" ]]; then
    /bin/echo "Adobe InDesign is not installed, exiting..."
    exit 1
fi

for dir in "${inDesignDirs[@]}"; do
    /bin/echo "Directory found, copying application and linking startup script: ${dir} ..."
    
    if [[ -e "${dir}/Plug-Ins/Zevrix/LinkOptimizer.app" ]]; then
        /bin/echo "Application found, replacing: ${dir}/Plug-Ins/Zevrix/LinkOptimizer.app ..."
        /bin/rm -rf "${dir}/Plug-Ins/Zevrix/LinkOptimizer.app"
    fi
    
    if [[ ! -e "${dir}/Plug-Ins/Zevrix" ]]; then
        /bin/echo "Directory not found, creating: ${dir}/Plug-Ins/Zevrix..."
        /bin/mkdir -p "${dir}/Plug-Ins/Zevrix"
    fi
    
    /bin/cp -r "/private/tmp/LinkOptimizer/LinkOptimizer.app" "${dir}/Plug-Ins/Zevrix"
    
    if [[ -L "${dir}/Scripts/startup scripts/.LinkOptimizer.startup.scpt" ]]; then
        /bin/echo "Symlink found, replacing: ${dir}/Scripts/startup scripts/.LinkOptimizer.startup.scpt ..."
        /bin/rm -rf "${dir}/Scripts/startup scripts/.LinkOptimizer.startup.scpt"
    fi
    
    if [[ ! -e "${dir}/Scripts/startup scripts" ]]; then
        /bin/echo "Directory not found, creating: ${dir}/Scripts/startup scripts ..."
        /bin/mkdir -p "${dir}/Scripts/startup scripts"
    fi
    
    /bin/ln -s "${dir}/Plug-Ins/Zevrix/LinkOptimizer.app/Contents/Resources/LinkOptimizer.startup.scpt" "${dir}/Scripts/startup scripts/.LinkOptimizer.startup.scpt"
done

IFS=$OIFS

/bin/echo "LinkOptimizer postinstall finished, exiting..."
AWSCLI/AWSCLI/PackageInfoTemplate METASEP
<pkg-info format-version="2" identifier="com.github.autopkg.cgerke-recipes.AWSCLI" install-location="/" auth="root">
</pkg-info>

AWSCLI/AWSCLI/PackageInfo METASEP
<pkg-info format-version="2" identifier="com.github.cgerke.AWSCLI" install-location="/" auth="root">
</pkg-info>

webarchiveplayer/webarchiveplayer.pkg.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>Description</key>
	<string>Downloads the latest version of webarchiveplayer and creates a package.</string>
	<key>Identifier</key>
	<string>com.github.dataJAR-recipes.pkg.webarchiveplayer</string>
	<key>Input</key>
	<dict>
		<key>BUNDLE_ID</key>
		<string>com.github.ikreymer</string>
		<key>NAME</key>
		<string>WebArchivePlayer</string>
	</dict>
	<key>MinimumVersion</key>
	<string>0.6.1</string>
	<key>ParentRecipe</key>
	<string>com.github.dataJAR-recipes.download.webarchiveplayer</string>
	<key>Process</key>
	<array>
		<dict>
			<key>Arguments</key>
			<dict>
				<key>pkgdirs</key>
				<dict>
					<key>Applications</key>
					<string>0775</string>
				</dict>
				<key>pkgroot</key>
				<string>%RECIPE_CACHE_DIR%/%NAME%</string>
			</dict>
			<key>Processor</key>
			<string>PkgRootCreator</string>
		</dict>
		<dict>
			<key>Arguments</key>
			<dict>
				<key>destination_path</key>
				<string>%pkgroot%/Applications/webarchiveplayer.app</string>
				<key>source_path</key>
				<string>%RECIPE_CACHE_DIR%/downloads/%NAME%.dmg/webarchiveplayer.app</string>
			</dict>
			<key>Processor</key>
			<string>Copier</string>
		</dict>
		<dict>
			<key>Arguments</key>
			<dict>
				<key>pkg_request</key>
				<dict>
					<key>chown</key>
					<array>
						<dict>
							<key>group</key>
							<string>admin</string>
							<key>path</key>
							<string>Applications</string>
							<key>user</key>
							<string>root</string>
						</dict>
					</array>
					<key>id</key>
					<string>%BUNDLE_ID%</string>
					<key>options</key>
					<string>purge_ds_store</string>
					<key>pkgname</key>
					<string>%NAME%-%version%</string>
					<key>pkgroot</key>
					<string>%RECIPE_CACHE_DIR%/%NAME%</string>
					<key>version</key>
					<string>%version%</string>
				</dict>
			</dict>
			<key>Processor</key>
			<string>PkgCreator</string>
		</dict>
	</array>
</dict>
</plist>

webarchiveplayer/webarchiveplayer.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>Description</key>
	<string>Downloads the latest version of webarchiveplayer and imports it into Munki.</string>
	<key>Identifier</key>
	<string>com.github.dataJAR-recipes.munki.webarchiveplayer</string>
	<key>Input</key>
	<dict>
		<key>MUNKI_REPO_SUBDIR</key>
		<string>apps/%NAME%</string>
		<key>NAME</key>
		<string>WebArchivePlayer</string>
		<key>pkginfo</key>
		<dict>
			<key>catalogs</key>
			<array>
				<string>testing</string>
			</array>
			<key>description</key>
			<string>WebArchivePlayer is a new desktop tool which provides a simple point-and-click wrapper for viewing any web archive file (in WARC and ARC format).</string>
			<key>developer</key>
			<string>Ikreymer</string>
			<key>display_name</key>
			<string>WebArchivePlayer</string>
			<key>name</key>
			<string>%NAME%</string>
			<key>unattended_install</key>
			<true/>
		</dict>
	</dict>
	<key>MinimumVersion</key>
	<string>0.6.1</string>
	<key>ParentRecipe</key>
	<string>com.github.dataJAR-recipes.download.webarchiveplayer</string>
	<key>Process</key>
	<array>
		<dict>
			<key>Arguments</key>
			<dict>
				<key>pkg_path</key>
				<string>%RECIPE_CACHE_DIR%/downloads/%NAME%.dmg</string>
				<key>repo_subdirectory</key>
				<string>%MUNKI_REPO_SUBDIR%</string>
			</dict>
			<key>Processor</key>
			<string>MunkiImporter</string>
		</dict>
	</array>
</dict>
</plist>

webarchiveplayer/webarchiveplayer.jss.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>Description</key>
	<string>Downloads the current release version of webarchiveplayer and then uploads to the JSS</string>
	<key>Identifier</key>
	<string>com.github.dataJAR-recipes.jss.webarchiveplayer</string>
	<key>Input</key>
	<dict>
		<key>CATEGORY</key>
		<string>Productivity</string>
		<key>GROUP_NAME</key>
		<string>%NAME%-update-smart</string>
		<key>GROUP_TEMPLATE</key>
		<string>SmartGroupTemplate.xml</string>
		<key>NAME</key>
		<string>webarchiveplayer</string>
		<key>POLICY_CATEGORY</key>
		<string>Testing</string>
		<key>POLICY_TEMPLATE</key>
		<string>PolicyTemplate.xml</string>
		<key>SELF_SERVICE_DESCRIPTION</key>
		<string>WebArchivePlayer is a new desktop tool which provides a simple point-and-click wrapper for viewing any web archive file (in WARC and ARC format).</string>
		<key>SELF_SERVICE_ICON</key>
		<string>WebArchivePlayer.png</string>
	</dict>
	<key>MinimumVersion</key>
	<string>0.2.0</string>
	<key>ParentRecipe</key>
	<string>com.github.dataJAR-recipes.pkg.webarchiveplayer</string>
	<key>Process</key>
	<array>
		<dict>
			<key>Arguments</key>
			<dict>
				<key>category</key>
				<string>%CATEGORY%</string>
				<key>groups</key>
				<array>
					<dict>
						<key>name</key>
						<string>%GROUP_NAME%</string>
						<key>smart</key>
						<true/>
						<key>template_path</key>
						<string>%GROUP_TEMPLATE%</string>
					</dict>
				</array>
				<key>policy_category</key>
				<string>%POLICY_CATEGORY%</string>
				<key>policy_template</key>
				<string>%POLICY_TEMPLATE%</string>
				<key>prod_name</key>
				<string>%NAME%</string>
				<key>self_service_description</key>
				<string>%SELF_SERVICE_DESCRIPTION%</string>
				<key>self_service_icon</key>
				<string>%SELF_SERVICE_ICON%</string>
			</dict>
			<key>Processor</key>
			<string>JSSImporter</string>
		</dict>
	</array>
</dict>
</plist>

webarchiveplayer/webarchiveplayer.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>Description</key>
	<string>Downloads the latest version of webarchiveplayer.
Set PRERELEASE to a non-empty string to download prereleases, either
via Input in an override or via the -k option,
i.e.: `-k PRERELEASE=yes`</string>
	<key>Identifier</key>
	<string>com.github.dataJAR-recipes.download.webarchiveplayer</string>
	<key>Input</key>
	<dict>
		<key>PRERELEASE</key>
        <string></string>
		<key>NAME</key>
		<string>WebArchivePlayer</string>
	</dict>
	<key>MinimumVersion</key>
	<string>0.6.1</string>
	<key>Process</key>
	<array>
        <dict>
            <key>Processor</key>
            <string>DeprecationWarning</string>
            <key>Arguments</key>
            <dict>
                <key>warning_message</key>
                <string>WebArchivePlayer was replaced by webrecorderplayer in 2018, which has been replaced by ArchiveWeb.page. Recipes for ArchiveWeb.page can be found at: https://github.com/autopkg/dataJAR-recipes/tree/master/ArchiveWeb.page.</string>
            </dict>
        </dict>
        <dict>   
            <key>Processor</key>   
            <string>StopProcessingIf</string>   
            <key>Arguments</key>   
            <dict>   
                <key>predicate</key>   
                <string>TRUEPREDICATE</string>
            </dict>
        </dict>
		<dict>
			<key>Arguments</key>
			<dict>
				<key>github_repo</key>
				<string>ikreymer/webarchiveplayer</string>
				<key>include_prereleases</key>
				<string>%PRERELEASE%</string>
			</dict>
			<key>Processor</key>
			<string>GitHubReleasesInfoProvider</string>
		</dict>
		<dict>
			<key>Arguments</key>
			<dict>
				<key>filename</key>
				<string>%NAME%.dmg</string>
			</dict>
			<key>Processor</key>
			<string>URLDownloader</string>
		</dict>
		<dict>
			<key>Processor</key>
			<string>EndOfCheckPhase</string>
		</dict>
	</array>
</dict>
</plist>
webarchiveplayer/WebArchivePlayer.png METASEP

threat-dragon-desktop/threat-dragon-desktop.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of threat-dragon-desktop and imports into Munki</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.threat-dragon-desktop</string>
    <key>Input</key>
    <dict>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>NAME</key>
        <string>threat-dragon-desktop</string>
        <key>pkginfo</key>
        <dict>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>Threat Dragon is a free, open-source, cross-platform threat modeling application including system diagramming and a rule engine to auto-generate threats/mitigations. It is an OWASP Incubator Project and follows the values and principles of the threat modeling manifesto. The roadmap for the project is a great UX, a powerful rule engine and integration with other development lifecycle tools.</string>
            <key>developer</key>
            <string>OWASP</string>
            <key>display_name</key>
            <string>threat-dragon-desktop</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
            <key>unattended_uninstall</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.5.0</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.threat-dragon-desktop</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%pathname%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
        </dict>
    </array>
</dict>
</plist>

threat-dragon-desktop/threat-dragon-desktop.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of threat-dragon-desktop</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.threat-dragon-desktop</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>threat-dragon-desktop</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.5.0</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Arguments</key>
            <dict>
                <key>asset_regex</key>
                <string>[\S]+\.dmg</string>
                <key>github_repo</key>
                <string>OWASP/threat-dragon-desktop</string>
            </dict>
            <key>Processor</key>
            <string>GitHubReleasesInfoProvider</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>URLDownloader</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
    </array>
</dict>
</plist>

texmaker/texmaker.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>Description</key>
	<string>Downloads the latest version of texmaker and imports it into Munki.</string>
	<key>Identifier</key>
	<string>com.github.dataJAR-recipes.munki.texmaker</string>
	<key>Input</key>
	<dict>
		<key>MUNKI_REPO_SUBDIR</key>
		<string>apps/%NAME%</string>
		<key>NAME</key>
		<string>texmaker</string>
		<key>pkginfo</key>
		<dict>
			<key>catalogs</key>
			<array>
				<string>testing</string>
			</array>
			<key>description</key>
			<string>Texmaker is a free, modern and cross-platform LaTeX editor for linux, macosx and windows systems that integrates many tools needed to develop documents with LaTeX, in just one application.</string>
			<key>developer</key>
			<string>Pascal Brachet</string>
			<key>display_name</key>
			<string>Texmaker</string>
			<key>name</key>
			<string>%NAME%</string>
			<key>unattended_install</key>
			<true/>
		</dict>
	</dict>
	<key>MinimumVersion</key>
	<string>1.0.0</string>
	<key>ParentRecipe</key>
	<string>com.github.hansen-m.download.Texmaker</string>
	<key>Process</key>
	<array>
		<dict>
			<key>Arguments</key>
			<dict>
				<key>dmg_path</key>
				<string>%pathname%</string>
			</dict>
			<key>Processor</key>
			<string>AppDmgVersioner</string>
		</dict>
		<dict>
			<key>Arguments</key>
			<dict>
				<key>pkg_path</key>
				<string>%pathname%</string>
				<key>repo_subdirectory</key>
				<string>%MUNKI_REPO_SUBDIR%</string>
			</dict>
			<key>Processor</key>
			<string>MunkiImporter</string>
		</dict>
	</array>
</dict>
</plist>

sonic particles 2.0/sonic particles 2.0.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of sonic particles 2.0 and imports it into Munki.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.sonic particles 2.0</string>
      <key>Input</key>
    <dict>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>NAME</key>
        <string>sonicparticles2.0</string>
        <key>pkginfo</key>
        <dict>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>developer</key>
            <string>Kasper Fangel Skov</string>
            <key>description</key>
            <string>sonic particles 2.0 translates the abstract environmental data into sound providing an aesthetic musical representation of differentiating urban environments. Each city has it's own unique ever-changing composition.</string>
            <key>display_name</key>
            <string>sonic particles 2.0</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>1.1</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.sonic particles 2.0</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>DeprecationWarning</string>
            <key>Arguments</key>
            <dict>
                 <key>warning_message</key>
                 <string>This recipe will soon be removed. Please remove it from your list of recipes.
                 The Vender has removed the App from any downloads - https://twitter.com/kasperfskov/status/1260943762341101568?s=20</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>DmgCreator</string>
            <key>Arguments</key>
            <dict>
                <key>dmg_path</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%.dmg</string>
                <key>dmg_root</key>
                <string>%destination_path%/Max standalone app/</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%dmg_path%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PathDeleter</string>
            <key>Arguments</key>
            <dict>
                <key>path_list</key>
                <array>
                    <string>%RECIPE_CACHE_DIR%/unzip</string>
                </array>
            </dict>
        </dict>
    </array>
</dict>
</plist>
sonic particles 2.0/sonic particles 2.0.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of sonic particles 2.0.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.sonic particles 2.0</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>sonicparticles2.0</string>
        <key>USER_AGENT</key>
        <string>Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36</string>
    </dict>
    <key>MinimumVersion</key>
    <string>1.1</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>DeprecationWarning</string>
            <key>Arguments</key>
            <dict>
                 <key>warning_message</key>
                 <string>This recipe will soon be removed. Please remove it from your list of recipes.
                 The vendor has removed the App from any downloads - https://twitter.com/kasperfskov/status/1260943762341101568?s=20</string>
            </dict>
        </dict>
        <dict>   
            <key>Processor</key>   
            <string>StopProcessingIf</string>   
            <key>Arguments</key>   
            <dict>   
                <key>predicate</key>   
                <string>TRUEPREDICATE</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>URLDownloader</string>
            <key>Arguments</key>
            <dict>
                <key>filename</key>
                <string>%NAME%.zip</string>
                <key>url</key>
                <string>https://kasperskov.dk/resources/Max%20standalone%20app.zip</string>
                <key>request_headers</key>
                <dict>
                    <key>user-agent</key>
                    <string>%USER_AGENT%</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>Unarchiver</string>
            <key>Arguments</key>
            <dict>
                <key>archive_path</key>
                <string>%pathname%</string>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/unzip/</string>
                <key>purge_destination</key>
                <true/>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>Versioner</string>
            <key>Arguments</key>
            <dict>
                <key>input_plist_path</key>
                <string>%destination_path%/Max standalone app/sonicparticles2.0.app/Contents/Info.plist</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>

renpy 7/renpy7.png METASEP

renpy 7/renpy 7.pkg.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of renpy 7 and creates a flat PKG.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.pkg.renpy 7</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>renpy7</string>
        <key>BUNDLEID</key>
        <string>org.renpy.renpy</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.renpy 7</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>PkgRootCreator</string>
            <key>Arguments</key>
            <dict>
                <key>pkgroot</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%</string>
                <key>pkgdirs</key>
                <dict>
                    <key>Applications</key>
                    <string>0775</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>Copier</string>
            <key>Arguments</key>
            <dict>
                <key>source_path</key>
                <string>%pathname%/renpy-*-sdk</string>
                <key>destination_path</key>
                <string>%pkgroot%/Applications/renpy</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PlistReader</string>
            <key>Arguments</key>
            <dict>
                <key>info_path</key>
                <string>%destination_path%/renpy.app</string>
                <key>plist_keys</key>
                <dict>
                    <key>CFBundleVersion</key>
                    <string>version</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PkgCreator</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_request</key>
                <dict>
                    <key>pkgname</key>
                    <string>%NAME%-%version%</string>
                    <key>chown</key>
                    <array>
                        <dict>
                            <key>path</key>
                            <string>Applications</string>
                            <key>user</key>
                            <string>root</string>
                            <key>group</key>
                            <string>admin</string>
                        </dict>
                    </array>
                    <key>id</key>
                    <string>%BUNDLEID%</string>
                    <key>options</key>
                    <string>purge_ds_store</string>
                    <key>pkgdir</key>
                    <string>%RECIPE_CACHE_DIR%</string>
                    <key>pkgroot</key>
                    <string>%pkgroot%</string>
                </dict>
            </dict>
        </dict>
    </array>
</dict>
</plist>
renpy 7/renpy 7.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of renpy 7 and imports into Munki.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.renpy 7</string>
    <key>Input</key>
    <dict>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>NAME</key>
        <string>renpy7</string>
        <key>pkginfo</key>
        <dict> 
            <key>blocking_applications</key>
            <array>
                <string>renpy</string>
            </array>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>Ren'Py is a visual novel engine – used by thousands of creators from around the world – that helps you use words, images, and sounds to tell interactive stories that run on computers and mobile devices. These can be both visual novels and life simulation games. The easy to learn script language allows anyone to efficiently write large visual novels, while its Python scripting is enough for complex simulation games.</string>
            <key>display_name</key>
            <string>Ren'Py</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
            <key>unattended_uninstall</key>
            <true/>
            <key>uninstall_method</key>
            <string>uninstall_script</string>
            <key>uninstall_script</key>
            <string>#!/bin/bash
#
# Delete the folder
# 

if [ -d /Applications/renpy/ ]
then
    /bin/rm -rf /Applications/renpy/
fi</string>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.pkg.renpy 7</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>MunkiInstallsItemsCreator</string>
            <key>Arguments</key>
            <dict>
                <key>faux_root</key>
                <string>%pkgroot%</string>
                <key>installs_item_paths</key>
                <array>
                    <string>/Applications/renpy/renpy.app</string>
                </array>
                <key>version_comparison_key</key>
                <string>CFBundleVersion</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiPkginfoMerger</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%pkg_path%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PathDeleter</string>
            <key>Arguments</key>
            <dict>
                <key>path_list</key>
                <array>
                    <string>%pkgroot%</string>
                </array>
            </dict>
        </dict>
    </array>
</dict>
</plist>
renpy 7/renpy 7.jss.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the current release version of renpy 7 and then uploads to the JSS</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.jss.renpy 7</string>
    <key>Input</key>
    <dict>
        <key>CATEGORY</key>
        <string>Applications</string>
        <key>GROUP_NAME</key>
        <string>%NAME%-update-smart</string>
        <key>GROUP_TEMPLATE</key>
        <string>renpy 7-SmartGroupTemplate.xml</string>
        <key>NAME</key>
        <string>renpy7</string>
        <key>POLICY_CATEGORY</key>
        <string>Testing</string>
        <key>POLICY_TEMPLATE</key>
        <string>PolicyTemplate.xml</string>
        <key>SELF_SERVICE_DESCRIPTION</key>
        <string>Ren'Py is a visual novel engine – used by thousands of creators from around the world – that helps you use words, images, and sounds to tell interactive stories that run on computers and mobile devices. These can be both visual novels and life simulation games. The easy to learn script language allows anyone to efficiently write large visual novels, while its Python scripting is enough for complex simulation games.</string>
        <key>SELF_SERVICE_ICON</key>
        <string>renpy7.png</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.pkg.renpy 7</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Arguments</key>
            <dict>
                <key>category</key>
                <string>%CATEGORY%</string>
                <key>extension_attributes</key>
                <array>
                    <dict>
                        <key>ext_attribute_path</key>
                        <string>renpy 7-CFBundleVersionExtensionAttribute.xml</string>
                    </dict>
                </array>
                <key>groups</key>
                <array>
                    <dict>
                        <key>name</key>
                        <string>%GROUP_NAME%</string>
                        <key>smart</key>
                        <true/>
                        <key>template_path</key>
                        <string>%GROUP_TEMPLATE%</string>
                    </dict>
                </array>
                <key>policy_category</key>
                <string>%POLICY_CATEGORY%</string>
                <key>policy_template</key>
                <string>%POLICY_TEMPLATE%</string>
                <key>prod_name</key>
                <string>renpy</string>
                <key>self_service_description</key>
                <string>%SELF_SERVICE_DESCRIPTION%</string>
                <key>self_service_icon</key>
                <string>%SELF_SERVICE_ICON%</string>
                <key>version</key>
                <string>%version%</string>
            </dict>
            <key>Processor</key>
            <string>JSSImporter</string>
        </dict>
    </array>
</dict>
</plist>

renpy 7/renpy 7.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Download recipe for the latest version of renpy 7.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.renpy 7</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>renpy7</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>URLTextSearcher</string>
            <key>Arguments</key>
            <dict>
                <key>url</key>
                <string>https://www.renpy.org/latest.html</string>
                <key>re_pattern</key>
                <string>https://www.renpy.org/dl/7[\S]+\/renpy-[\S]+\-sdk.dmg</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>URLDownloader</string>
            <key>Arguments</key>
            <dict>
                <key>url</key>
                <string>%match%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
            <key>Arguments</key>
            <dict>
                <key>input_path</key>
                <string>%pathname%/renpy-*-sdk/renpy.app</string>
                <key>requirement</key>
                <string>identifier "Ren'Py Launcher" and anchor apple generic and 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] = XHTE5H7Z79</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>
renpy 7/renpy 7-SmartGroupTemplate.xml METASEP
<computer_group>
	<name>%group_name%</name>
	<is_smart>true</is_smart>
	<criteria>
		<criterion>
			<name>Application Title</name>
			<priority>0</priority>
			<and_or>and</and_or>
			<search_type>is</search_type>
			<value>%JSS_INVENTORY_NAME%</value>
		</criterion>
		<criterion>
			<name>renpy6Version</name>
			<priority>1</priority>
			<and_or>and</and_or>
			<search_type>is not</search_type>
			<value>%VERSION%</value>
		</criterion>
		<criterion>
			<name>Computer Group</name>
			<priority>2</priority>
			<and_or>and</and_or>
			<search_type>member of</search_type>
			<value>Testing</value>
		</criterion>
	</criteria>
</computer_group>

renpy 7/renpy 7-CFBundleVersionExtensionAttribute.xml METASEP
<computer_extension_attribute>
	<name>renpy7Version</name>
	<description />
	<data_type>String</data_type>
	<input_type>
		<type>script</type>
		<platform>Mac</platform>
		<script>#!/bin/assh
CFBundleVersion=""
if [ -f "/Applications/renpy/renpy.app/Contents/Info.plist" ]; then
	CFBundleVersion=$(defaults read "/Applications/renpy/renpy.app/Contents/Info.plist" CFBundleVersion)
fi
echo "&lt;result&gt;$CFBundleVersion&lt;/result&gt;"
exit 0
		</script>
	</input_type>
	<inventory_display>Extension Attributes</inventory_display>
	<recon_display>Extension Attributes</recon_display>
</computer_extension_attribute>

renpy 6/renpy6.png METASEP

renpy 6/renpy 6.pkg.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of renpy 6 and creates a flat PKG.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.pkg.renpy 6</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>renpy6</string>
        <key>BUNDLEID</key>
        <string>org.renpy.renpy</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.renpy 6</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>PlistReader</string>
            <key>Arguments</key>
            <dict>
                <key>info_path</key>
                <string>%destination_path%/renpy.app</string>
                <key>plist_keys</key>
                <dict>
                    <key>CFBundleVersion</key>
                    <string>version</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PkgCreator</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_request</key>
                <dict>
                    <key>pkgname</key>
                    <string>%NAME%-%version%</string>
                    <key>chown</key>
                    <array>
                        <dict>
                            <key>path</key>
                            <string>Applications</string>
                            <key>user</key>
                            <string>root</string>
                            <key>group</key>
                            <string>admin</string>
                        </dict>
                    </array>
                    <key>id</key>
                    <string>%BUNDLEID%</string>
                    <key>options</key>
                    <string>purge_ds_store</string>
                    <key>pkgdir</key>
                    <string>%RECIPE_CACHE_DIR%</string>
                    <key>pkgroot</key>
                    <string>%pkgroot%</string>
                </dict>
            </dict>
        </dict>
    </array>
</dict>
</plist>

renpy 6/renpy 6.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of renpy 6 and imports into Munki.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.renpy 6</string>
    <key>Input</key>
    <dict>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>NAME</key>
        <string>renpy6</string>
        <key>pkginfo</key>
        <dict> 
            <key>blocking_applications</key>
            <array>
                <string>renpy</string>
            </array>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>Ren'Py is a visual novel engine – used by thousands of creators from around the world – that helps you use words, images, and sounds to tell interactive stories that run on computers and mobile devices. These can be both visual novels and life simulation games. The easy to learn script language allows anyone to efficiently write large visual novels, while its Python scripting is enough for complex simulation games.</string>
            <key>display_name</key>
            <string>Ren'Py</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
            <key>unattended_uninstall</key>
            <true/>
            <key>uninstall_method</key>
            <string>uninstall_script</string>
            <key>uninstall_script</key>
            <string>#!/bin/bash
#
# Delete the folder
# 

if [ -d /Applications/renpy/ ]
then
    /bin/rm -rf /Applications/renpy/
fi</string>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.pkg.renpy 6</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>MunkiInstallsItemsCreator</string>
            <key>Arguments</key>
            <dict>
                <key>faux_root</key>
                <string>%pkgroot%</string>
                <key>installs_item_paths</key>
                <array>
                    <string>/Applications/renpy/renpy.app</string>
                </array>
                <key>version_comparison_key</key>
                <string>CFBundleVersion</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiPkginfoMerger</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%pkg_path%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PathDeleter</string>
            <key>Arguments</key>
            <dict>
                <key>path_list</key>
                <array>
                    <string>%pkgroot%</string>
                </array>
            </dict>
        </dict>
    </array>
</dict>
</plist>
renpy 6/renpy 6.jss.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>Description</key>
	<string>Downloads the current release version of renpy 6 and then uploads to the JSS</string>
	<key>Identifier</key>
	<string>com.github.dataJAR-recipes.jss.renpy 6</string>
	<key>Input</key>
	<dict>
		<key>CATEGORY</key>
		<string>Applications</string>
		<key>GROUP_NAME</key>
		<string>%NAME%-update-smart</string>
		<key>GROUP_TEMPLATE</key>
        <string>renpy 6-SmartGroupTemplate.xml</string>
		<key>NAME</key>
		<string>renpy6</string>
		<key>POLICY_CATEGORY</key>
		<string>Testing</string>
		<key>POLICY_TEMPLATE</key>
		<string>PolicyTemplate.xml</string>
		<key>SELF_SERVICE_DESCRIPTION</key>
        <string>Ren'Py is a visual novel engine – used by thousands of creators from around the world – that helps you use words, images, and sounds to tell interactive stories that run on computers and mobile devices. These can be both visual novels and life simulation games. The easy to learn script language allows anyone to efficiently write large visual novels, while its Python scripting is enough for complex simulation games.</string>
        <key>SELF_SERVICE_ICON</key>
		<string>renpy6.png</string>
	</dict>
	<key>MinimumVersion</key>
	<string>0.6.1</string>
	<key>ParentRecipe</key>
	<string>com.github.dataJAR-recipes.pkg.renpy 6</string>
	<key>Process</key>
	<array>
		<dict>
			<key>Arguments</key>
			<dict>
				<key>category</key>
				<string>%CATEGORY%</string>
				<key>extension_attributes</key>
                <array>
                    <dict>
                        <key>ext_attribute_path</key>
                        <string>renpy 6-CFBundleVersionExtensionAttribute.xml</string>
                    </dict>
                </array>
				<key>groups</key>
				<array>
					<dict>
						<key>name</key>
						<string>%GROUP_NAME%</string>
						<key>smart</key>
						<true/>
						<key>template_path</key>
						<string>%GROUP_TEMPLATE%</string>
					</dict>
				</array>
				<key>policy_category</key>
				<string>%POLICY_CATEGORY%</string>
				<key>policy_template</key>
				<string>%POLICY_TEMPLATE%</string>
				<key>prod_name</key>
				<string>renpy</string>
				<key>self_service_description</key>
				<string>%SELF_SERVICE_DESCRIPTION%</string>
				<key>self_service_icon</key>
				<string>%SELF_SERVICE_ICON%</string>
				<key>version</key>
				<string>%version%</string>
			</dict>
			<key>Processor</key>
			<string>JSSImporter</string>
		</dict>
	</array>
</dict>
</plist>

renpy 6/renpy 6.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Download recipe for the latest version of renpy 6.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.renpy 6</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>renpy6</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>URLTextSearcher</string>
            <key>Arguments</key>
            <dict>
                <key>url</key>
                <string>https://www.renpy.org/latest.html</string>
                <key>re_pattern</key>
                <string>https://www.renpy.org/dl/6[\S]+\/renpy-[\S]+\-sdk.dmg</string>
            </dict>
        </dict>
        <dict>
            <key>Arguments</key>
            <dict>
                <key>url</key>
                <string>%match%</string>
            </dict>
            <key>Processor</key>
            <string>URLDownloader</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PkgRootCreator</string>
            <key>Arguments</key>
            <dict>
                <key>pkgroot</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%</string>
                <key>pkgdirs</key>
                <dict>
                    <key>Applications</key>
                    <string>0775</string>
                </dict>
            </dict>
        </dict>
	    <dict>
            <key>Processor</key>
            <string>Copier</string>
            <key>Arguments</key>
            <dict>
                <key>source_path</key>
                <string>%pathname%/renpy-*-sdk</string>
                <key>destination_path</key>
                <string>%pkgroot%/Applications/renpy</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>

renpy 6/renpy 6-SmartGroupTemplate.xml METASEP
<computer_group>
	<name>%group_name%</name>
	<is_smart>true</is_smart>
	<criteria>
		<criterion>
			<name>Application Title</name>
			<priority>0</priority>
			<and_or>and</and_or>
			<search_type>is</search_type>
			<value>%JSS_INVENTORY_NAME%</value>
		</criterion>
		<criterion>
			<name>renpy6Version</name>
			<priority>1</priority>
			<and_or>and</and_or>
			<search_type>is not</search_type>
			<value>%VERSION%</value>
		</criterion>
		<criterion>
			<name>Computer Group</name>
			<priority>2</priority>
			<and_or>and</and_or>
			<search_type>member of</search_type>
			<value>Testing</value>
		</criterion>
	</criteria>
</computer_group>

renpy 6/renpy 6-CFBundleVersionExtensionAttribute.xml METASEP
<computer_extension_attribute>
	<name>renpy6Version</name>
	<description />
	<data_type>String</data_type>
	<input_type>
		<type>script</type>
		<platform>Mac</platform>
		<script>#!/bin/assh
CFBundleVersion=""
if [ -f "/Applications/renpy/renpy.app/Contents/Info.plist" ]; then
	CFBundleVersion=$(defaults read "/Applications/renpy/renpy.app/Contents/Info.plist" CFBundleVersion)
fi
echo "&lt;result&gt;$CFBundleVersion&lt;/result&gt;"
exit 0
		</script>
	</input_type>
	<inventory_display>Extension Attributes</inventory_display>
	<recon_display>Extension Attributes</recon_display>
</computer_extension_attribute>

rekordbox 6/rekordbox 6.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
    <dict>
        <key>Description</key>
        <string>Downloads the latest version of rekordbox 6and imports into Munki</string>
        <key>Identifier</key>
        <string>com.github.dataJAR-recipes.munki.rekordbox 6</string>
        <key>Input</key>
        <dict>
            <key>NAME</key>
            <string>rekordbox6</string>
            <key>MUNKI_REPO_SUBDIR</key>
            <string>apps/%NAME%</string>
            <key>pkginfo</key>
            <dict>
                <key>catalogs</key>
                <array>
                    <string>testing</string>
                </array>
                <key>description</key>
                <string>rekordbox is complete DJ software, from cloud music management to creative performance capabilities. Sync your library on multiple devices.</string>
                <key>display_name</key>
                <string>rekordbox</string>
                <key>name</key>
                <string>%NAME%</string>
                <key>unattended_install</key>
                <true/>
                <key>unattended_uninstall</key>
                <true/>
                <key>uninstall_method</key>
                <string>uninstall_script</string>
                <key>uninstall_script</key>
                <string>#!/bin/bash
filePaths=('/Applications/rekordbox 6’)
for filePath in "${filePaths[@]}"
do
    if [ -d "${filePath}" ]
    then
        /bin/echo "Found ${filePath}, deleting..."
        /bin/rm -rf "${filePath}"
    fi
done</string>
            </dict>
        </dict>
        <key>MinimumVersion</key>
        <string>0.5.0</string>
        <key>ParentRecipe</key>
        <string>com.github.dataJAR-recipes.download.rekordbox 6</string>
        <key>Process</key>
        <array>
            <dict>
                <key>Processor</key>
                <string>FlatPkgUnpacker</string>
                <key>Arguments</key>
                <dict>
                    <key>flat_pkg_path</key>
                    <string>%found_filename%</string>
                    <key>destination_path</key>
                    <string>%RECIPE_CACHE_DIR%/unpack</string>
                </dict>
            </dict>
            <dict>
                <key>Processor</key>
                <string>PkgRootCreator</string>
                <key>Arguments</key>
                <dict>
                    <key>pkgroot</key>
                    <string>%RECIPE_CACHE_DIR%/pkgroot/</string>
                    <key>pkgdirs</key>
                    <dict>
                        <key>Applications/rekordbox 6</key>
                        <string>0755</string>
                    </dict>
                </dict>
            </dict>
            <dict>
                <key>Processor</key>
                <string>PkgPayloadUnpacker</string>
                <key>Arguments</key>
                <dict>
                    <key>destination_path</key>
                    <string>%RECIPE_CACHE_DIR%/pkgroot/Applications/rekordbox 6</string>
                    <key>pkg_payload_path</key>
                    <string>%RECIPE_CACHE_DIR%/unpack/rekordbox.pkg/Payload</string>
                </dict>
            </dict>
            <dict>
                <key>Processor</key>
                <string>MunkiInstallsItemsCreator</string>
                <key>Arguments</key>
                <dict>
                    <key>faux_root</key>
                    <string>%RECIPE_CACHE_DIR%/pkgroot</string>
                    <key>installs_item_paths</key>
                    <array>
                        <string>/Applications/rekordbox 6/rekordbox.app</string>
                    </array>
                </dict>
            </dict>
            <dict>
                <key>Processor</key>
                <string>MunkiPkginfoMerger</string>
            </dict>
            <dict>
                <key>Processor</key>
                <string>MunkiImporter</string>
                <key>Arguments</key>
                <dict>
                    <key>pkg_path</key>
                    <string>%input_path%</string>
                    <key>repo_subdirectory</key>
                    <string>%MUNKI_REPO_SUBDIR%</string>
                </dict>
            </dict>
            <dict>
                <key>Processor</key>
                <string>PathDeleter</string>
                <key>Arguments</key>
                <dict>
                    <key>path_list</key>
                    <array>
                        <string>%RECIPE_CACHE_DIR%/pkgroot</string>
                        <string>%RECIPE_CACHE_DIR%/unpack</string>
                        <string>%RECIPE_CACHE_DIR%/unzip</string>
                    </array>
                </dict>
            </dict>
        </array>
    </dict>
</plist>
rekordbox 6/rekordbox 6.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
    <dict>
        <key>Description</key>
        <string>Downloads the latest version of rekordbox 6</string>
        <key>Identifier</key>
        <string>com.github.dataJAR-recipes.download.rekordbox 6</string>
        <key>Input</key>
        <dict>
            <key>NAME</key>
            <string>rekordbox6</string>
            <key>USER_AGENT</key>
            <string>Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.114 Safari/537.36</string>
        </dict>
        <key>MinimumVersion</key>
        <string>0.5.0</string>
        <key>Process</key>
        <array>
            <dict>
                <key>Processor</key>
                <string>URLTextSearcher</string>
                <key>Arguments</key>
                <dict>
                    <key>request_headers</key>
                    <dict>
                        <key>user-agent</key>
                        <string>%USER_AGENT%</string>
                    </dict>
                    <key>re_pattern</key>
                    <string>https://cdn\.rekordbox\.com/files/.*/Install_rekordbox_6.*\.pkg_\.zip</string>
                    <key>result_output_var_name</key>
                    <string>match</string>
                    <key>url</key>
                    <string>https://rekordbox.com/en/download/</string>
                </dict>
            </dict>
            <dict>
                <key>Processor</key>
                <string>URLDownloader</string>
                <key>Arguments</key>
                <dict>
                    <key>url</key>
                    <string>%match%</string>
                </dict>
            </dict>
            <dict>
                <key>Processor</key>
                <string>EndOfCheckPhase</string>
            </dict>
            <dict>
                <key>Processor</key>
                <string>Unarchiver</string>
                <key>Arguments</key>
                <dict>
                    <key>archive_path</key>
                    <string>%pathname%</string>
                    <key>destination_path</key>
                    <string>%RECIPE_CACHE_DIR%/unzip</string>
                    <key>purge_destination</key>
                    <true></true>
                </dict>
            </dict>
            <dict>
                <key>Processor</key>
                <string>FileFinder</string>
                <key>Arguments</key>
                <dict>
                    <key>pattern</key>
                    <string>%RECIPE_CACHE_DIR%/unzip/*.pkg</string>
                </dict>
            </dict>
            <dict>
                <key>Processor</key>
                <string>CodeSignatureVerifier</string>
                <key>Arguments</key>
                <dict>
                    <key>input_path</key>
                    <string>%found_filename%</string>
                    <key>expected_authority_names</key>
                    <array>
                        <string>Developer ID Installer: AlphaTheta Corporation (6BRHGXQ6VU)</string>
                        <string>Developer ID Certification Authority</string>
                        <string>Apple Root CA</string>
                    </array>
                </dict>
            </dict>
        </array>
    </dict>
</plist>
reMarkable/reMarkable.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of reMarkable and imports it into Munki.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.reMarkable</string>
    <key>Input</key>
    <dict>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>NAME</key>
        <string>reMarkable</string>
        <key>pkginfo</key>
        <dict>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>The next-generation paper tablet

Replace your notebooks and printed documents with the only tablet that feels like paper.</string>
            <key>developer</key>
            <string>reMarkable AS</string>
            <key>display_name</key>
            <string>reMarkable</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>1.0.0</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.reMarkable</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%pathname%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
        </dict>
    </array>
</dict>
</plist>

reMarkable/reMarkable.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of reMarkable.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.reMarkable</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>reMarkable</string>
    </dict>
    <key>MinimumVersion</key>
    <string>1.0.0</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Arguments</key>
            <dict>
                <key>appcast_url</key>
                <string>https://get-updates.cloud.remarkable.engineering/sparkle/reMarkableMacOs/Prod/appcast.xml</string>
            </dict>
            <key>Processor</key>
            <string>SparkleUpdateInfoProvider</string>
        </dict>
        <dict>
            <key>Arguments</key>
            <dict>
                <key>filename</key>
                <string>%NAME%-%version%.dmg</string>
            </dict>
            <key>Processor</key>
            <string>URLDownloader</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
        <dict>
            <key>Arguments</key>
            <dict>
                <key>input_path</key>
                <string>%pathname%/reMarkable.app</string>
                <key>requirement</key>
                <string>identifier "com.remarkable.desktop" and anchor apple generic and 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] = "4FFUD2H2F6"</string>
            </dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
        </dict>
    </array>
</dict>
</plist>

pgAdmin4/pgAdmin4.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the current release version of pgAdmin 4 and imports it to Munki.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.pgAdmin4</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>pgAdmin4</string>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>pkginfo</key>
        <dict>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>category</key>
            <string>Developer Tools</string>
            <key>description</key>
            <string>pgAdmin is the most popular and feature rich Open Source administration and development platform for PostgreSQL, the most advanced Open Source database in the world.  pgAdmin is designed to answer the needs of all users, from writing simple SQL queries to developing complex databases. The graphical interface may be run on the desktop or on a web server and supports all common PostgreSQL features. The application includes a syntax highlighting SQL editor.</string>
            <key>developer</key>
            <string>PostgreSQL Global Development Group</string>
            <key>display_name</key>
            <string>pgAdmin 4</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
            <key>unattended_uninstall</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.4.3</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.pgAdmin4</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%pathname%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>
pgAdmin4/pgAdmin4.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the current release version of pgAdmin 4.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.pgAdmin4</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>pgAdmin4</string>
        <key>USER_AGENT</key>
        <string></string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.2.0</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>URLTextSearcher</string>
            <key>Arguments</key>
            <dict>
                <key>url</key>
                <string>https://www.pgadmin.org/download/pgadmin-4-macos/</string>
                <key>re_pattern</key>
                <string>href=\"(https://www\.postgresql\.org/ftp/pgadmin/pgadmin4/.*/macos/)\">pg</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>URLTextSearcher</string>
            <key>Arguments</key>
            <dict>
                <key>url</key>
                <string>%match%</string>
                <key>re_pattern</key>
                <string>(https://ftp\.postgresql\.org/pub/pgadmin/pgadmin4/.*?/macos/pgadmin4.*?\.dmg)\"&gt;&lt;</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>URLDownloader</string>
            <key>Arguments</key>
            <dict>
                <key>url</key>
                <string>%match%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
            <key>Arguments</key>
            <dict>
                <key>input_path</key>
                <string>%pathname%/pgAdmin 4.app</string>
                <key>requirement</key>
                <string>identifier "org.pgadmin.pgadmin4" and anchor apple generic and 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] = "26QKX55P9K"</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>
ngrok/ngrok.pkg.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads and builds a package that installs the latest version of ngrok, installing the binary to /usr/local/bin/ngrok</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.pkg.ngrok</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>ngrok</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.0</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.ngrok</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>ngrokVersioner</string>
            <key>Arguments</key>
            <dict>
                <key>binary_path</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%/usr/local/bin/ngrok</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PkgCreator</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_request</key>
                <dict>
                    <key>pkgname</key>
                    <string>%NAME%</string>
                    <key>pkgdir</key>
                    <string>%RECIPE_CACHE_DIR%</string>
                    <key>id</key>
                    <string>com.ngrok.ngrok</string>
                    <key>version</key>
                    <string>%version%</string>
                    <key>options</key>
                    <string>purge_ds_store</string>
                    <key>chown</key>
                    <array>
                        <dict>
                            <key>path</key>
                            <string>usr</string>
                            <key>user</key>
                            <string>root</string>
                            <key>group</key>
                            <string>wheel</string>
                        </dict>
                    </array>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PathDeleter</string>
            <key>Arguments</key>
            <dict>
                <key>path_list</key>
                <array>
                    <string>%RECIPE_CACHE_DIR%/%NAME%</string>
                </array>
            </dict>
        </dict>
    </array>
</dict>
</plist>
ngrok/ngrok.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of ngrok and imports into Munki.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.ngrok</string>
    <key>Input</key>
    <dict>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>NAME</key>
        <string>ngrok</string>
        <key>pkginfo</key>
        <dict>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>Spend more time programming. One command for an instant, secure URL to your localhost server through any NAT or firewall.</string>
            <key>display_name</key>
            <string>ngrok</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
            <key>unattended_uninstall</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.2.0</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.pkg.ngrok</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>MunkiPkginfoMerger</string>
            <key>Arguments</key>
            <dict>
                <key>additional_pkginfo</key>
                <dict>
                    <key>installcheck_script</key>
                    <string>#!/usr/local/munki/munki-python
# pylint: disable = invalid-name

'''
Copyright (c) 2021, databinary Ltd.  All rights reserved.
     Redistribution and use in source and binary forms, with or without
     modification, are permitted provided that the following conditions are met:
             * Redistributions of source code must retain the above copyright
               notice, this list of conditions and the following disclaimer.
             * Redistributions in binary form must reproduce the above copyright
               notice, this list of conditions and the following disclaimer in the
               documentation and/or other materials provided with the distribution.
             * Neither data binary Ltd nor the names of its contributors may be used to
               endorse or promote products derived from this software without specific
               prior written permission.
     THIS SOFTWARE IS PROVIDED BY DATA binary LTD 'AS IS' AND ANY
     EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
     WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
     DISCLAIMED. IN NO EVENT SHALL DATA binary LTD BE LIABLE FOR ANY
     DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
     (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
     ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
     (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
     SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
SUPPORT FOR THIS PROGRAM
    This program is distributed 'as is' by DATA binary LTD.
    For more information or support, please utilise the following resources:
            http://www.datajar.co.uk

DESCRIPTION

See docstring in main()

'''


from distutils.version import LooseVersion
import os
import subprocess
import sys


def main():
    '''
        Returns the the version from the ngrok binary

        Exit 1 if ngrok is installed and newer than what we have in Munki.

    '''

    binary_path = '/usr/local/bin/ngrok'
    munki_version = '%version%'
    binary_version = None

    # If binary exists
    if os.path.isfile(binary_path):
        # Get binary version, raise if we error
        try:
            binary_version = subprocess.check_output([binary_path, '-v']
                                                    ).split()[2].decode('utf-8')
        except subprocess.CalledProcessError:
            print("Encountered an error when ascertaining ngrok version, "
                  "proceeding with install...")
            sys.exit(0)
    # If binary is missing
    else:
        print("Cannot find {}, proceeding with install...".format(binary_path))
        sys.exit(0)

    # Check binary_version against munki_version
    if LooseVersion(binary_version) &lt; LooseVersion(munki_version):
        print("Older version of ngrok,  proceeding with install...")
        sys.exit(0)
    print("Version of ngrok same or newer than the munki version, skipping...")
    sys.exit(1)


if __name__ == '__main__':
    main()
</string>
                    <key>version</key>
                    <string>%version%</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%pkg_path%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>
ngrok/ngrok.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of ngrok</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.ngrok</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>ngrok</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.0</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>URLTextSearcher</string>
            <key>Arguments</key>
            <dict>
                <key>re_pattern</key>
                <string>https://bin\.equinox\.io/c/.*?/ngrok-stable-darwin-amd64\.zip</string>
                <key>url</key>
                <string>https://ngrok.com/download</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>URLDownloader</string>
            <key>Arguments</key>
            <dict>
                <key>url</key>
                <string>%match%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PkgRootCreator</string>
            <key>Arguments</key>
            <dict>
                <key>pkgroot</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%</string>
                <key>pkgdirs</key>
                <dict>
                    <key>usr</key>
                    <string>0755</string>
                    <key>usr/local</key>
                    <string>0755</string>
                    <key>usr/local/bin</key>
                    <string>0755</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>Unarchiver</string>
            <key>Arguments</key>
            <dict>
                <key>archive_path</key>
                <string>%pathname%</string>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%/usr/local/bin/</string>
                <key>purge_destination</key>
                <true/>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
            <key>Arguments</key>
            <dict>
                <key>input_path</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%/usr/local/bin/ngrok</string>
                <key>requirement</key>
                <string>identifier "darwin_amd64" and anchor apple generic and 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] = TEX8MHRDQ9</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>
mvMeter2/mvMeter2.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest release of mvMeter2 and imports into Munki</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.mvMeter2</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>mvMeter2</string>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>plugin/%NAME%</string>
        <key>pkginfo</key>
        <dict>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>mvMeter2 is a multivariable meter including RMS, EBUR128, VU and PPM measurement. mvMeter2 is the successor of mvMeter and adds single/dual meter display, adjustable reference level for all meter modes, adjustable meter delay and preset management.</string>
            <key>display_name</key>
            <string>mvMeter2</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.4.1</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.mvMeter2</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%input_path%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
        </dict>
    </array>
</dict>
</plist>

mvMeter2/mvMeter2.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest release of mvMeter2.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.mvMeter2</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>mvMeter2</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.4.1</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>URLTextSearcher</string>
            <key>Arguments</key>
            <dict>
                <key>url</key>
                <string>https://www.tbproaudio.de/products/mvmeter2</string>
                <key>re_pattern</key>
                <string>download/mvMeter2_Installer_OSX_\S.*.zip</string>
                <key>result_output_var_name</key>
                <string>match</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>URLDownloader</string>
            <key>Arguments</key>
            <dict>
                <key>filename</key>
                <string>%NAME%.zip</string>
                <key>url</key>
                <string>https://www.tbproaudio.de/assets/content/%match%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>Unarchiver</string>
            <key>Arguments</key>
            <dict>
                <key>archive_path</key>
                <string>%pathname%</string>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/pkg/</string>
                <key>purge_destination</key>
                <true/>
                <key>archive_format</key>
                <string>zip</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
            <key>Arguments</key>
            <dict>
                <key>input_path</key>
                <string>%destination_path%mvMeter2 Installer_signed.pkg</string>
                <key>expected_authority_names</key>
                <array>
                    <string>Developer ID Installer: Thomas Baier (5NLLMV8QU7)</string>
                    <string>Developer ID Certification Authority</string>
                    <string>Apple Root CA</string>
                </array>
            </dict>
        </dict>
    </array>
</dict>
</plist>

mu-editor/mu-editor.png METASEP

mu-editor/mu-editor.pkg.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>Description</key>
	<string>Downloads the current release version of mu-editor and makes a package.</string>
	<key>Identifier</key>
	<string>com.github.dataJAR-recipes.pkg.mu-editor</string>
	<key>Input</key>
	<dict>
		<key>NAME</key>
		<string>mu-editor</string>
	</dict>
	<key>MinimumVersion</key>
	<string>1.0.0</string>
	<key>ParentRecipe</key>
	<string>com.github.dataJAR-recipes.download.mu-editor</string>
	<key>Process</key>
	<array>
		<dict>
			<key>Arguments</key>
			<dict>
				<key>app_path</key>
				<string>%pathname%/mu-editor.app</string>
				<key>bundleid</key>
				<string>com.github.mu-editor-%version%</string>
				<key>version</key>
				<string>%version%</string>
			</dict>
			<key>Processor</key>
			<string>AppPkgCreator</string>
		</dict>
	</array>
</dict>
</plist>

mu-editor/mu-editor.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>Description</key>
	<string>Downloads the current release version of Mu and imports into munki.</string>
	<key>Identifier</key>
	<string>com.github.dataJAR-recipes.munki.mu-editor</string>
	<key>Input</key>
	<dict>
		<key>MUNKI_REPO_SUBDIR</key>
		<string>apps/mu-editor</string>
		<key>NAME</key>
		<string>mu-editor</string>
		<key>pkginfo</key>
		<dict>
			<key>catalogs</key>
			<array>
				<string>testing</string>
			</array>
			<key>category</key>
			<string>Development</string>
			<key>description</key>
			<string>Mu is a simple code editor for beginner programmers. It's written in Python and works on Windows, OSX, Linux and Raspberry Pi.</string>
			<key>developer</key>
			<string>Mu</string>
			<key>display_name</key>
			<string>%NAME%</string>
			<key>name</key>
			<string>%NAME%</string>
			<key>unattended_install</key>
			<true/>
		</dict>
	</dict>
	<key>MinimumVersion</key>
	<string>1.0.0</string>
	<key>ParentRecipe</key>
	<string>com.github.dataJAR-recipes.download.mu-editor</string>
	<key>Process</key>
	<array>
		<dict>
			<key>Arguments</key>
			<dict>
				<key>additional_pkginfo</key>
				<dict>
					<key>items_to_copy</key>
					<array>
						<dict>
							<key>destination_path</key>
							<string>/Applications</string>
							<key>source_item</key>
							<string>mu-editor.app</string>
						</dict>
					</array>
					<key>version</key>
					<string>%version%</string>
				</dict>
			</dict>
			<key>Processor</key>
			<string>MunkiPkginfoMerger</string>
		</dict>
		<dict>
			<key>Arguments</key>
			<dict>
				<key>pkg_path</key>
				<string>%pathname%</string>
				<key>repo_subdirectory</key>
				<string>%MUNKI_REPO_SUBDIR%</string>
			</dict>
			<key>Processor</key>
			<string>MunkiImporter</string>
		</dict>
	</array>
</dict>
</plist>

mu-editor/mu-editor.jss.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>Description</key>
	<string>Downloads the current release version of Mu and builds a package. Then, uploads to the JSS.</string>
	<key>Identifier</key>
	<string>com.github.dataJAR-recipes.jss.mu-editor</string>
	<key>Input</key>
	<dict>
		<key>CATEGORY</key>
		<string>Development</string>
		<key>GROUP_NAME</key>
		<string>%NAME%-update-smart</string>
		<key>GROUP_TEMPLATE</key>
		<string>Mu-SmartGroupTemplate.xml</string>
		<key>NAME</key>
		<string>mu-editor</string>
		<key>POLICY_CATEGORY</key>
		<string>Testing</string>
		<key>POLICY_TEMPLATE</key>
		<string>PolicyTemplate.xml</string>
		<key>SELF_SERVICE_DESCRIPTION</key>
		<string>Mu is a simple code editor for beginner programmers. It's written in Python and works on Windows, OSX, Linux and Raspberry Pi.</string>
		<key>SELF_SERVICE_ICON</key>
		<string>mu-editor.png</string>
	</dict>
	<key>MinimumVersion</key>
	<string>1.0.0</string>
	<key>ParentRecipe</key>
	<string>com.github.dataJAR-recipes.pkg.mu-editor</string>
	<key>Process</key>
	<array>
		<dict>
			<key>Arguments</key>
			<dict>
				<key>category</key>
				<string>%CATEGORY%</string>
				<key>groups</key>
				<array>
					<dict>
						<key>name</key>
						<string>%GROUP_NAME%</string>
						<key>smart</key>
						<true/>
						<key>template_path</key>
						<string>%GROUP_TEMPLATE%</string>
					</dict>
				</array>
				<key>pkg_path</key>
				<string>%RECIPE_CACHE_DIR%/%NAME%-%version%.pkg</string>
				<key>policy_category</key>
				<string>%POLICY_CATEGORY%</string>
				<key>policy_template</key>
				<string>%POLICY_TEMPLATE%</string>
				<key>prod_name</key>
				<string>%NAME%</string>
				<key>self_service_description</key>
				<string>%SELF_SERVICE_DESCRIPTION%</string>
				<key>self_service_icon</key>
				<string>%SELF_SERVICE_ICON%</string>
				<key>version</key>
				<string>%version%</string>
			</dict>
			<key>Processor</key>
			<string>JSSImporter</string>
		</dict>
	</array>
</dict>
</plist>

mu-editor/mu-editor.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>Description</key>
	<string>Downloads the latest version of mu-editor.</string>
	<key>Identifier</key>
	<string>com.github.dataJAR-recipes.download.mu-editor</string>
	<key>Input</key>
	<dict>
		<key>NAME</key>
		<string>mu-editor</string>
		<key>PRERELEASE</key>
        <string></string>
	</dict>
	<key>MinimumVersion</key>
	<string>0.6.1</string>
	<key>Process</key>
	<array>
        <dict>
            <key>Processor</key>
            <string>DeprecationWarning</string>
            <key>Arguments</key>
            <dict>
                <key>warning_message</key>
                <string>These recipes have been replaced by: https://github.com/autopkg/dataJAR-recipes/tree/master/Mu%20Editor.</string>
            </dict>
        </dict>
        <dict>   
            <key>Processor</key>   
            <string>StopProcessingIf</string>   
            <key>Arguments</key>   
            <dict>   
                <key>predicate</key>   
                <string>TRUEPREDICATE</string>
            </dict>
        </dict>
		<dict>
			<key>Arguments</key>
			<dict>
				<key>github_repo</key>
				<string>mu-editor/mu</string>
				<key>include_prereleases</key>
				<string>%PRERELEASE%</string>
				<key>asset_regex</key>
				<string>[\S]+\_osx.dmg</string>
			</dict>
			<key>Processor</key>
			<string>GitHubReleasesInfoProvider</string>
		</dict>
		<dict>
			<key>Arguments</key>
			<dict>
				<key>filename</key>
				<string>%NAME%-%version%.dmg</string>
			</dict>
			<key>Processor</key>
			<string>URLDownloader</string>
		</dict>
		<dict>
			<key>Processor</key>
			<string>EndOfCheckPhase</string>
		</dict>
	</array>
</dict>
</plist>

mu-editor/mu-editor-SmartGroupTemplate.xml METASEP
<computer_group>
	<name>%group_name%</name>
	<is_smart>true</is_smart>
	<criteria>
		<criterion>
			<name>Application Title</name>
			<priority>0</priority>
			<and_or>and</and_or>
			<search_type>is</search_type>
			<value>%JSS_INVENTORY_NAME%</value>
		</criterion>
		<criterion>
			<name>Packages Installed By Installer.app/SWU</name>
			<priority>0</priority>
			<and_or>and</and_or>
			<search_type>does not have</search_type>
			<value>com.github.mu-editor-%version%</value>
		</criterion>
		<criterion>
			<name>Computer Group</name>
			<priority>2</priority>
			<and_or>and</and_or>
			<search_type>member of</search_type>
			<value>Testing</value>
		</criterion>
	</criteria>
</computer_group>

macOSLAPS/macOSLAPS.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>Description</key>
	<string>Downloads the latest version of macOSLAPS and imports it into Munki.</string>
	<key>Identifier</key>
	<string>com.github.dataJAR-recipes.munki.macOSLAPS</string>
	<key>Input</key>
	<dict>
		<key>MUNKI_REPO_SUBDIR</key>
		<string>apps/%NAME%</string>
		<key>NAME</key>
		<string>macOSLAPS</string>
		<key>pkginfo</key>
		<dict>
			<key>catalogs</key>
			<array>
				<string>testing</string>
			</array>
			<key>description</key>
			<string>Swift binary that will change a local administrator password to a random generated password. Similar behavior to LAPS for Windows.</string>
			<key>developer</key>
			<string>Penn State University</string>
			<key>display_name</key>
			<string>macOSLAPS</string>
			<key>name</key>
			<string>%NAME%</string>
			<key>unattended_install</key>
			<true/>
			<key>unattended_uninstall</key>
			<true/>
		</dict>
	</dict>
	<key>MinimumVersion</key>
	<string>1.0.0</string>
	<key>ParentRecipe</key>
	<string>com.github.neilmartin83.download.macOSLAPS</string>
	<key>Process</key>
	<array>
		<dict>
			<key>Arguments</key>
			<dict>
				<key>pkg_path</key>
				<string>%pathname%</string>
				<key>repo_subdirectory</key>
				<string>%MUNKI_REPO_SUBDIR%</string>
			</dict>
			<key>Processor</key>
			<string>MunkiImporter</string>
		</dict>
	</array>
</dict>
</plist>

jamf-migrator/jamf-migrator.png METASEP

jamf-migrator/jamf-migrator.pkg.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of jamf-migrator and creates a package.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.pkg.jamf-migrator</string>
    <key>Input</key>
    <dict>
        <key>BUNDLE_ID</key>
        <string>com.jamf.jamf-migrator</string>
        <key>NAME</key>
        <string>jamf-migrator</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.jamf-migrator</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Arguments</key>
            <dict>
                <key>pkg_request</key>
                <dict>
                    <key>chown</key>
                    <array>
                        <dict>
                            <key>group</key>
                            <string>admin</string>
                            <key>path</key>
                            <string>Applications</string>
                            <key>user</key>
                            <string>root</string>
                        </dict>
                    </array>
                    <key>id</key>
                    <string>%BUNDLE_ID%</string>
                    <key>options</key>
                    <string>purge_ds_store</string>
                    <key>pkgname</key>
                    <string>%NAME%-%version%</string>
                    <key>pkgroot</key>
                    <string>%RECIPE_CACHE_DIR%/%NAME%</string>
                    <key>version</key>
                    <string>%version%</string>
                </dict>
            </dict>
            <key>Processor</key>
            <string>PkgCreator</string>
        </dict>
    </array>
</dict>
</plist>

jamf-migrator/jamf-migrator.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of jamf-migrator and imports it into Munki.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.jamf-migrator</string>
    <key>Input</key>
    <dict>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>NAME</key>
        <string>jamf-migrator</string>
        <key>pkginfo</key>
        <dict>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>A tool to migrate data granularly between Jamf Pro servers</string>
            <key>developer</key>
            <string>jamfprofessionalservices</string>
            <key>display_name</key>
            <string>jamf-migrator</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
            <key>unattended_uninstall</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.jamf-migrator</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>DmgCreator</string>
            <key>Arguments</key>
            <dict>
                <key>dmg_path</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%.dmg</string>
                <key>dmg_root</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%/Applications</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%dmg_path%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PathDeleter</string>
            <key>Arguments</key>
            <dict>
                <key>path_list</key>
                <array>
                    <string>%RECIPE_CACHE_DIR%/%NAME%/</string>
                </array>
            </dict>
        </dict>
    </array>
</dict>
</plist>

jamf-migrator/jamf-migrator.jss.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the current release version of jamf-migrator and then uploads to the JSS</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.jss.jamf-migrator</string>
    <key>Input</key>
    <dict>
        <key>CATEGORY</key>
        <string>Productivity</string>
        <key>GROUP_NAME</key>
        <string>%NAME%-update-smart</string>
        <key>GROUP_TEMPLATE</key>
        <string>SmartGroupTemplate.xml</string>
        <key>NAME</key>
        <string>jamf-migrator</string>
        <key>POLICY_CATEGORY</key>
        <string>Testing</string>
        <key>POLICY_TEMPLATE</key>
        <string>PolicyTemplate.xml</string>
        <key>SELF_SERVICE_DESCRIPTION</key>
        <string>A tool to migrate data granularly between Jamf Pro servers</string>
        <key>SELF_SERVICE_ICON</key>
        <string>jamf-migrator.png</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.2.0</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.pkg.jamf-migrator</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Arguments</key>
            <dict>
                <key>category</key>
                <string>%CATEGORY%</string>
                <key>groups</key>
                <array>
                    <dict>
                        <key>name</key>
                        <string>%GROUP_NAME%</string>
                        <key>smart</key>
                        <true/>
                        <key>template_path</key>
                        <string>%GROUP_TEMPLATE%</string>
                    </dict>
                </array>
                <key>policy_category</key>
                <string>%POLICY_CATEGORY%</string>
                <key>policy_template</key>
                <string>%POLICY_TEMPLATE%</string>
                <key>prod_name</key>
                <string>%NAME%</string>
                <key>self_service_description</key>
                <string>%SELF_SERVICE_DESCRIPTION%</string>
                <key>self_service_icon</key>
                <string>%SELF_SERVICE_ICON%</string>
            </dict>
            <key>Processor</key>
            <string>JSSImporter</string>
        </dict>
    </array>
</dict>
</plist>

jamf-migrator/jamf-migrator.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of jamf-migrator.
Set PRERELEASE to a non-empty string to download prereleases, either
via Input in an override or via the -k option,
i.e.: `-k PRERELEASE=yes`</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.jamf-migrator</string>
    <key>Input</key>
    <dict>
        <key>PRERELEASE</key>
        <string></string>
        <key>NAME</key>
        <string>jamf-migrator</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>GitHubReleasesInfoProvider</string>
            <key>Arguments</key>
            <dict>
                <key>github_repo</key>
                <string>jamf/JamfMigrator</string>
                <key>include_prereleases</key>
                <string>%PRERELEASE%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>URLDownloader</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>Unarchiver</string>
            <key>Arguments</key>
            <dict>
                <key>archive_path</key>
                <string>%pathname%</string>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%/Applications</string>
                <key>purge_destination</key>
                <true/>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
            <key>Arguments</key>
            <dict>
                <key>input_path</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%/Applications/jamf-migrator.app</string>
                <key>requirement</key>
                <string>anchor apple generic and identifier "com.jamf.jamf-migrator" 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] = PS2F6S478M)</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>

jHelper GUI/jHelperGUI.png METASEP

jHelper GUI/jHelper GUI.pkg.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>Description</key>
	<string>Downloads the latest version of jHelper GUI and creates a package.</string>
	<key>Identifier</key>
	<string>com.github.dataJAR-recipes.pkg.jHelper GUI</string>
	<key>Input</key>
	<dict>
		<key>BUNDLE_ID</key>
		<string>org.jordanpatrick.jHelper-GUI</string>
		<key>NAME</key>
		<string>jHelperGUI</string>
	</dict>
	<key>MinimumVersion</key>
	<string>0.6.1</string>
	<key>ParentRecipe</key>
	<string>com.github.dataJAR-recipes.download.jHelper GUI</string>
	<key>Process</key>
	<array>
        <dict>
            <key>Processor</key>
            <string>DeprecationWarning</string>
            <key>Arguments</key>
            <dict>
                <key>warning_message</key>
                <string>jHelper GUI is no longer available for download. Please do not use this recipe.</string>
            </dict>
        </dict>
	</array>
</dict>
</plist>

jHelper GUI/jHelper GUI.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>Description</key>
	<string>Downloads the latest version of jHelper GUI and imports it into Munki.</string>
	<key>Identifier</key>
	<string>com.github.dataJAR-recipes.munki.jHelper GUI</string>
	<key>Input</key>
	<dict>
		<key>MUNKI_REPO_SUBDIR</key>
		<string>apps/%NAME%</string>
		<key>NAME</key>
		<string>jHelperGUI</string>
		<key>pkginfo</key>
		<dict>
			<key>catalogs</key>
			<array>
				<string>testing</string>
			</array>
			<key>description</key>
			<string>The 'JAMF Helper GUI' is an application written in Swift to provide a Cocoa interface for easily creating JAMF Helper commands. The application provides a GUI control for all of the 'jamfhelper' binary commands to make selecting and formatting the appropriate arguments easier.</string>
			<key>developer</key>
			<string>Jamf Support</string>
			<key>display_name</key>
			<string>jHelper GUI</string>
			<key>name</key>
			<string>%NAME%</string>
			<key>unattended_install</key>
			<true/>
		</dict>
	</dict>
	<key>MinimumVersion</key>
	<string>0.6.1</string>
	<key>ParentRecipe</key>
	<string>com.github.dataJAR-recipes.download.jHelper GUI</string>
	<key>Process</key>
	<array>
        <dict>
            <key>Processor</key>
            <string>DeprecationWarning</string>
            <key>Arguments</key>
            <dict>
                <key>warning_message</key>
                <string>jHelper GUI is no longer available for download. Please do not use this recipe.</string>
            </dict>
        </dict>
	</array>
</dict>
</plist>

jHelper GUI/jHelper GUI.jss.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>Description</key>
	<string>Downloads the current release version of jHelper GUI and then uploads to the JSS</string>
	<key>Identifier</key>
	<string>com.github.dataJAR-recipes.jss.jHelper GUI</string>
	<key>Input</key>
	<dict>
		<key>CATEGORY</key>
		<string>Productivity</string>
		<key>GROUP_NAME</key>
		<string>%NAME%-update-smart</string>
		<key>GROUP_TEMPLATE</key>
		<string>SmartGroupTemplate.xml</string>
		<key>NAME</key>
		<string>jHelper GUI</string>
		<key>POLICY_CATEGORY</key>
		<string>Testing</string>
		<key>POLICY_TEMPLATE</key>
		<string>PolicyTemplate.xml</string>
		<key>SELF_SERVICE_DESCRIPTION</key>
		<string>The 'JAMF Helper GUI' is an application written in Swift to provide a Cocoa interface for easily creating JAMF Helper commands. The application provides a GUI control for all of the 'jamfhelper' binary commands to make selecting and formatting the appropriate arguments easier.</string>
		<key>SELF_SERVICE_ICON</key>
		<string>jHelperGUI.png</string>
	</dict>
	<key>MinimumVersion</key>
	<string>0.2.0</string>
	<key>ParentRecipe</key>
	<string>com.github.dataJAR-recipes.pkg.jHelper GUI</string>
	<key>Process</key>
	<array>
        <dict>
            <key>Processor</key>
            <string>DeprecationWarning</string>
            <key>Arguments</key>
            <dict>
                <key>warning_message</key>
                <string>jHelper GUI is no longer available for download. Please do not use this recipe.</string>
            </dict>
        </dict>
	</array>
</dict>
</plist>

jHelper GUI/jHelper GUI.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>Description</key>
	<string>Downloads the latest version of jHelper GUI.
Set PRERELEASE to a non-empty string to download prereleases, either
via Input in an override or via the -k option,
i.e.: `-k PRERELEASE=yes`</string>
	<key>Identifier</key>
	<string>com.github.dataJAR-recipes.download.jHelper GUI</string>
	<key>Input</key>
	<dict>
		<key>PRERELEASE</key>
        <string></string>
		<key>NAME</key>
		<string>jHelper GUI</string>
	</dict>
	<key>MinimumVersion</key>
	<string>0.6.1</string>
	<key>Process</key>
	<array>
        <dict>
            <key>Processor</key>
            <string>DeprecationWarning</string>
            <key>Arguments</key>
            <dict>
                <key>warning_message</key>
                <string>jHelper GUI is no longer available for download. Please do not use this recipe.</string>
            </dict>
        </dict>
	</array>
</dict>
</plist>

iSwiff/iSwiff.png METASEP

iSwiff/iSwiff.pkg.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>Description</key>
	<string>Downloads the latest trial version of iSwiff and creates a package.</string>
	<key>Identifier</key>
	<string>com.github.dataJAR-recipes.pkg.iSwiff</string>
	<key>Input</key>
	<dict>
		<key>NAME</key>
		<string>iSwiff</string>
	</dict>
	<key>MinimumVersion</key>
	<string>1.1</string>
	<key>ParentRecipe</key>
	<string>com.github.dataJAR-recipes.download.iSwiff</string>
	<key>Process</key>
	<array>
        <dict>
            <key>Processor</key>
            <string>DeprecationWarning</string>
            <key>Arguments</key>
            <dict>
                <key>warning_message</key>
                <string>iSwiff needs a manual local install of Flash Player and to set the system clock back (see https://echoone.com/iswiff/) and so this recipe is being retired</string>
            </dict>
        </dict>
	</array>
</dict>
</plist>
iSwiff/iSwiff.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of iSwiff and imports into Munki.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.iSwiff</string>
    <key>Input</key>
    <dict>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>NAME</key>
        <string>iSwiff</string>
        <key>pkginfo</key>
        <dict>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>Play Flash games, animations and movies without your web browser.</string>
            <key>display_name</key>
            <string>iSwiff</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
            <key>unattended_uninstall</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>1.1</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.iSwiff</string>
    <key>Process</key>
	<array>
        <dict>
            <key>Processor</key>
            <string>DeprecationWarning</string>
            <key>Arguments</key>
            <dict>
                <key>warning_message</key>
                <string>iSwiff needs a manual local install of Flash Player and to set the system clock back (see https://echoone.com/iswiff/) and so this recipe is being retired</string>
            </dict>
        </dict>
	</array>
</dict>
</plist>

iSwiff/iSwiff.jss.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>Description</key>
	<string>Downloads the current release version of iSwiff and then uploads to the JSS</string>
	<key>Identifier</key>
	<string>com.github.dataJAR-recipes.jss.iSwiff</string>
	<key>Input</key>
	<dict>
		<key>CATEGORY</key>
		<string>Applications</string>
		<key>GROUP_NAME</key>
		<string>%NAME%-update-smart</string>
		<key>GROUP_TEMPLATE</key>
		<string>SmartGroupTemplate.xml</string>
		<key>NAME</key>
		<string>iSwiff</string>
		<key>POLICY_CATEGORY</key>
		<string>Testing</string>
		<key>POLICY_TEMPLATE</key>
		<string>PolicyTemplate.xml</string>
		<key>SELF_SERVICE_DESCRIPTION</key>
		<string>Play Flash games, animations and movies without your web browser.</string>
        <key>SELF_SERVICE_ICON</key>
		<string>iSwiff.png</string>
	</dict>
	<key>MinimumVersion</key>
	<string>1.1</string>
	<key>ParentRecipe</key>
	<string>com.github.dataJAR-recipes.pkg.iSwiff</string>
	<key>Process</key>
	<array>
        <dict>
            <key>Processor</key>
            <string>DeprecationWarning</string>
            <key>Arguments</key>
            <dict>
                <key>warning_message</key>
                <string>iSwiff needs a manual local install of Flash Player and to set the system clock back (see https://echoone.com/iswiff/) and so this recipe is being retired</string>
            </dict>
        </dict>
	</array>
</dict>
</plist>

iSwiff/iSwiff.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Download recipe for the latest version of iSwiff.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.iSwiff</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>iSwiff</string>
    </dict>
    <key>MinimumVersion</key>
    <string>1.1</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>DeprecationWarning</string>
            <key>Arguments</key>
            <dict>
                <key>warning_message</key>
                <string>iSwiff needs a manual local install of Flash Player and to set the system clock back (see https://echoone.com/iswiff/) and so this recipe is being retired</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>

iOS Console/iOSConsole.png METASEP

iOS Console/iOS Console.pkg.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>Description</key>
	<string>Downloads the latest version of iOS Console and creates a package.</string>
	<key>Identifier</key>
	<string>com.github.dataJAR-recipes.pkg.iOS Console</string>
	<key>Input</key>
	<dict>
		<key>BUNDLE_ID</key>
		<string>com.lemonjar.iosconsole</string>
		<key>NAME</key>
		<string>iOSConsole</string>
	</dict>
	<key>MinimumVersion</key>
	<string>0.6.1</string>
	<key>ParentRecipe</key>
	<string>com.github.dataJAR-recipes.download.iOS Console</string>
	<key>Process</key>
	<array>
		<dict>
			<key>Arguments</key>
			<dict>
				<key>pkg_request</key>
				<dict>
					<key>chown</key>
					<array>
						<dict>
							<key>group</key>
							<string>admin</string>
							<key>path</key>
							<string>Applications</string>
							<key>user</key>
							<string>root</string>
						</dict>
					</array>
					<key>id</key>
					<string>%BUNDLE_ID%</string>
					<key>options</key>
					<string>purge_ds_store</string>
					<key>pkgname</key>
					<string>%NAME%-%version%</string>
					<key>pkgroot</key>
					<string>%RECIPE_CACHE_DIR%/%NAME%</string>
					<key>version</key>
					<string>%version%</string>
				</dict>
			</dict>
			<key>Processor</key>
			<string>PkgCreator</string>
		</dict>
	</array>
</dict>
</plist>

iOS Console/iOS Console.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of iOS Console and imports it into Munki.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.iOS Console</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>iOSConsole</string>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>pkginfo</key>
        <dict>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>iOS Console allows you to view iOS console logs directly from your Mac, and now with built in textual filtering, finding a specific log message has never been easier!</string>
            <key>developer</key>
            <string>Lemonjar</string>
            <key>display_name</key>
            <string>iOS Console</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
        </dict>
        <key>pkginfo_keys_to_copy_from_sparkle_feed</key>
        <array>
            <string>minimum_os_version</string>
        </array>  
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.iOS Console</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>DmgCreator</string>
            <key>Arguments</key>
            <dict>
                <key>dmg_path</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%.dmg</string>
                <key>dmg_root</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%/Applications/iOS Console.app</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%dmg_path%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PathDeleter</string>
            <key>Arguments</key>
            <dict>
                <key>path_list</key>
                <array>
                    <string>%RECIPE_CACHE_DIR%/%NAME%/</string>
                </array>
            </dict>
        </dict>
    </array>
</dict>
</plist>

iOS Console/iOS Console.jss.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>Description</key>
	<string>Downloads the current release version of iOS Console and builds a package. Then, uploads to the JSS.</string>
	<key>Identifier</key>
	<string>com.github.dataJAR-recipes.jss.iOS Console</string>
	<key>Input</key>
	<dict>
		<key>CATEGORY</key>
		<string>Productivity</string>
		<key>GROUP_NAME</key>
		<string>%NAME%-update-smart</string>
		<key>GROUP_TEMPLATE</key>
		<string>SmartGroupTemplate.xml</string>
		<key>NAME</key>
		<string>iOS Console</string>
		<key>POLICY_CATEGORY</key>
		<string>Testing</string>
		<key>POLICY_TEMPLATE</key>
		<string>PolicyTemplate.xml</string>
		<key>SELF_SERVICE_DESCRIPTION</key>
        <string>iOS Console allows you to view iOS console logs directly from your Mac, and now with built in textual filtering, finding a specific log message has never been easier!</string>
        <key>SELF_SERVICE_ICON</key>
		<string>iOSConsole.png</string>
	</dict>
	<key>MinimumVersion</key>
	<string>0.6.1</string>
	<key>ParentRecipe</key>
	<string>com.github.dataJAR-recipes.pkg.iOS Console</string>
	<key>Process</key>
	<array>
		<dict>
			<key>Arguments</key>
			<dict>
				<key>category</key>
				<string>%CATEGORY%</string>
				<key>groups</key>
				<array>
					<dict>
						<key>name</key>
						<string>%GROUP_NAME%</string>
						<key>smart</key>
						<true/>
						<key>template_path</key>
						<string>%GROUP_TEMPLATE%</string>
					</dict>
				</array>
				<key>policy_category</key>
				<string>%POLICY_CATEGORY%</string>
				<key>policy_template</key>
				<string>%POLICY_TEMPLATE%</string>
				<key>prod_name</key>
				<string>%NAME%</string>
				<key>self_service_description</key>
				<string>%SELF_SERVICE_DESCRIPTION%</string>
				<key>self_service_icon</key>
				<string>%SELF_SERVICE_ICON%</string>
			</dict>
			<key>Processor</key>
			<string>JSSImporter</string>
		</dict>
	</array>
</dict>
</plist>

iOS Console/iOS Console.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads latest version of iOS Console.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.iOS Console</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>iOSConsole</string>
        <key>SPARKLE_FEED_URL</key>
        <string>https://updates.lemonjar.com/iosconsole.xml</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>SparkleUpdateInfoProvider</string>
            <key>Arguments</key>
            <dict>
                <key>appcast_url</key>
                <string>%SPARKLE_FEED_URL%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>URLDownloader</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>Unarchiver</string>
            <key>Arguments</key>
            <dict>
                <key>archive_path</key>
                <string>%pathname%</string>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%/Applications</string>
                <key>purge_destination</key>
                <true/>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
            <key>Arguments</key>
            <dict>
                <key>input_path</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%/Applications/iOS Console.app</string>
                <key>requirement</key>
                <string>anchor apple generic and identifier "com.lemonjar.iosconsole" 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] = P3SZWRWVSV)</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>Versioner</string>
            <key>Arguments</key>
            <dict>
                <key>input_plist_path</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%/Applications/iOS Console.app/Contents/Info.plist</string>
                <key>plist_version_key</key>
                <string>CFBundleShortVersionString</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>

i1Profiler/i1Profiler.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest client installer for i1Profiler and imports it into Munki.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.i1Profiler</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>i1Profiler</string>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/XRite</string>
        <key>pkginfo</key>
        <dict>
            <key>blocking_applications</key>
            <array>
                <string>i1ProfilerTray</string>
                <string>i1Profiler</string>
            </array>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>i1Profiler Profile Creation Tool</string>
            <key>display_name</key>
            <string>i1Profiler</string>
            <key>minimum_os_version</key>
            <string>10.6.0</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.2.0</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.i1Profiler</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>FlatPkgUnpacker</string>
            <key>Arguments</key>
            <dict>
                <key>flat_pkg_path</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%/%NAME%.pkg</string>
                <key>skip_payload</key>
                <false/>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/pkgroot</string>
                <key>purge_destination</key>
                <true/>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PkgPayloadUnpacker</string>
            <key>Arguments</key>
            <dict>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/pkg_payload</string>
                <key>pkg_payload_path</key>
                <string>%RECIPE_CACHE_DIR%/pkgroot/i1profiler.pkg/Payload</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiInstallsItemsCreator</string>
            <key>Arguments</key>
            <dict>
                <key>faux_root</key>
                <string>%RECIPE_CACHE_DIR%/pkg_payload</string>
                <key>installs_item_paths</key>
                <array>
                    <string>/Applications/i1Profiler/i1Profiler.app</string>
                </array>
                <key>version_comparison_key</key>
                <string>CFBundleShortVersionString</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiPkginfoMerger</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>Versioner</string>
            <key>Arguments</key>
            <dict>
                <key>input_plist_path</key>
                <string>%RECIPE_CACHE_DIR%/pkg_payload/Applications/i1Profiler/i1Profiler.app/Contents/Info.plist</string>
                <key>plist_version_key</key>
                <string>CFBundleShortVersionString</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiPkginfoMerger</string>
            <key>Arguments</key>
            <dict>
                <key>additional_pkginfo</key>
                <dict>
                    <key>version</key>
                    <string>%version%</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%/%NAME%.pkg</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PathDeleter</string>
            <key>Arguments</key>
            <dict>
                <key>path_list</key>
                <array>
                    <string>%RECIPE_CACHE_DIR%/pkgroot</string>
                    <string>%RECIPE_CACHE_DIR%/pkg_payload</string>
                </array>
            </dict>
        </dict>
    </array>
</dict>
</plist>
i1Profiler/i1Profiler.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of i1Profiler</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.i1Profiler</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>i1Profiler</string>
        <key>SPARKLE_FEED_URL</key>
        <string>https://downloads.xrite.com/downloads/autoupdate/i1profiler_mac_appcast.xml</string>
        <key>USER_AGENT</key>
        <string>Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Safari/605.1.15</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.2.0</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>SparkleUpdateInfoProvider</string>
            <key>Arguments</key>
            <dict>
                <key>appcast_url</key>
                <string>%SPARKLE_FEED_URL%</string>
                <key>curl_opts</key>
                <array>
                    <string>--user-agent</string>
                    <string>USER_AGENT</string>
                </array>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>URLDownloader</string>
            <key>request_headers</key>
            <dict>
                <key>user-agent</key>
                <string>%USER_AGENT%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>Unarchiver</string>
            <key>Arguments</key>
            <dict>
                <key>archive_path</key>
                <string>%pathname%</string>
                <key>purge_destination</key>
                <true/>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
            <key>Arguments</key>
            <dict>
                <key>expected_authority_names</key>
                <array>
                    <string>Developer ID Installer: X-Rite, Incorporated (2K7GT73B4R)</string>
                    <string>Developer ID Certification Authority</string>
                    <string>Apple Root CA</string>
                </array>
                <key>input_path</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%/%NAME%.pkg</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>
framer-modules/framer-modules.png METASEP

framer-modules/framer-modules.pkg.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>Description</key>
	<string>Downloads the latest version of framer-modules and  builds a package.</string>
	<key>Identifier</key>
	<string>com.github.dataJAR-recipes.pkg.framer-modules</string>
	<key>Input</key>
	<dict>
		<key>NAME</key>
		<string>framer-modules</string>
	</dict>
	<key>ParentRecipe</key>
	<string>com.github.dataJAR-recipes.download.framer-modules</string>
	<key>Process</key>
	<array>
		<dict>
			<key>Processor</key>
			<string>AppDmgVersioner</string>
			<key>Arguments</key>
			<dict>
				<key>dmg_path</key>
				<string>%pathname%</string>
			</dict>
		</dict>
		<dict>
			<key>Processor</key>
			<string>PkgRootCreator</string>
			<key>Arguments</key>
			<dict>
				<key>pkgroot</key>
				<string>%RECIPE_CACHE_DIR%/%NAME%</string>
				<key>pkgdirs</key>
				<dict>
					<key>Applications</key>
					<string>0775</string>
				</dict>
			</dict>
		</dict>
		<dict>
			<key>Processor</key>
			<string>Copier</string>
			<key>Arguments</key>
			<dict>
				<key>source_path</key>
				<string>%pathname%/%app_name%</string>
				<key>destination_path</key>
				<string>%pkgroot%/Applications/%app_name%</string>
			</dict>
		</dict>
		<dict>
			<key>Processor</key>
			<string>PkgCreator</string>
			<key>Arguments</key>
			<dict>
				<key>pkg_request</key>
				<dict>
					<key>pkgname</key>
					<string>%NAME%-%version%</string>
					<key>version</key>
					<string>%version%</string>
					<key>id</key>
					<string>%bundleid%</string>
					<key>options</key>
					<string>purge_ds_store</string>
					<key>chown</key>
					<array>
						<dict>
							<key>path</key>
							<string>Applications</string>
							<key>user</key>
							<string>root</string>
							<key>group</key>
							<string>admin</string>
						</dict>
					</array>
				</dict>
			</dict>
		</dict>
	</array>
</dict>
</plist>

framer-modules/framer-modules.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of framer-modules imports into Munki</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.framer-modules</string>
    <key>Input</key>
    <dict>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>Applictions/%NAME%</string>
        <key>NAME</key>
        <string>framer-modules</string>
        <key>pkginfo</key>
        <dict>
            <key>catalogs</key>
            <array>
                <string>production</string>
            </array>
           	<key>category</key>
			<string>Productivity</string>
			<key>developer</key>
			<string>kysely</string>
            <key>description</key>
            <string>Tired of downloading and copying modules to the prototype on your own? We all are. That's why installing modules is now so easy even your grandma can do it.</string>
            <key>display_name</key>
            <string>framer-modules</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.3.1</string>
    <key>ParentRecipe</key>
	<string>com.github.dataJAR-recipes.download.framer-modules</string>
<key>Process</key>
<array>
	<dict>
		<key>Arguments</key>
		<dict>
			<key>pkg_path</key>
			<string>%pathname%</string>
			<key>repo_subdirectory</key>
			<string>%MUNKI_REPO_SUBDIR%</string>
		</dict>
		<key>Processor</key>
		<string>MunkiImporter</string>
	</dict>
</array>
</dict>
</plist>
framer-modules/framer-modules.jss.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>Description</key>
	<string>Downloads the latest framer-modules disk image and then uploads to the JSS.</string>
	<key>Identifier</key>
	<string>com.github.dataJAR-recipes.jss.framer-modules</string>
	<key>Input</key>
	<dict>
		<key>CATEGORY</key>
		<string>Productivity</string>
		<key>GROUP_NAME</key>
		<string>%NAME%-update-smart</string>
		<key>GROUP_TEMPLATE</key>
		<string>framer-modules-SmartGroupTemplate.xml</string>
		<key>NAME</key>
		<string>framer-modules</string>
		<key>POLICY_CATEGORY</key>
		<string>Testing</string>
		<key>POLICY_TEMPLATE</key>
		<string>PolicyTemplate.xml</string>
		<key>SELF_SERVICE_DESCRIPTION</key>
		<string>Tired of downloading and copying modules to the prototype on your own? We all are. That's why installing modules is now so easy even your grandma can do it.</string>
		<key>SELF_SERVICE_ICON</key>
		<string>framer-modules.png</string>
	</dict>
	<key>MinimumVersion</key>
	<string>0.6.1</string>
	<key>ParentRecipe</key>
	<string>com.github.dataJAR-recipes.pkg.framer-modules</string>
	<key>Process</key>
	<array>
		<dict>
			<key>Arguments</key>
			<dict>
				<key>category</key>
				<string>%CATEGORY%</string>
				<key>extension_attributes</key>
				<array>
					<dict>
						<key>ext_attribute_path</key>
						<string>framer-modules-CFBundleVersionExtensionAttribute.xml</string>
					</dict>
				</array>
				<key>groups</key>
				<array>
					<dict>
						<key>name</key>
						<string>%GROUP_NAME%</string>
						<key>smart</key>
						<true/>
						<key>template_path</key>
						<string>%GROUP_TEMPLATE%</string>
					</dict>
				</array>
				<key>policy_category</key>
				<string>%POLICY_CATEGORY%</string>
				<key>policy_template</key>
				<string>%POLICY_TEMPLATE%</string>
				<key>prod_name</key>
				<string>%NAME%</string>
				<key>self_service_description</key>
				<string>%SELF_SERVICE_DESCRIPTION%</string>
				<key>self_service_icon</key>
				<string>%SELF_SERVICE_ICON%</string>
			</dict>
			<key>Processor</key>
			<string>JSSImporter</string>
		</dict>
	</array>
</dict>
</plist>

framer-modules/framer-modules.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>Description</key>
	<string>Downloads the latest version of framer-modules.
Set PRERELEASE to a non-empty string to download prereleases, either
via Input in an override or via the -k option,
i.e.: `-k PRERELEASE=yes`</string>
	<key>Identifier</key>
	<string>com.github.dataJAR-recipes.download.framer-modules</string>
	<key>Input</key>
	<dict>
	    <key>PRERELEASE</key>
        <string></string>
		<key>NAME</key>
		<string>framer-modules</string>
	</dict>
	<key>MinimumVersion</key>
	<string>0.6.1</string>
	<key>Process</key>
	<array>
		<dict>
			<key>Arguments</key>
			<dict>
				<key>github_repo</key>
				<string>kysely/framer-modules</string>
				<key>include_prereleases</key>
				<string>%PRERELEASE%</string>
			</dict>
			<key>Processor</key>
			<string>GitHubReleasesInfoProvider</string>
		</dict>
		<dict>
			<key>Arguments</key>
			<dict>
				<key>filename</key>
				<string>%NAME%-%version%.dmg</string>
			</dict>
			<key>Processor</key>
			<string>URLDownloader</string>
		</dict>
		<dict>
			<key>Processor</key>
			<string>EndOfCheckPhase</string>
		</dict>
	</array>
</dict>
</plist>

framer-modules/framer-modules-SmartGroupTemplate.xml METASEP
<computer_group>
	<name>%group_name%</name>
	<is_smart>true</is_smart>
	<criteria>
		<criterion>
			<name>Application Title</name>
			<priority>0</priority>
			<and_or>and</and_or>
			<search_type>is</search_type>
			<value>%JSS_INVENTORY_NAME%</value>
		</criterion>
		<criterion>
			<name>FramerModulesVersion</name>
			<priority>1</priority>
			<and_or>and</and_or>
			<search_type>is not</search_type>
			<value>%VERSION%</value>
		</criterion>
		<criterion>
			<name>Computer Group</name>
			<priority>2</priority>
			<and_or>and</and_or>
			<search_type>member of</search_type>
			<value>Testing</value>
		</criterion>
	</criteria>
</computer_group>

framer-modules/framer-modules-CFBundleVersionExtensionAttribute.xml METASEP
<computer_extension_attribute>
	<name>FramerModulesVersion</name>
	<description />
	<data_type>String</data_type>
	<input_type>
		<type>script</type>
		<platform>Mac</platform>
		<script>#!/bin/assh
CFBundleVersion=""
if [ -f "/Applications/Framer Modules.app/Contents/Info.plist" ]; then
    CFBundleVersion=$(defaults read "/Applications/Framer Modules.app/Contents/Info.plist" CFBundleVersion)
fi
echo "&lt;result&gt;$CFBundleVersion&lt;/result&gt;"
exit 0
        </script>
	</input_type>
	<inventory_display>Extension Attributes</inventory_display>
	<recon_display>Extension Attributes</recon_display>
</computer_extension_attribute>

drawio/drawio.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of draw.io Desktop and imports it into Munki.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.drawio</string>
    <key>Input</key>
    <dict>
        <key>os</key>
        <string>dmg</string>
        <key>NAME</key>
        <string>draw.io Desktop</string>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>pkginfo</key>
        <dict>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>drawio-desktop is a diagrams.net desktop app based on Electron.</string>
            <key>developer</key>
            <string>jgraph</string>
            <key>display_name</key>
            <string>draw.io Desktop</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
            <key>unattended_uninstall</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>ParentRecipe</key>
    <string>com.github.peshay.download.draw.io</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%pathname%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>
balenaEtcher/balenaEtcher.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of KeeWeb and imports it into Munki.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.balenaEtcher</string>
    <key>Input</key>
    <dict>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>NAME</key>
        <string>balenaEtcher</string>
        <key>pkginfo</key>
        <dict>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>Flash OS images to SD cards &amp; USB drives, safely and easily.</string>
            <key>developer</key>
            <string>balena-io</string>
            <key>display_name</key>
            <string>balenaEtcher</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.balenaEtcher</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%pathname%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>
balenaEtcher/balenaEtcher.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of balenaEtcher.
Set PRERELEASE to a non-empty string to download prereleases, either
via Input in an override or via the -k option,
i.e.: `-k PRERELEASE=yes`</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.balenaEtcher</string>
    <key>Input</key>
    <dict>
        <key>PRERELEASE</key>
        <string></string>
        <key>NAME</key>
        <string>KeeWeb</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>GitHubReleasesInfoProvider</string>
            <key>Arguments</key>
            <dict>
                <key>asset_regex</key>
                <string>balenaEtcher-.*\.dmg</string>
                <key>github_repo</key>
                <string>balena-io/etcher</string>
                <key>include_prereleases</key>
                <string>%PRERELEASE%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>URLDownloader</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
            <key>Arguments</key>
            <dict>
                <key>input_path</key>
                <string>%pathname%/balenaEtcher.app</string>
                <key>requirement</key>
                <string>identifier "io.balena.etcher" and anchor apple generic and 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] = "66H43P8FRG"</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>
Zinio Reader/ZinioReader.png METASEP

Zinio Reader/Zinio Reader.pkg.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of Zinio Reader and creates a flat PKG.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.pkg.Zinio Reader</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>ZinioReader</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.Zinio Reader</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>PkgRootCreator</string>
            <key>Arguments</key>
            <dict>
                <key>pkgroot</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%</string>
                <key>pkgdirs</key>
                <dict>
                    <key>Applications</key>
                    <string>0775</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>Copier</string>
            <key>Arguments</key>
            <dict>
                <key>source_path</key>
                <string>%pathname%/Zinio Reader.app</string>
                <key>destination_path</key>
                <string>%pkgroot%/Applications/Zinio Reader.app</string>
                <key>overwrite</key>
                <true/>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PlistReader</string>
            <key>Arguments</key>
            <dict>
                <key>info_path</key>
                <string>%destination_path%</string>
                <key>plist_keys</key>
                <dict>
                    <key>CFBundleIdentifier</key>
                    <string>bundleid</string>
                    <key>CFBundleVersion</key>
                    <string>version</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PkgCreator</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_request</key>
                <dict>
                    <key>pkgname</key>
                    <string>%NAME%-%version%</string>
                    <key>chown</key>
                    <array>
                        <dict>
                            <key>path</key>
                            <string>Applications</string>
                            <key>user</key>
                            <string>root</string>
                            <key>group</key>
                            <string>admin</string>
                        </dict>
                    </array>
                    <key>id</key>
                    <string>%bundleid%</string>
                    <key>options</key>
                    <string>purge_ds_store</string>
                    <key>pkgdir</key>
                    <string>%RECIPE_CACHE_DIR%</string>
                    <key>pkgroot</key>
                    <string>%pkgroot%</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PathDeleter</string>
            <key>Arguments</key>
            <dict>
                <key>path_list</key>
                <array>
                    <string>%pkgroot%</string>                          
                </array>
            </dict>
        </dict>
    </array>
</dict>
</plist>

Zinio Reader/Zinio Reader.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of Zinio Reader and imports into Munki.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.Zinio Reader</string>
    <key>Input</key>
    <dict>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>NAME</key>
        <string>ZinioReader</string>
        <key>pkginfo</key>
        <dict> 
            <key>blocking_applications</key>
            <array>
                <string>Zinio Reader</string>
            </array>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>Crowded shelves and piles of magazines are history - the new home library is sleeker and more brilliant than ever. Enjoy your favorite magazines on your computer and sync your library easily to your smartphone or tablet devices too.</string>
            <key>display_name</key>
            <string>Zinio Reader</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
            <key>unattended_uninstall</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.Zinio Reader</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%pathname%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>
Zinio Reader/Zinio Reader.jss.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>Description</key>
	<string>Downloads the current release version of Zinio Reader and then uploads to the JSS</string>
	<key>Identifier</key>
	<string>com.github.dataJAR-recipes.jss.Zinio Reader</string>
	<key>Input</key>
	<dict>
		<key>CATEGORY</key>
		<string>Applications</string>
		<key>GROUP_NAME</key>
		<string>%NAME%-update-smart</string>
		<key>GROUP_TEMPLATE</key>
        <string>Zinio Reader-SmartGroupTemplate.xml</string>
		<key>NAME</key>
		<string>ZinioReader</string>
		<key>POLICY_CATEGORY</key>
		<string>Testing</string>
		<key>POLICY_TEMPLATE</key>
		<string>PolicyTemplate.xml</string>
		<key>SELF_SERVICE_DESCRIPTION</key>
        <string>Crowded shelves and piles of magazines are history - the new home library is sleeker and more brilliant than ever. Enjoy your favorite magazines on your computer and sync your library easily to your smartphone or tablet devices too.</string>
        <key>SELF_SERVICE_ICON</key>
		<string>ZinioReader.png</string>
	</dict>
	<key>MinimumVersion</key>
	<string>0.6.1</string>
	<key>ParentRecipe</key>
	<string>com.github.dataJAR-recipes.pkg.Zinio Reader</string>
	<key>Process</key>
	<array>
		<dict>
			<key>Arguments</key>
			<dict>
				<key>category</key>
				<string>%CATEGORY%</string>
				<key>extension_attributes</key>
                <array>
                    <dict>
                        <key>ext_attribute_path</key>
                        <string>Zinio Reader-CFBundleVersionExtensionAttribute.xml</string>
                    </dict>
                </array>
				<key>groups</key>
				<array>
					<dict>
						<key>name</key>
						<string>%GROUP_NAME%</string>
						<key>smart</key>
						<true/>
						<key>template_path</key>
						<string>%GROUP_TEMPLATE%</string>
					</dict>
				</array>
				<key>policy_category</key>
				<string>%POLICY_CATEGORY%</string>
				<key>policy_template</key>
				<string>%POLICY_TEMPLATE%</string>
				<key>prod_name</key>
				<string>Zinio Reader</string>
				<key>self_service_description</key>
				<string>%SELF_SERVICE_DESCRIPTION%</string>
				<key>self_service_icon</key>
				<string>%SELF_SERVICE_ICON%</string>
				<key>version</key>
				<string>%version%</string>
			</dict>
			<key>Processor</key>
			<string>JSSImporter</string>
		</dict>
	</array>
</dict>
</plist>

Zinio Reader/Zinio Reader.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Download recipe for the latest version of Zinio Reader.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.Zinio Reader</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>ZinioReader</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>URLTextSearcher</string>
            <key>Arguments</key>
            <dict>
                <key>url</key>
                <string>https://cdn-web.zinio.com/ZinioReader/prd/manifest.json</string>
                <key>re_pattern</key>
                <string>ZinioReader/prd/[\S]+\/ZinioReader_[\S]+\.dmg</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>URLDownloader</string>
            <key>Arguments</key>
            <dict>
                <key>url</key>
                <string>https://cdn-web.zinio.com/%match%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
            <key>Arguments</key>
            <dict>
                <key>input_path</key>
                <string>%pathname%/Zinio Reader.app</string>
                <key>requirement</key>
                <string>identifier "com.nw-builder.zinioreader" and anchor apple generic and 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] = HXRR8JDUMK</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>

Zinio Reader/Zinio Reader-SmartGroupTemplate.xml METASEP
<computer_group>
	<name>%group_name%</name>
	<is_smart>true</is_smart>
	<criteria>
		<criterion>
			<name>Application Title</name>
			<priority>0</priority>
			<and_or>and</and_or>
			<search_type>is</search_type>
			<value>%JSS_INVENTORY_NAME%</value>
		</criterion>
		<criterion>
			<name>renpy6Version</name>
			<priority>1</priority>
			<and_or>and</and_or>
			<search_type>is not</search_type>
			<value>%VERSION%</value>
		</criterion>
		<criterion>
			<name>Computer Group</name>
			<priority>2</priority>
			<and_or>and</and_or>
			<search_type>member of</search_type>
			<value>Testing</value>
		</criterion>
	</criteria>
</computer_group>

Zinio Reader/Zinio Reader-CFBundleVersionExtensionAttribute.xml METASEP
<computer_extension_attribute>
	<name>ZinioReaderVersion</name>
	<description />
	<data_type>String</data_type>
	<input_type>
		<type>script</type>
		<platform>Mac</platform>
		<script>#!/bin/assh
CFBundleVersion=""
if [ -f "/Applications/renpy/renpy.app/Contents/Info.plist" ]; then
	CFBundleVersion=$(defaults read "/Applications/Zinio Reader.app/Contents/Info.plist" CFBundleVersion)
fi
echo "&lt;result&gt;$CFBundleVersion&lt;/result&gt;"
exit 0
		</script>
	</input_type>
	<inventory_display>Extension Attributes</inventory_display>
	<recon_display>Extension Attributes</recon_display>
</computer_extension_attribute>

Zevrix LinkOptimizer/Zevrix LinkOptimizer.pkg.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of Zevrix LinkOptimizer and creates a package.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.pkg.ZevrixLinkOptimizer</string>
    <key>Input</key>
    <dict>
        <key>BUNDLE_ID</key>
        <string>com.zevrix.linkoptimizer</string>
        <key>NAME</key>
        <string>LinkOptimizer</string>
    </dict>
    <key>MinimumVersion</key>
    <string>1.0.0</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.ZevrixLinkOptimizer</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>PkgRootCreator</string>
            <key>Arguments</key>
            <dict>
                <key>pkgroot</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%</string>
                <key>pkgdirs</key>
                <dict>
                    <key>private/tmp/LinkOptimizer</key>
                    <string>0775</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>Copier</string>
            <key>Arguments</key>
            <dict>
                <key>source_path</key>
                <string>%pathname%/LinkOptimizer Installer.app/Contents/Resources/appPackage/LinkOptimizer.app</string>
                <key>destination_path</key>
                <string>%pkgroot%/private/tmp/LinkOptimizer/LinkOptimizer.app</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PkgCreator</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_request</key>
                <dict>
                    <key>pkgname</key>
                    <string>%NAME%-%version%</string>
                    <key>pkgdir</key>
                    <string>%RECIPE_CACHE_DIR%</string>
                    <key>id</key>
                    <string>%BUNDLE_ID%</string>
                    <key>options</key>
                    <string>purge_ds_store</string>
                    <key>scripts</key>
                    <string>LinkOptimizer_Scripts</string>
                    <key>chown</key>
                    <array>
                        <dict>
                            <key>path</key>
                            <string>private/tmp/LinkOptimizer</string>
                            <key>user</key>
                            <string>root</string>
                            <key>group</key>
                            <string>admin</string>
                        </dict>
                    </array>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PathDeleter</string>
            <key>Arguments</key>
            <dict>
                <key>path_list</key>
                <array>
                    <string>%RECIPE_CACHE_DIR%/%NAME%</string>
                </array>
            </dict>
        </dict>
    </array>
</dict>
</plist>

Zevrix LinkOptimizer/Zevrix LinkOptimizer.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of Zevrix LinkOptimizer and imports it into Munki.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.ZevrixLinkOptimizer</string>
    <key>Input</key>
    <dict>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>NAME</key>
        <string>LinkOptimizer</string>
        <key>pkginfo</key>
        <dict>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>Reduce InDesign link size; convert image colors, formats and more.</string>
            <key>developer</key>
            <string>Zevrix</string>
            <key>display_name</key>
            <string>LinkOptimizer</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>1.0.0</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.pkg.ZevrixLinkOptimizer</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%pkg_path%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
        </dict>
    </array>
</dict>
</plist>

Zevrix LinkOptimizer/Zevrix LinkOptimizer.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of Zevrix LinkOptimizer.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.ZevrixLinkOptimizer</string>
    <key>Input</key>
    <dict>
        <key>DOWNLOAD_URL</key>
        <string>https://zevrix.com/LinkOptimizer.dmg</string>
        <key>NAME</key>
        <string>LinkOptimizer</string>
    </dict>
    <key>MinimumVersion</key>
    <string>1.0.0</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>DeprecationWarning</string>
            <key>Arguments</key>
            <dict>
                <key>warning_message</key>
                <string>These recipes have been replaced with: https://github.com/autopkg/dataJAR-recipes/tree/master/Zevrix%20LinkOptimizer%206</string>
             </dict>
        </dict>
        <dict>   
            <key>Processor</key>   
            <string>StopProcessingIf</string>   
            <key>Arguments</key>   
            <dict>   
                <key>predicate</key>   
                <string>TRUEPREDICATE</string>
            </dict>
        </dict>
        <dict>
            <key>Arguments</key>
            <dict>
                <key>filename</key>
                <string>%NAME%.dmg</string>
                <key>url</key>
                <string>%DOWNLOAD_URL%</string>
            </dict>
            <key>Processor</key>
            <string>URLDownloader</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
        <dict>
            <key>Arguments</key>
            <dict>
                <key>input_path</key>
                <string>%pathname%/LinkOptimizer Installer.app/Contents/Resources/appPackage/LinkOptimizer.app</string>
                <key>requirement</key>
                <string>identifier "com.zevrix.LinkOptimizer6" and anchor apple generic and 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] = "8L6S43KNS9"</string>
            </dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
        </dict>
        <dict>
            <key>Arguments</key>
            <dict>
                <key>input_plist_path</key>
                <string>%pathname%/LinkOptimizer Installer.app/Contents/Resources/appPackage/LinkOptimizer.app/Contents/Info.plist</string>
                <key>plist_version_key</key>
                <string>CFBundleShortVersionString</string>
            </dict>
            <key>Processor</key>
            <string>Versioner</string>
        </dict>
    </array>
</dict>
</plist>

Zevrix LinkOptimizer/Zervix LinkOptimizer.png METASEP

Zevrix LinkOptimizer 6/Zevrix LinkOptimizer 6.pkg.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of Zevrix LinkOptimizer 6 and creates a package.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.pkg.Zevrix LinkOptimizer 6</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>LinkOptimizer</string>
    </dict>
    <key>MinimumVersion</key>
    <string>1.0.0</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.Zevrix LinkOptimizer 6</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>PkgRootCreator</string>
            <key>Arguments</key>
            <dict>
                <key>pkgroot</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%</string>
                <key>pkgdirs</key>
                <dict>
                    <key>private/tmp/LinkOptimizer</key>
                    <string>0775</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>Copier</string>
            <key>Arguments</key>
            <dict>
                <key>source_path</key>
                <string>%pathname%/LinkOptimizer Installer.app/Contents/Resources/appPackage/LinkOptimizer.app</string>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%/private/tmp/LinkOptimizer/LinkOptimizer.app</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PkgCreator</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_request</key>
                <dict>
                    <key>pkgname</key>
                    <string>%NAME%-%version%</string>
                    <key>pkgdir</key>
                    <string>%RECIPE_CACHE_DIR%</string>
                    <key>id</key>
                    <string>%bundleid%</string>
                    <key>options</key>
                    <string>purge_ds_store</string>
                    <key>scripts</key>
                    <string>Scripts</string>
                    <key>chown</key>
                    <array>
                        <dict>
                            <key>path</key>
                            <string>private/tmp/LinkOptimizer</string>
                            <key>user</key>
                            <string>root</string>
                            <key>group</key>
                            <string>admin</string>
                        </dict>
                    </array>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PathDeleter</string>
            <key>Arguments</key>
            <dict>
                <key>path_list</key>
                <array>
                    <string>%RECIPE_CACHE_DIR%/%NAME%</string>
                </array>
            </dict>
        </dict>
    </array>
</dict>
</plist>
Zevrix LinkOptimizer 6/Zevrix LinkOptimizer 6.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of Zevrix LinkOptimizer 6 and imports it into Munki.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.Zevrix LinkOptimizer 6</string>
    <key>Input</key>
    <dict>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>NAME</key>
        <string>ZevrixLinkOptimizer6</string>
        <key>pkginfo</key>
        <dict>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>Reduce InDesign link size; convert image colors, formats and more.</string>
            <key>developer</key>
            <string>Zevrix</string>
            <key>display_name</key>
            <string>LinkOptimizer</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
            <key>unattended_uninstall</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>1.0.0</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.pkg.Zevrix LinkOptimizer 6</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%pkg_path%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>
Zevrix LinkOptimizer 6/Zevrix LinkOptimizer 6.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of Zevrix LinkOptimizer 6.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.Zevrix LinkOptimizer 6</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>ZevrixLinkOptimizer6</string>
    </dict>
    <key>MinimumVersion</key>
    <string>1.0.0</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>URLTextSearcher</string>
            <key>Arguments</key>
            <dict>
                <key>re_pattern</key>
                <string>/LinkOptimizer\.dmg</string>
                <key>url</key>
                <string>https://zevrix.com</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>URLDownloader</string>
            <key>Arguments</key>
            <dict>
                <key>url</key>
                <string>https://zevrix.com/%match%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
            <key>Arguments</key>
            <dict>
                <key>input_path</key>
                <string>%pathname%/LinkOptimizer Installer.app/Contents/Resources/appPackage/LinkOptimizer.app</string>
                <key>requirement</key>
                <string>identifier "com.zevrix.LinkOptimizer6" and anchor apple generic and 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] = "8L6S43KNS9"</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PlistReader</string>
            <key>Arguments</key>
            <dict>
                <key>info_path</key>
                <string>%pathname%/LinkOptimizer Installer.app/Contents/Resources/appPackage/LinkOptimizer.app/Contents/Info.plist</string>
                <key>plist_keys</key>
                <dict>
                    <key>CFBundleIdentifier</key>
                    <string>bundleid</string>
                    <key>CFBundleShortVersionString</key>
                    <string>version</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Comment</key>
            <string>If the bundleid != com.zevrix.LinkOptimizer6, then the recipe will stop here</string>
            <key>Processor</key>   
            <string>StopProcessingIf</string>   
            <key>Arguments</key>   
            <dict>   
                <key>predicate</key>   
                <string>%bundleid% = "com.zevrix.LinkOptimizer6"</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>
ZYLIA Studio/ZYLIA Studio.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of ZYLIA Studio and imports it into Munki.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.ZYLIA Studio</string>
    <key>Input</key>
    <dict>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>NAME</key>
        <string>ZYLIAStudio</string>
        <key>pkginfo</key>
        <dict>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>ZYLIA Studio is a dedicated application which enables recording and processing of every tune created by the band. 
​You can also separate your tracks using ZYLIA Studio.</string>
            <key>developer</key>
            <string>ZYLIA</string>
            <key>display_name</key>
            <string>ZYLIA Studio</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
            <key>unattended_uninstall</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.ZYLIA Studio</string>
    <key>Process</key>
    <array>
    	<dict>
            <key>Processor</key>
            <string>MunkiInstallsItemsCreator</string>
            <key>Arguments</key>
            <dict>
                <key>faux_root</key>
                <string>%RECIPE_CACHE_DIR%</string>
                <key>installs_item_paths</key>
                <array>
                    <string>/Applications/ZYLIA Studio.app</string>
                </array>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiPkginfoMerger</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiPkginfoMerger</string>
            <key>Arguments</key>
            <dict>
                <key>additional_pkginfo</key>
                <dict>
                    <key>version</key>
                    <string>%version%</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%pathname%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PathDeleter</string>
            <key>Arguments</key>
            <dict>
                <key>path_list</key>
                <array>
                    <string>%RECIPE_CACHE_DIR%/Applications</string>
                    <string>%RECIPE_CACHE_DIR%/pkg-unpack</string>
                </array>
            </dict>
        </dict>
    </array>
</dict>
</plist>
ZYLIA Studio/ZYLIA Studio.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of ZYLIA Studio.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.ZYLIA Studio</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>ZYLIAStudio</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>URLTextSearcher</string>
            <key>Arguments</key>
            <dict>
                <key>re_pattern</key>
                <string>href=&quot;(https:\/\/oc\.zylia\.pl\/index\.php\/s\/\S.*)&quot;&gt;ZYLIA Studio .*&lt;br \/&gt;&amp;#8203;for Mac OS X&lt;\/a&gt;&lt;\/div&gt;</string>
                <key>url</key>
                <string>https://www.zylia.co/zylia-studio-download.html</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>URLDownloader</string>
            <key>Arguments</key>
            <dict>
            	<key>filename</key>
            	<string>%NAME%.pkg</string>
                <key>url</key>
                <string>%match%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
        <dict>   
			<key>Processor</key>   
			<string>CodeSignatureVerifier</string>   
			<key>Arguments</key>   
			<dict>   
				<key>input_path</key>   
				<string>%pathname%</string>
				<key>expected_authority_names</key>
				<array>
					<string>Developer ID Installer: ZYLIA SP Z O O (2J3Y9E4AS7)</string>
					<string>Developer ID Certification Authority</string>
					<string>Apple Root CA</string>
				</array>
			</dict>
		</dict>
        <dict>
            <key>Processor</key>
            <string>FlatPkgUnpacker</string>
            <key>Arguments</key>
            <dict>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/pkg-unpack</string>
                <key>flat_pkg_path</key>
                <string>%pathname%</string>
                <key>purge_destination</key>
                <string>true</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PkgPayloadUnpacker</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_payload_path</key>
                <string>%RECIPE_CACHE_DIR%/pkg-unpack/zylia-studio.pkg/Payload</string>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/Applications/ZYLIA Studio.app</string>
                <key>purge_destination</key>
                <string>true</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>Versioner</string>
            <key>Arguments</key>
            <dict>
                <key>input_plist_path</key>
                <string>%destination_path%/Contents/Info.plist</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>
Youlean Loudness Meter 2/Youlean Loudness Meter 2.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest release of Youlean Loudness Meter 2 and imports into Munki</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.Youlean Loudness Meter 2</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>Youlean Loudness Meter 2</string>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>pkginfo</key>
        <dict>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>Youlean Loudness Meter helps you find the true perceived loudness of your audio and prepares it for TV or streaming services release.</string>
            <key>display_name</key>
            <string>Youlean Loudness Meter 2</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
            <key>unattended_uninstall</key>
            <true/>
            <key>uninstall_method</key>
            <string>uninstall_script</string>
            <key>uninstall_script</key>
            <string>#!/bin/bash

filePaths=('/Applications/Youlean Loudness Meter 2.app'
		   '/Library/Application Support/Avid/Audio/Plug-Ins/Youlean Loudness Meter 2.aaxplugin'
		   '/Library/Audio/Plug-Ins/Components/Youlean Loudness Meter 2.component'
		   '/Library/Audio/Plug-Ins/VST/Youlean Loudness Meter 2.vst'
		   '/Library/Audio/Plug-Ins/VST3/Youlean Loudness Meter 2.vst3')

for filePath in "${filePaths[@]}"
do
	if [ -d "${filePath}" ]
	then
		/bin/echo "Found ${filePath}, deleting..."
		/bin/rm -rf "${filePath}"
	fi
done</string>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.4.1</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.Youlean Loudness Meter 2</string>
    <key>Process</key>
    <array>
        <dict>
			<key>Processor</key>
			<string>FlatPkgUnpacker</string>
			<key>Arguments</key>
			<dict>
				<key>flat_pkg_path</key>
				<string>%found_filename%</string>
				<key>destination_path</key>
				<string>%RECIPE_CACHE_DIR%/unpack</string>
			</dict>
		</dict>
		<dict>
			<key>Processor</key>
			<string>PkgRootCreator</string>
			<key>Arguments</key>
			<dict>
				<key>pkgroot</key>
				<string>%RECIPE_CACHE_DIR%/pkgroot</string>
				<key>pkgdirs</key>
				<dict>
					<key>Applications</key>
					<string>0755</string>
				</dict>
			</dict>
		</dict>
		<dict>
			<key>Processor</key>
			<string>PkgPayloadUnpacker</string>
			<key>Arguments</key>
			<dict>
				<key>destination_path</key>
				<string>%RECIPE_CACHE_DIR%/pkgroot</string>
				<key>pkg_payload_path</key>
				<string>%RECIPE_CACHE_DIR%/unpack/Application.pkg/Payload</string>
			</dict>
		</dict>
		<dict>
			<key>Processor</key>
			<string>MunkiInstallsItemsCreator</string>
			<key>Arguments</key>
			<dict>
				<key>faux_root</key>
				<string>%RECIPE_CACHE_DIR%/pkgroot</string>
				<key>installs_item_paths</key>
				<array>
					<string>/Applications/Youlean Loudness Meter 2.app</string>
				</array>
			</dict>
		</dict>
		<dict>
			<key>Processor</key>
			<string>MunkiPkginfoMerger</string>
		</dict>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%input_path%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
        </dict>
		<dict>
			<key>Processor</key>
			<string>PathDeleter</string>
			<key>Arguments</key>
			<dict>
				<key>path_list</key>
				<array>
					<string>%RECIPE_CACHE_DIR%/pkgroot</string>
					<string>%RECIPE_CACHE_DIR%/unpack</string>
					<string>%RECIPE_CACHE_DIR%/unzip</string>
				</array>
			</dict>
		</dict>
    </array>
</dict>
</plist>

Youlean Loudness Meter 2/Youlean Loudness Meter 2.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest release of Youlean Loudness Meter 2.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.Youlean Loudness Meter 2</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>Youlean Loudness Meter 2</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.4.1</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>URLTextSearcher</string>
            <key>Arguments</key>
            <dict>
                <key>re_pattern</key>
                <string>https://youlean-.*\.kxcdn\.com/wp-content/uploads/.*/Youlean-Loudness-Meter-2-.*-macOS.*\.zip</string>
                <key>result_output_var_name</key>
                <string>url</string>
                <key>url</key>
                <string>https://youlean.co/download-youlean-loudness-meter/</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>URLDownloader</string>
            <key>Arguments</key>
            <dict>
                <key>filename</key>
                <string>%NAME%.zip</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>Unarchiver</string>
            <key>Arguments</key>
            <dict>
                <key>archive_path</key>
                <string>%pathname%</string>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/unzip/</string>
                <key>purge_destination</key>
                <true/>
                <key>archive_format</key>
                <string>zip</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>FileFinder</string>
            <key>Arguments</key>
            <dict>
                <key>pattern</key>
                <string>%RECIPE_CACHE_DIR%/unzip/**/Youlean Loudness Meter 2 - * Installer.pkg</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
            <key>Arguments</key>
            <dict>
                <key>input_path</key>
                <string>%found_filename%</string>
                <key>expected_authority_names</key>
                <array>
                    <string>Developer ID Installer: Julijan Nikolic (S7KN6P3F95)</string>
                    <string>Developer ID Certification Authority</string>
                    <string>Apple Root CA</string>
                </array>
            </dict>
        </dict>
    </array>
</dict>
</plist>
XAMPP/XAMPP.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
    <dict>
        <key>Description</key>
        <string>Downloads the latest version of XAMPP and imports into Munki</string>
        <key>Identifier</key>
        <string>com.github.dataJAR-recipes.munki.XAMPP</string>
        <key>Input</key>
        <dict>
            <key>MUNKI_REPO_SUBDIR</key>
            <string>apps/%NAME%</string>
            <key>NAME</key>
            <string>XAMPP</string>
            <key>pkginfo</key>
            <dict>
                <key>catalogs</key>
                <array>
                    <string>testing</string>
                </array>
                <key>description</key>
                <string>XAMPP is a completely free, easy to install Apache distribution containing MariaDB, PHP, and Perl. The XAMPP open source package has been set up to be incredibly easy to install and to use.</string>
                <key>developer</key>
                <string>Apache Friends</string>
                <key>display_name</key>
                <string>XAMPP</string>
                <key>name</key>
                <string>%NAME%</string>
                <key>unattended_install</key>
                <true></true>
                <key>unattended_uninstall</key>
                <true></true>
            </dict>
        </dict>
        <key>MinimumVersion</key>
        <string>0.5.0</string>
<key>ParentRecipe</key>
<string>com.github.dataJAR-recipes.download.XAMPP</string>
        <key>Process</key>
        <array>
            <dict>
                <key>Arguments</key>
                <dict>
                    <key>pkg_path</key>
                    <string>%pathname%</string>
                    <key>repo_subdirectory</key>
                    <string>%MUNKI_REPO_SUBDIR%</string>
                </dict>
                <key>Processor</key>
                <string>MunkiImporter</string>
            </dict>
        </array>
    </dict>
</plist>
XAMPP/XAMPP.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
    <dict>
        <key>Description</key>
        <string>Downloads the latest version of XAMPP</string>
        <key>Identifier</key>
        <string>com.github.dataJAR-recipes.download.XAMPP</string>
        <key>Input</key>
        <dict>
            <key>NAME</key>
            <string>XAMPP</string>
        </dict>
        <key>MinimumVersion</key>
        <string>0.5.0</string>
        <key>Process</key>
        <array>
            <dict>
                <key>Arguments</key>
                <dict>
                    <key>re_pattern</key>
                    <string>https:\/\/www\.apachefriends\.org\/xampp-files\/\S*\.dmg</string>
                    <key>result_output_var_name</key>
                    <string>match</string>
                    <key>url</key>
                    <string>https://www.apachefriends.org/index.html</string>
                </dict>
                <key>Processor</key>
                <string>URLTextSearcher</string>
            </dict>
            <dict>
                <key>Arguments</key>
                <dict>
                    <key>url</key>
                    <string>%match%</string>
                </dict>
                <key>Processor</key>
                <string>URLDownloader</string>
            </dict>
            <dict>
                <key>Processor</key>
                <string>EndOfCheckPhase</string>
            </dict>
            <dict>
                <key>Arguments</key>
                <dict>
                    <key>input_path</key>
                    <string>%pathname%/XAMPP.app</string>
                    <key>requirement</key>
                    <string>anchor apple generic and identifier "com.bitnami.stackman" and certificate leaf[subject.OU] = "49P7N62XPM"</string>
                </dict>
                <key>Processor</key>
                <string>CodeSignatureVerifier</string>
            </dict>
        </array>
    </dict>
</plist>
Wondershare Filmora/Wondershare Filmora.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of Wondershare Filmora and imports into Munki.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.Wondershare Filmora</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>WondershareFilmora</string>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>pkginfo</key>
        <dict>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>Create Without Limits.</string>
            <key>display_name</key>
            <string>Wondershare Filmora </string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
            <key>unattended_uninstall</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.2.0</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.Wondershare Filmora</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%pathname%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>
Wondershare Filmora/Wondershare Filmora.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads latest version of the Wondershare Filmora.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.Wondershare Filmora</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>WondershareFilmora</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.2.0</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>DeprecationWarning</string>
            <key>Arguments</key>
            <dict>
                <key>warning_message</key>
                <string>The .app is now Wondershare Filmora X.app and not Wondershare Filmora.app, and OS requirements have changed. Created new recipes for this new .app: https://github.com/autopkg/dataJAR-recipes/tree/master/Wondershare%20Filmora%20X.</string>
            </dict>
        </dict>
        <dict>   
            <key>Processor</key>   
            <string>StopProcessingIf</string>   
            <key>Arguments</key>   
            <dict>   
                <key>predicate</key>   
                <string>TRUEPREDICATE</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>URLTextSearcher</string>
            <key>Arguments</key>
            <dict>
                <key>re_pattern</key>
                <string>http://download\.wondershare\.com/upgrade/filmora-mac_full.*?\.dmg</string>
                <key>result_output_var_name</key>
                <string>url</string>
                <key>url</key>
                <string>https://cbs.wondershare.com/go.php?m=upgrade_info&amp;pid=718</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>URLDownloader</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
            <key>Arguments</key>
            <dict>
                <key>input_path</key>
                <string>%pathname%/Wondershare Filmora.app</string>
                <key>requirement</key>
                <string>identifier "com.wondershare.filmora" and anchor apple generic and 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] = YZC2T44ZDX</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>
Wondershare Filmora X/Wondershare Filmora X.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of Wondershare Filmora X and imports into Munki.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.Wondershare Filmora X</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>WondershareFilmora X</string>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>pkginfo</key>
        <dict>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>Create Without Limits.</string>
            <key>display_name</key>
            <string>Wondershare Filmora X</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
            <key>unattended_uninstall</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.2.0</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.Wondershare Filmora X</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%pathname%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>

Wondershare Filmora X/Wondershare Filmora X.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads latest version of the Wondershare Filmora X.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.Wondershare Filmora X</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>WondershareFilmora X</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.2.0</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>URLTextSearcher</string>
            <key>Arguments</key>
            <dict>
                <key>re_pattern</key>
                <string>http://download\.wondershare\.com/upgrade/filmora-mac_full[0-9]+\.dmg</string>
                <key>result_output_var_name</key>
                <string>match</string>
                <key>url</key>
                <string>http://cbs.wondershare.com/go.php?m=upgrade_info&amp;pid=718</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>URLDownloader</string>
            <key>Arguments</key>
            <dict>
                <key>url</key>
                <string>%match%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
            <key>Arguments</key>
            <dict>
                <key>input_path</key>
                <string>%pathname%/Wondershare Filmora X.app</string>
                <key>requirement</key>
                <string>identifier "com.wondershare.filmoramac" and anchor apple generic and 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] = YZC2T44ZDX</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>

Wing 101/Wing 101.png METASEP

Wing 101/Wing 101.pkg.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of Wing 101 and creates a package.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.pkg.Wing 101</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>Wing 101</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.Wing 101</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>PkgRootCreator</string>
            <key>Arguments</key>
            <dict>
                <key>pkgdirs</key>
                <dict>
                    <key>Applications</key>
                    <string>0775</string>
                </dict>
                <key>pkgroot</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>Copier</string>
            <key>Arguments</key>
            <dict>
                <key>destination_path</key>
                <string>%pkgroot%/Applications/Wing101.app</string>
                <key>source_path</key>
                <string>%RECIPE_CACHE_DIR%/downloads/%NAME%.dmg/Wing101.app</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PlistReader</string>
            <key>Arguments</key>
            <dict>
                <key>info_path</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%/Applications/Wing101.app</string>
                <key>plist_keys</key>
                <dict>
                    <key>CFBundleVersion</key>
                    <string>version</string>
                    <key>CFBundleIdentifier</key>
                    <string>bundleid</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PkgCreator</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_request</key>
                <dict>
                    <key>chown</key>
                    <array>
                        <dict>
                            <key>group</key>
                            <string>admin</string>
                            <key>path</key>
                            <string>Applications</string>
                            <key>user</key>
                            <string>root</string>
                        </dict>
                    </array>
                    <key>id</key>
                    <string>%bundleid%</string>
                    <key>options</key>
                    <string>purge_ds_store</string>
                    <key>pkgname</key>
                    <string>%NAME%-%version%</string>
                    <key>pkgroot</key>
                    <string>%RECIPE_CACHE_DIR%/%NAME%</string>
                    <key>version</key>
                    <string>%version%</string>
                </dict>
            </dict>
        </dict>
    </array>
</dict>
</plist>

Wing 101/Wing 101.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of Wing 101 and imports it into Munki.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.Wing 101</string>
    <key>Input</key>
    <dict>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>NAME</key>
        <string>Wing 101</string>
        <key>pkginfo</key>
        <dict>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>Wing is a Python IDE with powerful debugger and intelligent editor that make interactive Python development fast, accurate, and fun.</string>
            <key>developer</key>
            <string>Wingware</string>
            <key>display_name</key>
            <string>Wing 101</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>postinstall_script</key>
            <string>#!/bin/bash
#
# Copyright (c) 2021, dataJAR Ltd.  All rights reserved.
#

# Delete old app, if found

oldApp="/Applications/Wing101.app"

if [ -d "${oldApp}" ]
then
    /bin/echo "Found ${oldApp}, deleting..."
    /bin/rm -rf "${oldApp}"
    /bin/echo "Deleted, ${oldApp}..."
fi</string>
            <key>unattended_install</key>
            <true/>
            <key>unattended_uninstall</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.Wing 101</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%pathname%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>
Wing 101/Wing 101.jss.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the current release version of Wing 101 and builds a package. Then, uploads to the JSS.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.jss.Wing 101</string>
    <key>Input</key>
    <dict>
        <key>CATEGORY</key>
        <string>Development</string>
        <key>GROUP_NAME</key>
        <string>%NAME%-update-smart</string>
        <key>GROUP_TEMPLATE</key>
        <string>Wing 101-SmartGroupTemplate.xml</string>
        <key>NAME</key>
        <string>Wing 101</string>
        <key>POLICY_CATEGORY</key>
        <string>Testing</string>
        <key>POLICY_TEMPLATE</key>
        <string>PolicyTemplate.xml</string>
        <key>SELF_SERVICE_DESCRIPTION</key>
        <string>Wing is a Python IDE with powerful debugger and intelligent editor that make interactive Python development fast, accurate, and fun.</string>
        <key>SELF_SERVICE_ICON</key>
        <string>Wing 101.png</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.pkg.Wing 101</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>JSSImporter</string>
            <key>Arguments</key>
            <dict>
                <key>category</key>
                <string>%CATEGORY%</string>
                <key>extension_attributes</key>
                <array>
                    <dict>
                        <key>ext_attribute_path</key>
                        <string>Wing 101-ExtensionAttribute.xml</string>
                    </dict>
                </array>
                <key>groups</key>
                <array>
                    <dict>
                        <key>name</key>
                        <string>%GROUP_NAME%</string>
                        <key>smart</key>
                        <true/>
                        <key>template_path</key>
                        <string>%GROUP_TEMPLATE%</string>
                    </dict>
                </array>
                <key>policy_category</key>
                <string>%POLICY_CATEGORY%</string>
                <key>policy_template</key>
                <string>%POLICY_TEMPLATE%</string>
                <key>prod_name</key>
                <string>%NAME%</string>
                <key>self_service_description</key>
                <string>%SELF_SERVICE_DESCRIPTION%</string>
                <key>self_service_icon</key>
                <string>%SELF_SERVICE_ICON%</string>
                <key>version</key>
                <string>%version%</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>

Wing 101/Wing 101.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Download recipe for Wing 101.
Set the ARCHITECTURE override to "intel" to download the Intel or "arm64" for Apple Silicon.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.Wing 101</string>
    <key>Input</key>
    <dict>
        <key>ARCHITECTURE</key>
        <string>intel</string>
        <key>NAME</key>
        <string>Wing 101</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.2.0</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>URLTextSearcher</string>
            <key>Arguments</key>
            <dict>
                <key>url</key>
                <string>https://wingware.com/pub/wing-101/?C=M;O=D</string>
                <key>re_pattern</key>
                <string>&lt;img src=\&quot;/icons/folder\.gif\&quot; alt=\&quot;\[DIR\]\&quot;&gt;&lt;/td&gt;&lt;td&gt;&lt;a href=\&quot;.*/\&quot;&gt;(.*)/&lt;</string>
                <key>result_output_var_name</key>
                <string>first_match</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>URLTextSearcher</string>
            <key>Arguments</key>
            <dict>
                <key>url</key>
                <string>https://wingware.com/pub/wing-101/%first_match%</string>
                <key>re_pattern</key>
                <string>href=\"(.*-%ARCHITECTURE%\.dmg)\"</string>
                <key>result_output_var_name</key>
                <string>second_match</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>URLDownloader</string>
            <key>Arguments</key>
            <dict>
                <key>url</key>
                <string>https://wingware.com/pub/wing-101/%first_match%/%second_match%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
            <key>Arguments</key>
            <dict>
                <key>input_path</key>
                <string>%pathname%/Wing 101.app</string>
                <key>requirement</key>
                <string>identifier "com.wingware.wing-101" and anchor apple generic and 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] = "9D63R52894"</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>

Wing 101/Wing 101-SmartGroupTemplate.xml METASEP
<computer_group>
    <name>%group_name%</name>
    <is_smart>true</is_smart>
    <criteria>
        <criterion>
            <name>Wing101Version</name>
            <priority>0</priority>
            <and_or>and</and_or>
            <search_type>is not</search_type>
            <value>%VERSION%</value>
        </criterion>
        <criterion>
            <name>Wing101Version</name>
            <priority>1</priority>
            <and_or>and</and_or>
            <search_type>is not</search_type>
            <value></value>
        </criterion>
        <criterion>
            <name>Computer Group</name>
            <priority>2</priority>
            <and_or>and</and_or>
            <search_type>member of</search_type>
            <value>Testing</value>
        </criterion>
    </criteria>
</computer_group>

Wing 101/Wing 101-ExtensionAttribute.xml METASEP
<computer_extension_attribute>
    <name>Wing101Version</name>
    <description>Returns the CFBundleVersion of Wing 101 if installed.</description>
    <data_type>String</data_type>
    <input_type>
        <type>script</type>
        <platform>Mac</platform>
        <script>#!/bin/bash
Wing101Version=""
if [ -f /Applications/Wing101.app/Contents/Info.plist ]
    then
        Wing101Version=$(/usr/bin/defaults read /Applications/Wing101.app/Contents/Info.plist CFBundleVersion)
fi

/bin/echo "&lt;result&gt;$Wing101Version&lt;/result&gt;"

exit 0</script>
    </input_type>
    <inventory_display>Extension Attributes</inventory_display>
    <recon_display>Extension Attributes</recon_display>
</computer_extension_attribute>

WiFi Explorer Pro 3/WiFi Explorer Pro 3.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of WiFi Explorer Pro 3 and imports it into Munki.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.WiFi Explorer Pro 3</string>
    <key>Input</key>
    <dict>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>NAME</key>
        <string>WiFiExplorerPro3</string>
        <key>pkginfo</key>
        <dict>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>WiFi Explorer Pro 3 is a Wi-Fi scanner and analyzer for Mac built to assist WLAN and IT professionals in the design, validation and troubleshooting of wireless networks.</string>
            <key>developer</key>
            <string>Intuitibits LLC</string>
            <key>display_name</key>
            <string>WiFi Explorer Pro 3</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
            <key>unattended_uninstall</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>1.0.0</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.WiFi Explorer Pro 3</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>DmgCreator</string>
            <key>Arguments</key>
            <dict>
                <key>dmg_path</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%.dmg</string>
                <key>dmg_root</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%/Applications/</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%dmg_path%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PathDeleter</string>
            <key>Arguments</key>
            <dict>
                <key>path_list</key>
                <array>
                    <string>%RECIPE_CACHE_DIR%/%NAME%/</string>
                </array>
            </dict>
        </dict>
    </array>
</dict>
</plist>
WiFi Explorer Pro 3/WiFi Explorer Pro 3.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads latest version of WiFi Explorer Pro 3.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.WiFi Explorer Pro 3</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>WiFiExplorerPro3</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>SparkleUpdateInfoProvider</string>
            <key>Arguments</key>
            <dict>
                <key>appcast_url</key>
                <string>https://www.intuitibits.com/appcasts/com.intuitibits.wifiexplorerpro3cast.xml</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>URLDownloader</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>Unarchiver</string>
            <key>Arguments</key>
            <dict>
                <key>archive_path</key>
                <string>%pathname%</string>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%/Applications/</string>
                <key>purge_destination</key>
                <true/>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
            <key>Arguments</key>
            <dict>
                <key>input_path</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%/Applications/WiFi Explorer Pro 3.app</string>
                <key>requirement</key>
                <string>anchor apple generic and identifier "com.intuitibits.wifiexplorerpro3" 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] = "2B9R362QNU")</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>
Webroot SecureAnywhere/Webroot SecureAnywhere.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>Description</key>
	<string>Downloads the current release version of Webroot SecureAnywhere and imports into Munki.</string>
	<key>Identifier</key>
	<string>com.github.dataJAR-recipes.munki.Webroot SecureAnywhere</string>
	<key>MinimumVersion</key>
	<string>0.6.1</string>
	<key>Input</key>
	<dict>
		<key>MUNKI_REPO_SUBDIR</key>
		<string>apps/%NAME%</string>
		<key>NAME</key>
		<string>WebrootSecureAnywhere</string>
		<key>pkginfo</key>
		<dict>
			<key>catalogs</key>
			<array>
				<string>testing</string>
			</array>
			<key>description</key>
			<string>Full-scale antivirus security.</string>
			<key>developer</key>
			<string>Webroot Inc</string>
			<key>display_name</key>
			<string>Webroot SecureAnywhere</string>
			<key>name</key>
			<string>%NAME%</string>
			<key>unattended_install</key>
			<true/>
			<key>unattended_uninstall</key>
			<true/>
		</dict>
	</dict>
	<key>MinimumVersion</key>
	<string>0.6.1</string>
	<key>ParentRecipe</key>
	<string>com.github.dataJAR-recipes.download.Webroot SecureAnywhere</string>
	<key>Process</key>
	<array>
		<dict>
			<key>Processor</key>
			<string>MunkiImporter</string>
			<key>Arguments</key>
			<dict>
				<key>pkg_path</key>
				<string>%pathname%</string>
				<key>repo_subdirectory</key>
				<string>%MUNKI_REPO_SUBDIR%</string>
			</dict>
		</dict>
	</array>
</dict>
</plist>
Webroot SecureAnywhere/Webroot SecureAnywhere.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the current release version of Webroot SecureAnywhere.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.Webroot SecureAnywhere</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>WebrootSecureAnywhere</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>URLDownloader</string>
            <key>Arguments</key>
            <dict>
                <key>url</key>
                <string>http://anywhere.Webrootcloudav.com/zerol/wsamac.dmg</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
            <key>Arguments</key>
            <dict>
                <key>input_path</key>
                <string>%pathname%/Webroot SecureAnywhere.app</string>
                <key>requirement</key>
                <string>identifier "com.webroot.Webroot-SecureAnywhere" and anchor apple generic and 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] = "6Q6RVXVYC2"</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>
Webrecorder Player/WebrecorderPlayer.png METASEP

Webrecorder Player/Webrecorder Player.pkg.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of Webrecorder Player and creates a package.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.pkg.Webrecorder Player</string>
    <key>Input</key>
    <dict>
        <key>BUNDLE_ID</key>
        <string>org.webrecorder.webrecorderplayer</string>
        <key>NAME</key>
        <string>WebrecorderPlayer</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.Webrecorder Player</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>PkgRootCreator</string>
            <key>Arguments</key>
            <dict>
                <key>pkgroot</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%</string>
                <key>pkgdirs</key>
                <dict>
                    <key>Applications</key>
                    <string>0775</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>Copier</string>
            <key>Arguments</key>
            <dict>
                <key>source_path</key>
                <string>%pathname%/Webrecorder Player.app</string>
                <key>destination_path</key>
                <string>%pkgroot%/Applications/Webrecorder Player.app</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PkgCreator</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_request</key>
                <dict>
                    <key>pkgname</key>
                    <string>%NAME%-%version%</string>
                    <key>pkgdir</key>
                    <string>%RECIPE_CACHE_DIR%</string>
                    <key>id</key>
                    <string>%BUNDLE_ID%</string>
                    <key>options</key>
                    <string>purge_ds_store</string>
                    <key>chown</key>
                    <array>
                        <dict>
                            <key>path</key>
                            <string>Applications</string>
                            <key>user</key>
                            <string>root</string>
                            <key>group</key>
                            <string>admin</string>
                        </dict>
                    </array>
                </dict>
            </dict>
        </dict>
    </array>
</dict>
</plist>

Webrecorder Player/Webrecorder Player.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of Webrecorder Player and imports it into Munki.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.Webrecorder Player</string>
    <key>Input</key>
    <dict>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>NAME</key>
        <string>WebrecorderPlayer</string>
        <key>pkginfo</key>
        <dict>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>Webrecorder Player is a desktop application for viewing high-fidelity web archives on your local machine, no internet connection required.</string>
            <key>developer</key>
            <string>webrecorderplayer</string>
            <key>display_name</key>
            <string>Webrecorder Player</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
            <key>unattended_uninstall</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.Webrecorder Player</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%pathname%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
        </dict>
    </array>
</dict>
</plist>
Webrecorder Player/Webrecorder Player.jss.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the current release version of Webrecorder Player and then uploads to the JSS</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.jss.Webrecorder Player</string>
    <key>Input</key>
    <dict>
        <key>CATEGORY</key>
        <string>Productivity</string>
        <key>GROUP_NAME</key>
        <string>%NAME%-update-smart</string>
        <key>GROUP_TEMPLATE</key>
        <string>SmartGroupTemplate.xml</string>
        <key>NAME</key>
        <string>Webrecorder Player</string>
        <key>POLICY_CATEGORY</key>
        <string>Testing</string>
        <key>POLICY_TEMPLATE</key>
        <string>PolicyTemplate.xml</string>
        <key>SELF_SERVICE_DESCRIPTION</key>
        <string>Webrecorder Player is a desktop application for viewing high-fidelity web archives on your local machine, no internet connection required.</string>
        <key>SELF_SERVICE_ICON</key>
        <string>WebrecorderPlayer.png</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.2.0</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.pkg.Webrecorder Player</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Arguments</key>
            <dict>
                <key>category</key>
                <string>%CATEGORY%</string>
                <key>groups</key>
                <array>
                    <dict>
                        <key>name</key>
                        <string>%GROUP_NAME%</string>
                        <key>smart</key>
                        <true/>
                        <key>template_path</key>
                        <string>%GROUP_TEMPLATE%</string>
                    </dict>
                </array>
                <key>policy_category</key>
                <string>%POLICY_CATEGORY%</string>
                <key>policy_template</key>
                <string>%POLICY_TEMPLATE%</string>
                <key>prod_name</key>
                <string>Webrecorder Player</string>
                <key>self_service_description</key>
                <string>%SELF_SERVICE_DESCRIPTION%</string>
                <key>self_service_icon</key>
                <string>%SELF_SERVICE_ICON%</string>
            </dict>
            <key>Processor</key>
            <string>JSSImporter</string>
        </dict>
    </array>
</dict>
</plist>
Webrecorder Player/Webrecorder Player.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of Webrecorder Player.
Set PRERELEASE to a non-empty string to download prereleases, either
via Input in an override or via the -k option,
i.e.: `-k PRERELEASE=yes`</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.Webrecorder Player</string>
    <key>Input</key>
    <dict>
        <key>PRERELEASE</key>
        <string></string>
        <key>NAME</key>
        <string>WebrecorderPlayer</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>DeprecationWarning</string>
            <key>Arguments</key>
            <dict>
                <key>warning_message</key>
                <string>WebArchivePlayer was replaced by webrecorderplayer in 2018, which has been replaced by ArchiveWeb.page. Recipes for ArchiveWeb.page can be found at: https://github.com/autopkg/dataJAR-recipes/tree/master/ArchiveWeb.page.</string>
            </dict>
        </dict>
        <dict>   
            <key>Processor</key>   
            <string>StopProcessingIf</string>   
            <key>Arguments</key>   
            <dict>   
                <key>predicate</key>   
                <string>TRUEPREDICATE</string>
            </dict>
        </dict>
        <dict>
            <key>Arguments</key>
            <dict>
                <key>github_repo</key>
                <string>webrecorder/webrecorder-player</string>
                <key>include_prereleases</key>
                <string>%PRERELEASE%</string>
                <key>asset_regex</key>
                <string>[\S]+\.dmg</string>
            </dict>
            <key>Processor</key>
            <string>GitHubReleasesInfoProvider</string>
        </dict>
        <dict>
            <key>Arguments</key>
            <dict>
                <key>filename</key>
                <string>%NAME%-%version%.dmg</string>
            </dict>
            <key>Processor</key>
            <string>URLDownloader</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
            <key>Arguments</key>
            <dict>
                <key>input_path</key>
                <string>%pathname%/Webrecorder Player.app</string>
                <key>requirement</key>
                <string>identifier "org.webrecorder.webrecorderplayer" and anchor apple generic and 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] = NBPRTCWAX7</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>

Waves Central/Waves Central.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of Waves Central and imports into Munki</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.WavesCentral</string>
    <key>Input</key>
    <dict>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>NAME</key>
        <string>WavesCentral</string>
        <key>pkginfo</key>
        <dict>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>Use Waves Central to install and activate the latest version of Waves products.</string>
            <key>developer</key>
            <string>Waves</string>
            <key>display_name</key>
            <string>Waves Central</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>postinstall_script</key>
            <string>#!/bin/bash
#
# Pinched with &lt;3 from: https://github.com/autopkg/moofit-recipes/blob/master/Waves%20Audio/WavesCentral.pkg.recipe#L64-L70
#

/bin/mkdir -p /Library/Application\ Support/Waves/Licenses
/bin/mkdir -p /Applications/Waves/Data/Instrument\ Data/Waves\ Sample\ Libraries

/bin/chmod -R 777 /Library/Application\ Support/Waves/
/bin/chmod -R 777 /Applications/Waves</string>
            <key>unattended_install</key>
            <true/>
            <key>unattended_uninstall</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.5.0</string>
    <key>ParentRecipe</key>
    <string>com.github.moofit-recipes.download.WavesCentral</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%pathname%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>
WaveLab LE 9/WaveLab LE 9.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of WaveLab LE 9 and imports into Munki.

    WaveLab LE 9.5 whilst an update for this, it is also a seperate .app so there are new recipes at:

    https://github.com/autopkg/dataJAR-recipes/tree/master/WaveLab%20LE%209.5</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.WaveLab LE 9</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>WaveLab LE 9</string>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>pkginfo</key>
        <dict>
            <key>blocking_applications</key>
            <array>
                <string>WaveLab LE 9.app</string>
            </array>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>Wavelab LE is the perfect entry into the world of computer-based mastering and editing.</string>
            <key>display_name</key>
            <string>WaveLab LE 9</string>
            <key>developer</key>
            <string>Steinberg Media Technologies GmbH</string>
            <key>minimum_os_version</key>
            <string>10.11</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
            <key>unattended_uninstall</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.WaveLab LE 9</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>PkgCopier</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%.pkg</string>
                <key>source_pkg</key>
                <string>%pathname%/WaveLab LE 9 Update.pkg</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>FlatPkgUnpacker</string>
            <key>Arguments</key>
            <dict>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/unpack/</string>
                <key>flat_pkg_path</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%.pkg</string>
                <key>purge_destination</key>
                <true/>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PkgPayloadUnpacker</string>
            <key>Arguments</key>
            <dict>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/application_payload/Applications</string>
                <key>pkg_payload_path</key>
                <string>%RECIPE_CACHE_DIR%/unpack/WaveLab LE 9.pkg/Payload</string>
                <key>purge_destination</key>
                <true/>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiInstallsItemsCreator</string>
            <key>Arguments</key>
            <dict>
                <key>faux_root</key>
                <string>%RECIPE_CACHE_DIR%/application_payload</string>
                <key>installs_item_paths</key>
                <array>
                    <string>/Applications/WaveLab LE 9.app</string>
                </array>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiPkginfoMerger</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PlistReader</string>
            <key>Arguments</key>
            <dict>
                <key>info_path</key>
                <string>%RECIPE_CACHE_DIR%/application_payload/Applications/WaveLab LE 9.app/Contents/Info.plist</string>
                <key>plist_keys</key>
                <dict>
                    <key>CFBundleShortVersionString</key>
                    <string>version</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiPkginfoMerger</string>
            <key>Arguments</key>
            <dict>
                <key>additional_pkginfo</key>
                <dict>
                    <key>version</key>
                    <string>%version%</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%.pkg</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PathDeleter</string>
            <key>Arguments</key>
            <dict>
                <key>path_list</key>
                <array>
                <string>%RECIPE_CACHE_DIR%/application_payload/</string>
                <string>%RECIPE_CACHE_DIR%/unpack</string>
                </array>
            </dict>
        </dict>
    </array>
</dict>
</plist>
WaveLab LE 9/WaveLab LE 9.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Download recipe for the latest version of WaveLab LE 9</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.WaveLab LE 9</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>WaveLabLE9</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>URLTextSearcher</string>
            <key>Arguments</key>
            <dict>
                <key>re_pattern</key>
                <string>https://download\.steinberg\.net/downloads_software/WaveLab_LE_9/.*?/Mac/WaveLab_LE_9.*?_Update_mac\.dmg</string>
                <key>result_output_var_name</key>
                <string>url</string>
                <key>url</key>
                <string>https://www.steinberg.net/en/support/downloads/wavelab_9.html</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>URLDownloader</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
            <key>Arguments</key>
            <dict>
                <key>expected_authority_names</key>
                <array>
                    <string>Developer ID Installer: Steinberg Media Technologies GmbH (5PMY476BJ6)</string>
                    <string>Developer ID Certification Authority</string>
                    <string>Apple Root CA</string>
                </array>
                <key>input_path</key>
                <string>%pathname%/WaveLab LE 9 Update.pkg</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>
WaveLab LE 9.5/WaveLab LE 9.5.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of WaveLab LE 9.5 and imports into Munki.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.WaveLab LE 9.5</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>WaveLabLE 9.5</string>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>pkginfo</key>
        <dict>
            <key>blocking_applications</key>
            <array>
                <string>WaveLab LE 9.5.app</string>
            </array>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>Wavelab LE is the perfect entry into the world of computer-based mastering and editing.</string>
            <key>display_name</key>
            <string>WaveLab LE 9.5</string>
            <key>developer</key>
            <string>Steinberg Media Technologies GmbH</string>
            <key>minimum_os_version</key>
            <string>10.11</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
            <key>unattended_uninstall</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.WaveLab LE 9.5</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>PkgCopier</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%.pkg</string>
                <key>source_pkg</key>
                <string>%pathname%/WaveLab LE 9.5 Update.pkg</string>
            </dict>
        </dict>
            <dict>
            <key>Processor</key>
            <string>FlatPkgUnpacker</string>
            <key>Arguments</key>
            <dict>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/unpack/</string>
                <key>flat_pkg_path</key>
                <string>%pkg_path%</string>
                <key>purge_destination</key>
                <true/>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PkgPayloadUnpacker</string>
            <key>Arguments</key>
            <dict>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/application_payload/Applications</string>
                <key>pkg_payload_path</key>
                <string>%RECIPE_CACHE_DIR%/unpack/WaveLab LE 9.5.app.pkg/Payload</string>
                <key>purge_destination</key>
                <true/>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiInstallsItemsCreator</string>
            <key>Arguments</key>
            <dict>
                <key>faux_root</key>
                <string>%RECIPE_CACHE_DIR%/application_payload</string>
                <key>installs_item_paths</key>
                <array>
                    <string>/Applications/WaveLab LE 9.5.app</string>
                </array>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiPkginfoMerger</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PlistReader</string>
            <key>Arguments</key>
            <dict>
                <key>info_path</key>
                <string>%RECIPE_CACHE_DIR%/application_payload/Applications/WaveLab LE 9.5.app/Contents/Info.plist</string>
                <key>plist_keys</key>
                <dict>
                    <key>CFBundleShortVersionString</key>
                    <string>version</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Arguments</key>
            <dict>
                <key>additional_pkginfo</key>
                <dict>
                    <key>version</key>
                    <string>%version%</string>
                </dict>
            </dict>
            <key>Processor</key>
            <string>MunkiPkginfoMerger</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%.pkg</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PathDeleter</string>
            <key>Arguments</key>
            <dict>
                <key>path_list</key>
                <array>
                    <string>%RECIPE_CACHE_DIR%/application_payload/</string>
                    <string>%RECIPE_CACHE_DIR%/unpack</string>
                </array>
            </dict>
        </dict>
    </array>
</dict>
</plist>
WaveLab LE 9.5/WaveLab LE 9.5.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Download recipe for the latest version of WaveLab LE 9.5.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.WaveLab LE 9.5</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>WaveLabLE9.5</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>URLTextSearcher</string>
            <key>Arguments</key>
            <dict>
                <key>re_pattern</key>
                <string>https://download.steinberg.net/downloads_software/WaveLab_LE_9.[0-9a-z\.]+\/[0-9a-z\.]+\/WaveLab_LE_[0-9a-z\.]+\_Update_mac.dmg</string>
                <key>result_output_var_name</key>
                <string>url</string>
                <key>url</key>
                <string>https://o.steinberg.net/en/support/downloads/wavelab_9.5.html</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>URLDownloader</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
            <key>Arguments</key>
            <dict>
                <key>expected_authority_names</key>
                <array>
                    <string>Developer ID Installer: Steinberg Media Technologies GmbH (5PMY476BJ6)</string>
                    <string>Developer ID Certification Authority</string>
                    <string>Apple Root CA</string>
                </array>
                <key>input_path</key>
                <string>%pathname%/WaveLab LE 9.5 Update.pkg</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>
WaveLab Elements 9.5/WaveLab Elements 9.5.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of WaveLab Elements 9.5 and imports into Munki.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.WaveLab Elements 9.5</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>WaveLabElements9.5</string>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>pkginfo</key>
        <dict>
            <key>blocking_applications</key>
            <array>
                <string>WaveLab Elements 9.5.app</string>
            </array>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>WaveLab Elements is an audio editing and mastering software, perfectly tailored to hobby musicians, radio freelancers and home studio owners. Based on the approved WaveLab Pro mastering solution, the WaveLab Elements highlights proven editing and analysis tools, a valuable selection of restoration and mastering plug-ins, a CD burning engine and much more — all accessible through an intuitive user interface.</string>
            <key>display_name</key>
            <string>WaveLab Elements 9.5</string>
            <key>developer</key>
            <string>Steinberg Media Technologies GmbH</string>
            <key>minimum_os_version</key>
            <string>10.11</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
            <key>unattended_uninstall</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.WaveLab Elements 9.5</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>PkgCopier</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%.pkg</string>
                <key>source_pkg</key>
                <string>%pathname%/WaveLab Elements 9.5 Update.pkg</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>FlatPkgUnpacker</string>
            <key>Arguments</key>
            <dict>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/unpack/</string>
                <key>flat_pkg_path</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%.pkg</string>
                <key>purge_destination</key>
                <true/>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PkgPayloadUnpacker</string>
            <key>Arguments</key>
            <dict>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/application_payload/Applications</string>
                <key>pkg_payload_path</key>
                <string>%RECIPE_CACHE_DIR%/unpack/WaveLab Elements 9.5.app.pkg/Payload</string>
                <key>purge_destination</key>
                <true/>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiInstallsItemsCreator</string>
            <key>Arguments</key>
            <dict>
                <key>faux_root</key>
                <string>%RECIPE_CACHE_DIR%/application_payload</string>
                <key>installs_item_paths</key>
                <array>
                    <string>/Applications/WaveLab Elements 9.5.app</string>
                </array>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiPkginfoMerger</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PlistReader</string>
            <key>Arguments</key>
            <dict>
                <key>info_path</key>
                <string>%RECIPE_CACHE_DIR%/application_payload/Applications/WaveLab Elements 9.5.app/Contents/Info.plist</string>
                <key>plist_keys</key>
                <dict>
                    <key>CFBundleShortVersionString</key>
                    <string>version</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiPkginfoMerger</string>
            <key>Arguments</key>
            <dict>
                <key>additional_pkginfo</key>
                <dict>
                    <key>version</key>
                    <string>%version%</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%.pkg</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PathDeleter</string>
            <key>Arguments</key>
            <dict>
                <key>path_list</key>
                <array>
                <string>%RECIPE_CACHE_DIR%/application_payload/</string>
                <string>%RECIPE_CACHE_DIR%/unpack</string>
                </array>
            </dict>
        </dict>
    </array>
</dict>
</plist>
WaveLab Elements 9.5/WaveLab Elements 9.5.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Download recipe for the latest version of WaveLab Elements 9.5.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.WaveLab Elements 9.5</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>WaveLabElements9.5</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>URLTextSearcher</string>
            <key>Arguments</key>
            <dict>
                <key>re_pattern</key>
                <string>https:\/\/download\.steinberg\.net\/downloads_software\/WaveLab_Elements_9\.5\/\S*\/WaveLab_Elements_\S*_Update_mac\.dmg</string>
                <key>result_output_var_name</key>
                <string>url</string>
                <key>url</key>
                <string>https://www.steinberg.net/en/support/downloads/wavelab_95.html</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>URLDownloader</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
            <key>Arguments</key>
            <dict>
                <key>input_path</key>
                <string>%pathname%/WaveLab Elements 9.5 Update.pkg</string>
                <key>expected_authority_names</key>
                <array>
                    <string>Developer ID Installer: Steinberg Media Technologies GmbH (5PMY476BJ6)</string>
                    <string>Developer ID Certification Authority</string>
                    <string>Apple Root CA</string>
                </array>
            </dict>
        </dict>
    </array>
</dict>
</plist>
WatchGuard Mobile VPN with SSL/WatchGuardMobileVPNwithSSL.png METASEP

WatchGuard Mobile VPN with SSL/WatchGuard Mobile VPN with SSL.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>Description</key>
	<string>Download recipe for WatchGuard Mobile VPN with SSL and imports it into Munki.</string>
	<key>Identifier</key>
	<string>com.github.dataJAR-recipes.munki.WatchGuard Mobile VPN with SSL</string>
	<key>Input</key>
	<dict>
		<key>MUNKI_REPO_SUBDIR</key>
		<string>apps/%NAME%</string>
		<key>NAME</key>
		<string>WatchGuardMobileVPNwithSSL</string>
		<key>pkginfo</key>
		<dict>
			<key>catalogs</key>
			<array>
				<string>testing</string>
			</array>
			<key>description</key>
			<string>VPN Software for Firebox M400 and M500</string>
			<key>developer</key>
			<string>WatchGuard</string>
			<key>display_name</key>
			<string>WatchGuard Mobile VPN with SSL</string>
			<key>name</key>
			<string>%NAME%</string>
			<key>unattended_install</key>
			<true/>
			<key>unattended_uninstall</key>
			<true/>
		</dict>
	</dict>
	<key>MinimumVersion</key>
	<string>1.0.0</string>
	<key>ParentRecipe</key>
	<string>com.github.dataJAR-recipes.download.WatchGuard Mobile VPN with SSL</string>
	<key>Process</key>
	<array>
		<dict>
			<key>Arguments</key>
			<dict>
				<key>input_plist_path</key>
				<string>%RECIPE_CACHE_DIR%/client_installer_unpack/Applications/WatchGuard/WatchGuard Mobile VPN with SSL.app/Contents/Info.plist</string>
				<key>plist_version_key</key>
				<string>CFBundleShortVersionString</string>
			</dict>
			<key>Processor</key>
			<string>Versioner</string>
		</dict>
		<dict>
			<key>Processor</key>
			<string>MunkiInstallsItemsCreator</string>
			<key>Arguments</key>
			<dict>
				<key>faux_root</key>
				<string>%RECIPE_CACHE_DIR%/client_installer_unpack</string>
				<key>installs_item_paths</key>
				<array>
					<string>/Applications/WatchGuard/WatchGuard Mobile VPN with SSL.app</string>
				</array>
			</dict>
		</dict>
		<dict>
			<key>Processor</key>
			<string>MunkiPkginfoMerger</string>
		</dict>
		<dict>
			<key>Processor</key>
			<string>MunkiPkginfoMerger</string>
			<key>Arguments</key>
			<dict>
				<key>additional_pkginfo</key>
				<dict>
					<key>version</key>
					<string>%version%</string>
				</dict>
			</dict>
		</dict>
		<dict>
			<key>Arguments</key>
			<dict>
				<key>pkg_path</key>
				<string>%RECIPE_CACHE_DIR%/%dmg_found_filename%</string>
				<key>repo_subdirectory</key>
				<string>%MUNKI_REPO_SUBDIR%</string>
				<key>version_comparison_key</key>
				<string>CFBundleShortVersionString</string>
			</dict>
			<key>Processor</key>
			<string>MunkiImporter</string>
		</dict>
		<dict>
			<key>Arguments</key>
			<dict>
				<key>path_list</key>
				<array>
					<string>%RECIPE_CACHE_DIR%/installer_unpack/</string>
					<string>%RECIPE_CACHE_DIR%/client_installer_unpack/</string>
				</array>
			</dict>
			<key>Processor</key>
			<string>PathDeleter</string>
		</dict>
	</array>
</dict>
</plist>

WatchGuard Mobile VPN with SSL/WatchGuard Mobile VPN with SSL.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>Description</key>
	<string>Download recipe for WatchGuard Mobile VPN with SSL.</string>
	<key>Identifier</key>
	<string>com.github.dataJAR-recipes.download.WatchGuard Mobile VPN with SSL</string>
	<key>Input</key>
	<dict>
		<key>NAME</key>
		<string>WatchGuardMobileVPNwithSSL</string>
		<key>DOWNLOAD_URL</key>
		<string>https://software.watchguard.com/SoftwareDownloads?current=true&amp;familyId=a2RF00000009EXXMA2</string>
		<key>USER_AGENT</key>
		<string>Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_3) AppleWebKit/536.28.10 (KHTML, like Gecko) Version/6.0.3 Safari/536.28.10</string>
	</dict>
	<key>MinimumVersion</key>
	<string>1.0.0</string>
	<key>Process</key>
	<array>
		<dict>
			<key>Processor</key>
			<string>URLTextSearcher</string>
			<key>Arguments</key>
			<dict>
				<key>url</key>
				<string>%DOWNLOAD_URL%</string>
				<key>re_pattern</key>
				<string>href="(https://cdn.watchguard.com/SoftwareCenter/Files/MUVPN_SSL/[\S]+/WG-MVPN-SSL_[\S]+\.dmg)"</string>
				<key>request_headers</key>
				<dict>
					<key>user-agent</key>
					<string>%USER_AGENT%</string>
				</dict>
				<key>result_output_var_name</key>
				<string>url</string>
			</dict>
		</dict>
		<dict>
			<key>Processor</key>
			<string>URLDownloader</string>
			<key>Arguments</key>
			<dict>
				<key>filename</key>
				<string>%NAME%.dmg</string>
			</dict>
		</dict>
		<dict>
			<key>Processor</key>
			<string>EndOfCheckPhase</string>
		</dict>
        <dict>
			<key>Arguments</key>
			<dict>
				<key>destination_path</key>
				<string>%RECIPE_CACHE_DIR%/installer_unpack/</string>
				<key>flat_pkg_path</key>
				<string>%pathname%/*.mpkg</string>
				<key>purge_destination</key>
				<string>true</string>
			</dict>
			<key>Processor</key>
			<string>FlatPkgUnpacker</string>
		</dict>
	        <dict>
				<key>Arguments</key>
				<dict>
					<key>destination_path</key>
					<string>%RECIPE_CACHE_DIR%/client_installer_unpack/Applications</string>
					<key>pkg_payload_path</key>
					<string>%RECIPE_CACHE_DIR%/installer_unpack/client.pkg/Payload</string>
					<key>purge_destination</key>
					<string>true</string>
				</dict>
				<key>Processor</key>
				<string>PkgPayloadUnpacker</string>
			</dict>
		<dict>
			<key>Processor</key>
			<string>FileFinder</string>
			<key>Arguments</key>
			<dict>
				<key>pattern</key>
				<string>%RECIPE_CACHE_DIR%/downloads/WatchGuardMobileVPNwithSSL.dmg/WatchGuard Mobile VPN*.mpkg</string>
			</dict>
		</dict>
		<dict>
			<key>Processor</key>
			<string>Copier</string>
			<key>Arguments</key>
			<dict>
				<key>destination_path</key>
				<string>%RECIPE_CACHE_DIR%</string>
				<key>source_path</key>
				<string>%RECIPE_CACHE_DIR%/downloads/WatchGuardMobileVPNwithSSL.dmg/%dmg_found_filename%</string>
			</dict>
		</dict>
		<dict>
			<key>Processor</key>
			<string>CodeSignatureVerifier</string>
			<key>Arguments</key>
			<dict>
				<key>input_path</key>
				<string>%RECIPE_CACHE_DIR%/client_installer_unpack/Applications/WatchGuard/WatchGuard Mobile VPN with SSL.app</string>
				<key>requirement</key>
				<string>anchor apple generic and 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] = "84ZK5S5258"</string>
				<key>strict_verification</key>
				<true />
			</dict>
		</dict>
	</array>
</dict>
</plist>
Waltr 2/Waltr2.pkg.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>Comment</key>
	<string>Created from homebysix's original v1 recipe</string>
	<key>Description</key>
	<string>Downloads the latest version of Waltr 2 and creates a package.</string>
	<key>Identifier</key>
	<string>com.github.dataJAR-recipes.pkg.Waltr2</string>
	<key>Input</key>
	<dict>
		<key>NAME</key>
		<string>Waltr 2</string>
	</dict>
	<key>MinimumVersion</key>
	<string>1.0.0</string>
	<key>ParentRecipe</key>
	<string>com.github.dataJAR-recipes.download.Waltr2</string>
	<key>Process</key>
	<array>
		<dict>
			<key>Processor</key>
			<string>AppPkgCreator</string>
		</dict>
	</array>
</dict>
</plist>

Waltr 2/Waltr2.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>Comment</key>
	<string>Created from homebysix's original v1 recipe</string>
	<key>Description</key>
	<string>Downloads the latest version of Waltr 2 and imports it into Munki.</string>
	<key>Identifier</key>
	<string>com.github.dataJAR-recipes.munki.Waltr2</string>
	<key>Input</key>
	<dict>
		<key>MUNKI_REPO_SUBDIR</key>
		<string>apps/%NAME%</string>
		<key>NAME</key>
		<string>Waltr 2</string>
		<key>pkginfo</key>
		<dict>
			<key>catalogs</key>
			<array>
				<string>testing</string>
			</array>
			<key>description</key>
			<string>Drag-n-drop and Music, Ringtones, Videos, PDF and ePUB files into any Apple device without iTunes (and no extra apps).</string>
			<key>developer</key>
			<string>Softorino</string>
			<key>display_name</key>
			<string>Waltr 2</string>
			<key>name</key>
			<string>%NAME%</string>
			<key>unattended_install</key>
			<true/>
		</dict>
	</dict>
	<key>MinimumVersion</key>
	<string>0.5.0</string>
	<key>ParentRecipe</key>
	<string>com.github.dataJAR-recipes.download.Waltr2</string>
	<key>Process</key>
	<array>
		<dict>
			<key>Arguments</key>
			<dict>
				<key>pkg_path</key>
				<string>%pathname%</string>
				<key>repo_subdirectory</key>
				<string>%MUNKI_REPO_SUBDIR%</string>
			</dict>
			<key>Processor</key>
			<string>MunkiImporter</string>
		</dict>
	</array>
</dict>
</plist>

Waltr 2/Waltr2.install.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>Comment</key>
	<string>Created from homebysix's original v1 recipe</string>
	<key>Description</key>
	<string>Installs the latest version of Waltr 2.</string>
	<key>Identifier</key>
	<string>com.github.dataJAR-recipes.install.Waltr2</string>
	<key>Input</key>
	<dict>
		<key>NAME</key>
		<string>Waltr 2</string>
	</dict>
	<key>MinimumVersion</key>
	<string>0.5.0</string>
	<key>ParentRecipe</key>
	<string>com.github.dataJAR-recipes.download.Waltr2</string>
	<key>Process</key>
	<array>
		<dict>
			<key>Arguments</key>
			<dict>
				<key>dmg_path</key>
				<string>%pathname%</string>
				<key>items_to_copy</key>
				<array>
					<dict>
						<key>destination_path</key>
						<string>/Applications</string>
						<key>source_item</key>
						<string>Waltr 2.app</string>
					</dict>
				</array>
			</dict>
			<key>Processor</key>
			<string>InstallFromDMG</string>
		</dict>
	</array>
</dict>
</plist>

Waltr 2/Waltr2.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>Comment</key>
	<string>Created from homebysix's original v1 recipe</string>
	<key>Description</key>
	<string>Downloads the latest version of Waltr 2.</string>
	<key>Identifier</key>
	<string>com.github.dataJAR-recipes.download.Waltr2</string>
	<key>Input</key>
	<dict>
		<key>DOWNLOAD_URL</key>
		<string>https://dl.devmate.com/com.softorino.waltr2/Waltr2.dmg</string>
		<key>NAME</key>
		<string>Waltr 2</string>
	</dict>
	<key>MinimumVersion</key>
	<string>0.5.0</string>
	<key>Process</key>
	<array>
		<dict>
			<key>Arguments</key>
			<dict>
				<key>filename</key>
				<string>%NAME%.dmg</string>
				<key>url</key>
				<string>%DOWNLOAD_URL%</string>
			</dict>
			<key>Processor</key>
			<string>URLDownloader</string>
		</dict>
		<dict>
			<key>Processor</key>
			<string>EndOfCheckPhase</string>
		</dict>
		<dict>
			<key>Arguments</key>
			<dict>
				<key>input_path</key>
				<string>%pathname%/Waltr 2.app</string>
				<key>requirement</key>
				<string>anchor apple generic and identifier "com.softorino.waltr2" 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] = "5JVYAEUZ9N")</string>
			</dict>
			<key>Processor</key>
			<string>CodeSignatureVerifier</string>
		</dict>
		<dict>
			<key>Arguments</key>
			<dict>
				<key>input_plist_path</key>
				<string>%pathname%/Waltr 2.app/Contents/Info.plist</string>
				<key>plist_version_key</key>
				<string>CFBundleShortVersionString</string>
			</dict>
			<key>Processor</key>
			<string>Versioner</string>
		</dict>
	</array>
</dict>
</plist>

Vysor/Vysor.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of the Vysor and imports it into Munki.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.Vysor</string>
    <key>Input</key>
    <dict>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>NAME</key>
        <string>Vysor</string>
        <key>pkginfo</key>
        <dict>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>Mirror and Control your Phone.</string>
            <key>display_name</key>
            <string>Vysor</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.Vysor</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%pathname%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>
Vysor/Vysor.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest DMG version of Vysor.
Set PRERELEASE to a non-empty string to download prereleases, either
via Input in an override or via the -k option,
i.e.: `-k PRERELEASE=yes`</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.Vysor</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>Vysor</string>
        <key>PRERELEASE</key>
        <string></string>
    </dict>
    <key>MinimumVersion</key>
    <string>1.0.0</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>GitHubReleasesInfoProvider</string>
            <key>Arguments</key>
            <dict>
                <key>asset_regex</key>
                <string>(.*?\.dmg)</string>
                <key>github_repo</key>
                <string>koush/vysor.io</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>URLDownloader</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
            <key>Arguments</key>
            <dict>
                <key>input_path</key>
                <string>%pathname%/Vysor.app</string>
                <key>requirement</key>
                <string>identifier "com.electron.vysor" and anchor apple generic and 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] = XT4C9EJNUG</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>
Vitals/Vitals.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of Vitals and imports it into Munki.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.Vitals</string>
    <key>Input</key>
    <dict>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>NAME</key>
        <string>Vitals</string>
        <key>pkginfo</key>
        <dict>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>Vitals lives in the menu bar, keeping track of resource usage in the background so you can summon it instantly at any time.

While other tools like Activity Monitor show you each process' current CPU usage, Vitals shows a per-process CPU graph covering the last 60 seconds. This makes it much easier to track down apps that misbehave sporadically.</string>
            <key>developer</key>
            <string>Harry Marr</string>
            <key>display_name</key>
            <string>Vitals</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
            <key>unattended_uninstall</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.Vitals</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>DmgCreator</string>
            <key>Arguments</key>
            <dict>
                <key>dmg_path</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%.dmg</string>
                <key>dmg_root</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%dmg_path%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
                <key>version_comparison_key</key>
                <string>CFBundleShortVersionString</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PathDeleter</string>
            <key>Arguments</key>
            <dict>
                <key>path_list</key>
                <array>
                    <string>%RECIPE_CACHE_DIR%/%NAME%/</string>
                </array>
            </dict>
        </dict>
    </array>
</dict>
</plist>
Vitals/Vitals.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>Description</key>
	<string>Downloads the latest version of Vitals.
Set PRERELEASE to a non-empty string to download prereleases, either
via Input in an override or via the -k option,
i.e.: `-k PRERELEASE=yes`</string>
	<key>Identifier</key>
	<string>com.github.dataJAR-recipes.download.Vitals</string>
	<key>Input</key>
	<dict>
		<key>PRERELEASE</key>
		  <string></string>
		<key>NAME</key>
		<string>Vitals</string>
	</dict>
	<key>MinimumVersion</key>
	<string>0.6.1</string>
	<key>Process</key>
	<array>
		<dict>
			<key>Processor</key>
			<string>GitHubReleasesInfoProvider</string>
			<key>Arguments</key>
			<dict>
				<key>github_repo</key>
				<string>hmarr/Vitals</string>
				<key>include_prereleases</key>
				<string>%PRERELEASE%</string>
			</dict>
		</dict>
		<dict>
			<key>Processor</key>
			<string>URLDownloader</string>
		</dict>
		<dict>
			<key>Processor</key>
			<string>EndOfCheckPhase</string>
		</dict>
		<dict>
			<key>Processor</key>
			<string>Unarchiver</string>
			<key>Arguments</key>
			<dict>
				<key>archive_path</key>
				<string>%pathname%</string>
				<key>destination_path</key>
				<string>%RECIPE_CACHE_DIR%/%NAME%</string>
				<key>purge_destination</key>
				<true/>
			</dict>
		</dict>
		<dict>
			<key>Processor</key>
			<string>CodeSignatureVerifier</string>
			<key>Arguments</key>
			<dict>
				<key>input_path</key>
				<string>%RECIPE_CACHE_DIR%/%NAME%/Vitals.app</string>
				<key>requirement</key>
				<string>identifier "com.hmarr.Vitals" and anchor apple generic and certificate leaf[subject.CN] = "Apple Development: Harry Marr (88VTKE8P3N)" and certificate 1[field.1.2.840.113635.100.6.2.1] /* exists */</string>
			</dict>
		</dict>
	</array>
</dict>
</plist>
Vernier Graphical Analysis/Vernier Graphical Analysis.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>Description</key>
	<string>Downloads the latest version of Vernier Graphical Analysis and imports it into Munki.</string>
	<key>Identifier</key>
	<string>com.github.dataJAR-recipes.munki.Vernier Graphical Analysis</string>
	<key>Input</key>
	<dict>
		<key>MUNKI_REPO_SUBDIR</key>
		<string>apps/%NAME%</string>
		<key>NAME</key>
		<string>VernierGraphicalAnalysis</string>
		<key>pkginfo</key>
		<dict>
			<key>catalogs</key>
			<array>
				<string>testing</string>
			</array>
			<key>description</key>
			<string>Collect, share, and analyze sensor data with our free software for macOS™.</string>
			<key>developer</key>
			<string>Vernier Software &amp; Technology</string>
			<key>display_name</key>
			<string>Vernier Graphical Analysis</string>
			<key>name</key>
			<string>%NAME%</string>
			<key>unattended_install</key>
			<true/>
		</dict>
	</dict>
	<key>MinimumVersion</key>
	<string>0.5.0</string>
	<key>ParentRecipe</key>
	<string>com.github.nstrauss.download.VernierGraphicalAnalysis</string>
	<key>Process</key>
	<array>
		<dict>
			<key>Processor</key>
			<string>MunkiImporter</string>
			<key>Arguments</key>
			<dict>
				<key>pkg_path</key>
				<string>%pathname%</string>
				<key>repo_subdirectory</key>
				<string>%MUNKI_REPO_SUBDIR%</string>
			</dict>
		</dict>
	</array>
</dict>
</plist>

Vectoraster 7-Trial/Vectoraster7.png METASEP

Vectoraster 7-Trial/Vectoraster 7-Trial.pkg.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of Zinio Reader and creates a flat PKG.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.pkg.Vectoraster 7-Trial</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>Vectoraster7-Trial</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.Vectoraster 7-Trial</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>PkgRootCreator</string>
            <key>Arguments</key>
            <dict>
                <key>pkgroot</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%</string>
                <key>pkgdirs</key>
                <dict>
                    <key>Applications</key>
                    <string>0775</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>Copier</string>
            <key>Arguments</key>
            <dict>
                <key>source_path</key>
                <string>%pathname%/Vectoraster.app</string>
                <key>destination_path</key>
                <string>%pkgroot%/Applications/Vectoraster.app</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PlistReader</string>
            <key>Arguments</key>
            <dict>
                <key>info_path</key>
                <string>%destination_path%</string>
                <key>plist_keys</key>
                <dict>
                    <key>CFBundleIdentifier</key>
                    <string>bundleid</string>
                    <key>CFBundleVersion</key>
                    <string>version</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PkgCreator</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_request</key>
                <dict>
                    <key>pkgname</key>
                    <string>%NAME%-%version%</string>
                    <key>chown</key>
                    <array>
                        <dict>
                            <key>path</key>
                            <string>Applications</string>
                            <key>user</key>
                            <string>root</string>
                            <key>group</key>
                            <string>admin</string>
                        </dict>
                    </array>
                    <key>id</key>
                    <string>%bundleid%</string>
                    <key>options</key>
                    <string>purge_ds_store</string>
                    <key>pkgdir</key>
                    <string>%RECIPE_CACHE_DIR%</string>
                    <key>pkgroot</key>
                    <string>%pkgroot%</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PathDeleter</string>
            <key>Arguments</key>
            <dict>
                <key>path_list</key>
                <array>
                    <string>%pkgroot%</string>                          
                </array>
            </dict>
        </dict>
    </array>
</dict>
</plist>

Vectoraster 7-Trial/Vectoraster 7-Trial.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest trial version of Vectoraster 7 and imports into Munki.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.Vectoraster 7-Trial</string>
    <key>Input</key>
    <dict>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>NAME</key>
        <string>Vectoraster7-Trial</string>
        <key>pkginfo</key>
        <dict> 
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>Vectoraster is a graphics utility for creating vector-based raster patterns and halftones based on images or gradients.</string>
            <key>display_name</key>
            <string>Vectoraster 7</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
            <key>unattended_uninstall</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.Vectoraster 7-Trial</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%pathname%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>
Vectoraster 7-Trial/Vectoraster 7-Trial.jss.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the current release version of Vectoraster 7 and then uploads to the JSS</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.jss.Vectoraster 7-Trial</string>
    <key>Input</key>
    <dict>
        <key>CATEGORY</key>
        <string>Applications</string>
        <key>GROUP_NAME</key>
        <string>%NAME%-update-smart</string>
        <key>GROUP_TEMPLATE</key>
        <string>SmartGroupTemplate.xml</string>
        <key>NAME</key>
        <string>Vectoraster7-Trial</string>
        <key>POLICY_CATEGORY</key>
        <string>Testing</string>
        <key>POLICY_TEMPLATE</key>
        <string>PolicyTemplate.xml</string>
        <key>SELF_SERVICE_DESCRIPTION</key>
        <string>Vectoraster is a graphics utility for creating vector-based raster patterns and halftones based on images or gradients.</string>
        <key>SELF_SERVICE_ICON</key>
        <string>Vectoraster7-Trial.png</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.pkg.Vectoraster 7-Trial</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Arguments</key>
            <dict>
                <key>category</key>
                <string>%CATEGORY%</string>
                <key>extension_attributes</key>
                <array>
                    <dict>
                        <key>ext_attribute_path</key>
                        <string>Vectoraster 7-CFBundleVersionExtensionAttribute.xml</string>
                    </dict>
                </array>
                <key>groups</key>
                <array>
                    <dict>
                        <key>name</key>
                        <string>%GROUP_NAME%</string>
                        <key>smart</key>
                        <true/>
                        <key>template_path</key>
                        <string>%GROUP_TEMPLATE%</string>
                    </dict>
                </array>
                <key>policy_category</key>
                <string>%POLICY_CATEGORY%</string>
                <key>policy_template</key>
                <string>%POLICY_TEMPLATE%</string>
                <key>prod_name</key>
                <string>Vectoraster 7</string>
                <key>self_service_description</key>
                <string>%SELF_SERVICE_DESCRIPTION%</string>
                <key>self_service_icon</key>
                <string>%SELF_SERVICE_ICON%</string>
                <key>version</key>
                <string>%version%</string>
            </dict>
            <key>Processor</key>
            <string>JSSImporter</string>
        </dict>
    </array>
</dict>
</plist>

Vectoraster 7-Trial/Vectoraster 7-Trial.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Download recipe for the latest trial version of Vectoraster 7.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.Vectoraster 7-Trial</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>Vectoraster7-Trial</string>
        <key>SPARKLE_FEED_URL</key>
        <string>https://www.lostminds.com/versiondata/sparkle/vectoraster_7_appcast.xml</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>SparkleUpdateInfoProvider</string>
            <key>Arguments</key>
            <dict>
                <key>appcast_url</key>
                <string>%SPARKLE_FEED_URL%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>URLDownloader</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
            <key>Arguments</key>
            <dict>
                <key>input_path</key>
                <string>%pathname%/Vectoraster.app</string>
                <key>requirement</key>
                <string>anchor apple generic and identifier "com.lostminds.Vectoraster" 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] = W32N68S93U)</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>

Vagrant/VagrantSmartGroupTemplate.xml METASEP
<computer_group>
	<name>%group_name%</name>
	<is_smart>true</is_smart>
	<criteria>
		<criterion>
			<name>Vagrant Version</name>
			<priority>0</priority>
			<and_or>and</and_or>
			<search_type>is not</search_type>
			<value>%VERSION%</value>
		</criterion>
		<criterion>
			<name>Vagrant Version</name>
			<priority>1</priority>
			<and_or>and</and_or>
			<search_type>is not</search_type>
			<value>Not Installed</value>
		</criterion>
		<criterion>
			<name>Computer Group</name>
			<priority>2</priority>
			<and_or>and</and_or>
			<search_type>member of</search_type>
			<value>Testing</value>
		</criterion>
	</criteria>
</computer_group>

Vagrant/VagrantExtensionAttribute.xml METASEP
<computer_extension_attribute>
  <name>Vagrant Version</name>
  <description>Returns the version number of Vagrant if installed, if not returns "Not Installed"</description>
  <dataType>string</dataType>
  <input_type>
		<type>script</type>
		<platform>Mac</platform>
		<script>#!/bin/bash&#13;
&#13;
if [ -e "/usr/local/bin/vagrant" ]&#13;
  then&#13;
	  vagrantVersion=$(vagrant -v | awk '{ print $NF}')&#13;
  else&#13;
	  vagrantVersion="Not Installed"&#13;
fi&#13;
&#13;
echo "&lt;result&gt;$vagrantVersion&lt;/result&gt;"&#13;
&#13;</script>
    	</input_type>
    	<inventory_display>Extension Attributes</inventory_display>
    	<recon_display>Extension Attributes</recon_display>
</computer_extension_attribute>

Vagrant/Vagrant.png METASEP

Vagrant/Vagrant.pkg.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads Vagrant installer and extracts the embedded package. No repackaging done.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.pkg.Vagrant</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>Vagrant</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.0</string>
    <key>ParentRecipe</key>
    <string>io.github.hjuutilainen.download.Vagrant</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Comment</key>
            <string>Copy the embedded package out of the disk image.</string>
            <key>Arguments</key>
            <dict>
                <key>source_pkg</key>
                <string>%pathname%/vagrant.pkg</string>
                <key>pkg_path</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%-%version%.pkg</string>
            </dict>
            <key>Processor</key>
            <string>PkgCopier</string>
        </dict>
    </array>
</dict>
</plist>

Vagrant/Vagrant.jss.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>Description</key>
	<string>Downloads the current release version of Vagrant and then uploads to the JSS.</string>
	<key>Identifier</key>
	<string>com.github.dataJAR-recipes.jss.Vagrant</string>
	<key>Input</key>
	<dict>
		<key>CATEGORY</key>
		<string>Productivity</string>
		<key>GROUP_NAME</key>
		<string>%NAME%-update-smart</string>
		<key>GROUP_TEMPLATE</key>
		<string>VagrantSmartGroupTemplate.xml</string>
		<key>NAME</key>
		<string>Vagrant</string>
		<key>POLICY_CATEGORY</key>
		<string>Testing</string>
		<key>POLICY_TEMPLATE</key>
		<string>PolicyTemplate.xml</string>
		<key>SELF_SERVICE_DESCRIPTION</key>
		<string>Create and configure lightweight, reproducible, and portable development environments.</string>
		<key>SELF_SERVICE_ICON</key>
		<string>Vagrant.png</string>
	</dict>
	<key>MinimumVersion</key>
	<string>0.2.0</string>
	<key>ParentRecipe</key>
	<string>com.github.dataJAR-recipes.pkg.Vagrant</string>
	<key>Process</key>
	<array>
		<dict>
			<key>Arguments</key>
			<dict>
				<key>category</key>
				<string>%CATEGORY%</string>
				<key>extension_attributes</key>
				<array>
					<dict>
						<key>ext_attribute_path</key>
						<string>VagrantExtensionAttribute.xml</string>
					</dict>
				</array>
				<key>groups</key>
				<array>
					<dict>
						<key>name</key>
						<string>%GROUP_NAME%</string>
						<key>smart</key>
						<true/>
						<key>template_path</key>
						<string>%GROUP_TEMPLATE%</string>
					</dict>
				</array>
				<key>policy_category</key>
				<string>%POLICY_CATEGORY%</string>
				<key>policy_template</key>
				<string>%POLICY_TEMPLATE%</string>
				<key>prod_name</key>
				<string>%NAME%</string>
				<key>self_service_description</key>
				<string>%SELF_SERVICE_DESCRIPTION%</string>
				<key>self_service_icon</key>
				<string>%SELF_SERVICE_ICON%</string>
			</dict>
			<key>Processor</key>
			<string>JSSImporter</string>
		</dict>
	</array>
</dict>
</plist>

VPT8/VPT8.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.VPT8</string>
    <key>Input</key>
    <dict>
        <key>DOWNLOAD_URL</key>
        <string>http://nervousvision.com/vpt/vpt8-osx.zip</string>
        <key>NAME</key>
        <string>VPT8</string>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/VPT8</string>
        <key>pkginfo</key>
        <dict>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>Video Projection Tool (VPT) is a free multipurpose realtime projection software tool for Mac and Windows.</string>
            <key>display_name</key>
            <string>VPT8</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
        </dict>
    </dict>
    <key>ParentRecipe</key>
    <string>com.github.haircut.download.VPT8</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>Unarchiver</string>
            <key>Arguments</key>
            <dict>
                <key>archive_path</key>
                <string>%pathname%</string>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/unzip</string>
                <key>purge_destination</key>
                <true/>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PkgRootCreator</string>
            <key>Arguments</key>
            <dict>
                <key>pkgroot</key>
                <string>%RECIPE_CACHE_DIR%/pkgroot</string>
                <key>pkgdirs</key>
                <dict>
                    <key>Applications</key>
                    <string>0775</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>Copier</string>
            <key>Arguments</key>
            <dict>
                <key>source_path</key>
                <string>%RECIPE_CACHE_DIR%/unzip/vpt8/vpt8.app</string>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/pkgroot/Applications/vpt8.app</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiInstallsItemsCreator</string>
            <key>Arguments</key>
            <dict>
                <key>faux_root</key>
                <string>%RECIPE_CACHE_DIR%/pkgroot</string>
                <key>installs_item_paths</key>
                <array>
                    <string>/Applications/vpt8.app</string>
                </array>
                <key>version_comparison_key</key>
                <string>CFBundleVersion</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiPkginfoMerger</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>Versioner</string>
            <key>Arguments</key>
            <dict>
                <key>input_plist_path</key>
                <string>%RECIPE_CACHE_DIR%/pkgroot/Applications/vpt8.app/Contents/Info.plist</string>
                <key>plist_version_key</key>
                <string>CFBundleVersion</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiPkginfoMerger</string>
            <key>Arguments</key>
            <dict>
                <key>additional_pkginfo</key>
                <dict>
                    <key>version</key>
                    <string>%version%</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>DmgCreator</string>
            <key>Arguments</key>
            <dict>
                <key>dmg_root</key>
                <string>%RECIPE_CACHE_DIR%/pkgroot/Applications</string>
                <key>dmg_path</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%.dmg</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%dmg_path%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PathDeleter</string>
            <key>Arguments</key>
            <dict>
                <key>path_list</key>
                <array>
                    <string>%RECIPE_CACHE_DIR%/pkgroot</string>
                    <string>%RECIPE_CACHE_DIR%/unzip</string>
                </array>
            </dict>
        </dict>
    </array>    
</dict>
</plist>
VMware Fusion 8/VMware Fusion 8.pkg.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>Description</key>
	<string>Downloads the latest version of VMware Fusion 8 and creates a package</string>
	<key>Identifier</key>
	<string>com.github.dataJAR-recipes.pkg.VMware Fusion 8</string>
	<key>Input</key>
	<dict>
		<key>NAME</key>
		<string>VMwareFusion8</string>
	</dict>
	<key>MinimumVersion</key>
	<string>0.2.5</string>
	<key>ParentRecipe</key>
	<string>com.github.dataJAR-recipes.download.VMware Fusion 8</string>
	<key>Process</key>
	<array>
		<dict>
			<key>Processor</key>
			<string>PlistReader</string>
			<key>Arguments</key>
			<dict>
				<key>info_path</key>
				<string>%RECIPE_CACHE_DIR%/%NAME%/Applications/VMWare Fusion.app</string>
				<key>plist_keys</key>
				<dict>
					<key>CFBundleShortVersionString</key>
					<string>version</string>
					<key>CFBundleIdentifier</key>
					<string>bundleid</string>
				</dict>
			</dict>
		</dict>
		<dict>
			<key>Processor</key>
			<string>PkgRootCreator</string>
			<key>Arguments</key>
			<dict>
				<key>pkgroot</key>
				<string>%RECIPE_CACHE_DIR%/Scripts</string>
				<key>pkgdirs</key>
				<dict/>
			</dict>
		</dict>
		<dict>
			<key>Processor</key>
			<string>FileCreator</string>
			<key>Arguments</key>
			<dict>
				<key>file_content</key>
			<string>#!/bin/bash
#
# Pinched with &lt;3 from: https://github.com/autopkg/justinrummel-recipes/blob/42bc13881fe373f771cefec20a53d7844172019f/VMware%20Fusion/VMwareFusion.pkg.munki.recipe
#

if [ -e /Applications/VMware\ Fusion.app/Contents/Library/Initialize\ VMware\ Fusion.tool ]
then
		/Applications/VMware\ Fusion.app/Contents/Library/Initialize\ VMware\ Fusion.tool set
fi</string>
				<key>file_mode</key>
				<string>0755</string>
				<key>file_path</key>
				<string>%RECIPE_CACHE_DIR%/Scripts/postinstall</string>
			</dict>
		</dict>
		<dict>
			<key>Processor</key>
			<string>PkgCreator</string>
			<key>Arguments</key>
			<dict>
				<key>pkg_request</key>
				<dict>
					<key>pkgname</key>
					<string>%NAME%-%version%</string>
					<key>chown</key>
					<array>
						<dict>
							<key>path</key>
							<string>Applications</string>
							<key>user</key>
							<string>root</string>
							<key>group</key>
							<string>admin</string>
						</dict>
					</array>
					<key>id</key>
					<string>%bundleid%</string>
					<key>options</key>
					<string>purge_ds_store</string>
					<key>pkgdir</key>
					<string>%RECIPE_CACHE_DIR%</string>
					<key>pkgroot</key>
					<string>%RECIPE_CACHE_DIR%/%NAME%</string>
					<key>scripts</key>
					<string>Scripts</string>
				</dict>
			</dict>
		</dict>
		<dict>
			<key>Processor</key>
			<string>PathDeleter</string>
			<key>Arguments</key>
			<dict>
				<key>path_list</key>
				<array>
					<string>%RECIPE_CACHE_DIR%/%NAME%/</string>
					<string>%RECIPE_CACHE_DIR%/Scripts/</string>
				</array>
			</dict>
		</dict>
	</array>
</dict>
</plist>

VMware Fusion 8/VMware Fusion 8.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>Description</key>
	<string>Downloads the most recent version of VMware Fusion 8 and imports it into Munki.</string>
	<key>Identifier</key>
	<string>com.github.dataJAR-recipes.munki.VMware Fusion 8</string>
	<key>Input</key>
	<dict>
		<key>NAME</key>
		<string>VMwareFusion8</string>
		<key>MUNKI_REPO_SUBDIR</key>
		<string>apps/VMware</string>
		<key>pkginfo</key>
		<dict>
			<key>catalogs</key>
			<array>
				<string>testing</string>
			</array>
			<key>description</key>
			<string>VMware Fusion is the easiest, fastest, and most reliable way to run Windows and other x86 based operating systems on a Mac without rebooting.</string>
			<key>developer</key>
			<string>VMware</string>
			<key>display_name</key>
			<string>VMWare Fusion Pro 8</string>
			<key>name</key>
			<string>%NAME%</string>
			<key>unattended_install</key>
			<true/>
			<key>postinstall_script</key>
			<string>#!/bin/bash
#
# Pinched with &lt;3 from: https://github.com/autopkg/justinrummel-recipes/blob/42bc13881fe373f771cefec20a53d7844172019f/VMware%20Fusion/VMwareFusion.pkg.munki.recipe
#

if [ -e /Applications/VMware\ Fusion.app/Contents/Library/Initialize\ VMware\ Fusion.tool ]
then
		/Applications/VMware\ Fusion.app/Contents/Library/Initialize\ VMware\ Fusion.tool set
fi</string>
		</dict>
	</dict>
	<key>MinimumVersion</key>
	<string>0.2.5</string>
	<key>ParentRecipe</key>
	<string>com.github.dataJAR-recipes.download.VMware Fusion 8</string>
	<key>Process</key>
	<array>
		<dict>
			<key>Processor</key>
			<string>DmgCreator</string>
			<key>Arguments</key>
			<dict>
				<key>dmg_root</key>
				<string>%pkgroot%/Applications</string>
				<key>dmg_path</key>
				<string>%RECIPE_CACHE_DIR%/%NAME%.dmg</string>
			</dict>
		</dict>
		<dict>
			<key>Processor</key>
			<string>MunkiImporter</string>
			<key>Arguments</key>
			<dict>
				<key>pkg_path</key>
				<string>%dmg_path%</string>
				<key>repo_subdirectory</key>
				<string>%MUNKI_REPO_SUBDIR%</string>
			</dict>
		</dict>
		<dict>
			<key>Processor</key>
			<string>PathDeleter</string>
			<key>Arguments</key>
			<dict>
				<key>path_list</key>
				<array>
					<string>%RECIPE_CACHE_DIR%/%NAME%/</string>
				</array>
			</dict>
		</dict>
	</array>
</dict>
</plist>

VMware Fusion 8/VMware Fusion 8.jss.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>Description</key>
	<string>Downloads the current release version of VMWare Fusion 8 and then uploads to the JSS</string>
	<key>Identifier</key>
	<string>com.github.dataJAR-recipes.jss.VMWare Fusion 8</string>
	<key>Input</key>
	<dict>
		<key>CATEGORY</key>
		<string>Productivity</string>
		<key>GROUP_NAME</key>
		<string>%NAME%-update-smart</string>
		<key>GROUP_TEMPLATE</key>
		<string>SmartGroupTemplate.xml</string>
		<key>NAME</key>
		<string>VMWare Fusion 8</string>
		<key>POLICY_CATEGORY</key>
		<string>Testing</string>
		<key>POLICY_TEMPLATE</key>
		<string>PolicyTemplate.xml</string>
		<key>SELF_SERVICE_DESCRIPTION</key>
		<string>VMware Fusion is the easiest, fastest, and most reliable way to run Windows and other x86 based operating systems on a Mac without rebooting.</string>
		<key>SELF_SERVICE_ICON</key>
		<string>VMWareFusion8.png</string>
	</dict>
	<key>MinimumVersion</key>
	<string>0.2.0</string>
	<key>ParentRecipe</key>
	<string>com.github.dataJAR-recipes.pkg.VMware Fusion 8</string>
	<key>Process</key>
	<array>
		<dict>
			<key>Arguments</key>
			<dict>
				<key>category</key>
				<string>%CATEGORY%</string>
				<key>groups</key>
				<array>
					<dict>
						<key>name</key>
						<string>%GROUP_NAME%</string>
						<key>smart</key>
						<true/>
						<key>template_path</key>
						<string>%GROUP_TEMPLATE%</string>
					</dict>
				</array>
				<key>policy_category</key>
				<string>%POLICY_CATEGORY%</string>
				<key>policy_template</key>
				<string>%POLICY_TEMPLATE%</string>
				<key>prod_name</key>
				<string>VMWare Fusion</string>
				<key>self_service_description</key>
				<string>%SELF_SERVICE_DESCRIPTION%</string>
				<key>self_service_icon</key>
				<string>%SELF_SERVICE_ICON%</string>
			</dict>
			<key>Processor</key>
			<string>JSSImporter</string>
		</dict>
	</array>
</dict>
</plist>

VMware Fusion 8/VMware Fusion 8.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>Description</key>
	<string>Downloads the latest version of VMware Fusion 8</string>
	<key>Identifier</key>
	<string>com.github.dataJAR-recipes.download.VMware Fusion 8</string>
	<key>Input</key>
	<dict>
		<key>NAME</key>
		<string>VMwareFusion8</string>
	</dict>
	<key>MinimumVersion</key>
	<string>1.1</string>
	<key>Process</key>
	<array>
        <dict>
            <key>Processor</key>
            <string>DeprecationWarning</string>
            <key>Arguments</key>
            <dict>
                <key>warning_message</key>
                <string>This title has not been updated since 2018 and has been superseded by newer versions, please use a more current recipe.</string>
            </dict>
        </dict>
        <dict>   
            <key>Processor</key>   
            <string>StopProcessingIf</string>   
            <key>Arguments</key>   
            <dict>   
                <key>predicate</key>   
                <string>TRUEPREDICATE</string>
            </dict>
        </dict>
		<dict>
			<key>Processor</key>
			<string>VMwareFusion8URLProvider</string>
			<key>Arguments</key>
			<dict>
				<key>product_name</key>
				<string>fusion.xml</string>
			</dict>
		</dict>
		<dict>
			<key>Processor</key>
			<string>URLDownloader</string>
			<key>Arguments</key>
			<dict>
				<key>filename</key>
				<string>%NAME%.zip.tar</string>
			</dict>
		</dict>
		<dict>
			<key>Processor</key>
			<string>EndOfCheckPhase</string>
		</dict>
		<dict>
			<key>Processor</key>
			<string>Unarchiver</string>
			<key>Arguments</key>
			<dict>
				<key>archive_path</key>
				<string>%pathname%</string>
				<key>destination_path</key>
				<string>%RECIPE_CACHE_DIR%/tar</string>
				<key>purge_destination</key>
				<true/>
				<key>archive_format</key>
				<string>tar</string>
			</dict>
		</dict>
		<dict>
			<key>Processor</key>
			<string>Unarchiver</string>
			<key>Arguments</key>
			<dict>
				<key>archive_path</key>
				<string>%RECIPE_CACHE_DIR%/tar/com.vmware.fusion.zip</string>
				<key>destination_path</key>
				<string>%RECIPE_CACHE_DIR%/source</string>
				<key>purge_destination</key>
				<true/>
				<key>archive_format</key>
				<string>zip</string>
			</dict>
		</dict>
		<dict>
			<key>Processor</key>
			<string>PkgRootCreator</string>
			<key>Arguments</key>
			<dict>
				<key>pkgroot</key>
				<string>%RECIPE_CACHE_DIR%/%NAME%</string>
				<key>pkgdirs</key>
				<dict>
					<key>Applications</key>
					<string>0775</string>
				</dict>
			</dict>
		</dict>
		<dict>
			<key>Processor</key>
			<string>Copier</string>
			<key>Arguments</key>
			<dict>
				<key>source_path</key>
				<string>%RECIPE_CACHE_DIR%/source/payload/VMware Fusion.app</string>
				<key>destination_path</key>
				<string>%pkgroot%/Applications/VMware Fusion.app</string>
			</dict>
		</dict>
		<dict>
			<key>Processor</key>
			<string>CodeSignatureVerifier</string>
			<key>Arguments</key>
			<dict>
				<key>input_path</key>
				<string>%pkgroot%/Applications/VMware Fusion.app</string>
				<key>requirement</key>
				<string>identifier "com.vmware.fusion" and anchor apple generic and 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] = EG7KH642X6</string>
			</dict>
		</dict>
		<dict>
			<key>Processor</key>
			<string>PathDeleter</string>
			<key>Arguments</key>
			<dict>
				<key>path_list</key>
				<array>
					<string>%RECIPE_CACHE_DIR%/tar/</string>
					<string>%RECIPE_CACHE_DIR%/source/</string>
				</array>
			</dict>
		</dict>
	</array>
</dict>
</plist>
VMware Fusion 8/VMWareFusion8.png METASEP

VMware Fusion 8/README.md METASEP
VMware Fusion
===

Recipes were orginally hosted at: https://github.com/autopkg/justinrummel-recipes/tree/master/VMware%20Fusion

But we had a need to hardcode the major version & as there was a number of outstanding PR's we created our own version with the major version within the name.

VMware Fusion 12/VMware Fusion 12.pkg.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of VMware Fusion 12 and creates a package</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.pkg.VMware Fusion 12</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>VMwareFusion12</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.2.5</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.VMware Fusion 12</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>AppDmgVersioner</string>
            <key>Arguments</key>
            <dict>
                <key>dmg_path</key>
                <string>%pathname%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PkgRootCreator</string>
            <key>Arguments</key>
            <dict>
                <key>pkgroot</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%</string>
                <key>pkgdirs</key>
                <dict>
                    <key>Applications</key>
                    <string>0775</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>DittoCopier</string>
            <key>Arguments</key>
            <dict>
                <key>source_path</key>
                <string>%pathname%/%app_name%</string>
                <key>destination_path</key>
                <string>%pkgroot%/Applications/%app_name%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PkgRootCreator</string>
            <key>Arguments</key>
            <dict>
                <key>pkgroot</key>
                <string>%RECIPE_CACHE_DIR%/Scripts</string>
                <key>pkgdirs</key>
                <dict/>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>FileCreator</string>
            <key>Arguments</key>
            <dict>
                <key>file_content</key>
            <string>#!/bin/zsh
#
# Pinched with &lt;3 from: https://github.com/autopkg/justinrummel-recipes/blob/42bc13881fe373f771cefec20a53d7844172019f/VMware%20Fusion/VMwareFusion.pkg.munki.recipe
#

if [[ -e /Applications/VMware\ Fusion.app/Contents/Library/Initialize\ VMware\ Fusion.tool ]]
then
        /Applications/VMware\ Fusion.app/Contents/Library/Initialize\ VMware\ Fusion.tool set
fi</string>
                <key>file_mode</key>
                <string>0755</string>
                <key>file_path</key>
                <string>%RECIPE_CACHE_DIR%/Scripts/postinstall</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PkgInfoCreator</string>
            <key>Arguments</key>
            <dict>
                <key>version</key>
                <string>%version%</string>
                <key>template_path</key>
                <string>PackageInfoTemplate</string>
                <key>infofile</key>
                <string>%RECIPE_CACHE_DIR%/PackageInfo</string>
                <key>pkgtype</key>
                <string>flat</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PkgCreator</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_request</key>
                <dict>
                    <key>pkgname</key>
                    <string>%NAME%-%version%</string>
                    <key>chown</key>
                    <array>
                        <dict>
                            <key>path</key>
                            <string>Applications</string>
                            <key>user</key>
                            <string>root</string>
                            <key>group</key>
                            <string>admin</string>
                        </dict>
                    </array>
                    <key>id</key>
                    <string>%bundleid%</string>
                    <key>options</key>
                    <string>purge_ds_store</string>
                    <key>pkgdir</key>
                    <string>%RECIPE_CACHE_DIR%</string>
                    <key>pkgroot</key>
                    <string>%RECIPE_CACHE_DIR%/%NAME%</string>
                    <key>scripts</key>
                    <string>Scripts</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PathDeleter</string>
            <key>Arguments</key>
            <dict>
                <key>path_list</key>
                <array>
                    <string>%RECIPE_CACHE_DIR%/%NAME%</string>
                    <string>%RECIPE_CACHE_DIR%/Scripts</string>
                </array>
            </dict>
        </dict>
    </array>
</dict>
</plist>

VMware Fusion 12/VMware Fusion 12.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the most recent version of VMware Fusion 12 and imports it into Munki.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.VMware Fusion 12</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>VMwareFusion12</string>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/VMware</string>
        <key>pkginfo</key>
        <dict>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>VMware Fusion is the easiest, fastest, and most reliable way to run Windows and other x86 based operating systems on a Mac without rebooting.</string>
            <key>developer</key>
            <string>VMware</string>
            <key>display_name</key>
            <string>VMWare Fusion Pro 12</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
            <key>postinstall_script</key>
            <string>#!/bin/bash
#
# Pinched with &lt;3 from: https://github.com/autopkg/justinrummel-recipes/blob/42bc13881fe373f771cefec20a53d7844172019f/VMware%20Fusion/VMwareFusion.pkg.munki.recipe
#

if [ -e /Applications/VMware\ Fusion.app/Contents/Library/Initialize\ VMware\ Fusion.tool ]
then
        /Applications/VMware\ Fusion.app/Contents/Library/Initialize\ VMware\ Fusion.tool set
fi</string>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.2.5</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.VMware Fusion 12</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%pathname%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>
VMware Fusion 12/VMware Fusion 12.jss.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the current release version of VMWare Fusion 12 and then uploads to the JSS</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.jss.VMWare Fusion 12</string>
    <key>Input</key>
    <dict>
        <key>CATEGORY</key>
        <string>Productivity</string>
        <key>GROUP_NAME</key>
        <string>%NAME%-update-smart</string>
        <key>GROUP_TEMPLATE</key>
        <string>SmartGroupTemplate.xml</string>
        <key>NAME</key>
        <string>VMWare Fusion 12</string>
        <key>POLICY_CATEGORY</key>
        <string>Testing</string>
        <key>POLICY_TEMPLATE</key>
        <string>PolicyTemplate.xml</string>
        <key>SELF_SERVICE_DESCRIPTION</key>
        <string>VMware Fusion is the easiest, fastest, and most reliable way to run Windows and other x86 based operating systems on a Mac without rebooting.</string>
        <key>SELF_SERVICE_ICON</key>
        <string>VMWareFusion12.png</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.2.0</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.pkg.VMware Fusion 12</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Arguments</key>
            <dict>
                <key>category</key>
                <string>%CATEGORY%</string>
                <key>groups</key>
                <array>
                    <dict>
                        <key>name</key>
                        <string>%GROUP_NAME%</string>
                        <key>smart</key>
                        <true/>
                        <key>template_path</key>
                        <string>%GROUP_TEMPLATE%</string>
                    </dict>
                </array>
                <key>policy_category</key>
                <string>%POLICY_CATEGORY%</string>
                <key>policy_template</key>
                <string>%POLICY_TEMPLATE%</string>
                <key>prod_name</key>
                <string>VMWare Fusion</string>
                <key>self_service_description</key>
                <string>%SELF_SERVICE_DESCRIPTION%</string>
                <key>self_service_icon</key>
                <string>%SELF_SERVICE_ICON%</string>
            </dict>
            <key>Processor</key>
            <string>JSSImporter</string>
        </dict>
    </array>
</dict>
</plist>

VMware Fusion 12/VMware Fusion 12.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of VMware Fusion 12.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.VMware Fusion 12</string>
    <key>Input</key>
    <dict/>
    <key>MinimumVersion</key>
    <string>0.4.2</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Arguments</key>
            <dict>
                <key>re_pattern</key>
                <string>{\&quot;name\&quot;:\&quot;VMware Fusion 12.*\&quot;,\&quot;dlgList&quot;:\[{&quot;.*&quot;,\&quot;code\&quot;:\&quot;(?P&lt;downloadGroup&gt;FUS-[\d]+?)\&quot;,\&quot;releaseDate\&quot;:\&quot;.*\&quot;,\&quot;productId\&quot;:\&quot;.*\&quot;,\&quot;releasePackageId\&quot;:\&quot;.*\&quot;,\&quot;orderId\&quot;:.*}</string>
                <!--
                    Example for 12.x:
                    {"name":"VMware Fusion 12.0.0 (for Intel-based Macs)","code":"FUS-1200","releaseDate":"2020-09-14T07:00:00Z","productId":"1040","releasePackageId":"52084","orderId":1}
                -->
                <key>url</key>
                <string>https://my.vmware.com/channel/public/api/v1.0/products/getRelatedDLGList?locale=en_US&amp;category=desktop_end_user_computing&amp;product=vmware_fusion&amp;version=12_0&amp;dlgType=PRODUCT_BINARY</string>
                <!--
                    Example for 12.x:
                    https://my.vmware.com/channel/public/api/v1.0/products/getRelatedDLGList?locale=en_US&category=desktop_end_user_computing&product=vmware_fusion&version=12_0&dlgType=PRODUCT_BINARY
                -->
            </dict>
            <key>Processor</key>
            <string>URLTextSearcher</string>
        </dict>
        <dict>
            <key>Arguments</key>
            <dict>
                <key>re_pattern</key>
                <string>VMware-Fusion-.*\.dmg</string>
                <!--
                    Example for 12.x:
                    VMware-Fusion-12.0.0-16880131.dmg
                -->
                <key>result_output_var_name</key>
                <string>dmg_url</string>
                <key>url</key>
                <string>https://my.vmware.com/channel/public/api/v1.0/dlg/details?locale=en_US&amp;category=desktop_end_user_computing&amp;product=vmware_fusion&amp;version=12_0&amp;dlgType=PRODUCT_BINARY&amp;downloadGroup=%downloadGroup%</string>
                <!--
                    Example for 11.x:
                    https://my.vmware.com/channel/public/api/v1.0/dlg/details?locale=en_US&category=desktop_end_user_computing&product=vmware_fusion&version=12_0&dlgType=PRODUCT_BINARY&downloadGroup=FUS-1200
                -->
            </dict>
            <key>Processor</key>
            <string>URLTextSearcher</string>
        </dict>
        <dict>
            <key>Arguments</key>
            <dict>
                <key>url</key>
                <string>https://download3.vmware.com/software/fusion/file/%dmg_url%</string>
                <!--
                    Example for 11.x:
                    https://download3.vmware.com/software/fusion/file/VMware-Fusion-12.0.0-16880131.dmg
                -->
            </dict>
            <key>Processor</key>
            <string>URLDownloader</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
        <dict>
            <key>Arguments</key>
            <dict>
                <key>input_path</key>
                <string>%pathname%/VMware Fusion.app</string>
                <key>requirement</key>
                <string>identifier "com.vmware.fusion" and anchor apple generic and 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] = EG7KH642X6</string>
            </dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
        </dict>
    </array>
</dict>
</plist>
VMware Fusion 12/VMWareFusion12.png METASEP

VMware Fusion 12/PackageInfoTemplate METASEP
<pkg-info format-version="2" identifier="com.vmware.fusion" install-location="/" auth="root" preserve-xattr="true">
</pkg-info>
VMware Fusion 11/VMware Fusion 11.pkg.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of VMware Fusion 11 and creates a package</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.pkg.VMware Fusion 11</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>VMwareFusion11</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.2.5</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.VMware Fusion 11</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>AppDmgVersioner</string>
            <key>Arguments</key>
            <dict>
                <key>dmg_path</key>
                <string>%pathname%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PkgRootCreator</string>
            <key>Arguments</key>
            <dict>
                <key>pkgroot</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%</string>
                <key>pkgdirs</key>
                <dict>
                    <key>Applications</key>
                    <string>0775</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>DittoCopier</string>
            <key>Arguments</key>
            <dict>
                <key>source_path</key>
                <string>%pathname%/%app_name%</string>
                <key>destination_path</key>
                <string>%pkgroot%/Applications/%app_name%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PkgRootCreator</string>
            <key>Arguments</key>
            <dict>
                <key>pkgroot</key>
                <string>%RECIPE_CACHE_DIR%/Scripts</string>
                <key>pkgdirs</key>
                <dict/>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>FileCreator</string>
            <key>Arguments</key>
            <dict>
                <key>file_content</key>
            <string>#!/bin/zsh
#
# Pinched with &lt;3 from: https://github.com/autopkg/justinrummel-recipes/blob/42bc13881fe373f771cefec20a53d7844172019f/VMware%20Fusion/VMwareFusion.pkg.munki.recipe
#

if [[ -e /Applications/VMware\ Fusion.app/Contents/Library/Initialize\ VMware\ Fusion.tool ]]
then
        /Applications/VMware\ Fusion.app/Contents/Library/Initialize\ VMware\ Fusion.tool set
fi</string>
                <key>file_mode</key>
                <string>0755</string>
                <key>file_path</key>
                <string>%RECIPE_CACHE_DIR%/Scripts/postinstall</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PkgInfoCreator</string>
            <key>Arguments</key>
            <dict>
                <key>version</key>
                <string>%version%</string>
                <key>template_path</key>
                <string>PackageInfoTemplate</string>
                <key>infofile</key>
                <string>%RECIPE_CACHE_DIR%/PackageInfo</string>
                <key>pkgtype</key>
                <string>flat</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PkgCreator</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_request</key>
                <dict>
                    <key>pkgname</key>
                    <string>%NAME%-%version%</string>
                    <key>chown</key>
                    <array>
                        <dict>
                            <key>path</key>
                            <string>Applications</string>
                            <key>user</key>
                            <string>root</string>
                            <key>group</key>
                            <string>admin</string>
                        </dict>
                    </array>
                    <key>id</key>
                    <string>%bundleid%</string>
                    <key>options</key>
                    <string>purge_ds_store</string>
                    <key>pkgdir</key>
                    <string>%RECIPE_CACHE_DIR%</string>
                    <key>pkgroot</key>
                    <string>%RECIPE_CACHE_DIR%/%NAME%</string>
                    <key>scripts</key>
                    <string>Scripts</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PathDeleter</string>
            <key>Arguments</key>
            <dict>
                <key>path_list</key>
                <array>
                    <string>%RECIPE_CACHE_DIR%/%NAME%/</string>
                    <string>%RECIPE_CACHE_DIR%/Scripts/</string>
                </array>
            </dict>
        </dict>
    </array>
</dict>
</plist>

VMware Fusion 11/VMware Fusion 11.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the most recent version of VMware Fusion 11 and imports it into Munki.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.VMware Fusion 11</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>VMwareFusion11</string>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/VMware</string>
        <key>pkginfo</key>
        <dict>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>VMware Fusion is the easiest, fastest, and most reliable way to run Windows and other x86 based operating systems on a Mac without rebooting.</string>
            <key>developer</key>
            <string>VMware</string>
            <key>display_name</key>
            <string>VMWare Fusion Pro 11</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
            <key>postinstall_script</key>
            <string>#!/bin/bash
#
# Pinched with &lt;3 from: https://github.com/autopkg/justinrummel-recipes/blob/42bc13881fe373f771cefec20a53d7844172019f/VMware%20Fusion/VMwareFusion.pkg.munki.recipe
#

if [ -e /Applications/VMware\ Fusion.app/Contents/Library/Initialize\ VMware\ Fusion.tool ]
then
        /Applications/VMware\ Fusion.app/Contents/Library/Initialize\ VMware\ Fusion.tool set
fi</string>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.2.5</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.VMware Fusion 11</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%pathname%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>

VMware Fusion 11/VMware Fusion 11.jss.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the current release version of VMWare Fusion 11 and then uploads to the JSS</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.jss.VMWare Fusion 11</string>
    <key>Input</key>
    <dict>
        <key>CATEGORY</key>
        <string>Productivity</string>
        <key>GROUP_NAME</key>
        <string>%NAME%-update-smart</string>
        <key>GROUP_TEMPLATE</key>
        <string>SmartGroupTemplate.xml</string>
        <key>NAME</key>
        <string>VMWare Fusion 11</string>
        <key>POLICY_CATEGORY</key>
        <string>Testing</string>
        <key>POLICY_TEMPLATE</key>
        <string>PolicyTemplate.xml</string>
        <key>SELF_SERVICE_DESCRIPTION</key>
        <string>VMware Fusion is the easiest, fastest, and most reliable way to run Windows and other x86 based operating systems on a Mac without rebooting.</string>
        <key>SELF_SERVICE_ICON</key>
        <string>VMWareFusion11.png</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.2.0</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.pkg.VMware Fusion 11</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Arguments</key>
            <dict>
                <key>category</key>
                <string>%CATEGORY%</string>
                <key>groups</key>
                <array>
                    <dict>
                        <key>name</key>
                        <string>%GROUP_NAME%</string>
                        <key>smart</key>
                        <true/>
                        <key>template_path</key>
                        <string>%GROUP_TEMPLATE%</string>
                    </dict>
                </array>
                <key>policy_category</key>
                <string>%POLICY_CATEGORY%</string>
                <key>policy_template</key>
                <string>%POLICY_TEMPLATE%</string>
                <key>prod_name</key>
                <string>VMWare Fusion</string>
                <key>self_service_description</key>
                <string>%SELF_SERVICE_DESCRIPTION%</string>
                <key>self_service_icon</key>
                <string>%SELF_SERVICE_ICON%</string>
            </dict>
            <key>Processor</key>
            <string>JSSImporter</string>
        </dict>
    </array>
</dict>
</plist>

VMware Fusion 11/VMware Fusion 11.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of VMware Fusion 11.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.VMware Fusion 11</string>
    <key>Input</key>
    <dict/>
    <key>MinimumVersion</key>
    <string>0.4.2</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Arguments</key>
            <dict>
                <key>re_pattern</key>
                <string>{\&quot;name\&quot;:\&quot;VMware Fusion 11.*\&quot;,\&quot;dlgList&quot;:\[{&quot;.*&quot;,\&quot;code\&quot;:\&quot;(?P&lt;downloadGroup&gt;FUS-[\d]+?)\&quot;,\&quot;releaseDate\&quot;:\&quot;.*\&quot;,\&quot;productId\&quot;:\&quot;.*\&quot;,\&quot;releasePackageId\&quot;:\&quot;.*\&quot;,\&quot;orderId\&quot;:.*}</string>
                <!--
                    Example for 11.x:
                    {"name":"VMware Fusion 11.5.5","dlgList":[{"name":"VMware Fusion 11.5.5 (for Intel-based Macs)","code":"FUS-1155","releaseDate":"2020-05-28T19:00:00Z","productId":"798","releasePackageId":"46541","orderId":5}
                -->
                <key>url</key>
                <string>https://my.vmware.com/channel/public/api/v1.0/products/getRelatedDLGList?locale=en_US&amp;category=desktop_end_user_computing&amp;product=vmware_fusion&amp;version=11_0&amp;dlgType=PRODUCT_BINARY</string>
                <!--
                    Example for 11.x:
                    https://my.vmware.com/channel/public/api/v1.0/products/getRelatedDLGList?locale=en_US&category=desktop_end_user_computing&product=vmware_fusion&version=11_0&dlgType=PRODUCT_BINARY
                -->
            </dict>
            <key>Processor</key>
            <string>URLTextSearcher</string>
        </dict>
        <dict>
            <key>Arguments</key>
            <dict>
                <key>re_pattern</key>
                <string>VMware-Fusion-.*\.dmg</string>
                <!--
                    Example for 11.x:
                    VMware-Fusion-11.5.5-16269456.dmg
                -->
                <key>result_output_var_name</key>
                <string>dmg_url</string>
                <key>url</key>
                <string>https://my.vmware.com/channel/public/api/v1.0/dlg/details?locale=en_US&amp;category=desktop_end_user_computing&amp;product=vmware_fusion&amp;version=11_0&amp;dlgType=PRODUCT_BINARY&amp;downloadGroup=%downloadGroup%</string>
                <!--
                    Example for 11.x:
                    https://my.vmware.com/channel/public/api/v1.0/dlg/details?locale=en_US&category=desktop_end_user_computing&product=vmware_fusion&version=11_0&dlgType=PRODUCT_BINARY&downloadGroup=FUS-1155
                -->
            </dict>
            <key>Processor</key>
            <string>URLTextSearcher</string>
        </dict>
        <dict>
            <key>Arguments</key>
            <dict>
                <key>url</key>
                <string>https://download3.vmware.com/software/fusion/file/%dmg_url%</string>
                <!--
                    Example for 11.x:
                    https://download3.vmware.com/software/fusion/file/VMware-Fusion-11.5.5-16269456.dmg
                -->
            </dict>
            <key>Processor</key>
            <string>URLDownloader</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
        <dict>
            <key>Arguments</key>
            <dict>
                <key>input_path</key>
                <string>%pathname%/VMware Fusion.app</string>
                <key>requirement</key>
                <string>identifier "com.vmware.fusion" and anchor apple generic and 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] = EG7KH642X6</string>
            </dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
        </dict>
    </array>
</dict>
</plist>
VMware Fusion 11/VMWareFusion11.png METASEP

VMware Fusion 11/PackageInfoTemplate METASEP
<pkg-info format-version="2" identifier="com.vmware.fusion" install-location="/" auth="root" preserve-xattr="true">
</pkg-info>
VMware Fusion 10/VMware Fusion 10.pkg.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>Description</key>
	<string>Downloads the latest version of VMware Fusion 10 and creates a package</string>
	<key>Identifier</key>
	<string>com.github.dataJAR-recipes.pkg.VMware Fusion 10</string>
	<key>Input</key>
	<dict>
		<key>NAME</key>
		<string>VMwareFusion10</string>
	</dict>
	<key>MinimumVersion</key>
	<string>0.2.5</string>
	<key>ParentRecipe</key>
	<string>com.github.dataJAR-recipes.download.VMware Fusion 10</string>
	<key>Process</key>
	<array>
		<dict>
			<key>Processor</key>
			<string>PlistReader</string>
			<key>Arguments</key>
			<dict>
				<key>info_path</key>
				<string>%RECIPE_CACHE_DIR%/%NAME%/Applications/VMWare Fusion.app</string>
				<key>plist_keys</key>
				<dict>
					<key>CFBundleShortVersionString</key>
					<string>version</string>
					<key>CFBundleIdentifier</key>
					<string>bundleid</string>
				</dict>
			</dict>
		</dict>
		<dict>
			<key>Processor</key>
			<string>PkgRootCreator</string>
			<key>Arguments</key>
			<dict>
				<key>pkgroot</key>
				<string>%RECIPE_CACHE_DIR%/Scripts</string>
				<key>pkgdirs</key>
				<dict/>
			</dict>
		</dict>
		<dict>
			<key>Processor</key>
			<string>FileCreator</string>
			<key>Arguments</key>
			<dict>
				<key>file_content</key>
			<string>#!/bin/bash
#
# Pinched with &lt;3 from: https://github.com/autopkg/justinrummel-recipes/blob/42bc13881fe373f771cefec20a53d7844172019f/VMware%20Fusion/VMwareFusion.pkg.munki.recipe
#

if [ -e /Applications/VMware\ Fusion.app/Contents/Library/Initialize\ VMware\ Fusion.tool ]
then
		/Applications/VMware\ Fusion.app/Contents/Library/Initialize\ VMware\ Fusion.tool set
fi</string>
				<key>file_mode</key>
				<string>0755</string>
				<key>file_path</key>
				<string>%RECIPE_CACHE_DIR%/Scripts/postinstall</string>
			</dict>
		</dict>
		<dict>
			<key>Processor</key>
			<string>PkgCreator</string>
			<key>Arguments</key>
			<dict>
				<key>pkg_request</key>
				<dict>
					<key>pkgname</key>
					<string>%NAME%-%version%</string>
					<key>chown</key>
					<array>
						<dict>
							<key>path</key>
							<string>Applications</string>
							<key>user</key>
							<string>root</string>
							<key>group</key>
							<string>admin</string>
						</dict>
					</array>
					<key>id</key>
					<string>%bundleid%</string>
					<key>options</key>
					<string>purge_ds_store</string>
					<key>pkgdir</key>
					<string>%RECIPE_CACHE_DIR%</string>
					<key>pkgroot</key>
					<string>%RECIPE_CACHE_DIR%/%NAME%</string>
					<key>scripts</key>
					<string>Scripts</string>
				</dict>
			</dict>
		</dict>
		<dict>
			<key>Processor</key>
			<string>PathDeleter</string>
			<key>Arguments</key>
			<dict>
				<key>path_list</key>
				<array>
					<string>%RECIPE_CACHE_DIR%/%NAME%/</string>
					<string>%RECIPE_CACHE_DIR%/Scripts/</string>
				</array>
			</dict>
		</dict>
	</array>
</dict>
</plist>

VMware Fusion 10/VMware Fusion 10.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>Description</key>
	<string>Downloads the most recent version of VMware Fusion 10 and imports it into Munki.</string>
	<key>Identifier</key>
	<string>com.github.dataJAR-recipes.munki.VMware Fusion 10</string>
	<key>Input</key>
	<dict>
		<key>NAME</key>
		<string>VMwareFusion10</string>
		<key>MUNKI_REPO_SUBDIR</key>
		<string>apps/VMware</string>
		<key>pkginfo</key>
		<dict>
			<key>catalogs</key>
			<array>
				<string>testing</string>
			</array>
			<key>description</key>
			<string>VMware Fusion is the easiest, fastest, and most reliable way to run Windows and other x86 based operating systems on a Mac without rebooting.</string>
			<key>developer</key>
			<string>VMware</string>
			<key>display_name</key>
			<string>VMWare Fusion Pro 10</string>
			<key>name</key>
			<string>%NAME%</string>
			<key>unattended_install</key>
			<true/>
			<key>postinstall_script</key>
			<string>#!/bin/bash
#
# Pinched with &lt;3 from: https://github.com/autopkg/justinrummel-recipes/blob/42bc13881fe373f771cefec20a53d7844172019f/VMware%20Fusion/VMwareFusion.pkg.munki.recipe
#

if [ -e /Applications/VMware\ Fusion.app/Contents/Library/Initialize\ VMware\ Fusion.tool ]
then
		/Applications/VMware\ Fusion.app/Contents/Library/Initialize\ VMware\ Fusion.tool set
fi</string>
		</dict>
	</dict>
	<key>MinimumVersion</key>
	<string>0.2.5</string>
	<key>ParentRecipe</key>
	<string>com.github.dataJAR-recipes.download.VMware Fusion 10</string>
	<key>Process</key>
	<array>
		<dict>
			<key>Processor</key>
			<string>DmgCreator</string>
			<key>Arguments</key>
			<dict>
				<key>dmg_root</key>
				<string>%pkgroot%/Applications</string>
				<key>dmg_path</key>
				<string>%RECIPE_CACHE_DIR%/%NAME%.dmg</string>
			</dict>
		</dict>
		<dict>
			<key>Processor</key>
			<string>MunkiImporter</string>
			<key>Arguments</key>
			<dict>
				<key>pkg_path</key>
				<string>%dmg_path%</string>
				<key>repo_subdirectory</key>
				<string>%MUNKI_REPO_SUBDIR%</string>
			</dict>
		</dict>
		<dict>
			<key>Processor</key>
			<string>PathDeleter</string>
			<key>Arguments</key>
			<dict>
				<key>path_list</key>
				<array>
					<string>%RECIPE_CACHE_DIR%/%NAME%/</string>
				</array>
			</dict>
		</dict>
	</array>
</dict>
</plist>

VMware Fusion 10/VMware Fusion 10.jss.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>Description</key>
	<string>Downloads the current release version of VMWare Fusion 10 and then uploads to the JSS</string>
	<key>Identifier</key>
	<string>com.github.dataJAR-recipes.jss.VMWare Fusion 10</string>
	<key>Input</key>
	<dict>
		<key>CATEGORY</key>
		<string>Productivity</string>
		<key>GROUP_NAME</key>
		<string>%NAME%-update-smart</string>
		<key>GROUP_TEMPLATE</key>
		<string>SmartGroupTemplate.xml</string>
		<key>NAME</key>
		<string>VMWare Fusion 10</string>
		<key>POLICY_CATEGORY</key>
		<string>Testing</string>
		<key>POLICY_TEMPLATE</key>
		<string>PolicyTemplate.xml</string>
		<key>SELF_SERVICE_DESCRIPTION</key>
		<string>VMware Fusion is the easiest, fastest, and most reliable way to run Windows and other x86 based operating systems on a Mac without rebooting.</string>
		<key>SELF_SERVICE_ICON</key>
		<string>VMWareFusion10.png</string>
	</dict>
	<key>MinimumVersion</key>
	<string>0.2.0</string>
	<key>ParentRecipe</key>
	<string>com.github.dataJAR-recipes.pkg.VMware Fusion 10</string>
	<key>Process</key>
	<array>
		<dict>
			<key>Arguments</key>
			<dict>
				<key>category</key>
				<string>%CATEGORY%</string>
				<key>groups</key>
				<array>
					<dict>
						<key>name</key>
						<string>%GROUP_NAME%</string>
						<key>smart</key>
						<true/>
						<key>template_path</key>
						<string>%GROUP_TEMPLATE%</string>
					</dict>
				</array>
				<key>policy_category</key>
				<string>%POLICY_CATEGORY%</string>
				<key>policy_template</key>
				<string>%POLICY_TEMPLATE%</string>
				<key>prod_name</key>
				<string>VMWare Fusion</string>
				<key>self_service_description</key>
				<string>%SELF_SERVICE_DESCRIPTION%</string>
				<key>self_service_icon</key>
				<string>%SELF_SERVICE_ICON%</string>
			</dict>
			<key>Processor</key>
			<string>JSSImporter</string>
		</dict>
	</array>
</dict>
</plist>

VMware Fusion 10/VMware Fusion 10.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of VMware Fusion 10</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.VMware Fusion 10</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>VMwareFusion10</string>
    </dict>
    <key>MinimumVersion</key>
    <string>1.1</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>DeprecationWarning</string>
            <key>Arguments</key>
            <dict>
                <key>warning_message</key>
                <string>This title has not been updated since 2019 and has been superseded by newer versions, please use a more current recipe.</string>
            </dict>
        </dict>
        <dict>   
            <key>Processor</key>   
            <string>StopProcessingIf</string>   
            <key>Arguments</key>   
            <dict>   
                <key>predicate</key>   
                <string>TRUEPREDICATE</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>VMwareFusion10URLProvider</string>
            <key>Arguments</key>
            <dict>
                <key>product_name</key>
                <string>fusion.xml</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>URLDownloader</string>
            <key>Arguments</key>
            <dict>
                <key>filename</key>
                <string>%NAME%.zip.tar</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>Unarchiver</string>
            <key>Arguments</key>
            <dict>
                <key>archive_path</key>
                <string>%pathname%</string>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/tar</string>
                <key>purge_destination</key>
                <true/>
                <key>archive_format</key>
                <string>tar</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>Unarchiver</string>
            <key>Arguments</key>
            <dict>
                <key>archive_path</key>
                <string>%RECIPE_CACHE_DIR%/tar/com.vmware.fusion.zip</string>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/source</string>
                <key>purge_destination</key>
                <true/>
                <key>archive_format</key>
                <string>zip</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PkgRootCreator</string>
            <key>Arguments</key>
            <dict>
                <key>pkgroot</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%</string>
                <key>pkgdirs</key>
                <dict>
                    <key>Applications</key>
                    <string>0775</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>Copier</string>
            <key>Arguments</key>
            <dict>
                <key>source_path</key>
                <string>%RECIPE_CACHE_DIR%/source/payload/VMware Fusion.app</string>
                <key>destination_path</key>
                <string>%pkgroot%/Applications/VMware Fusion.app</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
            <key>Arguments</key>
            <dict>
                <key>input_path</key>
                <string>%pkgroot%/Applications/VMware Fusion.app</string>
                <key>requirement</key>
                <string>identifier "com.vmware.fusion" and anchor apple generic and 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] = EG7KH642X6</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PathDeleter</string>
            <key>Arguments</key>
            <dict>
                <key>path_list</key>
                <array>
                    <string>%RECIPE_CACHE_DIR%/tar/</string>
                    <string>%RECIPE_CACHE_DIR%/source/</string>
                </array>
            </dict>
        </dict>
    </array>
</dict>
</plist>
VMware Fusion 10/VMWareFusion10.png METASEP

VMware Fusion 10/README.md METASEP
VMware Fusion
===

Recipes were orginally hosted at: https://github.com/autopkg/justinrummel-recipes/tree/master/VMware%20Fusion

But we had a need to hardcode the major version & as there was a number of outstanding PR's we created our own version with the major version within the name.

VIA/VIA.png METASEP

VIA/VIA.pkg.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of VIA and creates a flat PKG.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.pkg.VIA</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>VIA</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.VIA</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>PlistReader</string>
            <key>Arguments</key>
            <dict>
                <key>info_path</key>
                <string>%RECIPE_CACHE_DIR%/unzip/VIASetup.dmg/VIA.app</string>
                <key>plist_keys</key>
                <dict>
                    <key>CFBundleIdentifier</key>
                    <string>bundleid</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PkgRootCreator</string>
            <key>Arguments</key>
            <dict>
                <key>pkgroot</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%</string>
                <key>pkgdirs</key>
                <dict>
                    <key>Applications</key>
                    <string>0775</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>Copier</string>
            <key>Arguments</key>
            <dict>
                <key>source_path</key>
                <string>%RECIPE_CACHE_DIR%/unzip/VIASetup.dmg/VIA.app</string>
                <key>destination_path</key>
                <string>%pkgroot%/Applications/VIA.app</string>
                <key>overwrite</key>
                <true/>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PkgCreator</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_request</key>
                <dict>
                    <key>pkgname</key>
                    <string>%NAME%-%version%</string>
                    <key>chown</key>
                    <array>
                        <dict>
                            <key>path</key>
                            <string>Applications</string>
                            <key>user</key>
                            <string>root</string>
                            <key>group</key>
                            <string>admin</string>
                        </dict>
                    </array>
                    <key>id</key>
                    <string>%bundleid%</string>
                    <key>options</key>
                    <string>purge_ds_store</string>
                    <key>pkgdir</key>
                    <string>%RECIPE_CACHE_DIR%</string>
                    <key>pkgroot</key>
                    <string>%pkgroot%</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PathDeleter</string>
            <key>Arguments</key>
            <dict>
                <key>path_list</key>
                <array>
                    <string>%pkgroot%</string>                          
                </array>
            </dict>
        </dict> 
    </array>
</dict>
</plist>

VIA/VIA.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of VIA and imports it into Munki.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.VIA</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>VIA</string>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>pkginfo</key>
        <dict>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>The VIA.app allows you to connect your Mac to a compatible Kramer system.</string>
            <key>developer</key>
            <string>Kramer</string>
            <key>display_name</key>
            <string>VIA</string>
            <key>minimum_os_version</key>
            <string>10.12</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
            <key>unattended_uninstall</key>
            <true/>
            <key>uninstall_method</key>
            <string>uninstall_script</string>
            <key>uninstall_script</key>
            <string>#!/bin/bash
#
# Deletes app bundle
#

if [ -d /Applications/VIA.app/ ]
then
    /bin/rm -rf /Applications/VIA.app
fi</string>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.pkg.VIA</string>
    <key>Process</key>
    <array>
        <dict>  
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%pkg_path%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>

VIA/VIA.jss.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the current release version of VIA and then uploads to the JSS</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.jss.VIA</string>
    <key>Input</key>
    <dict>
        <key>CATEGORY</key>
        <string>Applications</string>
        <key>GROUP_NAME</key>
        <string>%NAME%-update-smart</string>
        <key>GROUP_TEMPLATE</key>
        <string>SmartGroupTemplate.xml</string>
        <key>NAME</key>
        <string>VIA</string>
        <key>POLICY_CATEGORY</key>
        <string>Testing</string>
        <key>POLICY_TEMPLATE</key>
        <string>PolicyTemplate.xml</string>
        <key>SELF_SERVICE_DESCRIPTION</key>
        <string>The VIA.app allows you to connect your Mac to a compatible Kramer system.</string>
        <key>SELF_SERVICE_ICON</key>
        <string>VIA.png</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.pkg.VIA</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>JSSImporter</string>
            <key>Arguments</key>
            <dict>
                <key>category</key>
                <string>%CATEGORY%</string>
                <key>groups</key>
                <array>
                    <dict>
                        <key>name</key>
                        <string>%GROUP_NAME%</string>
                        <key>smart</key>
                        <true/>
                        <key>template_path</key>
                        <string>%GROUP_TEMPLATE%</string>
                    </dict>
                </array>
                <key>pkg_path</key>
                <string>%target%</string>
                <key>policy_category</key>
                <string>%POLICY_CATEGORY%</string>
                <key>policy_template</key>
                <string>%POLICY_TEMPLATE%</string>
                <key>prod_name</key>
                <string>VIA</string>
                <key>self_service_description</key>
                <string>%SELF_SERVICE_DESCRIPTION%</string>
                <key>self_service_icon</key>
                <string>%SELF_SERVICE_ICON%</string>
                <key>version</key>
                <string>%version%</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>
VIA/VIA.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads latest version of VIA.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.VIA</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>VIA</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>URLTextSearcher</string>
            <key>Arguments</key>
            <dict>
                <key>url</key>
                <string>https://k.kramerav.com/support/download.asp?f=58679</string>
                <key>re_pattern</key>
                <string>https://cdn\.kramerav\.com/web/downloads/setups/via_mac_dmg_v.*?\.zip</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>URLDownloader</string>
            <key>Arguments</key>
            <dict>
                <key>url</key>
                <string>%match%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>Unarchiver</string>
            <key>Arguments</key>
            <dict>
                <key>archive_path</key>
                <string>%pathname%</string>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/unzip/</string>
                <key>purge_destination</key>
                <true/>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
            <key>Arguments</key>
            <dict>
                <key>input_path</key>
                <string>%RECIPE_CACHE_DIR%/unzip/VIASetup.dmg/VIA.app</string>
                <key>requirement</key>
                <string>identifier "com.kramerel.VIA" and anchor apple generic and 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] = "6N7HV3FEWJ"</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>com.github.homebysix.VersionSplitter/VersionSplitter</string>
            <key>Arguments</key>
            <dict>
                <key>version</key>
                <string>%match%</string>
                <key>index</key>
                <integer>2</integer>
                <key>split_on</key>
                <string>v.</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>com.github.homebysix.VersionSplitter/VersionSplitter</string>
            <key>Arguments</key>
            <dict>
                <key>version</key>
                <string>%version%</string>
                <key>index</key>
                <integer>0</integer>
                <key>split_on</key>
                <string>.zip</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>
VCV Rack 2 Free/VCV Rack 2 Free.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of the VCV Rack 2 Free and imports it into Munki.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.VCV Rack 2 Free</string>
    <key>Input</key>
    <dict>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>NAME</key>
        <string>VCVRack2Free</string>
        <key>pkginfo</key>
        <dict>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>VCV Rack 2 Free is the host application for the VCV virtual Eurorack modular synthesizer platform.</string>
            <key>display_name</key>
            <string>VCV Rack 2 Free</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.VCV Rack 2 Free</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>FlatPkgUnpacker</string>
            <key>Arguments</key>
            <dict>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/unpack</string>
                <key>flat_pkg_path</key>
                <string>%pathname%</string>
                <key>purge_destination</key>
                <true/>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PkgPayloadUnpacker</string>
            <key>Arguments</key>
            <dict>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%/Applications/</string>
                <key>pkg_payload_path</key>
                <string>%RECIPE_CACHE_DIR%/unpack/Component.pkg/payload</string>
                <key>purge_destination</key>
                <true/>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiInstallsItemsCreator</string>
            <key>Arguments</key>
            <dict>
                <key>faux_root</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%</string>
                <key>installs_item_paths</key>
                <array>
                    <string>/Applications/VCV Rack 2 Free.app</string>
                </array>
                <key>version_comparison_key</key>
                <string>CFBundleShortVersionString</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiPkginfoMerger</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PlistReader</string>
            <key>Arguments</key>
            <dict>
                <key>info_path</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%/Applications/VCV Rack 2 Free.app/Contents/Info.plist</string>
                <key>plist_keys</key>
                <dict>
                    <key>CFBundleShortVersionString</key>
                    <string>version</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiPkginfoMerger</string>
            <key>Arguments</key>
            <dict>
                <key>additional_pkginfo</key>
                <dict>
                    <key>version</key>
                    <string>%version%</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%pathname%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PathDeleter</string>
            <key>Arguments</key>
            <dict>
                <key>path_list</key>
                <array>
                    <string>%RECIPE_CACHE_DIR%/%NAME%</string>
                    <string>%RECIPE_CACHE_DIR%/unpack</string>
                </array>
            </dict>
        </dict>
    </array>
</dict>
</plist>
VCV Rack 2 Free/VCV Rack 2 Free.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of the VCV Rack 2 Free.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.VCV Rack 2 Free</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>VCVRack2Free</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>URLTextSearcher</string>
            <key>Arguments</key>
            <dict>
                <key>url</key>
                <string>https://vcvrack.com/Rack#get</string>
                <key>re_pattern</key>
                <string>/downloads/RackFree-2.*?-mac\.pkg</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>URLDownloader</string>
            <key>Arguments</key>
            <dict>
                <key>url</key>
                <string>https://vcvrack.com%match%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
            <key>Arguments</key>
            <dict>
                <key>input_path</key>
                <string>%pathname%</string>
                <key>expected_authority_names</key>
                <array>
                    <string>Developer ID Installer: Andrew Belt (V8SW9J626X)</string>
                    <string>Developer ID Certification Authority</string>
                    <string>Apple Root CA</string>
                </array>
            </dict>
        </dict>
    </array>
</dict>
</plist>
UssAgent/UssAgent.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of UssAgent and imports into Munki.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.UssAgent</string>
    <key>Input</key>
    <dict>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>NAME</key>
        <string>UssAgent</string>
        <key>pkginfo</key>
        <dict>
            <key>blocking_applications</key>
            <array>
                <string>Firefox</string>
            </array>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>Unified Security Service (USS) is a platform for delivering multiple, integrated, Internet security products that are more powerful together than as standalone solutions. As a platform, USS is built as a multi-tiered and multi-tenanted SaaS application with an API layer for 3rd party integration, which makes it an ideal solution for Managed Services.</string>
            <key>display_name</key>
            <string>UssAgent</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>postinstall_script</key>
            <string>#!/bin/sh
#
# Taken from http://help.clouduss.com/mac-os-x-command-line-parameters$preinstall, amend as needed
#

/Applications/UssAgent\ Installer.app/Contents/MacOS/UssAgent\ Installer -q -u -p -h -d</string>
            <key>RestartAction</key>
            <string>RequireLogout</string>
            <key>requires</key>
            <array>
                <string>Firefox</string>
            </array>
            <key>unattended_install</key>
            <true/>
            <key>unattended_uninstall</key>
            <true/>
            <key>uninstall_method</key>
            <string>uninstall_script</string>
            <key>uninstall_script</key>
            <string>#!/bin/sh
#
# Taken from /UssAgent Uninstaller.app/Contents/Resources/Packages/Uninstall.pkg/postinstall
#

PRODUCTNAME=UssAgent

APPLICATION_DIR="/Applications"
APPLICATION_SUPPORT_DIR="/Library/Application Support"
LAUNCH_AGENTS_DIR="/Library/LaunchAgents"
LAUNCH_DAEMONS_DIR="/Library/LaunchDaemons"
COMPANY_NAME="Censornet"

USS_AGENT_PLIST=com.censornet.${PRODUCTNAME}.plist
USS_DAEMON_PLIST=com.censornet.${PRODUCTNAME}Proxy.plist

USS_AGENT_ID="$LAUNCH_AGENTS_DIR"/"$USS_AGENT_PLIST"
USS_DAEMON_ID="$LAUNCH_DAEMONS_DIR"/"$USS_DAEMON_PLIST"

/bin/launchctl unload -F "$USS_DAEMON_ID" 2>/dev/null

# bundles
/bin/rm -rf "$APPLICATION_DIR"/"$PRODUCTNAME".app
/bin/rm -rf "$APPLICATION_SUPPORT_DIR"/"$COMPANY_NAME"
/bin/rm -rf "$USS_AGENT_ID"
/bin/rm -rf "$USS_DAEMON_ID"

#=================Firefox=========================

FIREFOX_RES_DIR="/Applications/Firefox.app/Contents/Resources/"
FIREFOX_DEF_DIR="/Applications/Firefox.app/Contents/Resources/defaults/pref"
FIREFOX_CFG="mozilla.cfg"
FIREFOX_PREF="all.js"

/bin/rm -rf "$FIREFOX_DEF_DIR/$FIREFOX_PREF"
/bin/rm -rf "$FIREFOX_RES_DIR/$FIREFOX_CFG"

# Modified from https://macmule.com/2014/12/07/how-to-change-the-automatic-proxy-configuration-url-in-system-preferences-via-a-script/

# Detects all network hardware and creates services for all installed network hardware
/usr/sbin/networksetup -detectnewhardware

IFS=$'\n'

#Loops through the list of network services
for i in $(/usr/sbin/networksetup -listallnetworkservices | /usr/bin/tail +2 ); 

    do  
        
        # Turn off auto proxy
        /usr/sbin/networksetup -setsocksfirewallproxystate "$i" off
        /bin/echo "Turned off Socks Firewall Proxy for interface $i"
    
    done

unset IFS

/bin/echo "Socks Firewall Proxy for all interfaces turned off"</string>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.UssAgent</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>MunkiPkginfoMerger</string>
            <key>Arguments</key>
            <dict>
                <key>additional_pkginfo</key>
                <dict>
                    <key>version</key>
                    <string>%version%</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiInstallsItemsCreator</string>
            <key>Arguments</key>
            <dict>
                <key>faux_root</key>
                <string>%RECIPE_CACHE_DIR%/application_payload/</string>
                <key>installs_item_paths</key>
                <array>
                    <string>/Applications/UssAgent.app</string>
                </array>
                <key>version_comparison_key</key>
                <string>CFBundleVersion</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiPkginfoMerger</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%pathname%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PathDeleter</string>
            <key>Arguments</key>
            <dict>
                <key>path_list</key>
                <array>
                    <string>%RECIPE_CACHE_DIR%/application_payload</string>
                    <string>%RECIPE_CACHE_DIR%/unpack</string>
                </array>
            </dict>
        </dict>
    </array>
</dict>
</plist>

UssAgent/UssAgent.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Download recipe for the latest version of UssAgent.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.UssAgent</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>UssAgent</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>URLTextSearcher</string>
            <key>Arguments</key>
            <dict>
                <key>url</key>
                <string>https://downloads.clouduss.com/macosx/?C=M;O=D</string>
                <key>re_pattern</key>
                <string>([0-9a-z\.]+\.[0-9a-z\.]+\.[0-9a-z\.]+\.[0-9a-z\.][0-9a-z\.][0-9a-z\.][0-9a-z\.])</string>
                <key>result_output_var_name</key>
                <string>match</string>
            </dict>
        </dict>
        <dict>
            <key>Arguments</key>
            <dict>
                <key>url</key>
                <string>https://downloads.clouduss.com/macosx/%match%/UssAgent%20%match%.dmg</string>
                <key>filename</key>
                <string>%NAME%.dmg</string>
            </dict>
            <key>Processor</key>
            <string>URLDownloader</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
            <key>Arguments</key>
            <dict>
                <key>input_path</key>
                <string>%pathname%/UssAgent Installer.app</string>
                <key>requirement</key>
                <string>anchor apple generic and identifier "com.censornet.UssAgent-Installer" 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] = U28J9L66UM)</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
            <key>Arguments</key>
            <dict>
                <key>input_path</key>
                <string>%pathname%/UssAgent Uninstaller.app</string>
                <key>requirement</key>
                <string>anchor apple generic and identifier "com.censornet.UssAgent-Uninstaller" 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] = U28J9L66UM)</string>
            </dict>
        </dict>
        <dict>
            <key>Arguments</key>
            <dict>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/unpack/</string>
                <key>flat_pkg_path</key>
                <string>%pathname%/UssAgent Installer.app/Contents/Resources/Packages/Install.pkg</string>
                <key>purge_destination</key>
                <string>true</string>
            </dict>
            <key>Processor</key>
            <string>FlatPkgUnpacker</string>
        </dict>
        <dict>
            <key>Arguments</key>
            <dict>
                <key>pkgroot</key>
                <string>%RECIPE_CACHE_DIR%/application_payload/Applications</string>
                <key>pkgdirs</key>
                <dict>
                    <key>Applications</key>
                    <string>0755</string>
                </dict>
            </dict>
            <key>Processor</key>
            <string>PkgRootCreator</string>
        </dict>
        <dict>
            <key>Arguments</key>
            <dict>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/application_payload/Applications</string>
                <key>pkg_payload_path</key>
                <string>%RECIPE_CACHE_DIR%/unpack/Payload</string>
                <key>purge_destination</key>
                <string>true</string>
            </dict>
            <key>Processor</key>
            <string>PkgPayloadUnpacker</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PlistReader</string>
            <key>Arguments</key>
            <dict>
                <key>info_path</key>
                <string>%destination_path%/UssAgent.app</string>
                <key>plist_keys</key>
                <dict>
                    <key>CFBundleVersion</key>
                    <string>version</string>
                    <key>CFBundleIdentifier</key>
                    <string>bundleid</string>
                </dict>
            </dict>
        </dict>
    </array>
</dict>
</plist>

Unity3D/UnityHub.pkg.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads latest UnityHub disk image and builds a package.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.pkg.UnityHub</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>UnityHub</string>
        <key>DOWNLOAD_URL</key>
        <string>https://public-cdn.cloud.unity3d.com/hub/prod/UnityHubSetup.dmg</string>    
    </dict>
    <key>ParentRecipe</key>
    <string>com.github.hansen-m.download.UnityHub</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>AppDmgVersioner</string>
            <key>Arguments</key>
            <dict>
                <key>dmg_path</key>
                <string>%pathname%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PkgRootCreator</string>
            <key>Arguments</key>
            <dict>
                <key>pkgroot</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%</string>
                <key>pkgdirs</key>
                <dict>
                    <key>Applications</key>
                    <string>0775</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>Copier</string>
            <key>Arguments</key>
            <dict>
                <key>source_path</key>
                <string>%pathname%/%app_name%</string>
                <key>destination_path</key>
                <string>%pkgroot%/Applications/%app_name%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PkgCreator</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_request</key>
                <dict>
                    <key>pkgname</key>
                    <string>%NAME%-%version%</string>
                    <key>version</key>
                    <string>%version%</string>
                    <key>id</key>
                    <string>%bundleid%</string>
                    <key>options</key>
                    <string>purge_ds_store</string>
                    <key>chown</key>
                    <array>
                        <dict>
                            <key>path</key>
                            <string>Applications</string>
                            <key>user</key>
                            <string>root</string>
                            <key>group</key>
                            <string>admin</string>
                        </dict>
                    </array>
                </dict>
            </dict>
        </dict>
    </array>
</dict>
</plist>

Unity3D/UnityHub.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>Description</key>
	<string>Downloads latest UnityHub disk image, builds a package and imports it into Munki.</string>
	<key>Identifier</key>
	<string>com.github.dataJAR-recipes.munki.UnityHub</string>
	<key>Input</key>
	<dict>
		<key>MUNKI_REPO_SUBDIR</key>
		<string>apps/%NAME%</string>
		<key>NAME</key>
		<string>UnityHub</string>
		<key>pkginfo</key>
		<dict>
			<key>catalogs</key>
			<array>
				<string>testing</string>
			</array>
			<key>description</key>
			<string>The Unity Hub is a standalone application that streamlines the way you find, download, and manage your Unity Projects and installations. In addition, you can manually add versions of the Editor that you have already installed on your machine to your Hub.</string>
			<key>developer</key>
			<string>Unity 3D</string>
			<key>display_name</key>
			<string>Unity Hub</string>
			<key>name</key>
			<string>%NAME%</string>
			<key>unattended_install</key>
			<true/>
		</dict>
	</dict>
	<key>MinimumVersion</key>
	<string>0.6.1</string>
	<key>ParentRecipe</key>
	<string>com.github.dataJAR-recipes.pkg.UnityHub</string>
	<key>Process</key>
	<array>
		<dict>
			<key>Arguments</key>
			<dict>
				<key>pkg_path</key>
				<string>%dmg_path%</string>
				<key>repo_subdirectory</key>
				<string>%MUNKI_REPO_SUBDIR%</string>
				<key>version_comparison_key</key>
				<string>CFBundleShortVersionString</string>
			</dict>
			<key>Processor</key>
			<string>MunkiImporter</string>
		</dict>
	</array>
</dict>
</plist>

Ultimaker Cura/UltimakerCura.png METASEP

Ultimaker Cura/UltimakerCura-SmartGroupTemplate.xml METASEP
<computer_group>
	<name>%group_name%</name>
	<is_smart>true</is_smart>
	<criteria>
		<criterion>
			<name>Application Title</name>
			<priority>0</priority>
			<and_or>and</and_or>
			<search_type>is</search_type>
			<value>%JSS_INVENTORY_NAME%</value>
		</criterion>
		<criterion>
			<name>UltimakerCuraVersion</name>
			<priority>1</priority>
			<and_or>and</and_or>
			<search_type>is not</search_type>
			<value>%VERSION%</value>
		</criterion>
		<criterion>
			<name>Computer Group</name>
			<priority>2</priority>
			<and_or>and</and_or>
			<search_type>member of</search_type>
			<value>Testing</value>
		</criterion>
	</criteria>
</computer_group>

Ultimaker Cura/UltimakerCura-CFBundleVersionExtensionAttribute.xml METASEP
<computer_extension_attribute>
	<name>UltimakerCuraVersion</name>
	<description />
	<data_type>String</data_type>
	<input_type>
		<type>script</type>
		<platform>Mac</platform>
		<script>#!/bin/bash
CFBundleVersion=""
if [ -f "/Applications/Ultimaker Cura.app/Contents/Info.plist" ]; then
	CFBundleVersion=$(defaults read "/Applications/Ultimaker Cura.app/Contents/Info.plist" CFBundleVersion)
fi
echo "&lt;result&gt;$CFBundleVersion&lt;/result&gt;"
exit 0
		</script>
	</input_type>
	<inventory_display>Extension Attributes</inventory_display>
	<recon_display>Extension Attributes</recon_display>
</computer_extension_attribute>

Ultimaker Cura/Ultimaker Cura.pkg.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of Ultimaker Cura and creates a package.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.pkg.Ultimaker Cura</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>Ultimaker Cura</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.Ultimaker Cura</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>PlistReader</string>
            <key>Arguments</key>
            <dict>
                <key>info_path</key>
                <string>%pathname%/Ultimaker Cura.app</string>
                <key>plist_keys</key>
                <dict>
                    <key>CFBundleIdentifier</key>
                    <string>bundleid</string>
                    <key>CFBundleVersion</key>
                    <string>version</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PkgRootCreator</string>
            <key>Arguments</key>
            <dict>
                <key>pkgroot</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%</string>
                <key>pkgdirs</key>
                <dict>
                    <key>Applications</key>
                    <string>0775</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>Copier</string>
            <key>Arguments</key>
            <dict>
                <key>destination_path</key>
                <string>%pkgroot%/Applications/Ultimaker Cura.app</string>
                <key>source_path</key>
                <string>%pathname%/Ultimaker Cura.app</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PkgCreator</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_request</key>
                <dict>
                    <key>chown</key>
                    <array>
                        <dict>
                            <key>group</key>
                            <string>admin</string>
                            <key>path</key>
                            <string>Applications</string>
                            <key>user</key>
                            <string>root</string>
                        </dict>
                    </array>
                    <key>id</key>
                    <string>%bundleid%</string>
                    <key>options</key>
                    <string>purge_ds_store</string>
                    <key>pkgname</key>
                    <string>%NAME%-%version%</string>
                    <key>pkgroot</key>
                    <string>%RECIPE_CACHE_DIR%/%NAME%</string>
                    <key>version</key>
                    <string>%version%</string>
                </dict>
            </dict>
        </dict>
    </array>
</dict>
</plist>

Ultimaker Cura/Ultimaker Cura.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of Ultimaker Cura and imports it into Munki.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.Ultimaker Cura</string>
    <key>Input</key>
    <dict>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>NAME</key>
        <string>Ultimaker Cura</string>
        <key>pkginfo</key>
        <dict>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>Ultimaker Cura prepares your model for 3D printing. For novices, it makes it easy to get great results. For experts, there are over 200 settings to adjust to your needs. And integration with major software platforms makes 3D printing even simpler.</string>
            <key>display_name</key>
            <string>Ultimaker Cura</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.Ultimaker Cura</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>PlistReader</string>
            <key>Arguments</key>
            <dict>
                <key>info_path</key>
                <string>%pathname%/Ultimaker Cura.app</string>
                <key>plist_keys</key>
                <dict>
                    <key>CFBundleVersion</key>
                    <string>version</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiPkginfoMerger</string>
            <key>Arguments</key>
            <dict>
                <key>additional_pkginfo</key>
                <dict>
                    <key>version</key>
                    <string>%version%</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%pathname%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
                <key>version_comparison_key</key>
                <string>CFBundleVersion</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>
Ultimaker Cura/Ultimaker Cura.jss.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the current release version of Ultimaker Cura and then uploads to the JSS</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.jss.Ultimaker Cura</string>
    <key>Input</key>
    <dict>
        <key>CATEGORY</key>
        <string>Productivity</string>
        <key>GROUP_NAME</key>
        <string>%NAME%-update-smart</string>
        <key>GROUP_TEMPLATE</key>
        <string>UltimakerCura-SmartGroupTemplate.xml</string>
        <key>NAME</key>
        <string>Ultimaker Cura</string>
        <key>POLICY_CATEGORY</key>
        <string>Testing</string>
        <key>POLICY_TEMPLATE</key>
        <string>PolicyTemplate.xml</string>
        <key>SELF_SERVICE_DESCRIPTION</key>
        <string>Ultimaker Cura prepares your model for 3D printing. For novices, it makes it easy to get great results. For experts, there are over 200 settings to adjust to your needs. And integration with major software platforms makes 3D printing even simpler.</string>
        <key>SELF_SERVICE_ICON</key>
        <string>UltimakerCura.png</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.2.0</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.pkg.Ultimaker Cura</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>JSSImporter</string>
            <key>Arguments</key>
            <dict>
                <key>category</key>
                <string>%CATEGORY%</string>
                <key>extension_attributes</key>
                <array>
                    <dict>
                        <key>ext_attribute_path</key>
                        <string>UltimakerCura-CFBundleVersionExtensionAttribute.xml</string>
                    </dict>
                </array>
                <key>groups</key>
                <array>
                    <dict>
                        <key>name</key>
                        <string>%GROUP_NAME%</string>
                        <key>smart</key>
                        <true/>
                        <key>template_path</key>
                        <string>%GROUP_TEMPLATE%</string>
                    </dict>
                </array>
                <key>policy_category</key>
                <string>%POLICY_CATEGORY%</string>
                <key>policy_template</key>
                <string>%POLICY_TEMPLATE%</string>
                <key>prod_name</key>
                <string>%NAME%</string>
                <key>self_service_description</key>
                <string>%SELF_SERVICE_DESCRIPTION%</string>
                <key>self_service_icon</key>
                <string>%SELF_SERVICE_ICON%</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>

Ultimaker Cura/Ultimaker Cura.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of Ultimaker Cura.
Set PRERELEASE to a non-empty string to download prereleases, either
via Input in an override or via the -k option,
i.e.: `-k PRERELEASE=yes`</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.Ultimaker Cura</string>
    <key>Input</key>
    <dict>
        <key>PRERELEASE</key>
        <string></string>
        <key>NAME</key>
        <string>Ultimaker Cura</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>GitHubReleasesInfoProvider</string>
            <key>Arguments</key>
            <dict>
                <key>github_repo</key>
                <string>Ultimaker/Cura</string>
                <key>include_prereleases</key>
                <string>%PRERELEASE%</string>
                <key>asset_regex</key>
                <string>[\S]+\.dmg</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>URLDownloader</string>
            <key>Arguments</key>
            <dict>
                <key>filename</key>
                <string>%NAME%.dmg</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
            <key>Arguments</key>
            <dict>
                <key>input_path</key>
                <string>%pathname%/Ultimaker Cura.app</string>
                <key>requirement</key>
                <string>identifier "nl.ultimaker.cura" and anchor apple generic and 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] = V4B3JXRRQS</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>
US-20x20_SettingsPanel/US-20x20_SettingsPanel.pkg.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads LFXFree Disk image and extracts the embedded package. No repackaging done.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.pkg.US-20x20SettingsPanel</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>US-20x20_SettingsPanel</string>
        <key>DOWNLOAD_URL</key>
        <string>https://www.tascam.eu/en/downloads/US-20x20</string>
        <key>USER_AGENT</key>
        <string>Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_2) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/12.0.2 Safari/605.1.15</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.0</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.US-20x20SettingsPanel</string>
    <key>Process</key>
    <array> 
    <dict>
        <key>Processor</key>
        <string>Unarchiver</string>
        <key>Arguments</key>
        <dict>
            <key>destination_path</key>
            <string>%RECIPE_CACHE_DIR%/%NAME%</string>
            <key>purge_destination</key>
            <true/>
        </dict>
    </dict>
    <dict>
        <key>Processor</key>
        <string>FileFinder</string>
        <key>Arguments</key>
        <dict>
            <key>pattern</key>
            <string>%RECIPE_CACHE_DIR%/%NAME%/US-20x20_*.dmg</string>
        </dict>
    </dict>   
    <dict>
        <key>Arguments</key>
        <dict>
            <key>source_pkg</key>
            <string>%found_filename%/US-20x20.pkg</string>
            <key>pkg_path</key>
            <string>%RECIPE_CACHE_DIR%/%NAME%.pkg</string>
        </dict>
        <key>Processor</key>
        <string>PkgCopier</string>
    </dict>
    </array>
</dict>
</plist>
US-20x20_SettingsPanel/US-20x20_SettingsPanel.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of LXFree and imports it into Munki.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.US-20x20SettingsPanel</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>US-20x20_SettingsPanel</string>
        <key>DOWNLOAD_URL</key>
        <string>https://www.tascam.eu/en/downloads/US-20x20</string>
        <key>USER_AGENT</key>
        <string>Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_2) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/12.0.2 Safari/605.1.15</string>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>pkginfo</key>
        <dict>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>US-20x20 - 20-Channel USB Audio Interface / Digital Mixer Settings Panel</string>
            <key>developer</key>
            <string>Tascam</string>
            <key>display_name</key>
            <string>US-20x20_SettingsPanel</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
     <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.US-20x20SettingsPanel</string>
    <key>Process</key>
    <array>
    <dict>
        <key>Processor</key>
        <string>Unarchiver</string>
        <key>Arguments</key>
        <dict>
            <key>destination_path</key>
            <string>%RECIPE_CACHE_DIR%/%NAME%</string>
            <key>purge_destination</key>
            <true/>
        </dict>
    </dict>
    <dict>
        <key>Processor</key>
        <string>FileFinder</string>
        <key>Arguments</key>
        <dict>
            <key>pattern</key>
            <string>%RECIPE_CACHE_DIR%/%NAME%/US-20x20_*.dmg</string>
        </dict>
    </dict>
    <dict>
        <key>Arguments</key>
        <dict>
            <key>source_pkg</key>
            <string>%found_filename%/US-20x20.pkg</string>
            <key>pkg_path</key>
            <string>%RECIPE_CACHE_DIR%/%NAME%.pkg</string>
        </dict>
        <key>Processor</key>
        <string>PkgCopier</string>
    </dict>
    <dict>
        <key>Arguments</key>
        <dict>
            <key>pkg_path</key>
            <string>%RECIPE_CACHE_DIR%/%NAME%.pkg</string>
            <key>repo_subdirectory</key>
            <string>%MUNKI_REPO_SUBDIR%</string>
        </dict>
        <key>Processor</key>
        <string>MunkiImporter</string>
    </dict>
    </array>
</dict>
</plist>

US-20x20_SettingsPanel/US-20x20_SettingsPanel.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads latest US-20x20 Settings Panel installer.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.US-20x20SettingsPanel</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>US-20x20_SettingsPanel</string>
        <key>DOWNLOAD_URL</key>
        <string>https://www.tascam.eu/en/downloads/US-20x20</string>
        <key>USER_AGENT</key>
        <string>Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_2) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/12.0.2 Safari/605.1.15</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.0</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>URLTextSearcher</string>
            <key>Arguments</key>
            <dict>
                <key>url</key>
                <string>%DOWNLOAD_URL%</string>
                <key>re_pattern</key>
                <string>(?P&lt;url&gt;sw/us-20x20/US-20x20_mac_sp_v.*?.zip)</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>URLDownloader</string>
            <key>Arguments</key>
            <dict>
                <key>request_headers</key>
                <dict>
                        <key>User-Agent</key>
                        <string>%USER_AGENT%</string>
                </dict>
                 <key>url</key>
                <string>https://www.tascam.eu/%match%</string>
                <key>filename</key>
                <string>%NAME%.zip</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>Unarchiver</string>
            <key>Arguments</key>
            <dict>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%</string>
                <key>purge_destination</key>
                <true/>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>FileFinder</string>
            <key>Arguments</key>
            <dict>
                <key>pattern</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%/US-20x20_*.dmg</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
            <key>Arguments</key>
            <dict>
                <key>input_path</key>
                <string>%found_filename%/US-20x20.pkg</string>
                <key>expected_authority_names</key>
                <array>
                    <string>Developer ID Installer: TEAC CORPORATION (L74GZE5N6S)</string>
                    <string>Developer ID Certification Authority</string>
                    <string>Apple Root CA</string>
                </array>
            </dict>
        </dict>
    </array>
</dict>
</plist>

UPDD Commander/UPDD Commander.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of UPDD Commander and imports into Munki.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.UPDD Commander</string>
    <key>Input</key>
    <dict>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>NAME</key>
        <string>UPDDCommander</string>
        <key>pkginfo</key>
        <dict>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>Legamaster e-Screen touch screen drivers.</string>
            <key>display_name</key>
            <string>UPDD Commander</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
            <key>unattended_uninstall</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.2.0</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.UPDD Commander</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>FlatPkgUnpacker</string>
            <key>Arguments</key>
            <dict>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/unpack/</string>
                <key>flat_pkg_path</key>
                <string>%input_path%</string>
                <key>purge_destination</key>
                <true/>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PkgPayloadUnpacker</string>
            <key>Arguments</key>
            <dict>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%</string>
                <key>pkg_payload_path</key>
                <string>%RECIPE_CACHE_DIR%/unpack/UPDD.pkg/Payload</string>
                <key>purge_destination</key>
                <true/>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>Versioner</string>
            <key>Arguments</key>
            <dict>
                <key>input_plist_path</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%/Library/Application Support/UPDD/UPDD Commander.app/Contents/Info.plist</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiPkginfoMerger</string>
            <key>Arguments</key>
            <dict>
                <key>additional_pkginfo</key>
                <dict>
                    <key>version</key>
                    <string>%version%</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiInstallsItemsCreator</string>
            <key>Arguments</key>
            <dict>
                <key>faux_root</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%</string>
                <key>installs_item_paths</key>
                <array>
                    <string>/Library/Application Support/UPDD/UPDD Commander.app</string>
                </array>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiPkginfoMerger</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PkgCopier</string>
            <key>Arguments</key>
            <dict>
                <key>source_pkg</key>
                <string>%input_path%</string>
                <key>pkg_path</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%.pkg</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%pkg_path%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PathDeleter</string>
            <key>Arguments</key>
            <dict>
                <key>path_list</key>
                <array>
                    <string>%RECIPE_CACHE_DIR%/%NAME%</string>
                    <string>%RECIPE_CACHE_DIR%/unpack</string>
                    <string>%RECIPE_CACHE_DIR%/unzip</string>
                </array>
            </dict>
        </dict>
    </array>
</dict>
</plist>

UPDD Commander/UPDD Commander.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Download recipe for UPDD Commander.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.UPDD Commander</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>UPDDCommander</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.2.0</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>URLTextSearcher</string>
            <key>Arguments</key>
            <dict>
                <key>url</key>
                <string>https://www.legamaster.com/downloads/software</string>
                <key>re_pattern</key>
                <string>\"/(fileadmin/user_upload/Software/All_in_one_Mac_Driver/Legamaster_all_in_one_.*\.zip)\"&gt;Download macOS</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>URLDownloader</string>
            <key>Arguments</key>
            <dict>
                <key>url</key>
                <string>https://www.legamaster.com/%match%</string>
                <key>filename</key>
                <string>%NAME%.zip</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>Unarchiver</string>
            <key>Arguments</key>
            <dict>
                <key>archive_path</key>
                <string>%RECIPE_CACHE_DIR%/downloads/%NAME%.zip</string>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/unzip/</string>
                <key>purge_destination</key>
                <true/>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>FileFinder</string>
            <key>Arguments</key>
            <dict>
                <key>pattern</key>
                <string>%RECIPE_CACHE_DIR%/unzip/Legamaster all in one *.dmg</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
            <key>Arguments</key>
            <dict>
                <key>expected_authority_names</key>
                <array>
                    <string>Developer ID Installer: Touch-Base Ltd (U86H28HG4S)</string>
                    <string>Developer ID Certification Authority</string>
                    <string>Apple Root CA</string>
                </array>
                <key>input_path</key>
                <string>%found_filename%/*.pkg</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>

UP Studio/UP Studio.pkg.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
    <dict>
        <key>Description</key>
        <string>Downloads the latest version of UP Studio and creates a package</string>
        <key>Identifier</key>
        <string>com.github.dataJAR-recipes.pkg.UP Studio</string>
        <key>Input</key>
        <dict>
            <key>NAME</key>
            <string>UP Studio</string>
        </dict>
        <key>MinimumVersion</key>
        <string>0.5.0</string>
        <key>ParentRecipe</key>
        <string>com.github.dataJAR-recipes.download.UP Studio</string>
        <key>Process</key>
        <array>
            <dict>
                <key>Arguments</key>
                <dict>
                    <key>archive_path</key>
                    <string>%pathname%</string>
                    <key>destination_path</key>
                    <string>%RECIPE_CACHE_DIR%/unzip</string>
                    <key>purge_destination</key>
                    <true></true>
                </dict>
                <key>Processor</key>
                <string>Unarchiver</string>
            </dict>
            <dict>
                <key>Arguments</key>
                <dict>
                    <key>pattern</key>
                    <string>%RECIPE_CACHE_DIR%/unzip/*/*.pkg</string>
                </dict>
                <key>Processor</key>
                <string>FileFinder</string>
            </dict>
            <dict>
                <key>Arguments</key>
                <dict>
                    <key>pkg_path</key>
                    <string>%RECIPE_CACHE_DIR%/%NAME%.pkg</string>
                    <key>source_pkg</key>
                    <string>%found_filename%</string>
                </dict>
                <key>Processor</key>
                <string>PkgCopier</string>
            </dict>
            <dict>
                <key>Arguments</key>
                <dict>
                    <key>path_list</key>
                    <array>
                        <string>%RECIPE_CACHE_DIR%/unzip</string>
                    </array>
                </dict>
                <key>Processor</key>
                <string>PathDeleter</string>
            </dict>
        </array>
    </dict>
</plist>
UP Studio/UP Studio.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
    <dict>
        <key>Description</key>
        <string>Downloads the latest version of UP Studio and imports into Munki</string>
        <key>Identifier</key>
        <string>com.github.dataJAR-recipes.munki.UP Studio</string>
        <key>Input</key>
        <dict>
            <key>MUNKI_REPO_SUBDIR</key>
            <string>apps/%NAME%</string>
            <key>NAME</key>
            <string>UP Studio</string>
            <key>pkginfo</key>
            <dict>
                <key>catalogs</key>
                <array>
                    <string>testing</string>
                </array>
                <key>description</key>
                <string>Software for Tiertime 3D printers.</string>
                <key>developer</key>
                <string>Tiertime</string>
                <key>display_name</key>
                <string>UP Studio</string>
                <key>name</key>
                <string>%NAME%</string>
                <key>unattended_install</key>
                <true></true>
                <key>unattended_uninstall</key>
                <true></true>
            </dict>
        </dict>
        <key>MinimumVersion</key>
        <string>0.5.0</string>
        <key>ParentRecipe</key>
        <string>com.github.dataJAR-recipes.pkg.UP Studio</string>
        <key>Process</key>
        <array>
            <dict>
                <key>Arguments</key>
                <dict>
                    <key>pkg_path</key>
                    <string>%pkg_path%</string>
                    <key>repo_subdirectory</key>
                    <string>%MUNKI_REPO_SUBDIR%</string>
                </dict>
                <key>Processor</key>
                <string>MunkiImporter</string>
            </dict>
        </array>
    </dict>
</plist>
UP Studio/UP Studio.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
    <dict>
        <key>Description</key>
        <string>Downloads the latest version of UP Studio</string>
        <key>Identifier</key>
        <string>com.github.dataJAR-recipes.download.UP Studio</string>
        <key>Input</key>
        <dict>
            <key>NAME</key>
            <string>UP Studio</string>
        </dict>
        <key>MinimumVersion</key>
        <string>0.5.0</string>
        <key>Process</key>
        <array>
            <dict>
                <key>Arguments</key>
                <dict>
                    <key>re_pattern</key>
                    <string>https:\/\/s3-us-west-1\.amazonaws\.com\/up3d\/downloads\/mac\/UP_Studio_osx_\S*zip</string>
                    <key>result_output_var_name</key>
                    <string>match</string>
                    <key>url</key>
                    <string>https://www.tiertime.com/software/</string>
                </dict>
                <key>Processor</key>
                <string>URLTextSearcher</string>
            </dict>
            <dict>
                <key>Arguments</key>
                <dict>
                    <key>url</key>
                    <string>%match%</string>
                </dict>
                <key>Processor</key>
                <string>URLDownloader</string>
            </dict>
            <dict>
                <key>Processor</key>
                <string>EndOfCheckPhase</string>
            </dict>
            <dict>
                <key>Arguments</key>
                <dict>
                    <key>archive_path</key>
                    <string>%pathname%</string>
                    <key>destination_path</key>
                    <string>%RECIPE_CACHE_DIR%/unzip</string>
                    <key>purge_destination</key>
                    <true></true>
                </dict>
                <key>Processor</key>
                <string>Unarchiver</string>
            </dict>
            <dict>
                <key>Arguments</key>
                <dict>
                    <key>pattern</key>
                    <string>%RECIPE_CACHE_DIR%/unzip/*/*.pkg</string>
                </dict>
                <key>Processor</key>
                <string>FileFinder</string>
            </dict>
            <dict>
                <key>Arguments</key>
                <dict>
                    <key>input_path</key>
                    <string>%found_filename%</string>
                    <key>expected_authority_names</key>
                    <array>
                        <string>3rd Party Mac Developer Installer: Beijing Tiertime Technology Co., Ltd. (2HU95337PZ)</string>
                        <string>Developer ID Certification Authority</string>
                        <string>Apple Root CA</string>
                    </array>
                </dict>
                <key>Processor</key>
                <string>CodeSignatureVerifier</string>
            </dict>
            <dict>
                <key>Arguments</key>
                <dict>
                    <key>path_list</key>
                    <array>
                        <string>%RECIPE_CACHE_DIR%/unzip</string>
                    </array>
                </dict>
                <key>Processor</key>
                <string>PathDeleter</string>
            </dict>
        </array>
    </dict>
</plist>
UNetbootin/UNetbootin.png METASEP

UNetbootin/UNetbootin.pkg.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the current release version of UNetbootin and makes a package.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.pkg.UNetbootin</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>UNetbootin</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.3.1</string>
    <key>ParentRecipe</key>
    <string>com.github.peshay.download.UNetbootin</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>PkgRootCreator</string>
            <key>Arguments</key>
            <dict>
                <key>pkgroot</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%</string>
                <key>pkgdirs</key>
                <dict>
                    <key>Applications</key>
                    <string>0775</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>Copier</string>
            <key>Arguments</key>
            <dict>
                <key>source_path</key>
                <string>%pathname%/UNetbootin.app</string>
                <key>destination_path</key>
                <string>%pkgroot%/Applications/UNetbootin.app</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PkgCreator</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_request</key>
                <dict>
                    <key>pkgname</key>
                    <string>%NAME%-%version%</string>
                    <key>pkgdirs</key>
                    <string>%RECIPE_CACHE_DIR%/pkgroot/Applications/</string>
                    <key>version</key>
                    <string>%version%</string>
                    <key>id</key>
                    <string>com.github.gkovacs.unetbootin</string>
                    <key>options</key>
                    <string>purge_ds_store</string>
                    <key>chown</key>
                    <array>
                        <dict>
                            <key>path</key>
                            <string>Applications</string>
                            <key>user</key>
                            <string>root</string>
                            <key>group</key>
                            <string>admin</string>
                        </dict>
                    </array>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PathDeleter</string>
            <key>Arguments</key>
            <dict>
                <key>path_list</key>
                <array>
                    <string>%RECIPE_CACHE_DIR%/%NAME%</string>
                </array>
            </dict>
        </dict>
    </array>
</dict>
</plist>
UNetbootin/UNetbootin.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the current release version of UNetbootin and imports into munki.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.UNetbootin</string>
    <key>Input</key>
    <dict>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>NAME</key>
        <string>UNetbootin</string>
        <key>pkginfo</key>
        <dict>
            <key>blocking_applications</key>
            <array>
                <string>unetbootin</string>
            </array>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>category</key>
            <string>Applications</string>
            <key>description</key>
            <string>UNetbootin allows you to create bootable Live USB drives for Ubuntu, Fedora, and other Linux distributions without burning a CD. It runs on Windows, Linux, and Mac OS X.</string>
            <key>developer</key>
            <string>Geza Kovacs</string>
            <key>display_name</key>
            <string>unetbootin</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.0</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.pkg.UNetbootin</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%pkg_path%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>
UNetbootin/UNetbootin.jss.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>Description</key>
	<string>Downloads the current release version of UNetbootin and builds a package. Then, uploads to the JSS.</string>
	<key>Identifier</key>
	<string>com.github.dataJAR-recipes.jss.UNetbootin</string>
	<key>Input</key>
	<dict>
		<key>CATEGORY</key>
		<string>Productivity</string>
		<key>GROUP_NAME</key>
		<string>%NAME%-update-smart</string>
		<key>GROUP_TEMPLATE</key>
		<string>UNetbootin-SmartGroupTemplate.xml</string>
		<key>NAME</key>
		<string>UNetbootin</string>
		<key>POLICY_CATEGORY</key>
		<string>Testing</string>
		<key>POLICY_TEMPLATE</key>
		<string>PolicyTemplate.xml</string>
		<key>SELF_SERVICE_DESCRIPTION</key>
		<string>UNetbootin allows you to create bootable Live USB drives for Ubuntu, Fedora, and other Linux distributions without burning a CD. It runs on Windows, Linux, and Mac OS X.</string>
		<key>SELF_SERVICE_ICON</key>
		<string>UNetbootin.png</string>
	</dict>
	<key>MinimumVersion</key>
	<string>0.2.0</string>
	<key>ParentRecipe</key>
	<string>com.github.dataJAR-recipes.pkg.UNetbootin</string>
	<key>Process</key>
	<array>
		<dict>
			<key>Arguments</key>
			<dict>
				<key>category</key>
				<string>%CATEGORY%</string>
				<key>groups</key>
				<array>
					<dict>
						<key>name</key>
						<string>%GROUP_NAME%</string>
						<key>smart</key>
						<true/>
						<key>template_path</key>
						<string>%GROUP_TEMPLATE%</string>
					</dict>
				</array>
				<key>policy_category</key>
				<string>%POLICY_CATEGORY%</string>
				<key>policy_template</key>
				<string>%POLICY_TEMPLATE%</string>
				<key>prod_name</key>
				<string>%NAME%</string>
				<key>self_service_description</key>
				<string>%SELF_SERVICE_DESCRIPTION%</string>
				<key>self_service_icon</key>
				<string>%SELF_SERVICE_ICON%</string>
				<key>version</key>
				<string>%version%</string>
			</dict>
			<key>Processor</key>
			<string>JSSImporter</string>
		</dict>
	</array>
</dict>
</plist>

UNetbootin/UNetbootin-SmartGroupTemplate.xml METASEP
<computer_group>
	<name>%group_name%</name>
	<is_smart>true</is_smart>
	<criteria>
		<criterion>
			<name>Application Title</name>
			<priority>0</priority>
			<and_or>and</and_or>
			<search_type>is</search_type>
			<value>%JSS_INVENTORY_NAME%</value>
		</criterion>
		<criterion>
			<name>Packages Installed By Installer.app/SWU</name>
			<priority>0</priority>
			<and_or>and</and_or>
			<search_type>does not have</search_type>
			<value>com.github.gkovacs.unetbootin-%version%</value>
		</criterion>
		<criterion>
			<name>Computer Group</name>
			<priority>2</priority>
			<and_or>and</and_or>
			<search_type>member of</search_type>
			<value>Testing</value>
		</criterion>
	</criteria>
</computer_group>

TurningPoint web/TurningPoint web.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of the TurningPoint web and imports it into Munki.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.TurningPoint web</string>
    <key>Input</key>
    <dict>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>NAME</key>
        <string>TurningPoint web</string>
        <key>pkginfo</key>
        <dict>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>TurningPoint web features a streamlined interface making it easier than ever to engage, assess and track learner progress. This works in tandem with other TurningPoint web polling environments, which support online polling and scheduled homework and surveys.</string>
            <key>display_name</key>
            <string>TurningPoint web</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.TurningPoint web</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%pathname%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>

TurningPoint web/TurningPoint web.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of the TurningPoint web.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.TurningPoint web</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>TurningPoint web</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>URLDownloader</string>
            <key>Arguments</key>
            <dict>
                <key>url</key>
                <string>https://d2p83s3q5aa83e.cloudfront.net/wp-content/software/TurningPointWeb/TurningPoint-web_Mac.dmg</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
            <key>Arguments</key>
            <dict>
                <key>input_path</key>
                <string>%pathname%/TurningPoint web.app</string>
                <key>requirement</key>
                <string>identifier "com.turningtechnologies.TurningPoint-Web" and anchor apple generic and 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] = "3YF49VXVT5"</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>

Triptico/Triptico.pkg.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the current release version of Triptico and builds a package.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.pkg.triptico</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>Triptico</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.2.8</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.triptico</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>PkgRootCreator</string>
            <key>Arguments</key>
            <dict>
                <key>pkgroot</key>
                <string>%RECIPE_CACHE_DIR%/pkgroot</string>
                <key>pkgdirs</key>
                <dict>
                    <key>Applications</key>
                    <string>0775</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>Unarchiver</string>
            <key>Arguments</key>
            <dict>
                <key>purge_destination</key>
                <true/>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/unpack</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>FileMover</string>
            <key>Arguments</key>
            <dict>
                <key>source</key>
                <string>%RECIPE_CACHE_DIR%/unpack/Triptico/Triptico.app</string>
                <key>target</key>
                <string>%pkgroot%/Applications/Triptico.app</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PlistReader</string>
            <key>Arguments</key>
            <dict>
                <key>info_path</key>
                <string>%pkgroot%/Applications/Triptico.app</string>
                <key>plist_keys</key>
                <dict>
                    <key>CFBundleShortVersionString</key>
                    <string>version</string>
                    <key>CFBundleIdentifier</key>
                    <string>PKG_ID</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PkgCreator</string>
            <key>Arguments</key>
            <dict>
                <key>pkgname</key>
                <string>%NAME%-%version%</string>
                <key>pkg_request</key>
                <dict>
                    <key>pkgdir</key>
                    <string>%RECIPE_CACHE_DIR%</string>
                    <key>id</key>
                    <string>%PKG_ID%</string>
                    <key>options</key>
                    <string>purge_ds_store</string>
                    <key>chown</key>
                    <array>
                        <dict>
                            <key>path</key>
                            <string>Applications</string>
                            <key>user</key>
                            <string>root</string>
                            <key>group</key>
                            <string>admin</string>
                        </dict>
                    </array>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PathDeleter</string>
            <key>Arguments</key>
            <dict>
                <key>path_list</key>
                <array>
                    <string>%RECIPE_CACHE_DIR%/pkgroot</string>
                    <string>%RECIPE_CACHE_DIR%/unpack</string>
                </array>
            </dict>
        </dict>
    </array>
</dict>
</plist>
Triptico/Triptico.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the current release version of Triptico, builds a package and imports it to Munki.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.triptico</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>Triptico</string>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps</string>
        <key>pkginfo</key>
        <dict>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>category</key>
            <string>Applications</string>
            <key>description</key>
            <string>Triptico is an easy to use tool for creating, saving and sharing learning content.</string>
            <key>developer</key>
            <string>Triptico</string>
            <key>display_name</key>
            <string>Triptico</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
            <key>unattended_uninstall</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.4.3</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.triptico</string>
    <key>Process</key>
    <array>
       <dict>
            <key>Processor</key>
            <string>Unarchiver</string>
            <key>Arguments</key>
            <dict>
                <key>archive_path</key>
                <string>%pathname%</string>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/unzip/</string>
                <key>purge_destination</key>
                <true/>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PkgRootCreator</string>
            <key>Arguments</key>
            <dict>
                <key>pkgroot</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%</string>
                <key>pkgdirs</key>
                <dict>
                    <key>Applications</key>
                    <string>0775</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>Copier</string>
            <key>Arguments</key>
            <dict>
                <key>source_path</key>
                <string>%RECIPE_CACHE_DIR%/unzip/Triptico/Triptico.app</string>
                <key>destination_path</key>
                <string>%pkgroot%/Applications/Triptico.app</string>
                <key>overwrite</key>
                <true/>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>DmgCreator</string>
            <key>Arguments</key>
            <dict>
                <key>dmg_root</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%/Applications</string>
                <key>dmg_path</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%.dmg</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
				<key>pkg_path</key>
				<string>%dmg_path%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PathDeleter</string>
            <key>Arguments</key>
            <dict>
                <key>path_list</key>
                <array>
                    <string>%RECIPE_CACHE_DIR%/%NAME%</string>
                    <string>%RECIPE_CACHE_DIR%/unzip</string>
                </array>
            </dict>
        </dict>
    </array>
</dict>
</plist>
Triptico/Triptico.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the current release version of Triptico.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.triptico</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>Triptico</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.2.0</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>DeprecationWarning</string>
            <key>Arguments</key>
            <dict>
                <key>warning_message</key>
                <string>This title has moved to being online only.</string>
             </dict>
        </dict>
        <dict>   
            <key>Processor</key>   
            <string>StopProcessingIf</string>   
            <key>Arguments</key>   
            <dict>   
                <key>predicate</key>   
                <string>TRUEPREDICATE</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>URLDownloader</string>
            <key>Arguments</key>
            <dict>
                <key>url</key>
                <string>https://www.tripticoplus.com/download/mac</string>
                <key>filename</key>
                <string>%NAME%.zip</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
    </array>
</dict>
</plist>
Transcribe/Transcribe.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of Transcribe! and imports it into Munki.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.Transcribe</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>Transcribe!</string>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>pkginfo</key>
        <dict>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>The Transcribe! application is an assistant for people who want to work out a piece of music from a recording, in order to write it out, or play it themselves, or both. It doesn't do the transcribing for you, but it is essentially a specialised player program which is optimised for the purpose of transcription. It has many transcription-specific features not found on conventional music players.</string>
            <key>developer</key>
            <string>Seventh String Software</string>
            <key>display_name</key>
            <string>Transcribe!</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
            <key>unattended_uninstall</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.Transcribe</string>
    <key>Process</key>
    <array>
        <dict>  
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%pathname%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>
Transcribe/Transcribe.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads latest version of Transcribe!.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.Transcribe</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>Transcribe!</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>URLDownloader</string>
            <key>Arguments</key>
            <dict>
                <key>filename</key>
                <string>%NAME%.dmg</string>
                <key>url</key>
                <string>https://www.seventhstring.com/xscribe/transcribe.dmg</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
            <key>Arguments</key>
            <dict>
                <key>input_path</key>
                <string>%pathname%/Transcribe!.app</string>
                <key>requirement</key>
                <string>anchor apple generic and identifier "com.seventhstring.transcribe" 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] = BLF9LDX5CW)</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
    </array>
</dict>
</plist>
Traffic/Traffic.pkg.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest trial version of Traffic and creates a package.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.pkg.Traffic</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>Traffic</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.Traffic</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>Copier</string>
            <key>Arguments</key>
            <dict>
                <key>source_path</key>
                <string>%RECIPE_CACHE_DIR%/downloads/TrafficApplication-Installer.air</string>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/downloads/TrafficApplication-Installer.zip</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>Unarchiver</string>
            <key>Arguments</key>
            <dict>
                <key>archive_path</key>
                <string>%RECIPE_CACHE_DIR%/downloads/TrafficApplication-Installer.zip</string>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/unzip/</string>
                <key>purge_destination</key>
                <true/>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>TrafficXMLParser</string>
            <key>Arguments</key>
            <dict>
                <key>app_xml</key>
                <string>%destination_path%/META-INF/AIR/application.xml</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PkgRootCreator</string>
            <key>Arguments</key>
            <dict>
                <key>pkgroot</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%</string>
                <key>pkgdirs</key>
                <dict>
                    <key>private</key>
                    <string>0777</string>
                    <key>private/tmp</key>
                    <string>0777</string>
                    <key>private/tmp/Traffic</key>
                    <string>0777</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>Copier</string>
            <key>Arguments</key>
            <dict>
                <key>source_path</key>
                <string>%RECIPE_CACHE_DIR%/downloads/TrafficApplication-Installer.air</string>
                <key>destination_path</key>
                <string>%pkgroot%/private/tmp/Traffic/</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PkgRootCreator</string>
            <key>Arguments</key>
            <dict>
                <key>pkgroot</key>
                <string>%RECIPE_CACHE_DIR%/scripts</string>
                <key>pkgdirs</key>
                <dict/>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>FileCreator</string>
            <key>Arguments</key>
            <dict>
            <key>file_content</key>
            <string>#!/bin/bash
#
# Adobe AIR apps need uninstalling before installing, because reasons. So we need to check
# for Adobe AIR first.
#

if [ ! -e /Applications/Utilities/Adobe\ AIR\ Application\ Installer.app/Contents/MacOS/Adobe\ AIR\ Application\ Installer ]
then
    /bin/echo "Adobe AIR not installed..."
    exit 1
fi

# If Traffic.app is installed, uninstall 1st
if [ -d /Applications/Traffic.app/ ]
then
    loggedInUser=$( /usr/sbin/scutil &lt;&lt;&lt; "show State:/Users/ConsoleUser" | /usr/bin/awk '/Name :/ &amp;&amp; ! /loginwindow/ { print $3 }' )
    if [ -n "${loggedInUser}" ]
    then
        /Applications/Utilities/Adobe\ AIR\ Application\ Installer.app/Contents/MacOS/Adobe\ AIR\ Application\ Installer -uninstall -silent /Applications/Traffic.app
    else
        /bin/echo "No user logged in, exiting..."
        exit 1
    fi
fi</string>
                <key>file_mode</key>
                <string>0755</string>
                <key>file_path</key>
                <string>%RECIPE_CACHE_DIR%/scripts/preinstall</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>FileCreator</string>
            <key>Arguments</key>
            <dict>
            <key>file_content</key>
            <string>#!/bin/bash
#
# Call Adobe Air to install the app from /private/tmp/Traffic/TrafficApplication-Installer.air
#

if [ -e /Applications/Utilities/Adobe\ AIR\ Application\ Installer.app/Contents/MacOS/Adobe\ AIR\ Application\ Installer ]
then
    loggedInUser=$( /usr/sbin/scutil &lt;&lt;&lt; "show State:/Users/ConsoleUser" | /usr/bin/awk '/Name :/ &amp;&amp; ! /loginwindow/ { print $3 }' )
    if [ -n "${loggedInUser}" ]
    then
        /Applications/Utilities/Adobe\ AIR\ Application\ Installer.app/Contents/MacOS/Adobe\ AIR\ Application\ Installer -silent -eulaAccepted -location /Applications /private/tmp/Traffic/TrafficApplication-Installer.air
    else
        /bin/echo "No user logged in, exiting..."
        exit 1
    fi
else
    /bin/echo "Adobe AIR not installed..."
    exit 1
fi</string>
                <key>file_mode</key>
                <string>0755</string>
                <key>file_path</key>
                <string>%RECIPE_CACHE_DIR%/scripts/postinstall</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PkgCreator</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_request</key>
                <dict>
                    <key>chown</key>
                    <array>
                        <dict>
                            <key>path</key>
                            <string>private/tmp/Traffic/</string>
                            <key>user</key>
                            <string>root</string>
                            <key>group</key>
                            <string>admin</string>
                            <key>mode</key>
                            <string>0777</string>
                        </dict>
                    </array>
                    <key>id</key>
                    <string>%bundleid%</string>
                    <key>options</key>
                    <string>purge_ds_store</string>
                    <key>pkgname</key>
                    <string>%NAME%</string>
                    <key>pkgroot</key>
                    <string>%RECIPE_CACHE_DIR%/%NAME%</string>
                    <key>scripts</key>
                    <string>%RECIPE_CACHE_DIR%/scripts</string>
                    <key>version</key>
                    <string>%version%</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PathDeleter</string>
            <key>Arguments</key>
            <dict>
                <key>path_list</key>
                <array>
                    <string>%RECIPE_CACHE_DIR%/%NAME%</string>
                    <string>%RECIPE_CACHE_DIR%/scripts</string>
                    <string>%RECIPE_CACHE_DIR%/unzip</string>
                    <string>%RECIPE_CACHE_DIR%/downloads/TrafficApplication-Installer.zip</string>
                </array>
            </dict>
        </dict>
    </array>
</dict>
</plist>
Traffic/Traffic.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of Traffic and imports into Munki.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.Traffic</string>
    <key>Input</key>
    <dict>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>NAME</key>
        <string>Traffic</string>
        <key>pkginfo</key>
        <dict>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>TrafficLIVE: Integrated Agency Management Software. Transform the way your agency focuses on people, profits, clients and the creative process.</string>
            <key>display_name</key>
            <string>Traffic</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>requires</key>
            <array>
                <string>AdobeAIR</string>
            </array>
            <key>unattended_install</key>
            <true/>
            <key>unattended_uninstall</key>
            <true/>
            <key>uninstall_method</key>
            <string>uninstall_script</string>
            <key>uninstall_script</key>
            <string>#!/bin/bash
#
# Adobe AIR apps need uninstalling before installing, because reasons. So we need to check
# for Adobe AIR first.
#

if [ ! -e /Applications/Utilities/Adobe\ AIR\ Application\ Installer.app/Contents/MacOS/Adobe\ AIR\ Application\ Installer ]
then
    /bin/echo "Adobe AIR not installed..."
    exit 1
fi

# If Traffic.app is installed, uninstall 1st
if [ -d /Applications/Traffic.app/ ]
then
    loggedInUser=$( /usr/sbin/scutil &lt;&lt;&lt; "show State:/Users/ConsoleUser" | /usr/bin/awk '/Name :/ &amp;&amp; ! /loginwindow/ { print $3 }' )
    if [ -n "${loggedInUser}" ]
    then
        /Applications/Utilities/Adobe\ AIR\ Application\ Installer.app/Contents/MacOS/Adobe\ AIR\ Application\ Installer -uninstall -silent /Applications/Traffic.app
    else
        /bin/echo "No user logged in, exiting..."
        exit 1
    fi
fi</string>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.pkg.Traffic</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>MunkiPkginfoMerger</string>
            <key>Arguments</key>
            <dict>
                <key>additional_pkginfo</key>
                <dict>
                    <key>version</key>
                    <string>%version%</string>
                    <key>installs</key>
                    <array>
                        <dict>
                            <key>path</key>
                            <string>/Applications/Traffic.app</string>
                            <key>CFBundleIdentifier</key>
                            <string>%bundleid%</string>
                            <key>CFBundleShortVersionString</key>
                            <string>%version%</string>
                            <key>minosversion</key>
                            <string>10.9</string>
                            <key>type</key>
                            <string>application</string>
                            <key>version_comparison_key</key>
                            <string>CFBundleShortVersionString</string>
                        </dict>
                    </array>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiPkginfoMerger</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%pkg_path%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>
Traffic/Traffic.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Download recipe for the latest version of Traffic.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.Traffic</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>Traffic</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>URLTextSearcher</string>
            <key>Arguments</key>
            <dict>
                <key>url</key>
                <string>https://traffic-live-dist.s3.amazonaws.com/update_2_5.xml</string>
                <key>re_pattern</key>
                <string>((\S+)\.air)</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>URLDownloader</string>
            <key>Arguments</key>
            <dict>
                <key>filename</key>
                <string>TrafficApplication-Installer.air</string>
                <key>url</key>
                <string>%match%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
    </array>
</dict>
</plist>
Thonny/Thonny.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of Thonny and imports it into Munki.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.Thonny</string>
      <key>Input</key>
    <dict>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>NAME</key>
        <string>Thonny</string>
        <key>pkginfo</key>
        <dict>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>developer</key>
            <string>Aivar Annamaa</string>
            <key>description</key>
            <string>Python IDE for beginners.</string>
            <key>display_name</key>
            <string>Thonny</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.3.1</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.Thonny</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>FlatPkgUnpacker</string>
            <key>Arguments</key>
            <dict>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/installer_unpack</string>
                <key>flat_pkg_path</key>
                <string>%pathname%</string>
                <key>purge_destination</key>
                <true/>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PkgPayloadUnpacker</string>
            <key>Arguments</key>
            <dict>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/installer_payload/Applications</string>
                <key>pkg_payload_path</key>
                <string>%RECIPE_CACHE_DIR%/installer_unpack/ThonnyComponent.pkg/Payload</string>
                <key>purge_destination</key>
                <true />
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiInstallsItemsCreator</string>
            <key>Arguments</key>
            <dict>
                <key>faux_root</key>
                <string>%RECIPE_CACHE_DIR%/installer_payload/</string>
                <key>installs_item_paths</key>
                <array>
                    <string>/Applications/Thonny.app</string>
                </array>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiPkginfoMerger</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%pathname%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
                <key>version_comparison_key</key>
                <string>CFBundleShortVersionString</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PathDeleter</string>
            <key>Arguments</key>
            <dict>
                <key>path_list</key>
                <array>
                    <string>%RECIPE_CACHE_DIR%/installer_payload/</string>
                    <string>%RECIPE_CACHE_DIR%/installer_unpack/</string>
                </array>
            </dict>
        </dict>
    </array>
</dict>
</plist>
Thonny/Thonny.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of Thonny.
Set PRERELEASE to a non-empty string to download prereleases, either
via Input in an override or via the -k option,
i.e.: `-k PRERELEASE=yes`</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.Thonny</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>Thonny</string>
        <key>PRERELEASE</key>
        <string></string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.0</string>
    <key>Process</key>
    <array>
		<dict>
			<key>Processor</key>
			<string>GitHubReleasesInfoProvider</string>
			<key>Arguments</key>
			<dict>
				<key>github_repo</key>
				<string>thonny/thonny</string>
				<key>include_prereleases</key>
				<string>%PRERELEASE%</string>
			</dict>
		</dict>
		<dict>
			<key>Processor</key>
			<string>GitHubReleasesInfoProvider</string>
			<key>Arguments</key>
			<dict>
				<key>github_repo</key>
				<string>thonny/thonny</string>
				<key>include_prereleases</key>
				<string>%PRERELEASE%</string>
				<key>asset_regex</key>
				<string>thonny-%version%.pkg</string>
			</dict>
		</dict>
		<dict>
			<key>Processor</key>
			<string>URLDownloader</string>
			<key>Arguments</key>
			<dict>
				<key>filename</key>
				<string>%NAME%-%version%.pkg</string>
			</dict>
		</dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
		<dict>
			<key>Processor</key>
			<string>CodeSignatureVerifier</string>
			<key>Arguments</key>
			<dict>
				<key>expected_authority_names</key>
				<array>
					<string>Developer ID Installer: Aivar Annamaa (2SA9D4CVU8)</string>
					<string>Developer ID Certification Authority</string>
					<string>Apple Root CA</string>
				</array>
				<key>input_path</key>
				<string>%pathname%</string>
			</dict>
		</dict>
    </array>
</dict>
</plist>

The MUT/TheMUT.png METASEP

The MUT/The MUT.pkg.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>Description</key>
	<string>Downloads the latest version of The MUT and creates a package.</string>
	<key>Identifier</key>
	<string>com.github.dataJAR-recipes.pkg.The MUT</string>
	<key>Input</key>
	<dict>
		<key>NAME</key>
		<string>The MUT</string>
	</dict>
	<key>MinimumVersion</key>
	<string>0.6.1</string>
	<key>ParentRecipe</key>
	<string>com.github.dataJAR-recipes.download.The MUT</string>
	<key>Process</key>
	<array>
		<dict>
			<key>Arguments</key>
			<dict>
				<key>pkgdirs</key>
				<dict>
					<key>Applications</key>
					<string>0775</string>
				</dict>
				<key>pkgroot</key>
				<string>%RECIPE_CACHE_DIR%/%NAME%</string>
			</dict>
			<key>Processor</key>
			<string>PkgRootCreator</string>
		</dict>
		<dict>
			<key>Arguments</key>
			<dict>
				<key>destination_path</key>
				<string>%pkgroot%/Applications/MUT.app</string>
				<key>source_path</key>
				<string>%RECIPE_CACHE_DIR%/downloads/%NAME%.dmg/MUT.app</string>
			</dict>
			<key>Processor</key>
			<string>Copier</string>
		</dict>
		<dict>
			<key>Arguments</key>
			<dict>
				<key>dmg_path</key>
				<string>%RECIPE_CACHE_DIR%/downloads/%NAME%.dmg</string>
			</dict>
			<key>Processor</key>
			<string>AppDmgVersioner</string>
		</dict>
		<dict>
			<key>Arguments</key>
			<dict>
				<key>pkg_request</key>
				<dict>
					<key>chown</key>
					<array>
						<dict>
							<key>group</key>
							<string>admin</string>
							<key>path</key>
							<string>Applications</string>
							<key>user</key>
							<string>root</string>
						</dict>
					</array>
					<key>id</key>
					<string>%bundleid%</string>
					<key>options</key>
					<string>purge_ds_store</string>
					<key>pkgname</key>
					<string>%NAME%-%version%</string>
					<key>pkgroot</key>
					<string>%RECIPE_CACHE_DIR%/%NAME%</string>
					<key>version</key>
					<string>%version%</string>
				</dict>
			</dict>
			<key>Processor</key>
			<string>PkgCreator</string>
		</dict>
	</array>
</dict>
</plist>

The MUT/The MUT.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>Description</key>
	<string>Downloads the latest version of The MUT and imports it into Munki.</string>
	<key>Identifier</key>
	<string>com.github.dataJAR-recipes.munki.The MUT</string>
	<key>Input</key>
	<dict>
		<key>MUNKI_REPO_SUBDIR</key>
		<string>apps/%NAME%</string>
		<key>NAME</key>
		<string>The MUT</string>
		<key>pkginfo</key>
		<dict>
			<key>catalogs</key>
			<array>
				<string>testing</string>
			</array>
			<key>description</key>
			<string>The unofficial all-in-one mass update tool designed to be the perfect companion to the JSS Admin.</string>
			<key>developer</key>
			<string>Levenick Enterprises LLC</string>
			<key>display_name</key>
			<string>The MUT</string>
			<key>name</key>
			<string>%NAME%</string>
			<key>unattended_install</key>
			<true/>
		</dict>
	</dict>
	<key>MinimumVersion</key>
	<string>0.6.1</string>
	<key>ParentRecipe</key>
	<string>com.github.dataJAR-recipes.download.The MUT</string>
	<key>Process</key>
	<array>
		<dict>
			<key>Arguments</key>
			<dict>
				<key>pkg_path</key>
				<string>%RECIPE_CACHE_DIR%/downloads/%NAME%.dmg</string>
				<key>repo_subdirectory</key>
				<string>%MUNKI_REPO_SUBDIR%</string>
				<key>version_comparison_key</key>
				<string>CFBundleShortVersionString</string>
			</dict>
			<key>Processor</key>
			<string>MunkiImporter</string>
		</dict>
	</array>
</dict>
</plist>

The MUT/The MUT.jss.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>Description</key>
	<string>Downloads the current release version of The MUT and then uploads to the JSS</string>
	<key>Identifier</key>
	<string>com.github.dataJAR-recipes.jss.The MUT</string>
	<key>Input</key>
	<dict>
		<key>CATEGORY</key>
		<string>Productivity</string>
		<key>GROUP_NAME</key>
		<string>%NAME%-update-smart</string>
		<key>GROUP_TEMPLATE</key>
		<string>SmartGroupTemplate.xml</string>
		<key>NAME</key>
		<string>MUT</string>
		<key>POLICY_CATEGORY</key>
		<string>Testing</string>
		<key>POLICY_TEMPLATE</key>
		<string>PolicyTemplate.xml</string>
		<key>SELF_SERVICE_DESCRIPTION</key>
		<string>The unofficial all-in-one mass update tool designed to be the perfect companion to the JSS Admin.</string>
		<key>SELF_SERVICE_ICON</key>
		<string>TheMUT.png</string>
	</dict>
	<key>MinimumVersion</key>
	<string>0.6.1</string>
	<key>ParentRecipe</key>
	<string>com.github.dataJAR-recipes.pkg.The MUT</string>
	<key>Process</key>
	<array>
		<dict>
			<key>Arguments</key>
			<dict>
				<key>category</key>
				<string>%CATEGORY%</string>
				<key>groups</key>
				<array>
					<dict>
						<key>name</key>
						<string>%GROUP_NAME%</string>
						<key>smart</key>
						<true/>
						<key>template_path</key>
						<string>%GROUP_TEMPLATE%</string>
					</dict>
				</array>
				<key>policy_category</key>
				<string>%POLICY_CATEGORY%</string>
				<key>policy_template</key>
				<string>%POLICY_TEMPLATE%</string>
				<key>prod_name</key>
				<string>%NAME%</string>
				<key>self_service_description</key>
				<string>%SELF_SERVICE_DESCRIPTION%</string>
				<key>self_service_icon</key>
				<string>%SELF_SERVICE_ICON%</string>
			</dict>
			<key>Processor</key>
			<string>JSSImporter</string>
		</dict>
	</array>
</dict>
</plist>

The MUT/The MUT.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>Description</key>
	<string>Downloads the current release version of The MUT from Github.</string>
	<key>Identifier</key>
	<string>com.github.dataJAR-recipes.download.The MUT</string>
	<key>Input</key>
	<dict>
		<key>PRERELEASE</key>
		<string></string>
		<key>NAME</key>
		<string>The MUT</string>
	</dict>
	<key>MinimumVersion</key>
	<string>0.6.1</string>
	<key>Process</key>
	<array>
		<dict>
			<key>Processor</key>
			<string>GitHubReleasesInfoProvider</string>
			<key>Arguments</key>
			<dict>
				<key>github_repo</key>
				<string>mike-levenick/mut</string>
				<key>include_prereleases</key>
				<string>%PRERELEASE%</string>
			</dict>
		</dict>
		<dict>
			<key>Processor</key>
			<string>URLDownloader</string>
			<key>Arguments</key>
            <dict>
                <key>filename</key>
                <string>%NAME%.dmg</string>
            </dict>
		</dict>
		<dict>
			<key>Processor</key>
			<string>EndOfCheckPhase</string>
		</dict>
		<dict>
			<key>Processor</key>
			<string>CodeSignatureVerifier</string>
			<key>Arguments</key>
			<dict>
				<key>input_path</key>
				<string>%pathname%/MUT.app</string>
				<key>requirement</key>
				<string>anchor apple generic and identifier "com.jssmut.jssmut" 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] = X6CF4FM9JH)</string>
			</dict>
		</dict>
	</array>
</dict>
</plist>

TX16Wx Software Sampler 3/TX16Wx Software Sampler 3.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of TX16Wx Software Sampler 3 and imports into Munki</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.TX16Wx Software Sampler 3</string>
    <key>Input</key>
    <dict>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>NAME</key>
        <string>TX16WxSoftwareSampler3</string>
        <key>pkginfo</key>
        <dict>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>TX16Wx Software Sampler is a plug-in for the creative musician, inspired and modeled after the best hardware samplers with all the ease and new exiting features of modern software.</string>
            <key>display_name</key>
            <string>TX16Wx Software Sampler 3</string>
            <key>minimum_os_version</key>
            <string>10.9.0</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
            <key>unattended_uninstall</key>
            <true/>
            <key>uninstall_method</key>
            <string>uninstall_script</string>
            <key>uninstall_script</key>
            <string>#!/bin/bash
filePaths=('/Library/Application Support/Avid/Audio/Plug-Ins/TX16Wx.aaxplugin'
           '/Library/Application Support/TX16Wx'
           '/Library/Audio/Plug-Ins/Components/TX16Wx.component'
           '/Library/Audio/Plug-Ins/VST/TX16Wx.vst'
           '/Library/Audio/Plug-Ins/VST3/TX16Wx.vst3')
for filePath in "${filePaths[@]}"
do
    if [ -d "${filePath}" ]
    then
        /bin/echo "Found ${filePath}, deleting..."
        /bin/rm -rf "${filePath}"
    fi
done</string>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.5.0</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.TX16Wx Software Sampler 3</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>FlatPkgUnpacker</string>
            <key>Arguments</key>
            <dict>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/unpack</string>
                <key>flat_pkg_path</key>
                <string>%pathname%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PkgRootCreator</string>
            <key>Arguments</key>
            <dict>
                <key>pkgdirs</key>
                <dict>
                    <key>Library</key>
                    <string>0755</string>
                </dict>
                <key>pkgroot</key>
                <string>%RECIPE_CACHE_DIR%/pkgroot</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PkgPayloadUnpacker</string>
            <key>Arguments</key>
            <dict>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/pkgroot</string>
                <key>pkg_payload_path</key>
                <string>%RECIPE_CACHE_DIR%/unpack/auplugin.pkg/Payload</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>Versioner</string>
            <key>Arguments</key>
            <dict>
                <key>input_plist_path</key>
                <string>%RECIPE_CACHE_DIR%/pkgroot/Library/Audio/Plug-Ins/Components/TX16Wx.component/Contents/Info.plist</string>
                <key>plist_version_key</key>
                <string>CFBundleShortVersionString</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiInstallsItemsCreator</string>
            <key>Arguments</key>
            <dict>
                <key>faux_root</key>
                <string>%RECIPE_CACHE_DIR%/pkgroot</string>
                <key>installs_item_paths</key>
                <array>
                    <string>/Library/Audio/Plug-Ins/Components/TX16Wx.component</string>
                </array>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiPkginfoMerger</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiPkginfoMerger</string>
            <key>Arguments</key>
            <dict>
                <key>additional_pkginfo</key>
                <dict>
                    <key>version</key>
                    <string>%version%</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%pathname%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PathDeleter</string>
            <key>Arguments</key>
            <dict>
                <key>path_list</key>
                <array>
                    <string>%RECIPE_CACHE_DIR%/pkgroot</string>
                    <string>%RECIPE_CACHE_DIR%/unpack</string>
                </array>
            </dict>
        </dict>
    </array>
</dict>
</plist>

TX16Wx Software Sampler 3/TX16Wx Software Sampler 3.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
    <dict>
        <key>Description</key>
        <string>Downloads the latest version of TX16Wx Software Sampler 3</string>
        <key>Identifier</key>
        <string>com.github.dataJAR-recipes.download.TX16Wx Software Sampler 3</string>
        <key>Input</key>
        <dict>
            <key>NAME</key>
            <string>TX16WxSoftwareSampler3</string>
        </dict>
        <key>MinimumVersion</key>
        <string>0.5.0</string>
        <key>Process</key>
        <array>
			<dict>
				<key>Processor</key>
				<string>URLTextSearcher</string>
				<key>Arguments</key>
				<dict>
					<key>url</key>
					<string>https://www.tx16wx.com/download/</string>
					<key>re_pattern</key>
					<string>data-downloadurl=\"(https://www\.tx16wx\.com/download/tx16wx-software-sampler-3-osx-setup/\?wpdmdl=.*&amp;refresh=.*)\"</string>
					<key>result_output_var_name</key>
					<string>url</string>
				</dict>
			</dict>
            <dict>
                <key>Processor</key>
                <string>URLDownloader</string>
                <key>Arguments</key>
                <dict>
                    <key>filename</key>
                    <string>%NAME%.pkg</string>
                </dict>
            </dict>
            <dict>
                <key>Processor</key>
                <string>EndOfCheckPhase</string>
            </dict>
            <dict>
                <key>Processor</key>
                <string>CodeSignatureVerifier</string>
                <key>Arguments</key>
                <dict>
                    <key>input_path</key>
                    <string>%pathname%</string>
                    <key>expected_authority_names</key>
                    <array>
                        <string>Developer ID Installer: CWITEC AB (LQZYK9TZH4)</string>
                        <string>Developer ID Certification Authority</string>
                        <string>Apple Root CA</string>
                    </array>
                </dict>
            </dict>
        </array>
    </dict>
</plist>
TI-Nspire/TI-Nspire.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of TI-Nspire CX Student Software and imports it into Munki.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.TI-Nspire</string>
    <key>Input</key>
    <dict>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>NAME</key>
        <string>TI-Nspire</string>
        <key>pkginfo</key>
        <dict>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>Powerful computer software with a Computer Algebra System (CAS) that satisfies math and science curriculum needs from middle school through college.

Symbolically solve equations, factor and expand variable expressions, complete the square, find antiderivatives, compute limits, find exact solutions in irrational form and more. </string>
            <key>developer</key>
            <string>Texas Instruments</string>
            <key>display_name</key>
            <string>TI-Nspire CX Student Software</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>1.0.0</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.TI-Nspire</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>PlistReader</string>
            <key>Arguments</key>
            <dict>
                <key>info_path</key>
                <string>%RECIPE_CACHE_DIR%/payload/Applications/TI-Nspire CX Student Software.app/Contents/Info.plist</string>
                <key>plist_keys</key>
                <dict>
                    <key>CFBundleShortVersionString</key>
                    <string>version</string>
                    <key>LSMinimumSystemVersion</key>
                    <string>min_os_version</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiInstallsItemsCreator</string>
            <key>Arguments</key>
            <dict>
                <key>faux_root</key>
                <string>%RECIPE_CACHE_DIR%/payload</string>
                <key>version_comparison_key</key>
                <string>CFBundleShortVersionString</string>
                <key>installs_item_paths</key>
                <array>
                    <string>/Applications/TI-Nspire CX Student Software.app</string>
                </array>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiPkginfoMerger</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiPkginfoMerger</string>
            <key>Arguments</key>
            <dict>
                <key>additional_pkginfo</key>
                <dict>
                    <key>minimum_os_version</key>
                    <string>%min_os_version%</string>
                    <key>version</key>
                    <string>%version%</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%pathname%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>

TI-Nspire/TI-Nspire.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of TI-Nspire CX Student Software</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.TI-Nspire</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>TI-Nspire</string>
    </dict>
    <key>MinimumVersion</key>
    <string>1.0.0</string>
    <key>Process</key>
    <array>
    <dict>
        <key>Arguments</key>
        <dict>
            <key>re_pattern</key>
            <string>href="(/download/en/ed-tech/.*/.*/TINspireCX.*\.dmg)"</string>
            <key>url</key>
            <string>https://education.ti.com/en/software/details/en/AFCFF2853BC34DEFB4C0B8B156F92404/ti-nspirecx_pc_full</string>
            <key>result_output_var_name</key>
            <string>version</string>
         </dict>
            <key>Processor</key>
            <string>URLTextSearcher</string>
        </dict>
        <dict>
            <key>Arguments</key>
            <dict>
                <key>filename</key>
                <string>%NAME%.dmg</string>
                <key>url</key>
            <string>https://education.ti.com/%version%</string>
            </dict>
            <key>Processor</key>
            <string>URLDownloader</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
        <dict>
            <key>Arguments</key>
            <dict>
                <key>expected_authority_names</key>
                <array>
                    <string>Developer ID Installer: Texas Instruments (TLEVLB8B5D)</string>
                    <string>Developer ID Certification Authority</string>
                    <string>Apple Root CA</string>
                </array>
                <key>input_path</key>
                <string>%pathname%/TINspireCXStudentSoftware-*.pkg</string>
            </dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
        </dict>
        <dict>
            <key>Arguments</key>
            <dict>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/unpack</string>
                <key>flat_pkg_path</key>
                <string>%pathname%/TINspireCXStudentSoftware-*.pkg</string>
                <key>purge_destination</key>
                <false/>
            </dict>
            <key>Processor</key>
            <string>FlatPkgUnpacker</string>
        </dict>
        <dict>
            <key>Arguments</key>
            <dict>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/payload</string>
                <key>pkg_payload_path</key>
                <string>%RECIPE_CACHE_DIR%/unpack/TI-NspireCXStudent.pkg/Payload</string>
                <key>purge_destination</key>
                <false/>
            </dict>
            <key>Processor</key>
            <string>PkgPayloadUnpacker</string>
        </dict>
    </array>
</dict>
</plist>

TI Connect CE/TI Connect CE.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of TI Connect CE and imports it into Munki.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.TI Connect CE</string>
    <key>Input</key>
    <dict>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>NAME</key>
        <string>TIConnectCE</string>
        <key>pkginfo</key>
        <dict>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>Easily take screen captures, transfer files, and write TI basic programs for the TI-84 Plus family.</string>
            <key>developer</key>
            <string>Texas Instruments</string>
            <key>display_name</key>
            <string>TI Connect CE</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>1.0.0</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.TI Connect CE</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%pathname%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
        </dict>
    </array>
</dict>
</plist>

TI Connect CE/TI Connect CE.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of TI Connect CE.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.TI Connect CE</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>TIConnectCE</string>
    </dict>
    <key>MinimumVersion</key>
    <string>1.0.0</string>
    <key>Process</key>
    <array>
         <dict>
        <key>Arguments</key>
        <dict>
            <key>re_pattern</key>
            <string>href="(/download/en/ed-tech/.*/.*/TIConnectCE.*\.dmg)"</string>
            <key>url</key>
            <string>https://education.ti.com/en-GB/software/details/en/CA9C74CAD02440A69FDC7189D7E1B6C2/swticonnectcesoftware</string>
            <key>result_output_var_name</key>
            <string>version</string>
         </dict>
            <key>Processor</key>
            <string>URLTextSearcher</string>
        </dict>
        <dict>
            <key>Arguments</key>
            <dict>
                <key>filename</key>
                <string>%NAME%.dmg</string>
                <key>url</key>
            <string>https://education.ti.com/%version%</string>
            </dict>
            <key>Processor</key>
            <string>URLDownloader</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
        <dict>
            <key>Arguments</key>
            <dict>
                <key>input_path</key>
                <string>%pathname%/TI Connect CE.app</string>
                <key>requirement</key>
                <string>identifier "com.ti.et.elg.tiConnect.TIConnectApplication" and anchor apple generic and 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] = TLEVLB8B5D</string>
            </dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
        </dict>
    </array>
</dict>
</plist>

SwitchResX4-Trial/SwitchResX4-Trial.pkg.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of SwitchResX4-Trial and creates a versioned PKG.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.pkg.SwitchResX4-Trial</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>SwitchResX4-Trial</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.SwitchResX4-Trial</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>PlistReader</string>
            <key>Arguments</key>
            <dict>
                <key>info_path</key>
                <string>%destination_path%</string>
                <key>plist_keys</key>
                <dict>
                    <key>CFBundleIdentifier</key>
                    <string>bundleid</string>
                    <key>CFBundleShortVersionString</key>
                    <string>version</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PkgCreator</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_request</key>
                <dict>
                    <key>pkgname</key>
                    <string>%NAME%-%version%</string>
                    <key>chown</key>
                    <array>
                        <dict>
                            <key>path</key>
                            <string>Library/PreferencePanes</string>
                            <key>user</key>
                            <string>root</string>
                            <key>group</key>
                            <string>admin</string>
                        </dict>
                    </array>
                    <key>id</key>
                    <string>%bundleid%</string>
                    <key>options</key>
                    <string>purge_ds_store</string>
                    <key>pkgdir</key>
                    <string>%RECIPE_CACHE_DIR%</string>
                    <key>pkgroot</key>
                    <string>%pkgroot%</string>
                </dict>
            </dict>
        </dict>
    </array>
</dict>
</plist>

SwitchResX4-Trial/SwitchResX4-Trial.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of SwitchResX4-Trial and imports it into Munki.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.SwitchResX4-Trial</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>SwitchResX4-Trial</string>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>pkginfo</key>
        <dict>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>With SwitchResX it is totally easy to match your screen resolution to the best for any app or use. While taking the benefits from full Retina for graphics or movie cutting, automatically change to HD-TV resolution when starting DVD Player or the usual beamer resolution when opening Powerpoint.</string>
            <key>developer</key>
            <string>Stéphane Madraun</string>
            <key>display_name</key>
            <string>SwitchResX4-Trial</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
            <key>unattended_uninstall</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.pkg.SwitchResX4-Trial</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>MunkiInstallsItemsCreator</string>
            <key>Arguments</key>
            <dict>
                <key>faux_root</key>
                <string>%pkgroot%</string>
                <key>installs_item_paths</key>
                <array>
                    <string>/Library/PreferencePanes/SwitchResX.prefPane</string>
                </array>
            </dict>
        </dict>
        <dict>
            <key>Arguments</key>
            <dict>
                <key>additional_pkginfo</key>
                <dict>
                    <key>version</key>
                    <string>%version%</string>
                </dict>
            </dict>
            <key>Processor</key>
            <string>MunkiPkginfoMerger</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%pkg_path%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>

SwitchResX4-Trial/SwitchResX4-Trial.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads latest version of SwitchResX4-Trial.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.SwitchResX4-Trial</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>SwitchResX4-Trial</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>URLDownloader</string>
            <key>Arguments</key>
            <dict>
                <key>filename</key>
                <string>%NAME%.zip</string>
                <key>url</key>
                <string>https://www.madrau.com/data/switchresx/SwitchResX4.zip</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>Unarchiver</string>
            <key>Arguments</key>
            <dict>
                <key>archive_path</key>
                <string>%pathname%</string>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/unzip/</string>
                <key>purge_destination</key>
                <true/>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PkgRootCreator</string>
            <key>Arguments</key>
            <dict>
                <key>pkgroot</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%</string>
                <key>pkgdirs</key>
                <dict>
                    <key>Library/PreferencePanes</key>
                    <string>0755</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>Copier</string>
            <key>Arguments</key>
            <dict>
                <key>source_path</key>
                <string>%destination_path%/SwitchResX Installer.app/Contents/Resources/SwitchResX.prefPane</string>
                <key>destination_path</key>
                <string>%pkgroot%/Library/PreferencePanes/SwitchResX.prefPane</string>
                <key>overwrite</key>
                <true/>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
            <key>Arguments</key>
            <dict>
                <key>input_path</key>
                <string>%destination_path%</string>
                <key>requirement</key>
                <string>anchor apple generic and identifier "fr.madrau.switchresx.prefpane" 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] = "6Q2DLB93P9")</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PathDeleter</string>
            <key>Arguments</key>
            <dict>
                <key>path_list</key>
                <array>
                    <string>%RECIPE_CACHE_DIR%/unzip/</string>                      
                </array>
            </dict>
        </dict>
    </array>
</dict>
</plist>
Swiss-PdbViewer/Swiss-PdbViewer.png METASEP

Swiss-PdbViewer/Swiss-PdbViewer.pkg.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Download recipe for the latest version of Swiss-PdbViewer.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.pkg.Swiss-PdbViewer</string>
    <key>Input</key>
    <dict>
    	<key>BUNDLE_ID</key>
    	<string>ch.vital-it.Swiss-PdbViewer</string>
        <key>NAME</key>
        <string>Swiss-PdbViewer</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>ParentRecipe</key>
	<string>com.github.dataJAR-recipes.download.Swiss-PdbViewer</string>
    <key>Process</key>
    <array>
		<dict>
			<key>Arguments</key>
			<dict>
				<key>pkg_request</key>
				<dict>
					<key>chown</key>
					<array>
						<dict>
							<key>group</key>
							<string>admin</string>
							<key>path</key>
							<string>Applications</string>
							<key>user</key>
							<string>root</string>
						</dict>
					</array>
					<key>id</key>
					<string>%BUNDLE_ID%</string>
					<key>options</key>
					<string>purge_ds_store</string>
					<key>pkgname</key>
					<string>%NAME%-%version%</string>
					<key>pkgroot</key>
					<string>%RECIPE_CACHE_DIR%/%NAME%</string>
					<key>version</key>
					<string>%version%</string>
				</dict>
			</dict>
			<key>Processor</key>
			<string>PkgCreator</string>
		</dict>
    </array>
</dict>
</plist>
Swiss-PdbViewer/Swiss-PdbViewer.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version Swiss-PdbViewer and imports into Munki</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.Swiss-PdbViewer</string>
    <key>Input</key>
    <dict>
        <key>MUNKI_REPO_SUBDIR</key>
		<string>apps/%NAME%</string>
        <key>NAME</key>
        <string>Swiss-PdbViewer</string>
		<key>pkginfo</key>
		<dict>
			<key>catalogs</key>
			<array>
				<string>testing</string>
			</array>
			<key>description</key>
			<string>Swiss-PdbViewer (aka DeepView) is an application that provides a user friendly interface allowing to analyze several proteins at the same time. The proteins can be superimposed in order to deduce structural alignments and compare their active sites or any other relevant parts. Amino acid mutations, H-bonds, angles and distances between atoms are easy to obtain thanks to the intuitive graphic and menu interface.</string>
			<key>developer</key>
			<string>vital-it</string>
			<key>display_name</key>
			<string>Swiss-PdbViewer</string>
			<key>name</key>
			<string>%NAME%</string>
			<key>preinstall_script</key>
			<string>#!/bin/sh

/bin/echo "Removing old copies of Swiss-PdbViewer from the /Applications folder..."
/bin/rm -rf /Applications/SPDBV_*_OSX/

exit $?</string>
			<key>unattended_install</key>
			<true/>
			<key>unattended_uninstall</key>
			<true/>
		</dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>ParentRecipe</key>
	<string>com.github.dataJAR-recipes.pkg.Swiss-PdbViewer</string>
    <key>Process</key>
    <array>
		<dict>
			<key>Arguments</key>
			<dict>
				<key>faux_root</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%</string>
				<key>installs_item_paths</key>
				<array>
					<string>/Applications/SPDBV_%version%_OSX/Swiss-PdbViewer.app</string>
				</array>
			</dict>
			<key>Processor</key>
			<string>MunkiInstallsItemsCreator</string>
		</dict>
		<dict>
			<key>Arguments</key>
			<dict>
				<key>additional_pkginfo</key>
				<dict>
					<key>version</key>
					<string>%version%</string>
				</dict>
			</dict>
			<key>Processor</key>
			<string>MunkiPkginfoMerger</string>
		</dict>
		<dict>
			<key>Arguments</key>
			<dict>
				<key>pkg_path</key>
				<string>%pkg_path%</string>
				<key>repo_subdirectory</key>
				<string>%MUNKI_REPO_SUBDIR%</string>
			</dict>
			<key>Processor</key>
			<string>MunkiImporter</string>
		</dict>
    </array>
</dict>
</plist>

Swiss-PdbViewer/Swiss-PdbViewer.jss.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>Description</key>
	<string>Downloads the latest version of Swiss-PdbViewer and then uploads to the JSS.</string>
	<key>Identifier</key>
	<string>com.github.dataJAR-recipes.jss.Swiss-PdbViewer</string>
	<key>Input</key>
	<dict>
		<key>CATEGORY</key>
		<string>Applications</string>
		<key>GROUP_NAME</key>
		<string>%NAME%-update-smart</string>
		<key>GROUP_TEMPLATE</key>
		<string>SmartGroupTemplate.xml</string>
		<key>NAME</key>
		<string>Swiss-PdbViewer</string>
		<key>POLICY_CATEGORY</key>
		<string>Testing</string>
		<key>POLICY_TEMPLATE</key>
		<string>PolicyTemplate.xml</string>
		<key>PROD_NAME</key>
		<string>Swiss-PdbViewer</string>
		<key>SELF_SERVICE_DESCRIPTION</key>
		<string>Swiss-PdbViewer (aka DeepView) is an application that provides a user friendly interface allowing to analyze several proteins at the same time. The proteins can be superimposed in order to deduce structural alignments and compare their active sites or any other relevant parts. Amino acid mutations, H-bonds, angles and distances between atoms are easy to obtain thanks to the intuitive graphic and menu interface.</string>
		<key>SELF_SERVICE_ICON</key>
		<string>Swiss-PdbViewer.png</string>
	</dict>
	<key>MinimumVersion</key>
	<string>0.6.1</string>
	<key>ParentRecipe</key>
	<string>com.github.dataJAR-recipes.pkg.Swiss-PdbViewer</string>
	<key>Process</key>
	<array>
		<dict>
			<key>Arguments</key>
			<dict>
				<key>category</key>
				<string>%CATEGORY%</string>
				<key>groups</key>
				<array>
					<dict>
						<key>name</key>
						<string>%GROUP_NAME%</string>
						<key>smart</key>
						<true/>
						<key>template_path</key>
						<string>%GROUP_TEMPLATE%</string>
					</dict>
				</array>
				<key>pkg_path</key>
				<string>%pkg_path%</string>
				<key>policy_category</key>
				<string>%POLICY_CATEGORY%</string>
				<key>policy_template</key>
				<string>%POLICY_TEMPLATE%</string>
				<key>prod_name</key>
				<string>%PROD_NAME%</string>
				<key>self_service_description</key>
				<string>%SELF_SERVICE_DESCRIPTION%</string>
				<key>self_service_icon</key>
				<string>%SELF_SERVICE_ICON%</string>
			</dict>
			<key>Processor</key>
			<string>JSSImporter</string>
		</dict>
	</array>
</dict>
</plist>
Swiss-PdbViewer/Swiss-PdbViewer.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Download recipe for the latest version of Swiss-PdbViewer and extracts the Pkg</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.Swiss-PdbViewer</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>Swiss-PdbViewer</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>Process</key>
    <array>
		<dict>
			<key>Processor</key>
			<string>URLTextSearcher</string>
			<key>Arguments</key>
			<dict>
				<key>url</key>
				<string>https://spdbv.vital-it.ch/disclaim.html#</string>
				<key>re_pattern</key>
				<string>SPDBV_+[0-9]+\.+[0-9]+\.+[0-9]+\_OSX.zip</string>
			</dict>
		</dict>
        <dict>
        	<key>Arguments</key>
			<dict>
				<key>url</key>
				<string>https://spdbv.vital-it.ch/download/binaries/%match%</string>
				<key>filename</key>
                <string>%NAME%.zip</string>
			</dict>
            <key>Processor</key>
            <string>URLDownloader</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
        <dict>
			<key>Arguments</key>
			<dict>
				<key>archive_path</key>
				<string>%pathname%</string>
				<key>destination_path</key>
				<string>%RECIPE_CACHE_DIR%/%NAME%/Applications</string>
				<key>purge_destination</key>
				<true/>
			</dict>
			<key>Processor</key>
			<string>Unarchiver</string>
		</dict>
		<dict>
            <key>Processor</key>
            <string>FileFinder</string>
            <key>Arguments</key>
            <dict>
                <key>pattern</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%/Applications/SPDBV_*_OSX/Swiss-PdbViewer.app</string>
            </dict>
        </dict>
		<dict>
			<key>Arguments</key>
			<dict>
				<key>input_plist_path</key>
				<string>%found_filename%/Contents/Info.plist</string>
			</dict>
			<key>Processor</key>
			<string>Versioner</string>
		</dict>
    </array>
</dict>
</plist>
SuperLab 6/SuperLab 6.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest release of SuperLab 6 and imports into Munki</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.SuperLab 6</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>SuperLab6</string>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>pkginfo</key>
        <dict>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>Designed for Researchers, not Programmers
 
Every other tool to build experiments relies on programming. SuperLab has been offering a better way — since 1991. Even complex experiments like staircase and visual thresholds are easy to implement using a point-and-click interface.</string>
            <key>display_name</key>
            <string>SuperLab 6</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.4.1</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.SuperLab 6</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>DmgCreator</string>
            <key>Arguments</key>
            <dict>
                <key>dmg_root</key>
                <string>%destination_path%SuperLab 6.app</string>
                <key>dmg_path</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%.dmg</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%dmg_path%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PathDeleter</string>
            <key>Arguments</key>
            <dict>
                <key>path_list</key>
                <array>
                    <string>%destination_path%</string>
                </array>
            </dict>
        </dict>
    </array>
</dict>
</plist>

SuperLab 6/SuperLab 6.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest release of SuperLab 6.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.SuperLab 6</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>SuperLab6</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.4.1</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>URLTextSearcher</string>
            <key>Arguments</key>
            <dict>
                <key>url</key>
                <string>https://cedrus.com/superlab/download.htm</string>
                <key>re_pattern</key>
                <string>https://cedrus\.com/superlab/v6/superlab-\S.*.zip</string>
                <key>result_output_var_name</key>
                <string>match</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>URLDownloader</string>
            <key>Arguments</key>
            <dict>
                <key>filename</key>
                <string>%NAME%.zip</string>
                <key>url</key>
                <string>%match%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>Unarchiver</string>
            <key>Arguments</key>
            <dict>
                <key>archive_path</key>
                <string>%pathname%</string>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/unzip/</string>
                <key>purge_destination</key>
                <true/>
                <key>archive_format</key>
                <string>zip</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
            <key>Arguments</key>
            <dict>
                <key>input_path</key>
                <string>%destination_path%/SuperLab 6.app</string>
                <key>requirement</key>
                <string>identifier "com.Cedrus.SuperLab" and anchor apple generic and 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] = T4ZRRE54FR</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>

Suitcase Fusion 9/SuitcaseFusion9.png METASEP

Suitcase Fusion 9/Suitcase Fusion 9.pkg.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of Suitcase Fusion 9 and makes a pkg of it</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.pkg.Suitcase Fusion 9</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>Suitcase Fusion 9</string>
        <key>PKG_ID</key>
        <string>com.extensis.SuitcaseFusion9</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.3.1</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.Suitcase Fusion 9</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>PkgRootCreator</string>
            <key>Arguments</key>
            <dict>
                <key>pkgroot</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%</string>
                <key>pkgdirs</key>
                <dict>
                    <key>Applications</key>
                    <string>0775</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>Copier</string>
            <key>Arguments</key>
            <dict>
                <key>source_path</key>
                <string>%pathname%/Suitcase Fusion.app</string>
                <key>destination_path</key>
                <string>%pkgroot%/Applications/Suitcase Fusion.app</string>
                <key>overwrite</key>
                <true/>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>Versioner</string>
            <key>Arguments</key>
            <dict>
                <key>input_plist_path</key>
                <string>%pkgroot%/Applications/Suitcase Fusion.app/Contents/Info.plist</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PkgCreator</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_request</key>
                <dict>
                    <key>pkgname</key>
                    <string>%NAME%-%version%</string>
                    <key>pkgdir</key>
                    <string>%RECIPE_CACHE_DIR%</string>
                    <key>id</key>
                    <string>%PKG_ID%</string>
                    <key>options</key>
                    <string>purge_ds_store</string>
                    <key>chown</key>
                    <array>
                        <dict>
                            <key>path</key>
                            <string>Applications</string>
                            <key>user</key>
                            <string>root</string>
                            <key>group</key>
                            <string>admin</string>
                        </dict>
                    </array>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PathDeleter</string>
            <key>Arguments</key>
            <dict>
                <key>path_list</key>
                <array>
                    <string>%pkgroot%</string>                        
                </array>
            </dict>
        </dict>
    </array>
</dict>
</plist>

Suitcase Fusion 9/Suitcase Fusion 9.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the current release version of Suitcase Fusion 9 and imports into Munki.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.Suitcase Fusion 9</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>SuitcaseFusion9</string>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/Extensis/Suitcase</string>
        <key>pkginfo</key>
        <dict>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
           	<key>category</key>
			<string>Productivity</string>
			<key>developer</key>
			<string>Extensis</string>
            <key>description</key>
            <string>Manage all of your fonts from one source, no matter how many you have—including your system fonts, purchased fonts, fonts synced from Adobe Typekit, Google Fonts, and more. Turn them on and off as you need. Suitcase Fusion offers you the best way to organize, find, view, and use them within your existing workflow.</string>
            <key>display_name</key>
            <string>Suitcase Fusion 9</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.3.1</string>
    <key>ParentRecipe</key>
	<string>com.github.dataJAR-recipes.download.Suitcase Fusion 9</string>
    <key>Process</key>
	<array>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%pathname%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>
Suitcase Fusion 9/Suitcase Fusion 9.jss.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the current release version of Suitcase Fusion 9 and then uploads to the JSS</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.jss.Suitcase Fusion 9</string>
    <key>Input</key>
    <dict>
        <key>CATEGORY</key>
        <string>Productivity</string>
        <key>GROUP_NAME</key>
        <string>%NAME%-update-smart</string>
        <key>GROUP_TEMPLATE</key>
        <string>SmartGroupTemplate.xml</string>
        <key>NAME</key>
        <string>Suitcase Fusion 9</string>
        <key>POLICY_CATEGORY</key>
        <string>Testing</string>
        <key>POLICY_TEMPLATE</key>
        <string>PolicyTemplate.xml</string>
        <key>SELF_SERVICE_DESCRIPTION</key>
        <string>Manage all of your fonts from one source, no matter how many you have—including your system fonts, purchased fonts, fonts synced from Adobe Typekit, Google Fonts, and more. Turn them on and off as you need. Suitcase Fusion offers you the best way to organize, find, view, and use them within your existing workflow.</string>
        <key>SELF_SERVICE_ICON</key>
        <string>SuitcaseFusion9.png</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.2.0</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.pkg.Suitcase Fusion 9</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Arguments</key>
            <dict>
                <key>category</key>
                <string>%CATEGORY%</string>
                <key>groups</key>
                <array>
                    <dict>
                        <key>name</key>
                        <string>%GROUP_NAME%</string>
                        <key>smart</key>
                        <true/>
                        <key>template_path</key>
                        <string>%GROUP_TEMPLATE%</string>
                    </dict>
                </array>
                <key>policy_category</key>
                <string>%POLICY_CATEGORY%</string>
                <key>policy_template</key>
                <string>%POLICY_TEMPLATE%</string>
                <key>prod_name</key>
                <string>Suitcase Fusion</string>
                <key>self_service_description</key>
                <string>%SELF_SERVICE_DESCRIPTION%</string>
                <key>self_service_icon</key>
                <string>%SELF_SERVICE_ICON%</string>
            </dict>
            <key>Processor</key>
            <string>JSSImporter</string>
        </dict>
    </array>
</dict>
</plist>

Suitcase Fusion 9/Suitcase Fusion 9.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the current release version of Suitcase Fusion 9</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.Suitcase Fusion 9</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>Suitcase Fusion 9</string>
        <key>SPARKLE_FEED_URL</key>
        <string>https://sparkle.extensis.com/u/ST/EN/suitcase20en.xml</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.3.1</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>SparkleUpdateInfoProvider</string>
            <key>Arguments</key>
            <dict>
                <key>appcast_url</key>
                <string>%SPARKLE_FEED_URL%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>URLDownloader</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
            <key>Arguments</key>
            <dict>
                <key>input_path</key>
                <string>%pathname%/Suitcase Fusion.app</string>
                <key>requirement</key>
                <string>identifier "com.extensis.SuitcaseFusion" and anchor apple generic and 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] = J6MMHGD9D6</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>
Suitcase Fusion 8/SuitcaseFusion8.png METASEP

Suitcase Fusion 8/Suitcase Fusion 8.pkg.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
	<string>Downloads the latest version of Suitcase Fusion 8 and makes a pkg of it</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.pkg.Suitcase Fusion 8</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>Suitcase Fusion 8</string>
        <key>PKG_ID</key>
        <string>com.extensis.SuitcaseFusion8</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.3.1</string>
    <key>ParentRecipe</key>
	<string>com.github.dataJAR-recipes.download.Suitcase Fusion 8</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>PkgRootCreator</string>
            <key>Arguments</key>
            <dict>
                <key>pkgroot</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%</string>
                <key>pkgdirs</key>
                <dict>
                    <key>Applications</key>
                    <string>0775</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>Unarchiver</string>
            <key>Arguments</key>
            <dict>
                <key>archive_path</key>
                <string>%pathname%</string>
                <key>destination_path</key>
                <string>%pkgroot%/Applications/</string>
                <key>purge_destination</key>
                <true/>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>Versioner</string>
            <key>Arguments</key>
            <dict>
                <key>input_plist_path</key>
                <string>%pkgroot%/Applications/Suitcase Fusion.app/Contents/Info.plist</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PkgCreator</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_request</key>
                <dict>
                    <key>pkgname</key>
                    <string>%NAME%-%version%</string>
                    <key>pkgdir</key>
                    <string>%RECIPE_CACHE_DIR%</string>
                    <key>id</key>
                    <string>%PKG_ID%</string>
                    <key>options</key>
                    <string>purge_ds_store</string>
                    <key>chown</key>
                    <array>
                        <dict>
                            <key>path</key>
                            <string>Applications</string>
                            <key>user</key>
                            <string>root</string>
                            <key>group</key>
                            <string>admin</string>
                        </dict>
                    </array>
                </dict>
            </dict>
        </dict>
    </array>
</dict>
</plist>

Suitcase Fusion 8/Suitcase Fusion 8.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the current release version of Suitcase Fusion 8 and imports into Munki.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.Suitcase Fusion 8</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>SuitcaseFusion8</string>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/Extensis/Suitcase</string>
        <key>pkginfo</key>
        <dict>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>category</key>
            <string>Productivity</string>
            <key>developer</key>
            <string>Extensis</string>
            <key>description</key>
            <string>Professional font management. Suitcase Fusion is a professional tool that enables you to organize your font collection by project, client, or however you see fit.</string>
            <key>display_name</key>
            <string>Suitcase Fusion 8</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.3.1</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.Suitcase Fusion 8</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>Unarchiver</string>
            <key>Arguments</key>
            <dict>
                <key>archive_path</key>
                <string>%pathname%</string>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%</string>
                <key>purge_destination</key>
                <true/>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>DmgCreator</string>
            <key>Arguments</key>
            <dict>
                <key>dmg_root</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%</string>
                <key>dmg_path</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%.dmg</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiPkginfoMerger</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%dmg_path%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
                <key>version_comparison_key</key>
                <string>CFBundleShortVersionString</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PathDeleter</string>
            <key>Arguments</key>
            <dict>
                <key>path_list</key>
                <array>
                    <string>%RECIPE_CACHE_DIR%/%NAME%</string>
                </array>
            </dict>
        </dict>
    </array>
</dict>
</plist>
Suitcase Fusion 8/Suitcase Fusion 8.jss.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>Description</key>
	<string>Downloads the current release version of Suitcase Fusion 8 and then uploads to the JSS</string>
	<key>Identifier</key>
	<string>com.github.dataJAR-recipes.jss.Suitcase Fusion 8</string>
	<key>Input</key>
	<dict>
		<key>CATEGORY</key>
		<string>Productivity</string>
		<key>GROUP_NAME</key>
		<string>%NAME%-update-smart</string>
		<key>GROUP_TEMPLATE</key>
		<string>SmartGroupTemplate.xml</string>
		<key>NAME</key>
		<string>Suitcase Fusion 8</string>
		<key>POLICY_CATEGORY</key>
		<string>Testing</string>
		<key>POLICY_TEMPLATE</key>
		<string>PolicyTemplate.xml</string>
		<key>SELF_SERVICE_DESCRIPTION</key>
		<string>Professional font management. Suitcase Fusion is a professional tool that enables you to organize your font collection by project, client, or however you see fit.</string>
        <key>SELF_SERVICE_ICON</key>
		<string>SuitcaseFusion8.png</string>
	</dict>
	<key>MinimumVersion</key>
	<string>0.2.0</string>
	<key>ParentRecipe</key>
	<string>com.github.dataJAR-recipes.pkg.Suitcase Fusion 8</string>
	<key>Process</key>
	<array>
		<dict>
			<key>Arguments</key>
			<dict>
				<key>category</key>
				<string>%CATEGORY%</string>
				<key>groups</key>
				<array>
					<dict>
						<key>name</key>
						<string>%GROUP_NAME%</string>
						<key>smart</key>
						<true/>
						<key>template_path</key>
						<string>%GROUP_TEMPLATE%</string>
					</dict>
				</array>
				<key>policy_category</key>
				<string>%POLICY_CATEGORY%</string>
				<key>policy_template</key>
				<string>%POLICY_TEMPLATE%</string>
				<key>prod_name</key>
				<string>Suitcase Fusion</string>
				<key>self_service_description</key>
				<string>%SELF_SERVICE_DESCRIPTION%</string>
				<key>self_service_icon</key>
				<string>%SELF_SERVICE_ICON%</string>
			</dict>
			<key>Processor</key>
			<string>JSSImporter</string>
		</dict>
	</array>
</dict>
</plist>

Suitcase Fusion 8/Suitcase Fusion 8.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the current release version of Suitcase Fusion 8</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.Suitcase Fusion 8</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>Suitcase Fusion 8</string>
        <key>SPARKLE_FEED_URL</key>
        <string>https://sparkle.extensis.com/u/ST/EN/suitcase19en.xml</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.3.1</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>SparkleUpdateInfoProvider</string>
            <key>Arguments</key>
            <dict>
                <key>appcast_url</key>
                <string>%SPARKLE_FEED_URL%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>URLDownloader</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
        <dict>
			<key>Processor</key>
			<string>Unarchiver</string>
			<key>Arguments</key>
			<dict>
				<key>archive_path</key>
				<string>%pathname%</string>
				<key>destination_path</key>
				<string>%RECIPE_CACHE_DIR%/%NAME%</string>
				<key>purge_destination</key>
				<true/>
			</dict>
		</dict>
		<dict>
			<key>Arguments</key>
			<dict>
				<key>input_path</key>
				<string>%RECIPE_CACHE_DIR%/%NAME%/Suitcase Fusion.app</string>
				<key>requirement</key>
				<string>identifier "com.extensis.SuitcaseFusion" and anchor apple generic and 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] = J6MMHGD9D6</string>
			</dict>
			<key>Processor</key>
			<string>CodeSignatureVerifier</string>
		</dict>
		<dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
    </array>
</dict>
</plist>
Suitcase Fusion 7/SuitcaseFusion7.png METASEP

Suitcase Fusion 7/Suitcase Fusion 7.pkg.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
	<string>Downloads the latest version of Suitcase Fusion 7 and makes a pkg of it</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.pkg.Suitcase Fusion 7</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>Suitcase Fusion 7</string>
        <key>PKG_ID</key>
        <string>com.extensis.SuitcaseFusion7</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.3.1</string>
    <key>ParentRecipe</key>
	<string>com.github.dataJAR-recipes.download.Suitcase Fusion 7</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>PkgRootCreator</string>
            <key>Arguments</key>
            <dict>
                <key>pkgroot</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%</string>
                <key>pkgdirs</key>
                <dict>
                    <key>Applications</key>
                    <string>0775</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>Unarchiver</string>
            <key>Arguments</key>
            <dict>
                <key>archive_path</key>
                <string>%pathname%</string>
                <key>destination_path</key>
                <string>%pkgroot%/Applications/</string>
                <key>purge_destination</key>
                <true/>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>Versioner</string>
            <key>Arguments</key>
            <dict>
                <key>input_plist_path</key>
                <string>%pkgroot%/Applications/Suitcase Fusion.app/Contents/Info.plist</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PkgCreator</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_request</key>
                <dict>
                    <key>pkgname</key>
                    <string>%NAME%-%version%</string>
                    <key>pkgdir</key>
                    <string>%RECIPE_CACHE_DIR%</string>
                    <key>id</key>
                    <string>%PKG_ID%</string>
                    <key>options</key>
                    <string>purge_ds_store</string>
                    <key>chown</key>
                    <array>
                        <dict>
                            <key>path</key>
                            <string>Applications</string>
                            <key>user</key>
                            <string>root</string>
                            <key>group</key>
                            <string>admin</string>
                        </dict>
                    </array>
                </dict>
            </dict>
        </dict>
    </array>
</dict>
</plist>

Suitcase Fusion 7/Suitcase Fusion 7.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the current release version of Suitcase Fusion 7 and imports into Munki.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.Suitcase Fusion 7</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>SuitcaseFusion7</string>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/Extensis/Suitcase</string>
        <key>SPARKLE_FEED_URL</key>
        <string>https://sparkle.extensis.com/u/ST/EN/suitcase18en.xml</string>
        <key>pkginfo</key>
        <dict>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>category</key>
            <string>Productivity</string>
            <key>developer</key>
            <string>Extensis</string>
            <key>description</key>
            <string>Font management application</string>
            <key>display_name</key>
            <string>Suitcase Fusion 7</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.3.1</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.Suitcase Fusion 7</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>Unarchiver</string>
            <key>Arguments</key>
            <dict>
                <key>archive_path</key>
                <string>%pathname%</string>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%</string>
                <key>purge_destination</key>
                <true/>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>DmgCreator</string>
            <key>Arguments</key>
            <dict>
                <key>dmg_root</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%</string>
                <key>dmg_path</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%.dmg</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiPkginfoMerger</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%dmg_path%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
                <key>version_comparison_key</key>
                <string>CFBundleShortVersionString</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PathDeleter</string>
            <key>Arguments</key>
            <dict>
                <key>path_list</key>
                <array>
                    <string>%RECIPE_CACHE_DIR%/%NAME%</string>
                </array>
            </dict>
        </dict>
    </array>
</dict>
</plist>
Suitcase Fusion 7/Suitcase Fusion 7.jss.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>Description</key>
	<string>Downloads the current release version of Suitcase Fusion 7 and then uploads to the JSS</string>
	<key>Identifier</key>
	<string>com.github.dataJAR-recipes.jss.Suitcase Fusion 7</string>
	<key>Input</key>
	<dict>
		<key>CATEGORY</key>
		<string>Productivity</string>
		<key>GROUP_NAME</key>
		<string>%NAME%-update-smart</string>
		<key>GROUP_TEMPLATE</key>
		<string>SmartGroupTemplate.xml</string>
		<key>NAME</key>
		<string>Suitcase Fusion 7</string>
		<key>POLICY_CATEGORY</key>
		<string>Testing</string>
		<key>POLICY_TEMPLATE</key>
		<string>PolicyTemplate.xml</string>
		<key>SELF_SERVICE_DESCRIPTION</key>
		<string>Meet font challenges head-on in 2017. Reduce wasted time. Keep your fonts in order. Create your best work.</string>
		<key>SELF_SERVICE_ICON</key>
		<string>SuitcaseFusion7.png</string>
	</dict>
	<key>MinimumVersion</key>
	<string>0.2.0</string>
	<key>ParentRecipe</key>
	<string>com.github.dataJAR-recipes.pkg.Suitcase Fusion 7</string>
	<key>Process</key>
	<array>
		<dict>
			<key>Arguments</key>
			<dict>
				<key>category</key>
				<string>%CATEGORY%</string>
				<key>groups</key>
				<array>
					<dict>
						<key>name</key>
						<string>%GROUP_NAME%</string>
						<key>smart</key>
						<true/>
						<key>template_path</key>
						<string>%GROUP_TEMPLATE%</string>
					</dict>
				</array>
				<key>policy_category</key>
				<string>%POLICY_CATEGORY%</string>
				<key>policy_template</key>
				<string>%POLICY_TEMPLATE%</string>
				<key>prod_name</key>
				<string>%NAME%</string>
				<key>self_service_description</key>
				<string>%SELF_SERVICE_DESCRIPTION%</string>
				<key>self_service_icon</key>
				<string>%SELF_SERVICE_ICON%</string>
			</dict>
			<key>Processor</key>
			<string>JSSImporter</string>
		</dict>
	</array>
</dict>
</plist>

Suitcase Fusion 7/Suitcase Fusion 7.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the current release version of Suitcase Fusion 7.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.Suitcase Fusion 7</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>Suitcase Fusion 7</string>
        <key>SPARKLE_FEED_URL</key>
        <string>https://sparkle.extensis.com/u/ST/EN/suitcase18en.xml</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.3.1</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>SparkleUpdateInfoProvider</string>
            <key>Arguments</key>
            <dict>
                <key>appcast_url</key>
                <string>%SPARKLE_FEED_URL%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>URLDownloader</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
        <dict>
			<key>Processor</key>
			<string>Unarchiver</string>
			<key>Arguments</key>
			<dict>
				<key>archive_path</key>
				<string>%pathname%</string>
				<key>destination_path</key>
				<string>%RECIPE_CACHE_DIR%/%NAME%</string>
				<key>purge_destination</key>
				<true/>
			</dict>
		</dict>
		<dict>
			<key>Processor</key>
			<string>PathDeleter</string>
			<key>Arguments</key>
			<dict>
				<key>path_list</key>
				<array>
				<string>%RECIPE_CACHE_DIR%/%NAME%</string>
				</array>
			</dict>
		</dict>
    </array>
</dict>
</plist>
Suitcase Fusion 22/Suitcase Fusion 22.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the current release version of Suitcase Fusion 22 and imports into Munki.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.Suitcase Fusion 22</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>SuitcaseFusion22</string>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/Extensis/Suitcase</string>
        <key>pkginfo</key>
        <dict>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
           	<key>category</key>
			<string>Productivity</string>
			<key>developer</key>
			<string>Extensis</string>
            <key>description</key>
            <string>You love fonts. But wrangling your font collection? Not so much. Welcome to Suitcase Fusion, the gold standard in font management for creative professionals.</string>
            <key>display_name</key>
            <string>Suitcase Fusion 22</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>postinstall_script</key>
            <string>#!/bin/bash
#
# If Suitcase Fusion is installed, install it's plugins
#

pluginInstaller="/Applications/Suitcase Fusion.app/Contents/Resources/plugin-installer"

if [ -f "${pluginInstaller}" ]
then
    /bin/echo "Found ${pluginInstaller}, running..."
    "${pluginInstaller}" --install-all > /dev/null 2>&amp;1
fi</string>
            <key>unattended_install</key>
            <true/>
            <key>unattended_uninstall</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.3.1</string>
    <key>ParentRecipe</key>
	<string>com.github.dataJAR-recipes.download.Suitcase Fusion 22</string>
    <key>Process</key>
	<array>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%pathname%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>
Suitcase Fusion 22/Suitcase Fusion 22.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the current release version of Suitcase Fusion 22</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.Suitcase Fusion 22</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>Suitcase Fusion 22</string>
        <key>SPARKLE_FEED_URL</key>
        <string>https://sparkle.extensis.com/u/ST/EN/suitcase22en.xml</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.3.1</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>SparkleUpdateInfoProvider</string>
            <key>Arguments</key>
            <dict>
                <key>appcast_url</key>
                <string>%SPARKLE_FEED_URL%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>URLDownloader</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
            <key>Arguments</key>
            <dict>
                <key>input_path</key>
                <string>%pathname%/Suitcase Fusion.app</string>
                <key>requirement</key>
                <string>identifier "com.extensis.SuitcaseFusion" and anchor apple generic and 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] = J6MMHGD9D6</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>
Suitcase Fusion 21/SuitcaseFusion21.png METASEP

Suitcase Fusion 21/Suitcase Fusion 21.pkg.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of Suitcase Fusion 21 and makes a pkg of it</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.pkg.Suitcase Fusion 21</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>Suitcase Fusion 21</string>
        <key>PKG_ID</key>
        <string>com.extensis.SuitcaseFusion21</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.3.1</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.Suitcase Fusion 21</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>PkgRootCreator</string>
            <key>Arguments</key>
            <dict>
                <key>pkgroot</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%</string>
                <key>pkgdirs</key>
                <dict>
                    <key>Applications</key>
                    <string>0775</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>Copier</string>
            <key>Arguments</key>
            <dict>
                <key>source_path</key>
                <string>%pathname%/Suitcase Fusion.app</string>
                <key>destination_path</key>
                <string>%pkgroot%/Applications/Suitcase Fusion.app</string>
                <key>overwrite</key>
                <true/>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>Versioner</string>
            <key>Arguments</key>
            <dict>
                <key>input_plist_path</key>
                <string>%pkgroot%/Applications/Suitcase Fusion.app/Contents/Info.plist</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PkgCreator</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_request</key>
                <dict>
                    <key>pkgname</key>
                    <string>%NAME%-%version%</string>
                    <key>pkgdir</key>
                    <string>%RECIPE_CACHE_DIR%</string>
                    <key>id</key>
                    <string>%PKG_ID%</string>
                    <key>options</key>
                    <string>purge_ds_store</string>
                    <key>chown</key>
                    <array>
                        <dict>
                            <key>path</key>
                            <string>Applications</string>
                            <key>user</key>
                            <string>root</string>
                            <key>group</key>
                            <string>admin</string>
                        </dict>
                    </array>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PathDeleter</string>
            <key>Arguments</key>
            <dict>
                <key>path_list</key>
                <array>
                    <string>%pkgroot%</string>                        
                </array>
            </dict>
        </dict>
    </array>
</dict>
</plist>

Suitcase Fusion 21/Suitcase Fusion 21.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the current release version of Suitcase Fusion 21 and imports into Munki.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.Suitcase Fusion 21</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>SuitcaseFusion21</string>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/Extensis/Suitcase</string>
        <key>pkginfo</key>
        <dict>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
           	<key>category</key>
			<string>Productivity</string>
			<key>developer</key>
			<string>Extensis</string>
            <key>description</key>
            <string>Manage all of your fonts from one source, no matter how many you have—including your system fonts, purchased fonts, fonts synced from Adobe Typekit, Google Fonts, and more. Turn them on and off as you need. Suitcase Fusion offers you the best way to organize, find, view, and use them within your existing workflow.</string>
            <key>display_name</key>
            <string>Suitcase Fusion 21</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.3.1</string>
    <key>ParentRecipe</key>
	<string>com.github.dataJAR-recipes.download.Suitcase Fusion 21</string>
    <key>Process</key>
	<array>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%pathname%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>
Suitcase Fusion 21/Suitcase Fusion 21.jss.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the current release version of Suitcase Fusion 21 and then uploads to the JSS</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.jss.Suitcase Fusion 21</string>
    <key>Input</key>
    <dict>
        <key>CATEGORY</key>
        <string>Productivity</string>
        <key>GROUP_NAME</key>
        <string>%NAME%-update-smart</string>
        <key>GROUP_TEMPLATE</key>
        <string>SmartGroupTemplate.xml</string>
        <key>NAME</key>
        <string>Suitcase Fusion 21</string>
        <key>POLICY_CATEGORY</key>
        <string>Testing</string>
        <key>POLICY_TEMPLATE</key>
        <string>PolicyTemplate.xml</string>
        <key>SELF_SERVICE_DESCRIPTION</key>
        <string>Manage all of your fonts from one source, no matter how many you have—including your system fonts, purchased fonts, fonts synced from Adobe Typekit, Google Fonts, and more. Turn them on and off as you need. Suitcase Fusion offers you the best way to organize, find, view, and use them within your existing workflow.</string>
        <key>SELF_SERVICE_ICON</key>
        <string>SuitcaseFusion21.png</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.2.0</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.pkg.Suitcase Fusion 21</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Arguments</key>
            <dict>
                <key>category</key>
                <string>%CATEGORY%</string>
                <key>groups</key>
                <array>
                    <dict>
                        <key>name</key>
                        <string>%GROUP_NAME%</string>
                        <key>smart</key>
                        <true/>
                        <key>template_path</key>
                        <string>%GROUP_TEMPLATE%</string>
                    </dict>
                </array>
                <key>policy_category</key>
                <string>%POLICY_CATEGORY%</string>
                <key>policy_template</key>
                <string>%POLICY_TEMPLATE%</string>
                <key>prod_name</key>
                <string>Suitcase Fusion</string>
                <key>self_service_description</key>
                <string>%SELF_SERVICE_DESCRIPTION%</string>
                <key>self_service_icon</key>
                <string>%SELF_SERVICE_ICON%</string>
            </dict>
            <key>Processor</key>
            <string>JSSImporter</string>
        </dict>
    </array>
</dict>
</plist>

Suitcase Fusion 21/Suitcase Fusion 21.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the current release version of Suitcase Fusion 21</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.Suitcase Fusion 21</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>Suitcase Fusion 21</string>
        <key>SPARKLE_FEED_URL</key>
        <string>https://sparkle.extensis.com/u/ST/EN/suitcase21en.xml</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.3.1</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>SparkleUpdateInfoProvider</string>
            <key>Arguments</key>
            <dict>
                <key>appcast_url</key>
                <string>%SPARKLE_FEED_URL%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>URLDownloader</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
            <key>Arguments</key>
            <dict>
                <key>input_path</key>
                <string>%pathname%/Suitcase Fusion.app</string>
                <key>requirement</key>
                <string>identifier "com.extensis.SuitcaseFusion" and anchor apple generic and 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] = J6MMHGD9D6</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>
Stretchly/Stretchly.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of Stretchly and imports into Munki</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.Stretchly</string>
    <key>Input</key>
    <dict>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>NAME</key>
        <string>Stretchly</string>
        <key>pkginfo</key>
        <dict>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>Stretchly is a cross-platform Electron app that reminds you to take breaks when working on your computer.</string>
            <key>developer</key>
            <string>Jan Hovancik</string>
            <key>display_name</key>
            <string>Stretchly</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
            <key>unattended_uninstall</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.5.0</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.Stretchly</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%pathname%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
        </dict>
    </array>
</dict>
</plist>

Stretchly/Stretchly.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of Stretchly</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.Stretchly</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>Stretchly</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.5.0</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Arguments</key>
            <dict>
                <key>asset_regex</key>
                <string>[\S]+\.dmg</string>
                <key>github_repo</key>
                <string>hovancik/stretchly</string>
            </dict>
            <key>Processor</key>
            <string>GitHubReleasesInfoProvider</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>URLDownloader</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
    </array>
</dict>
</plist>

Stream Deck/Stream Deck.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of Stream Deck and imports it into Munki.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.Stream Deck</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>StreamDeck</string>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>pkginfo</key>
        <dict>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>You are creating quality content backed by the best tech on the planet. But you want to do more. With Stream Deck, unleash your creative genius and make waves across Twitch and YouTube. All while focusing on what matters most: your audience.</string>
            <key>developer</key>
            <string>Corsair Memory, Inc</string>
            <key>display_name</key>
            <string>Stream Deck</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
            <key>unattended_uninstall</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.Stream Deck</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>MunkiInstallsItemsCreator</string>
            <key>Arguments</key>
            <dict>
                <key>faux_root</key>
                <string>%RECIPE_CACHE_DIR%/installer_payload/</string>
                <key>installs_item_paths</key>
                <array>
                    <string>/Applications/Stream Deck.app</string>
                </array>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiPkginfoMerger</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>Versioner</string>
            <key>Arguments</key>
            <dict>
                <key>input_plist_path</key>
                <string>%destination_path%Applications/Stream Deck.app/Contents/Info.plist</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiPkginfoMerger</string>
            <key>Arguments</key>
            <dict>
                <key>additional_pkginfo</key>
                <dict>
                    <key>version</key>
                    <string>%version%</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiPkginfoMerger</string>
        </dict>
        <dict>  
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%pathname%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PathDeleter</string>
            <key>Arguments</key>
            <dict>
                <key>path_list</key>
                <array>
                    <string>%RECIPE_CACHE_DIR%/installer_payload/</string>
                    <string>%RECIPE_CACHE_DIR%/installer_unpack/</string>
                </array>
            </dict>
        </dict>
    </array>
</dict>
</plist>
Stream Deck/Stream Deck.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads latest version of Stream Deck.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.Stream Deck</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>StreamDeck</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>URLDownloader</string>
            <key>Arguments</key>
            <dict>
                <key>filename</key>
                <string>%NAME%.pkg</string>
                <key>url</key>
                <string>https://gc-updates.elgato.com/mac/sd-update/final/download-website.php</string>
            </dict>
        </dict>
        <dict>   
            <key>Processor</key>   
            <string>CodeSignatureVerifier</string>   
            <key>Arguments</key>   
            <dict>   
                <key>input_path</key>   
                <string>%pathname%</string>
                <key>expected_authority_names</key>
                <array>
                    <string>Developer ID Installer: Corsair Memory, Inc. (Y93VXCB8Q5)</string>
                    <string>Developer ID Certification Authority</string>
                    <string>Apple Root CA</string>
                </array>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>FlatPkgUnpacker</string>
            <key>Arguments</key>
            <dict>
                <key>flat_pkg_path</key>
                <string>%pathname%</string>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/installer_unpack</string>
                <key>purge_destination</key>
                <true/>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PkgPayloadUnpacker</string>
            <key>Arguments</key>
            <dict>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/installer_payload/</string>
                <key>pkg_payload_path</key>
                <string>%RECIPE_CACHE_DIR%/installer_unpack/Stream_Deck.pkg/Payload</string>
                <key>purge_destination</key>
                <false/>
            </dict>
        </dict>
    </array>
</dict>
</plist>
Storyboarder/Storyboarder.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of Storyboarder and imports it into Munki.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.Storyboarder</string>
    <key>Input</key>
    <dict>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>NAME</key>
        <string>Storyboarder</string>
        <key>pkginfo</key>
        <dict>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>Storyboarder makes it easy to visualize a story as fast you can draw stick figures. Quickly draw to test if a story idea works. Create and show animatics to others. Express your story idea without making a movie.</string>
            <key>display_name</key>
            <string>Storyboarder</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>ParentRecipe</key>
    <string>com.github.amsysuk-recipes.download.Storyboarder</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%pathname%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>
SteelSeries/SteelSeriesEngine.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Comment</key>
    <string>Created with Recipe Robot v1.0.5 (https://github.com/homebysix/recipe-robot)</string>
    <key>Description</key>
    <string>Downloads the latest version of Steel Series Engine and imports it into Munki.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.Steel Series Engine</string>
      <key>Input</key>
    <dict>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>NAME</key>
        <string>SteelSeriesEngine</string>
        <key>pkginfo</key>
        <dict>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>category</key>
            <string>Productivity</string>
            <key>developer</key>
            <string>Steel Series</string>
            <key>description</key>
            <string>SteelSeries Engine 3 software for the best gaming experience on Windows and Mac.</string>
            <key>display_name</key>
            <string>Steel Series Engine</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.3.1</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.Steel Series Engine</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>MunkiPkginfoMerger</string>
            <key>Arguments</key>
            <dict>
                <key>additional_pkginfo</key>
                <dict>
                    <key>version</key>
                    <string>%version%</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%RECIPE_CACHE_DIR%/downloads/%NAME%.pkg</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
                <key>version_comparison_key</key>
                <string>CFBundleShortVersionString</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PathDeleter</string>
            <key>Arguments</key>
            <dict>
                <key>path_list</key>
                <array>
                    <string>%RECIPE_CACHE_DIR%/application_payload</string>
                    <string>%RECIPE_CACHE_DIR%/unpack</string>
                </array>
            </dict>
        </dict>
    </array>
</dict>
</plist>
SteelSeries/SteelSeriesEngine.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of Steel Series Engine.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.Steel Series Engine</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>Steel Series Engine</string>
        <key>USER_AGENT</key>
        <string>Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36</string>
    </dict>
    <key>MinimumVersion</key>
    <string>1.0.0</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>DeprecationWarning</string>
            <key>Arguments</key>
            <dict>
                <key>warning_message</key>
                <string>Steel Series Engine has been replaced with Steel Series GG, and Steel Series GG recipes can be found at: https://github.com/autopkg/dataJAR-recipes/tree/master/SteelSeries%20GG.</string>
            </dict>
        </dict>
        <dict>   
            <key>Processor</key>   
            <string>StopProcessingIf</string>   
            <key>Arguments</key>   
            <dict>   
                <key>predicate</key>   
                <string>TRUEPREDICATE</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>DeprecationWarning</string>
            <key>Arguments</key>
            <dict>
                <key>warning_message</key>
                <string>As per: https://kiwiforgmail.zendesk.com/hc/en-us/articles/360050366172-Kiwi-for-Gmail-and-Kiwi-for-G-Suite-3-0-Changes-from-2-0, Kiwi for G Suite is now Kiwi for Gmail.</string>
            </dict>
        </dict>
        <dict>   
            <key>Processor</key>   
            <string>StopProcessingIf</string>   
            <key>Arguments</key>   
            <dict>   
                <key>predicate</key>   
                <string>TRUEPREDICATE</string>
            </dict>
        </dict>
        <dict>
            <key>Arguments</key>
            <dict>
                <key>url</key>
                <string>https://steelseries.com/engine/latest/darwin</string>
                <key>filename</key>
                <string>%NAME%.pkg</string>
                <key>request_headers</key>
                <dict>
                    <key>user-agent</key>
                    <string>%USER_AGENT%</string>
                </dict>
            </dict>
            <key>Processor</key>
            <string>URLDownloader</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
            <key>Arguments</key>
            <dict>
                <key>input_path</key>
                <string>%RECIPE_CACHE_DIR%/downloads/%NAME%.pkg</string>
                <key>expected_authority_names</key>
                <array>
                    <string>Developer ID Installer: SteelSeries (6WGL6CHFH2)</string>
                    <string>Developer ID Certification Authority</string>
                    <string>Apple Root CA</string>
                </array>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>FlatPkgUnpacker</string>
            <key>Arguments</key>
            <dict>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/unpack</string>
                <key>flat_pkg_path</key>
                <string>%RECIPE_CACHE_DIR%/downloads/%NAME%.pkg</string>
                <key>purge_destination</key>
                <string>true</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PkgPayloadUnpacker</string>
            <key>Arguments</key>
            <dict>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/application_payload</string>
                <key>pkg_payload_path</key>
                <string>%RECIPE_CACHE_DIR%/unpack/SteelSeriesEngine3.pkg/Payload</string>
                <key>purge_destination</key>
                <string>true</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>Versioner</string>
            <key>Arguments</key>
            <dict>
                <key>input_plist_path</key>
                <string>%RECIPE_CACHE_DIR%/application_payload/SteelSeries Engine 3.app/Contents/Info.plist</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>

SteelSeries GG/SteelSeries GG.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of Steel Series GG and imports it into Munki.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.Steel Series GG</string>
    <key>Input</key>
    <dict>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>NAME</key>
        <string>SteelSeriesGG</string>
        <key>pkginfo</key>
        <dict>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>category</key>
            <string>Productivity</string>
            <key>developer</key>
            <string>Steel Series</string>
            <key>description</key>
            <string>SteelSeries GG helps create better connections with your gear, your people and your game.</string>
            <key>display_name</key>
            <string>Steel Series GG</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.3.1</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.Steel Series GG</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>FlatPkgUnpacker</string>
            <key>Arguments</key>
            <dict>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/unpack</string>
                <key>flat_pkg_path</key>
                <string>%pathname%</string>
                <key>purge_destination</key>
                <true/>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PkgPayloadUnpacker</string>
            <key>Arguments</key>
            <dict>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/Applications/Steel Series GG/</string>
                <key>pkg_payload_path</key>
                <string>%RECIPE_CACHE_DIR%/unpack/SteelSeriesGG.pkg/Payload</string>
                <key>purge_destination</key>
                <string>true</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiInstallsItemsCreator</string>
            <key>Arguments</key>
            <dict>
                <key>faux_root</key>
                <string>%RECIPE_CACHE_DIR%</string>
                <key>installs_item_paths</key>
                <array>
                    <string>/Applications/Steel Series GG/SteelSeries GG.app</string>
                </array>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiPkginfoMerger</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PlistReader</string>
            <key>Arguments</key>
            <dict>
                <key>info_path</key>
                <string>%RECIPE_CACHE_DIR%/Applications/Steel Series GG/SteelSeries GG.app/Contents/Info.plist</string>
                <key>plist_keys</key>
                <dict>
                    <key>CFBundleShortVersionString</key>
                    <string>version</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiPkginfoMerger</string>
            <key>Arguments</key>
            <dict>
                <key>additional_pkginfo</key>
                <dict>
                    <key>version</key>
                    <string>%version%</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PkgCopier</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%RECIPE_CACHE_DIR%/SteelSeries-GG-%version%.pkg</string>
                <key>source_pkg</key>
                <string>%pathname%</string>
            </dict>
            <key>Comment</key>
            <string>As found in: https://github.com/autopkg/dataJAR-recipes/issues/163, if you change pkgname to SteelSeriesGG then the preinstall kills the installer process.

Hence setting the munkiimport_pkgname to SteelSeries-GG-%version%</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%pkg_path%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PathDeleter</string>
            <key>Arguments</key>
            <dict>
                <key>path_list</key>
                <array>
                    <string>%RECIPE_CACHE_DIR%/Applications</string>
                    <string>%RECIPE_CACHE_DIR%/unpack</string>
                </array>
            </dict>
        </dict>
    </array>
</dict>
</plist>
SteelSeries GG/SteelSeries GG.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of Steel Series GG.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.Steel Series GG</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>SteelSeriesGG</string>
    </dict>
    <key>MinimumVersion</key>
    <string>1.0.0</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>URLDownloader</string>
            <key>Arguments</key>
            <dict>
                <key>url</key>
                <string>https://steelseries.com/engine/latest/darwin</string>
                <key>filename</key>
                <string>%NAME%.pkg</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
            <key>Arguments</key>
            <dict>
                <key>input_path</key>
                <string>%RECIPE_CACHE_DIR%/downloads/%NAME%.pkg</string>
                <key>expected_authority_names</key>
                <array>
                    <string>Developer ID Installer: SteelSeries (6WGL6CHFH2)</string>
                    <string>Developer ID Certification Authority</string>
                    <string>Apple Root CA</string>
                </array>
            </dict>
        </dict>
    </array>
</dict>
</plist>
Steam/Steam.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of Steam and imports it into Munki.
    
NOTE: This simply installs Steam.app to /Applications, upon first launch the Steam update process will download about 180 MB of assets to complete the installation. 
These support files are downloaded to ~/Library/Application Support/Steam for the current user opening the app. These assets must be downloaded for each user on the system.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.Steam</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>Steam</string>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>pkginfo</key>
        <dict>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>Steam is the ultimate destination for playing, discussing, and creating games.</string>
            <key>developer</key>
            <string>Valve Software</string>
            <key>display_name</key>
            <string>Steam</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
            <key>unattended_uninstall</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>ParentRecipe</key>
    <string>com.github.haircut.download.Steam</string>
    <key>Process</key>
    <array>
        <dict>  
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%pathname%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>
Spyder/Spyder.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of Spyder and imports it into Munki.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.Spyder</string>
    <key>Input</key>
    <dict>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>NAME</key>
        <string>Spyder</string>
        <key>pkginfo</key>
        <dict>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>Spyder is a powerful scientific environment written in Python, for Python, and designed by and for scientists, engineers and data analysts. It offers a unique combination of the advanced editing, analysis, debugging, and profiling functionality of a comprehensive development tool with the data exploration, interactive execution, deep inspection, and beautiful visualization capabilities of a scientific package.</string>
            <key>developer</key>
            <string>spyder-ide</string>
            <key>display_name</key>
            <string>Spyder</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.Spyder</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%pathname%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>
Spyder/Spyder.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of Spyder.
Set PRERELEASE to a non-empty string to download prereleases, either
via Input in an override or via the -k option,
i.e.: `-k PRERELEASE=yes`</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.Spyder</string>
    <key>Input</key>
    <dict>
        <key>PRERELEASE</key>
        <string></string>
        <key>NAME</key>
        <string>Spyder</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>GitHubReleasesInfoProvider</string>
            <key>Arguments</key>
            <dict>
                <key>asset_regex</key>
                <string>Spyder.dmg</string>
                <key>github_repo</key>
                <string>spyder-ide/spyder</string>
                <key>include_prereleases</key>
                <string>%PRERELEASE%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>URLDownloader</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
    </array>
</dict>
</plist>
Spyder Lite/Spyder Lite.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of Spyder Lite and imports it into Munki.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.Spyder Lite</string>
    <key>Input</key>
    <dict>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>NAME</key>
        <string>SpyderLite</string>
        <key>pkginfo</key>
        <dict>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>Spyder Lite, is Spyder without optional dependencies (Numpy, SciPy, Pandas, Matplotlib, Cython and Sympy for example).</string>
            <key>developer</key>
            <string>spyder-ide</string>
            <key>display_name</key>
            <string>Spyder Lite</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.Spyder Lite</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%pathname%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>
Spyder Lite/Spyder Lite.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of Spyder Lite.
Set PRERELEASE to a non-empty string to download prereleases, either
via Input in an override or via the -k option,
i.e.: `-k PRERELEASE=yes`</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.Spyder Lite</string>
    <key>Input</key>
    <dict>
        <key>PRERELEASE</key>
        <string></string>
        <key>NAME</key>
        <string>SpyderLite</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>GitHubReleasesInfoProvider</string>
            <key>Arguments</key>
            <dict>
                <key>asset_regex</key>
                <string>Spyder-Lite.dmg</string>
                <key>github_repo</key>
                <string>spyder-ide/spyder</string>
                <key>include_prereleases</key>
                <string>%PRERELEASE%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>URLDownloader</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
    </array>
</dict>
</plist>
Splashtop SOS/Splashtop SOS.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of Splashtop SOS and imports into Munki</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.Splashtop SOS</string>
    <key>Input</key>
    <dict>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>NAME</key>
        <string>Splashtop SOS</string>
        <key>pkginfo</key>
        <dict>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>Download and run the SOS app to give your IT Admin remote access to this computer.</string>
            <key>developer</key>
            <string>Splashtop Inc</string>
            <key>display_name</key>
            <string>Splashtop SOS</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
            <key>unattended_uninstall</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.5.0</string>
    <key>ParentRecipe</key>
    <string>com.github.nstrauss.download.SplashtopSOS</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%pathname%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
        </dict>
    </array>
</dict>
</plist>

Spitfire Audio/Spitfire Audio.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest release of Spitfire Audio and imports into Munki</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.Spitfire Audio</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>SpitfireAudio</string>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>pkginfo</key>
        <dict>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>This intuitive desktop application enables you to install and update your Spitfire products with ease.</string>
            <key>display_name</key>
            <string>Spitfire Audio</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>postinstall_script</key>
            <string>#!/bin/bash
#
# Copyright (c) 2020, dataJAR Ltd.  All rights reserved.
#

helperName="com.spitfireaudio.LibraryManagerHelper"
daemonPath="/Library/LaunchDaemons/${helperName}.plist"

if [ ! -f /Library/PrivilegedHelperTools/"${helperName}" ]
then
    /bin/echo "Copying Privileged Helper from /Applications/Spitfire Audio.app/Contents/Library/LaunchServices/${helperName} to /Library/PrivilegedHelperTools/..."
    /bin/cp '/Applications/Spitfire Audio.app/Contents/Library/LaunchServices/com.spitfireaudio.LibraryManagerHelper' /Library/PrivilegedHelperTools/
fi

if [ ! -f "${daemonPath}" ]
then
    /bin/echo "LaunchDaemon missing, writing out..."
    /usr/bin/defaults write "${daemonPath}" KeepAlive -bool true
    /usr/bin/defaults write "${daemonPath}" Label com.spitfireaudio.LibraryManagerHelper
    /usr/bin/defaults write "${daemonPath}" MachServices -dict-add com.spitfireaudio.LibraryManagerHelper -bool true
    /usr/bin/defaults write "${daemonPath}" Program /Library/PrivilegedHelperTools/com.spitfireaudio.LibraryManagerHelper
    /usr/bin/defaults write "${daemonPath}" ProgramArguments -array-add /Library/PrivilegedHelperTools/com.spitfireaudio.LibraryManagerHelper
    /bin/echo "Setting LaunchDaemon permissions..."
    /usr/sbin/chown root:wheel "${daemonPath}"
    /bin/chmod 755 "${daemonPath}"
    /bin/echo "Loading LaunchDaemon..."
    /usr/sbin/chown root:wheel "${daemonPath}"
    /bin/chmod 755 "${daemonPath}"
    /bin/launchctl load -w "${daemonPath}"
fi</string>
            <key>unattended_install</key>
            <true/>
            <key>unattended_uninstall</key>
            <true/>
            <key>uninstall_method</key>
            <string>uninstall_script</string>
            <key>uninstall_script</key>
            <string>#!/bin/bash
#
# Copyright (c) 2020, dataJAR Ltd.  All rights reserved.
#

helperName="com.spitfireaudio.LibraryManagerHelper"
daemonPath="/Library/LaunchDaemons/${helperName}.plist"
appPath="/Applications/Spitfire Audio.app"

if [ -f /Library/PrivilegedHelperTools/"${helperName}" ]
then
    /bin/echo "Deleting Privileged Helper ${helperName} from ${helperName} to /Library/PrivilegedHelperTools/..."
    /bin/rm -rf /Library/PrivilegedHelperTools/"${helperName}"
fi

if [ -f "${daemonPath}" ]
then
    /bin/echo "Unloading LaunchDaemon..."
    /bin/launchctl unload -w "${daemonPath}"
    /bin/echo "Deleting LaunchDaemon..."
    //bin/rm "${daemonPath}"
fi

if [ -d "${appPath}" ]
then
    /bin/echo "Deleting ${appPath}..."
    /bin/rm -rf "${appPath}"
fi</string>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.4.1</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.Spitfire Audio</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%pathname%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>

Spitfire Audio/Spitfire Audio.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest release of Spitfire Audio.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.Spitfire Audio</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>SpitfireAudio</string>
        <key>DOWNLOAD_URL</key>
        <string>https://www.spitfireaudio.com/library-manager/download/mac/</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.4.1</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>URLDownloader</string>
            <key>Arguments</key>
            <dict>
                <key>filename</key>
                <string>%NAME%.dmg</string>
                <key>url</key>
                <string>%DOWNLOAD_URL%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
            <key>Arguments</key>
            <dict>
                <key>input_path</key>
                <string>%pathname%/Spitfire Audio.app</string>
                <key>requirement</key>
                <string>anchor apple generic and identifier "com.spitfireaudio.spitfireaudio" 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] = ES3953U57U)</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>

Sphere2/Sphere2.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of Sphere2 and imports into Munki</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.Sphere2</string>
    <key>Input</key>
    <dict>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>NAME</key>
        <string>Sphere2</string>
        <key>pkginfo</key>
        <dict>
            <key>RestartAction</key>
            <string>RequireRestart</string>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>Provides teachers with a range of interactive software to realize the full potential of their AVer visualizers.</string>
            <key>developer</key>
            <string>AVer</string>
            <key>display_name</key>
            <string>Sphere2</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true></true>
            <key>unattended_uninstall</key>
            <true></true>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.5.0</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.Sphere2</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>Copier</string>
            <key>Arguments</key>
            <dict>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/</string>
                <key>source_path</key>
                <string>%RECIPE_CACHE_DIR%/unzip/*.pkg</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>FileFinder</string>
            <key>Arguments</key>
            <dict>
                <key>pattern</key>
                <string>%RECIPE_CACHE_DIR%/*.pkg</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%found_filename%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PathDeleter</string>
            <key>Arguments</key>
            <dict>
                <key>path_list</key>
                <array>
                    <string>%RECIPE_CACHE_DIR%/unzip</string>
                </array>
            </dict>
        </dict>
    </array>
</dict>
</plist>
Sphere2/Sphere2.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
    <dict>
        <key>Description</key>
        <string>Downloads the latest version of Sphere2</string>
        <key>Identifier</key>
        <string>com.github.dataJAR-recipes.download.Sphere2</string>
        <key>Input</key>
        <dict>
            <key>NAME</key>
            <string>Sphere2</string>
        </dict>
        <key>MinimumVersion</key>
        <string>0.5.0</string>
        <key>Process</key>
        <array>
			<dict>
				<key>Processor</key>
				<string>DeprecationWarning</string>
				<key>Arguments</key>
				<dict>
					<key>warning_message</key>
					<string>These recipes have been deprecated in favour of: https://github.com/autopkg/dataJAR-recipes/tree/master/A%2B%20Suite</string>
				 </dict>
			</dict>
			<dict>   
				<key>Processor</key>   
				<string>StopProcessingIf</string>   
				<key>Arguments</key>   
				<dict>   
					<key>predicate</key>   
					<string>TRUEPREDICATE</string>
				</dict>
			</dict>
            <dict>
                <key>Processor</key>
                <string>URLTextSearcher</string>
                <key>Arguments</key>
                <dict>
                    <key>re_pattern</key>
                    <string>https:\/\/presentation\.aver\.com\/DownloadFile\.aspx\?n=\S*&amp;t=ServiceDownload</string>
                    <key>result_output_var_name</key>
                    <string>url</string>
                    <key>url</key>
                    <string>https://presentation.aver.com/model/sphere2</string>
                </dict>
            </dict>
            <dict>
                <key>Processor</key>
                <string>URLDownloader</string>
                <key>Arguments</key>
                <dict>
                    <key>filename</key>
                    <string>%NAME%.zip</string>
                </dict>
            </dict>
            <dict>
                <key>Processor</key>
                <string>EndOfCheckPhase</string>
            </dict>
            <dict>
                <key>Processor</key>
                <string>Unarchiver</string>
                <key>Arguments</key>
                <dict>
                    <key>archive_path</key>
                    <string>%pathname%</string>
                    <key>destination_path</key>
                    <string>%RECIPE_CACHE_DIR%/unzip</string>
                    <key>purge_destination</key>
                    <true></true>
                </dict>
            </dict>
            <dict>
                <key>Processor</key>
                <string>CodeSignatureVerifier</string>
                <key>Arguments</key>
                <dict>
                    <key>input_path</key>
                    <string>%RECIPE_CACHE_DIR%/unzip/*.pkg</string>
                    <key>expected_authority_names</key>
                    <array>
                        <string>Developer ID Installer: AVer Information Inc. (B6T3WCD59Q)</string>
                        <string>Developer ID Certification Authority</string>
                        <string>Apple Root CA</string>
                    </array>
                </dict>
            </dict>
        </array>
    </dict>
</plist>
Soundly/Soundly.png METASEP

Soundly/Soundly.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of Soundly and imports it into Munki.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.Soundly</string>
      <key>Input</key>
    <dict>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>NAME</key>
        <string>Soundly</string>
        <key>pkginfo</key>
        <dict>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
			<key>developer</key>
			<string>Sahara</string>
            <key>description</key>
            <string>Find your perfect sound in the massive Soundly cloud library, use our powerful search engine on your local files, and Drag and Drop sounds to your favorite tools!
            </string>
            <key>display_name</key>
            <string>Soundly</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.3.1</string>
    <key>ParentRecipe</key>
	<string>com.github.dataJAR-recipes.download.Soundly</string>
    <key>Process</key>
	<array>
		<dict>
			<key>Arguments</key>
			<dict>
				<key>pkg_path</key>
				<string>%RECIPE_CACHE_DIR%/downloads/%NAME%.dmg</string>
				<key>repo_subdirectory</key>
				<string>%MUNKI_REPO_SUBDIR%</string>
				<key>version_comparison_key</key>
				<string>CFBundleShortVersionString</string>
			</dict>
			<key>Processor</key>
			<string>MunkiImporter</string>
		</dict>
    </array>
</dict>
</plist>
Soundly/Soundly.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of Soundly.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.Soundly</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>Soundly</string>
        <key>DOWNLOAD_URL</key>
        <string>https://getsoundly.com</string>
    </dict>
    <key>MinimumVersion</key>
    <string>1.0.0</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>URLTextSearcher</string>
            <key>Arguments</key>
            <dict>
                <key>url</key>
                <string>%DOWNLOAD_URL%</string>
                <key>re_pattern</key>
                <string>(https://storage.googleapis.com/soundlyapp/Soundly.dmg)</string>
                <key>result_output_var_name</key>
                <string>url</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>URLDownloader</string>
            <key>Arguments</key>
            <dict>
                <key>filename</key>
                <string>%NAME%.dmg</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
            <key>Arguments</key>
            <dict>
                <key>input_path</key>
                <string>%RECIPE_CACHE_DIR%/downloads/%NAME%.dmg/Soundly.app</string>
                <key>requirement</key>
                <string>identifier "com.soundly.Soundly" and anchor apple generic and 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] = "67Y6N7VTDG"</string>
                <key>strict_verification</key>
                <true />
            </dict>
        </dict>
    </array>
</dict>
</plist>
Sound Siphon 3/Sound Siphon 3.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of Sound Siphon 3 and imports it into Munki.

Installed at the login window to stop GUI prompts.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.Sound Siphon 3</string>
    <key>Input</key>
    <dict>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>NAME</key>
        <string>SoundSiphon3</string>
        <key>pkginfo</key>
        <dict>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>Sound Siphon makes it easy to capture your Mac’s audio. Use it to create virtual input audio devices that send audio from one app to another. Or, record right in the Sound Siphon app.</string>
            <key>category</key>
            <string>Development</string>
            <key>developer</key>
            <string>Static Z Software</string>
            <key>display_name</key>
            <string>Sound Siphon 3</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>postinstall_script</key>
            <string>#!/bin/bash
#
# Installs the plugins.pkg
#

# PKG name to look for
pkgPath="/Applications/Sound Siphon.app/Contents/Frameworks/SoundSiphonPublic.framework/Versions/A/Resources/SoundSiphonPlugInInstaller.pkg"

if [ -e "${pkgPath}" ]
then
    /bin/echo "Found ${pkgPath}, installing..."
    /usr/sbin/installer -pkg "${pkgPath}" -target /
fi</string>
            <key>RestartAction</key>
            <string>RequireLogout</string>
            <key>unattended_uninstall</key>
            <true/>
            <key>uninstall_method</key>
            <string>uninstall_script</string>
            <key>uninstall_script</key>
            <string>#!/bin/bash
#
# Call uninstall script from .app bundle, if found
#

uninstallScript="/Applications/Sound Siphon.app/Contents/Resources/uninstall_soundsiphon"

if [ -e "${uninstallScript}" ]
then
    /bin/echo "Found ${uninstallScript}, installing..."
    /bin/sh "${uninstallScript}"
fi</string>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>1.0.0</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.Sound Siphon 3</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%pathname%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>
Sound Siphon 3/Sound Siphon 3.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of Sound Siphon 3.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.Sound Siphon 3</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>SoundSiphon3</string>
    </dict>
    <key>MinimumVersion</key>
    <string>1.0.0</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>SparkleUpdateInfoProvider</string>
            <key>Arguments</key>
            <dict>
                <key>appcast_url</key>
                <string>http://staticz.net/updates/soundsiphon3.rss</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>URLDownloader</string>
            <key>Arguments</key>
            <dict>
            	<key>filename</key>
            	<string>%NAME%.dmg</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
            <key>Arguments</key>
            <dict>
                <key>input_path</key>
                <string>%pathname%/Sound Siphon.app</string>
                <key>requirement</key>
                <string>anchor apple generic and identifier "com.staticz.SoundSiphon3" 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] = LDG5AR2ES5)</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>
Sound Particles/Sound Particles.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>Description</key>
	<string>Downloads the latest version of the Sound Particles and imports it into Munki.</string>
	<key>Identifier</key>
	<string>com.github.dataJAR-recipes.munki.Sound Particles</string>
	<key>Input</key>
	<dict>
		<key>MUNKI_REPO_SUBDIR</key>
		<string>apps/%NAME%</string>
		<key>NAME</key>
		<string>SoundParticles</string>
		<key>pkginfo</key>
		<dict>
			<key>catalogs</key>
			<array>
				<string>testing</string>
			</array>
			<key>description</key>
			<string>Sound Particles is an immersive audio software capable of generating thousands (even millions) of sounds in a virtual 3D audio world. Creating highly complex sounds has never been this quick.</string>
			<key>developer</key>
			<string>Sound Particles</string>
			<key>display_name</key>
			<string>Sound Particles</string>
			<key>name</key>
			<string>%NAME%</string>
			<key>unattended_install</key>
			<true/>
			<key>unattended_uninstall</key>
			<true/>
            <key>uninstall_method</key>
            <string>uninstall_script</string>
            <key>uninstall_script</key>
            <string>#!/bin/bash
#
# Adapted from the supplied Uninstaller
#

/bin/echo "Uninstalling Sound Particles."

/bin/rm -rf "/Library/Application Support/Sound Particles"
/bin/rm -rf "/Applications/Sound Particles.app"

/bin/echo "Sound Particles uninstalled successfully."</string>
		</dict>
	</dict>
	<key>MinimumVersion</key>
	<string>0.6.1</string>
	<key>ParentRecipe</key>
	<string>com.github.dataJAR-recipes.download.Sound Particles</string>
	<key>Process</key>
	<array>
		<dict>
			<key>Processor</key>
			<string>MunkiImporter</string>
			<key>Arguments</key>
			<dict>
				<key>pkg_path</key>
				<string>%pathname%</string>
				<key>repo_subdirectory</key>
				<string>%MUNKI_REPO_SUBDIR%</string>
			</dict>
		</dict>
	</array>
</dict>
</plist>
Sound Particles/Sound Particles.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>Description</key>
	<string>Downloads the latest version of Sound Particles.</string>
	<key>Identifier</key>
	<string>com.github.dataJAR-recipes.download.Sound Particles</string>
	<key>Input</key>
	<dict>
		<key>NAME</key>
		<string>SoundParticlesr</string>
	</dict>
	<key>MinimumVersion</key>
	<string>0.6.1</string>
	<key>Process</key>
	<array>
		<dict>
			<key>Processor</key>
			<string>URLTextSearcher</string>
			<key>Arguments</key>
			<dict>
				<key>re_pattern</key>
				<string>&lt;version&gt;(.*?)&lt;/version&gt;</string>
				<key>url</key>
				<string>https://www.soundparticles.com/version/sound_particles_sp.xml</string>
			</dict>
		</dict>
		<dict>
			<key>Processor</key>
			<string>URLDownloader</string>
			<key>Arguments</key>
			<dict>
				<key>url</key>
				<string>https://s3-us-west-1.amazonaws.com/releases.soundparticles.com/SoundParticles.Mac.%match%.dmg</string>
				<key>result_output_var_name</key>
				<string>url</string>
			</dict>
		</dict>
		<dict>
			<key>Processor</key>
			<string>EndOfCheckPhase</string>
		</dict>
        <dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
            <key>Arguments</key>
            <dict>
                <key>input_path</key>
                <string>%pathname%/Sound Particles.app</string>
                <key>requirement</key>
                <string>anchor apple generic and identifier "com.soundparticles.soundparticles" 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] = "3Z5W5J93JM")</string>
            </dict>
        </dict>
	</array>
</dict>
</plist>
Sony/SxS Driver.pkg.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of the Sony SxS Driver and extracts the pkg.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.pkg.SonySxSDriver</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>SxSDriver</string>
    </dict>
	<key>MinimumVersion</key>
	<string>0.6.1</string>
	<key>ParentRecipe</key>
	<string>com.github.dataJAR-recipes.download.SonySxSDriver</string>
    <key>Process</key>
    <array>
        <dict>
			<key>Arguments</key>
			<dict>
				<key>destination_path</key>
				<string>%RECIPE_CACHE_DIR%/installer_unpack/</string>
				<key>flat_pkg_path</key>
				<string>%pathname%/*.pkg</string>
				<key>purge_destination</key>
				<string>true</string>
			</dict>
			<key>Processor</key>
			<string>FlatPkgUnpacker</string>
		</dict>
		<dict>
			<key>Arguments</key>
			<dict>
				<key>destination_path</key>
				<string>%RECIPE_CACHE_DIR%/installer_payload/</string>
				<key>pkg_payload_path</key>
				<string>%RECIPE_CACHE_DIR%/installer_unpack/sxsMemoryCard.pkg/Payload</string>
				<key>purge_destination</key>
				<string>true</string>
			</dict>
			<key>Processor</key>
			<string>PkgPayloadUnpacker</string>
		</dict>
		<dict>
			<key>Arguments</key>
			<dict>
				<key>input_plist_path</key>
				<string>%RECIPE_CACHE_DIR%/installer_payload/SxS Memory Card.kext/Contents/Info.plist</string>
				<key>plist_version_key</key>
				<string>CFBundleShortVersionString</string>
			</dict>
			<key>Processor</key>
			<string>Versioner</string>
		</dict>       
        <dict>
            <key>Arguments</key>
            <dict>
                <key>source_pkg</key>
                <string>%pathname%/*.pkg</string>
            	<key>pkg_path</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%-%version%.pkg</string>
            </dict>
            <key>Processor</key>
            <string>PkgCopier</string>
        </dict>
        <dict>
            <key>Arguments</key>
            <dict>
                <key>path_list</key>
                <array>
                <string>%RECIPE_CACHE_DIR%/installer_payload/</string>
                <string>%RECIPE_CACHE_DIR%/installer_unpack/</string>                              
                </array>
            </dict>
            <key>Processor</key>
            <string>PathDeleter</string>
        </dict>
    </array>
</dict>
</plist>
Sony/SxS Driver.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>Description</key>
	<string>Downloads the latest version of SxS Driver and imports it into Munki.</string>
	<key>Identifier</key>
	<string>com.github.dataJAR-recipes.munki.SonySxSDriver</string>
	<key>Input</key>
	<dict>
		<key>MUNKI_REPO_SUBDIR</key>
		<string>apps/%NAME%</string>
		<key>NAME</key>
		<string>SxSDriver</string>
		<key>pkginfo</key>
		<dict>
			<key>catalogs</key>
			<array>
				<string>testing</string>
			</array>
			<key>description</key>
			<string>SxS driver for macOS supports Sonnet SF3 Series SxS Pro Card Reader, Sonnet Echo ExpressCard Thunderbolt Adapter, and Sonnet Qio E3.</string>
			<key>developer</key>
			<string>Sony</string>
			<key>display_name</key>
			<string>SxS Driver</string>
			<key>name</key>
			<string>%NAME%</string>
			<key>unattended_install</key>
			<true/>
			<key>unattended_uninstall</key>
			<true/>
		</dict>
	</dict>
	<key>MinimumVersion</key>
	<string>1.0.0</string>
	<key>ParentRecipe</key>
	<string>com.github.dataJAR-recipes.pkg.SonySxSDriver</string>
	<key>Process</key>
	<array>
		<dict>
			<key>Arguments</key>
			<dict>
				<key>pkg_path</key>
				<string>%pkg_path%</string>
				<key>repo_subdirectory</key>
				<string>%MUNKI_REPO_SUBDIR%</string>
			</dict>
			<key>Processor</key>
			<string>MunkiImporter</string>
		</dict>
	</array>
</dict>
</plist>

Sony/SxS Driver.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
   <dict>
      <key>Description</key>
      <string>Downloads the latest Sony SxS driver disk image.</string>
      <key>Identifier</key>
      <string>com.github.dataJAR-recipes.download.SonySxSDriver</string>
      <key>MinimumVersion</key>
      <string>1.0.0</string>
      <key>Input</key>
      <dict>
         <key>NAME</key>
         <string>SxSDriver</string>
         <key>DEVELOPER</key>
         <string>Sony</string>
         <key>PRODUCTID</key>
         <string>11297.0</string>
         <key>DOWNLOADURL</key>
         <string>https://www.sonycreativesoftware.com/download/link?id=%PRODUCTID%</string>
      </dict>
      <key>Process</key>
      <array>
         <dict>
            <key>Processor</key>
            <string>URLDownloader</string>
            <key>Arguments</key>
            <dict>
               <key>url</key>
               <string>%DOWNLOADURL%</string>
               <key>filename</key>
               <string>%DEVELOPER%-%NAME%.dmg</string>
            </dict>
         </dict>
         <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
         </dict>
         <dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
            <key>Arguments</key>
            <dict>
               <key>input_path</key>
               <string>%pathname%/*.pkg</string>
               <key>expected_authority_names</key>
               <array>
                  <string>Developer ID Installer: Sony Storage Media Solutions Corporation (BFWBPTF4M3)</string>
                  <string>Developer ID Certification Authority</string>
                  <string>Apple Root CA</string>
               </array>
            </dict>
         </dict>
      </array>
   </dict>
</plist>
Sonos S2/Sonos S2.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads latest version of Sonos and imports it into a Munki repo.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.Sonos S2</string>
    <key>Input</key>
    <dict>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps</string>
        <key>NAME</key>
        <string>Sonos S2</string>
        <key>pkginfo</key>
        <dict>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>Take total control of your home listening experience with the Sonos app. Play, control and explore your music, your way.</string>
            <key>display_name</key>
            <string>Sonos S2</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.3.1</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.Sonos S2</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%pathname%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
        </dict>
    </array>
</dict>
</plist>

Sonos S2/Sonos S2.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the current release version of Sonos S2.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.Sonos S2</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>Sonos S2</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.3.1</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Arguments</key>
            <dict>
                <key>filename</key>
                <string>SonosDesktopController.dmg</string>
                <key>url</key>
                <string>https://www.sonos.com/redir/controller_software_mac2</string>
            </dict>
            <key>Processor</key>
            <string>URLDownloader</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
        <dict>
            <key>Arguments</key>
            <dict>
                <key>input_path</key>
                <string>%pathname%/Sonos*.app</string>
                <key>requirement</key>
                <string>identifier "com.sonos.macController" and anchor apple generic</string>
            </dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
        </dict>
    </array>
</dict>
</plist>

SonoBus/SonoBus.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of SonoBus and imports it into Munki.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.SonoBus</string>
    <key>Input</key>
    <dict>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>NAME</key>
        <string>SonoBus</string>
        <key>pkginfo</key>
        <dict>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>SonoBus is an easy to use application for streaming high-quality, low-latency peer-to-peer audio between devices over the internet or a local network.</string>
            <key>developer</key>
            <string>Sonosaurus LLC</string>
            <key>display_name</key>
            <string>SonoBus</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>1.0.0</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.SonoBus</string>
    <key>Process</key>
    <array>
    <dict>
        <key>Arguments</key>
        <dict>
            <key>destination_path</key>
            <string>%RECIPE_CACHE_DIR%/unpack</string>
            <key>flat_pkg_path</key>
            <string>%pathname%/SonoBus Installer.pkg</string>
            <key>purge_destination</key>
            <true/>
        </dict>
            <key>Processor</key>
            <string>FlatPkgUnpacker</string>
        </dict>
        <dict>
            <key>Arguments</key>
            <dict>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/payload</string>
                <key>pkg_payload_path</key>
                <string>%RECIPE_CACHE_DIR%/unpack/Application.pkg/Payload</string>
                <key>purge_destination</key>
                <true/>
            </dict>
            <key>Processor</key>
            <string>PkgPayloadUnpacker</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiInstallsItemsCreator</string>
            <key>Arguments</key>
            <dict>
                <key>faux_root</key>
                <string>%RECIPE_CACHE_DIR%/payload</string>
                <key>installs_item_paths</key>
                <array>
                    <string>/Applications/SonoBus.app</string>
                </array>
                <key>version_comparison_key</key>
                <string>CFBundleShortVersionString</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiPkginfoMerger</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%pathname%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PathDeleter</string>
            <key>Arguments</key>
            <dict>
                <key>path_list</key>
                <array>
                    <string>%RECIPE_CACHE_DIR%/unpack</string>
                </array>
            </dict>
        </dict>
    </array>
</dict>
</plist>

SonoBus/SonoBus.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of SonoBus</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.SonoBus</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>SonoBus</string>
    </dict>
    <key>MinimumVersion</key>
    <string>1.0.0</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Arguments</key>
            <dict>
                <key>asset_regex</key>
                <string>.*\.dmg$</string>
                <key>github_repo</key>
                <string>sonosaurus/sonobus</string>
            </dict>
            <key>Processor</key>
            <string>GitHubReleasesInfoProvider</string>
        </dict>
        <dict>
            <key>Arguments</key>
            <dict>
                <key>filename</key>
                <string>%NAME%-%version%.dmg</string>
            </dict>
            <key>Processor</key>
            <string>URLDownloader</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
        <dict>
            <key>Arguments</key>
            <dict>
                <key>expected_authority_names</key>
                <array>
                    <string>Developer ID Installer: Sonosaurus LLC (XCS435894D)</string>
                    <string>Developer ID Certification Authority</string>
                    <string>Apple Root CA</string>
                </array>
                <key>input_path</key>
                <string>%pathname%/SonoBus Installer.pkg</string>
            </dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
        </dict>
    </array>
</dict>
</plist>

Smultron 12/Smultron 12.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads latest version of Smultron 12 and imports into Munki.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.Smultron 12</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>Smultron12</string>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>pkginfo</key>
        <dict>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>Smultron is powerful and confident without being complicated. Its elegance and simplicity helps everyone being creative and to write and edit all sorts of texts.</string>
            <key>display_name</key>
            <string>Smultron 12</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
            <key>unattended_install</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.2.0</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.Smultron 12</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>DmgCreator</string>
            <key>Arguments</key>
            <dict>
                <key>dmg_root</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%</string>
                <key>dmg_path</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%.dmg</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%dmg_path%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PathDeleter</string>
            <key>Arguments</key>
            <dict>
                <key>path_list</key>
                <array>
                    <string>%RECIPE_CACHE_DIR%/%NAME%/</string>                   
                </array>
            </dict>
        </dict>
    </array>
</dict>
</plist>
Smultron 12/Smultron 12.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads latest version of Smultron 12</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.Smultron 12</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>Smultron12</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.2.0</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>URLDownloader</string>
            <key>Arguments</key>
            <dict>
                <key>url</key>
                <string>https://www.peterborgapps.com/downloads/Smultron12.zip</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>Unarchiver</string>
            <key>Arguments</key>
            <dict>
                <key>archive_path</key>
                <string>%pathname%</string>
                <key>purge_destination</key>
                <true/>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
            <key>Arguments</key>
            <dict>
                <key>input_path</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%/Smultron.app</string>
                <key>requirement</key>
                <string>anchor apple generic and identifier "com.peterborgapps.Smultron12" 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] = HT76L9L9RG)</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>
Smallpdf/Smallpdf.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of Smallpdf and imports into Munki</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.Smallpdf</string>
    <key>Input</key>
    <dict>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>NAME</key>
        <string>Smallpdf</string>
        <key>pkginfo</key>
        <dict>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>All the tools you’ll need to be more productive and work smarter with documents.</string>
            <key>developer</key>
            <string>Smallpdf AG</string>
            <key>display_name</key>
            <string>Smallpdf</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true></true>
            <key>unattended_uninstall</key>
            <true></true>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.5.0</string>
    <key>ParentRecipe</key>
    <string>com.github.ahousseini-recipes.download.Smallpdf</string>
    <key>Process</key>
    <array>
    <dict>
        <key>Processor</key>
        <string>MunkiImporter</string>
        <key>Arguments</key>
        <dict>
            <key>pkg_path</key>
            <string>%pathname%</string>
            <key>repo_subdirectory</key>
            <string>%MUNKI_REPO_SUBDIR%</string>
        </dict>
    </dict>
</array>
</dict>
</plist>
SketchUpViewer EN/SketchUpViewer EN.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of SketchUpViewer EN and imports into Munki.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.SketchUpViewer-EN</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>SketchUpViewer-EN</string>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>pkginfo</key>
        <dict>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>SketchUp Viewer. Your models. Anywhere you are..</string>
            <key>display_name</key>
            <string>SketchUp Viewer</string>
            <key>developer</key>
            <string>Trimble Navigation Ltd</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
            <key>unattended_uninstall</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.4.1</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.SketchUpViewer-EN</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>PlistReader</string>
            <key>Arguments</key>
            <dict>
                <key>info_path</key>
                <string>%pathname%/SketchUpViewer.app/Contents/Info.plist</string>
                <key>plist_keys</key>
                <dict>
                    <key>CFBundleVersion</key>
                    <string>version</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiPkginfoMerger</string>
            <key>Arguments</key>
            <dict>
                <key>additional_pkginfo</key>
                <dict>
                    <key>version</key>
                    <string>%version%</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%pathname%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
                <key>version_comparison_key</key>
                <string>CFBundleVersion</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>
SketchUpViewer EN/SketchUpViewer EN.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of SketchUpViewer EN.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.SketchUpViewer-EN</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>SketchUpViewer-EN</string>
    </dict>
    <key>MinimumVersion</key>
    <string>1.1</string>
    <key>Process</key>
    <array>
    	<dict>
			<key>Processor</key>
			<string>URLDownloader</string>
			<key>Arguments</key>
			<dict>
				<key>url</key>
				<string>https://www.sketchup.com/sketchup/SketchUpViewer-en-dmg</string>
				<key>filename</key>
				<string>%NAME%.dmg</string>
			</dict>
		</dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
            <key>Arguments</key>
            <dict>
                <key>input_path</key>
                <string>%pathname%/SketchUpViewer.app</string>
                <key>requirement</key>
                <string>identifier "com.sketchup.SketchUpViewer" and anchor apple generic and 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] = J8PVMCY7KL</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>
SketchUp Pro 2021 EN/SketchUp Pro 2021 EN.pkg.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
	<string>Downloads the latest version of SketchUp Pro 2021 EN and creates a PKG.

Based on: com.github.jps3.download.SketchUpPro

Locales can be specified.

Main changes are non-overridable year, removed superfluous CodeSignatureVerification from PKG.</string>
	<key>Identifier</key>
    <string>com.github.dataJAR-recipes.pkg.SketchUp Pro 2021 EN</string>
    <key>Input</key>
	<dict>
		<key>NAME</key>
		<string>SketchUpPro2021-EN</string>
	</dict>
    <key>MinimumVersion</key>
    <string>0.4.1</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.SketchUp Pro 2021 EN</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>PkgRootCreator</string>
            <key>Arguments</key>
            <dict>
                <key>pkgroot</key>
                <string>%RECIPE_CACHE_DIR%/pkgroot</string>
                <key>pkgdirs</key>
                <dict>
                    <key>Applications</key>
                    <string>0775</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>Copier</string>
            <key>Arguments</key>
            <dict>
                <key>source_path</key>
                <string>%pathname%/SketchUp 2021/</string>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/pkgroot/Applications/SketchUp 2021/</string>
                <key>overwrite</key>
                <true/>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>Versioner</string>
            <key>Arguments</key>
            <dict>
                <key>input_plist_path</key>
                <string>%RECIPE_CACHE_DIR%/pkgroot/Applications/SketchUp 2021/SketchUp.app/Contents/Info.plist</string>
                <key>plist_version_key</key>
                <string>CFBundleVersion</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PkgCreator</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_request</key>
                <dict>
                	<key>chown</key>
					<array>
						<dict>
							<key>group</key>
							<string>admin</string>
							<key>path</key>
							<string>/</string>
							<key>user</key>
							<string>root</string>
						</dict>
					</array>
                    <key>id</key>
                    <string>com.sketchup.%NAME%-%version%</string>
                    <key>options</key>
                    <string>purge_ds_store</string>
                    <key>pkgname</key>
                    <string>%NAME%-%version%</string>
                    <key>pkgroot</key>
					<string>%pkgroot%</string>
					<key>version</key>
					<string>%version%</string>
                </dict>
            </dict>
        </dict>
    </array>
</dict>
</plist>

SketchUp Pro 2021 EN/SketchUp Pro 2021 EN.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of SketchUp Pro 2021 EN and imports into Munki.

Based on: com.github.jps3.download.SketchUpPro

Main changes are non-overridable year and locale.
Removed superfluous CodeSignatureVerification from PKG.
</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.SketchUp Pro 2021 EN</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>SketchUpPro2021-EN</string>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>pkginfo</key>
        <dict>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>The most intuitive way to design, document and communicate your ideas in 3D</string>
            <key>display_name</key>
            <string>SketchUp Pro 2021</string>
            <key>developer</key>
            <string>Trimble Navigation Ltd</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>blocking_applications</key>
            <array>
                <string>SketchUp</string>
                <string>Style Builder</string>
                <string>Layout</string>
            </array>
            <key>unattended_install</key>
            <true/>
            <key>unattended_uninstall</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.4.1</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.pkg.SketchUp Pro 2021 EN</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>MunkiPkginfoMerger</string>
            <key>Arguments</key>
            <dict>
                <key>additional_pkginfo</key>
                <dict>
                    <key>version</key>
                    <string>%version%</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiInstallsItemsCreator</string>
            <key>Arguments</key>
            <dict>
                <key>faux_root</key>
                <string>%RECIPE_CACHE_DIR%/pkgroot</string>
                <key>version_comparison_key</key>
                <string>CFBundleVersion</string>
                <key>installs_item_paths</key>
                <array>
                    <string>/Applications/SketchUp 2021/SketchUp.app</string>
                    <string>/Applications/SketchUp 2021/Layout.app</string>
                    <string>/Applications/SketchUp 2021/Style Builder.app</string>
                </array>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiPkginfoMerger</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%pkg_path%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PathDeleter</string>
            <key>Arguments</key>
            <dict>
                <key>path_list</key>
                <array>
                    <string>%RECIPE_CACHE_DIR%/pkgroot</string>
                </array>
            </dict>
        </dict>
    </array>
</dict>
</plist>

SketchUp Pro 2021 EN/SketchUp Pro 2021 EN.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of SketchUp Pro 2021 EN. 

Based on: com.github.jps3.download.SketchUpPro

Locales can be specified.

Main changes are non-overridable year, removed superfluous CodeSignatureVerification from PKG.
</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.SketchUp Pro 2021 EN</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>SketchUpPro2021-EN</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.4.1</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>URLDownloader</string>
            <key>Arguments</key>
            <dict>
                <key>filename</key>
                <string>%NAME%.dmg</string>
                <key>url</key>
                <string>https://www.sketchup.com/sketchup/2021/SketchUpPro-dmg</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
            <key>Arguments</key>
            <dict>
                <key>input_path</key>
                <string>%pathname%/SketchUp 2021/LayOut.app</string>
                <key>requirement</key>
                <string>anchor apple generic 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] = J8PVMCY7KL)</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
            <key>Arguments</key>
            <dict>
                <key>input_path</key>
                <string>%pathname%/SketchUp 2021/SketchUp.app</string>
                <key>requirement</key>
                <string>anchor apple generic 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] = J8PVMCY7KL)</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
            <key>Arguments</key>
            <dict>
                <key>input_path</key>
                <string>%pathname%/SketchUp 2021/Style Builder.app</string>
                <key>requirement</key>
                <string>anchor apple generic 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] = J8PVMCY7KL)</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>

SketchUp Pro 2020 EN/SketchUp Pro 2020 EN.pkg.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
	<string>Downloads the latest version of SketchUp Pro 2020 EN and creates a PKG.

Based on: com.github.jps3.download.SketchUpPro

Locales can be specified.

Main changes are non-overridable year, removed superfluous CodeSignatureVerification from PKG.</string>
	<key>Identifier</key>
    <string>com.github.dataJAR-recipes.pkg.SketchUp Pro 2020 EN</string>
    <key>Input</key>
	<dict>
		<key>NAME</key>
		<string>SketchUpPro2020-EN</string>
	</dict>
    <key>MinimumVersion</key>
    <string>0.4.1</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.SketchUp Pro 2020 EN</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>PkgRootCreator</string>
            <key>Arguments</key>
            <dict>
                <key>pkgroot</key>
                <string>%RECIPE_CACHE_DIR%/pkgroot</string>
                <key>pkgdirs</key>
                <dict>
                    <key>Applications</key>
                    <string>0775</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>Copier</string>
            <key>Arguments</key>
            <dict>
                <key>source_path</key>
                <string>%pathname%/SketchUp 2020/</string>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/pkgroot/Applications/SketchUp 2020/</string>
                <key>overwrite</key>
                <true/>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>Versioner</string>
            <key>Arguments</key>
            <dict>
                <key>input_plist_path</key>
                <string>%RECIPE_CACHE_DIR%/pkgroot/Applications/SketchUp 2020/SketchUp.app/Contents/Info.plist</string>
                <key>plist_version_key</key>
                <string>CFBundleVersion</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PkgCreator</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_request</key>
                <dict>
                	<key>chown</key>
					<array>
						<dict>
							<key>group</key>
							<string>admin</string>
							<key>path</key>
							<string>/</string>
							<key>user</key>
							<string>root</string>
						</dict>
					</array>
                    <key>id</key>
                    <string>com.sketchup.%NAME%-%version%</string>
                    <key>options</key>
                    <string>purge_ds_store</string>
                    <key>pkgname</key>
                    <string>%NAME%-%version%</string>
                    <key>pkgroot</key>
					<string>%pkgroot%</string>
					<key>version</key>
					<string>%version%</string>
                </dict>
            </dict>
        </dict>
    </array>
</dict>
</plist>

SketchUp Pro 2020 EN/SketchUp Pro 2020 EN.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of SketchUp Pro 2020 EN and imports into Munki.

Based on: com.github.jps3.download.SketchUpPro

Main changes are non-overridable year and locale.
Removed superfluous CodeSignatureVerification from PKG.
</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.SketchUp Pro 2020 EN</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>SketchUpPro2020-EN</string>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>pkginfo</key>
        <dict>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>The most intuitive way to design, document and communicate your ideas in 3D</string>
            <key>display_name</key>
            <string>SketchUp Pro 2020</string>
            <key>developer</key>
            <string>Trimble Navigation Ltd</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>blocking_applications</key>
            <array>
                <string>SketchUp</string>
                <string>Style Builder</string>
                <string>Layout</string>
            </array>
            <key>unattended_install</key>
            <true/>
            <key>unattended_uninstall</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.4.1</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.pkg.SketchUp Pro 2020 EN</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>MunkiPkginfoMerger</string>
            <key>Arguments</key>
            <dict>
                <key>additional_pkginfo</key>
                <dict>
                    <key>version</key>
                    <string>%version%</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiInstallsItemsCreator</string>
            <key>Arguments</key>
            <dict>
                <key>faux_root</key>
                <string>%RECIPE_CACHE_DIR%/pkgroot</string>
                <key>version_comparison_key</key>
                <string>CFBundleVersion</string>
                <key>installs_item_paths</key>
                <array>
                    <string>/Applications/SketchUp 2020/SketchUp.app</string>
                    <string>/Applications/SketchUp 2020/Layout.app</string>
                    <string>/Applications/SketchUp 2020/Style Builder.app</string>
                </array>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiPkginfoMerger</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%pkg_path%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PathDeleter</string>
            <key>Arguments</key>
            <dict>
                <key>path_list</key>
                <array>
                    <string>%RECIPE_CACHE_DIR%/pkgroot</string>
                </array>
            </dict>
        </dict>
    </array>
</dict>
</plist>

SketchUp Pro 2020 EN/SketchUp Pro 2020 EN.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of SketchUp Pro 2020 EN. 

Based on: com.github.jps3.download.SketchUpPro

Locales can be specified.

Main changes are non-overridable year, removed superfluous CodeSignatureVerification from PKG.
</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.SketchUp Pro 2020 EN</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>SketchUpPro2020-EN</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.4.1</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>URLDownloader</string>
            <key>Arguments</key>
            <dict>
                <key>filename</key>
                <string>%NAME%.dmg</string>
                <key>url</key>
                <string>https://www.sketchup.com/sketchup/2020/SketchUpPro-dmg</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
            <key>Arguments</key>
            <dict>
                <key>input_path</key>
                <string>%pathname%/SketchUp 2020/LayOut.app</string>
                <key>requirement</key>
                <string>anchor apple generic 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] = J8PVMCY7KL)</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
            <key>Arguments</key>
            <dict>
                <key>input_path</key>
                <string>%pathname%/SketchUp 2020/SketchUp.app</string>
                <key>requirement</key>
                <string>anchor apple generic 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] = J8PVMCY7KL)</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
            <key>Arguments</key>
            <dict>
                <key>input_path</key>
                <string>%pathname%/SketchUp 2020/Style Builder.app</string>
                <key>requirement</key>
                <string>anchor apple generic 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] = J8PVMCY7KL)</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>

SketchUp Pro 2019 EN/SketchUp Pro 2019 EN.pkg.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
	<string>Downloads the latest version of SketchUp Pro 2019 EN and creates a PKG.

Based on: com.github.jps3.download.SketchUpPro

Locales can be specified.

Main changes are non-overridable year, removed superfluous CodeSignatureVerification from PKG.</string>
	<key>Identifier</key>
    <string>com.github.dataJAR-recipes.pkg.SketchUp Pro 2019 EN</string>
    <key>Input</key>
	<dict>
		<key>NAME</key>
		<string>SketchUpPro2019-EN</string>
	</dict>
    <key>MinimumVersion</key>
    <string>0.4.1</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.SketchUp Pro 2019 EN</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>PkgRootCreator</string>
            <key>Arguments</key>
            <dict>
                <key>pkgroot</key>
                <string>%RECIPE_CACHE_DIR%/pkgroot</string>
                <key>pkgdirs</key>
                <dict>
                    <key>Applications</key>
                    <string>0775</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>Copier</string>
            <key>Arguments</key>
            <dict>
                <key>source_path</key>
                <string>%pathname%/SketchUp 2019/</string>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/pkgroot/Applications/SketchUp 2019/</string>
                <key>overwrite</key>
                <true/>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>Versioner</string>
            <key>Arguments</key>
            <dict>
                <key>input_plist_path</key>
                <string>%RECIPE_CACHE_DIR%/pkgroot/Applications/SketchUp 2019/SketchUp.app/Contents/Info.plist</string>
                <key>plist_version_key</key>
                <string>CFBundleVersion</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PkgCreator</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_request</key>
                <dict>
                	<key>chown</key>
					<array>
						<dict>
							<key>group</key>
							<string>admin</string>
							<key>path</key>
							<string>/</string>
							<key>user</key>
							<string>root</string>
						</dict>
					</array>
                    <key>id</key>
                    <string>com.sketchup.%NAME%-%version%</string>
                    <key>options</key>
                    <string>purge_ds_store</string>
                    <key>pkgname</key>
                    <string>%NAME%-%version%</string>
                    <key>pkgroot</key>
					<string>%pkgroot%</string>
					<key>version</key>
					<string>%version%</string>
                </dict>
            </dict>
        </dict>
    </array>
</dict>
</plist>

SketchUp Pro 2019 EN/SketchUp Pro 2019 EN.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of SketchUp Pro 2019 EN and imports into Munki.

Based on: com.github.jps3.download.SketchUpPro

Main changes are non-overridable year and locale.
Removed superfluous CodeSignatureVerification from PKG.
</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.SketchUp Pro 2019 EN</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>SketchUpPro2019-EN</string>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>pkginfo</key>
        <dict>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>The most intuitive way to design, document and communicate your ideas in 3D</string>
            <key>display_name</key>
            <string>SketchUp Pro 2019</string>
            <key>developer</key>
            <string>Trimble Navigation Ltd</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>blocking_applications</key>
            <array>
                <string>SketchUp</string>
                <string>Style Builder</string>
                <string>Layout</string>
            </array>
            <key>unattended_install</key>
            <true/>
            <key>unattended_uninstall</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.4.1</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.pkg.SketchUp Pro 2019 EN</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>MunkiPkginfoMerger</string>
            <key>Arguments</key>
            <dict>
                <key>additional_pkginfo</key>
                <dict>
                    <key>version</key>
                    <string>%version%</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiInstallsItemsCreator</string>
            <key>Arguments</key>
            <dict>
                <key>faux_root</key>
                <string>%RECIPE_CACHE_DIR%/pkgroot</string>
                <key>version_comparison_key</key>
                <string>CFBundleVersion</string>
                <key>installs_item_paths</key>
                <array>
                    <string>/Applications/SketchUp 2019/SketchUp.app</string>
                    <string>/Applications/SketchUp 2019/Layout.app</string>
                    <string>/Applications/SketchUp 2019/Style Builder.app</string>
                </array>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%pkg_path%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PathDeleter</string>
            <key>Arguments</key>
            <dict>
                <key>path_list</key>
                <array>
                    <string>%RECIPE_CACHE_DIR%/pkgroot</string>
                </array>
            </dict>
        </dict>
    </array>
</dict>
</plist>

SketchUp Pro 2019 EN/SketchUp Pro 2019 EN.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of SketchUp Pro 2019 EN. 

Based on: com.github.jps3.download.SketchUpPro

Locales can be specified.

Main changes are non-overridable year, removed superfluous CodeSignatureVerification from PKG.
</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.SketchUp Pro 2019 EN</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>SketchUpPro2019-EN</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.4.1</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>URLDownloader</string>
            <key>Arguments</key>
            <dict>
                <key>filename</key>
                <string>%NAME%.dmg</string>
                <key>url</key>
                <string>https://www.sketchup.com/sketchup/2019/SketchUpPro-en-dmg</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
            <key>Arguments</key>
            <dict>
                <key>input_path</key>
                <string>%pathname%/SketchUp 2019/LayOut.app</string>
                <key>requirement</key>
                <string>anchor apple generic 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] = J8PVMCY7KL)</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
            <key>Arguments</key>
            <dict>
                <key>input_path</key>
                <string>%pathname%/SketchUp 2019/SketchUp.app</string>
                <key>requirement</key>
                <string>anchor apple generic 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] = J8PVMCY7KL)</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
            <key>Arguments</key>
            <dict>
                <key>input_path</key>
                <string>%pathname%/SketchUp 2019/Style Builder.app</string>
                <key>requirement</key>
                <string>anchor apple generic 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] = J8PVMCY7KL)</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>

SketchUp Pro 2018 EN/SketchUp Pro 2018 EN.pkg.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
	<string>Downloads the latest version of SketchUp Pro 2018 EN and creates a PKG.

Based on: com.github.jps3.download.SketchUpPro

Locales can be specified.

Main changes are non-overridable year, removed superfluous CodeSignatureVerification from PKG.</string>
	<key>Identifier</key>
    <string>com.github.dataJAR-recipes.pkg.SketchUp Pro 2018 EN</string>
    <key>Input</key>
	<dict>
		<key>NAME</key>
		<string>SketchUpPro2018-EN</string>
	</dict>
    <key>MinimumVersion</key>
    <string>0.4.1</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.SketchUp Pro 2018 EN</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>PkgRootCreator</string>
            <key>Arguments</key>
            <dict>
                <key>pkgroot</key>
                <string>%RECIPE_CACHE_DIR%/pkgroot</string>
                <key>pkgdirs</key>
                <dict>
                    <key>Applications</key>
                    <string>0775</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>Copier</string>
            <key>Arguments</key>
            <dict>
                <key>source_path</key>
                <string>%pathname%/SketchUp 2018/</string>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/pkgroot/Applications/SketchUp 2018/</string>
                <key>overwrite</key>
                <true/>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>Versioner</string>
            <key>Arguments</key>
            <dict>
                <key>input_plist_path</key>
                <string>%RECIPE_CACHE_DIR%/pkgroot/Applications/SketchUp 2018/SketchUp.app/Contents/Info.plist</string>
                <key>plist_version_key</key>
                <string>CFBundleVersion</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PkgCreator</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_request</key>
                <dict>
                	<key>chown</key>
					<array>
						<dict>
							<key>group</key>
							<string>admin</string>
							<key>path</key>
							<string>/</string>
							<key>user</key>
							<string>root</string>
						</dict>
					</array>
                    <key>id</key>
                    <string>com.sketchup.%NAME%-%version%</string>
                    <key>options</key>
                    <string>purge_ds_store</string>
                    <key>pkgname</key>
                    <string>%NAME%-%version%</string>
                    <key>pkgroot</key>
					<string>%pkgroot%</string>
					<key>version</key>
					<string>%version%</string>
                </dict>
            </dict>
        </dict>
    </array>
</dict>
</plist>

SketchUp Pro 2018 EN/SketchUp Pro 2018 EN.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of SketchUp Pro 2018 EN and imports into Munki.

Based on: com.github.jps3.download.SketchUpPro

Main changes are non-overridable year and locale.
Removed superfluous CodeSignatureVerification from PKG.
</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.SketchUp Pro 2018 EN</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>SketchUpPro2018-EN</string>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>pkginfo</key>
        <dict>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>The most intuitive way to design, document and communicate your ideas in 3D</string>
            <key>display_name</key>
            <string>SketchUp Pro 2018</string>
            <key>developer</key>
            <string>Trimble Navigation Ltd</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>blocking_applications</key>
            <array>
                <string>SketchUp</string>
                <string>Style Builder</string>
                <string>Layout</string>
            </array>
            <key>unattended_install</key>
            <true/>
            <key>unattended_uninstall</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.4.1</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.pkg.SketchUp Pro 2018 EN</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>MunkiPkginfoMerger</string>
            <key>Arguments</key>
            <dict>
                <key>additional_pkginfo</key>
                <dict>
                    <key>version</key>
                    <string>%version%</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiInstallsItemsCreator</string>
            <key>Arguments</key>
            <dict>
                <key>faux_root</key>
                <string>%RECIPE_CACHE_DIR%/pkgroot</string>
                <key>version_comparison_key</key>
                <string>CFBundleVersion</string>
                <key>installs_item_paths</key>
                <array>
                    <string>/Applications/SketchUp 2018/SketchUp.app</string>
                    <string>/Applications/SketchUp 2018/Layout.app</string>
                    <string>/Applications/SketchUp 2018/Style Builder.app</string>
                </array>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiPkginfoMerger</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%pkg_path%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PathDeleter</string>
            <key>Arguments</key>
            <dict>
                <key>path_list</key>
                <array>
                    <string>%RECIPE_CACHE_DIR%/pkgroot</string>
                </array>
            </dict>
        </dict>
    </array>
</dict>
</plist>

SketchUp Pro 2018 EN/SketchUp Pro 2018 EN.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of SketchUp Pro 2018 EN. 

Based on: com.github.jps3.download.SketchUpPro

Locales can be specified.

Main changes are non-overridable year, removed superfluous CodeSignatureVerification from PKG.
</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.SketchUp Pro 2018 EN</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>SketchUpPro2018-EN</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.4.1</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>URLTextSearcher</string>
            <key>Arguments</key>
            <dict>
                <key>url</key>
                <string>https://help.sketchup.com/en/downloading-older-versions</string>
                <key>result_output_var_name</key>
                <string>url</string>
                <key>re_pattern</key>
                <string>https://www.sketchup.com/sketchup/2018/SketchUpPro-en-dmg</string> 
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>URLDownloader</string>
            <key>Arguments</key>
            <dict>
                <key>filename</key>
                <string>%NAME%.dmg</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
            <key>Arguments</key>
            <dict>
                <key>input_path</key>
                <string>%pathname%/SketchUp 2018/LayOut.app</string>
                <key>requirement</key>
                <string>anchor apple generic 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] = J8PVMCY7KL)</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
            <key>Arguments</key>
            <dict>
                <key>input_path</key>
                <string>%pathname%/SketchUp 2018/SketchUp.app</string>
                <key>requirement</key>
                <string>anchor apple generic 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] = J8PVMCY7KL)</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
            <key>Arguments</key>
            <dict>
                <key>input_path</key>
                <string>%pathname%/SketchUp 2018/Style Builder.app</string>
                <key>requirement</key>
                <string>anchor apple generic 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] = J8PVMCY7KL)</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>

SketchUp Pro 2017 EN/SketchUp Pro 2017 EN.pkg.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
	<string>Downloads the latest version of SketchUp Pro 2017 EN and creates a PKG.

Based on: com.github.jps3.download.SketchUpPro

Locales can be specified.

Main changes are non-overridable year, removed superfluous CodeSignatureVerification from PKG.</string>
	<key>Identifier</key>
    <string>com.github.dataJAR-recipes.pkg.SketchUp Pro 2017 EN</string>
    <key>Input</key>
	<dict>
		<key>NAME</key>
		<string>SketchUpPro2017-EN</string>
	</dict>
    <key>MinimumVersion</key>
    <string>0.4.1</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.SketchUp Pro 2017 EN</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>PkgRootCreator</string>
            <key>Arguments</key>
            <dict>
                <key>pkgroot</key>
                <string>%RECIPE_CACHE_DIR%/pkgroot</string>
                <key>pkgdirs</key>
                <dict>
                    <key>Applications</key>
                    <string>0775</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>Copier</string>
            <key>Arguments</key>
            <dict>
                <key>source_path</key>
                <string>%pathname%/SketchUp 2017/</string>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/pkgroot/Applications/SketchUp 2017/</string>
                <key>overwrite</key>
                <true/>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>Versioner</string>
            <key>Arguments</key>
            <dict>
                <key>input_plist_path</key>
                <string>%RECIPE_CACHE_DIR%/pkgroot/Applications/SketchUp 2017/SketchUp.app/Contents/Info.plist</string>
                <key>plist_version_key</key>
                <string>CFBundleVersion</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PkgCreator</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_request</key>
                <dict>
                	<key>chown</key>
					<array>
						<dict>
							<key>group</key>
							<string>admin</string>
							<key>path</key>
							<string>/</string>
							<key>user</key>
							<string>root</string>
						</dict>
					</array>
                    <key>id</key>
                    <string>com.sketchup.%NAME%-%version%</string>
                    <key>options</key>
                    <string>purge_ds_store</string>
                    <key>pkgname</key>
                    <string>%NAME%-%version%</string>
                    <key>pkgroot</key>
					<string>%pkgroot%</string>
					<key>version</key>
					<string>%version%</string>
                </dict>
            </dict>
        </dict>
    </array>
</dict>
</plist>

SketchUp Pro 2017 EN/SketchUp Pro 2017 EN.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>Description</key>
	<string>Downloads the latest version of SketchUp Pro 2017 EN and imports into Munki.

Based on: com.github.jps3.download.SketchUpPro

Main changes are non-overridable year and locale.
Removed superfluous CodeSignatureVerification from PKG.
</string>
	<key>Identifier</key>
	<string>com.github.dataJAR-recipes.munki.SketchUp Pro 2017 EN</string>
	<key>Input</key>
	<dict>
		<key>NAME</key>
		<string>SketchUpPro2017-EN</string>
		<key>MUNKI_REPO_SUBDIR</key>
		<string>apps/%NAME%</string>
		<key>pkginfo</key>
		<dict>
			<key>catalogs</key>
			<array>
				<string>testing</string>
			</array>
			<key>description</key>
			<string>The most intuitive way to design, document and communicate your ideas in 3D</string>
			<key>display_name</key>
			<string>SketchUp Pro 2017</string>
			<key>developer</key>
			<string>Trimble Navigation Ltd</string>
			<key>name</key>
			<string>%NAME%</string>
			<key>blocking_applications</key>
			<array>
				<string>SketchUp</string>
				<string>Style Builder</string>
				<string>Layout</string>
			</array>
			<key>unattended_install</key>
			<true/>
			<key>unattended_uninstall</key>
			<true/>
		</dict>
	</dict>
	<key>MinimumVersion</key>
	<string>0.4.1</string>
	<key>ParentRecipe</key>
	<string>com.github.dataJAR-recipes.pkg.SketchUp Pro 2017 EN</string>
	<key>Process</key>
	<array>
		<dict>
			<key>Processor</key>
			<string>MunkiPkginfoMerger</string>
			<key>Arguments</key>
			<dict>
				<key>additional_pkginfo</key>
				<dict>
					<key>version</key>
					<string>%version%</string>
				</dict>
			</dict>
		</dict>
		<dict>
			<key>Processor</key>
			<string>MunkiInstallsItemsCreator</string>
			<key>Arguments</key>
			<dict>
				<key>faux_root</key>
				<string>%RECIPE_CACHE_DIR%/pkgroot</string>
				<key>version_comparison_key</key>
				<string>CFBundleVersion</string>
				<key>installs_item_paths</key>
				<array>
					<string>/Applications/SketchUp 2017/SketchUp.app</string>
					<string>/Applications/SketchUp 2017/Layout.app</string>
					<string>/Applications/SketchUp 2017/Style Builder.app</string>
				</array>
			</dict>
		</dict>
		<dict>
			<key>Processor</key>
			<string>MunkiPkginfoMerger</string>
		</dict>
		<dict>
			<key>Arguments</key>
			<dict>
				<key>pkg_path</key>
				<string>%pkg_path%</string>
				<key>repo_subdirectory</key>
				<string>%MUNKI_REPO_SUBDIR%</string>
			</dict>
			<key>Processor</key>
			<string>MunkiImporter</string>
		</dict>
	</array>
</dict>
</plist>

SketchUp Pro 2017 EN/SketchUp Pro 2017 EN.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of SketchUp Pro 2017 EN. 

Based on: com.github.jps3.download.SketchUpPro

Locales can be specified.

Main changes are non-overridable year, removed superfluous CodeSignatureVerification from PKG.
</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.SketchUp Pro 2017 EN</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>SketchUpPro2017-EN</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.4.1</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>URLTextSearcher</string>
            <key>Arguments</key>
            <dict>
                <key>url</key>
                <string>https://help.sketchup.com/en/downloading-older-versions</string>
                <key>result_output_var_name</key>
                <string>url</string>
                <key>re_pattern</key>
                <string>https://www.sketchup.com/sketchup/2017/en/sketchuppro-2017-[\S]+\-[\S]+\-[\S]+\-en-dmg</string>
            </dict>
        </dict>
        <dict>
            <key>Arguments</key>
            <dict>
                <key>filename</key>
                <string>%NAME%.dmg</string>
            </dict>
            <key>Processor</key>
            <string>URLDownloader</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
            <key>Arguments</key>
            <dict>
                <key>input_path</key>
                <string>%pathname%/SketchUp 2017/LayOut.app</string>
                <key>requirement</key>
                <string>anchor apple generic 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] = J8PVMCY7KL)</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
            <key>Arguments</key>
            <dict>
                <key>input_path</key>
                <string>%pathname%/SketchUp 2017/SketchUp.app</string>
                <key>requirement</key>
                <string>anchor apple generic 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] = J8PVMCY7KL)</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
            <key>Arguments</key>
            <dict>
                <key>input_path</key>
                <string>%pathname%/SketchUp 2017/Style Builder.app</string>
                <key>requirement</key>
                <string>anchor apple generic 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] = J8PVMCY7KL)</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>

SketchUp Pro 2016 EN/SketchUp Pro 2016 EN.pkg.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
	<string>Downloads the latest version of SketchUp Pro 2016 EN and creates a PKG.

Based on: com.github.jps3.download.SketchUpPro

Locales can be specified.

Main changes are non-overridable year, removed superfluous CodeSignatureVerification from PKG.</string>
	<key>Identifier</key>
    <string>com.github.dataJAR-recipes.pkg.SketchUp Pro 2016 EN</string>
    <key>Input</key>
	<dict>
		<key>NAME</key>
		<string>SketchUpPro2016-EN</string>
	</dict>
    <key>MinimumVersion</key>
    <string>0.4.1</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.SketchUp Pro 2016 EN</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>PkgRootCreator</string>
            <key>Arguments</key>
            <dict>
                <key>pkgroot</key>
                <string>%RECIPE_CACHE_DIR%/pkgroot</string>
                <key>pkgdirs</key>
                <dict>
                    <key>Applications</key>
                    <string>0775</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>Copier</string>
            <key>Arguments</key>
            <dict>
                <key>source_path</key>
                <string>%pathname%/SketchUp 2016/</string>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/pkgroot/Applications/SketchUp 2016/</string>
                <key>overwrite</key>
                <true/>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>Versioner</string>
            <key>Arguments</key>
            <dict>
                <key>input_plist_path</key>
                <string>%RECIPE_CACHE_DIR%/pkgroot/Applications/SketchUp 2016/SketchUp.app/Contents/Info.plist</string>
                <key>plist_version_key</key>
                <string>CFBundleVersion</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PkgCreator</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_request</key>
                <dict>
                	<key>chown</key>
					<array>
						<dict>
							<key>group</key>
							<string>admin</string>
							<key>path</key>
							<string>/</string>
							<key>user</key>
							<string>root</string>
						</dict>
					</array>
                    <key>id</key>
                    <string>com.sketchup.%NAME%-%version%</string>
                    <key>options</key>
                    <string>purge_ds_store</string>
                    <key>pkgname</key>
                    <string>%NAME%-%version%</string>
                    <key>pkgroot</key>
					<string>%pkgroot%</string>
					<key>version</key>
					<string>%version%</string>
                </dict>
            </dict>
        </dict>
    </array>
</dict>
</plist>

SketchUp Pro 2016 EN/SketchUp Pro 2016 EN.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>Description</key>
	<string>Downloads the latest version of SketchUp Pro 2016 EN and imports into Munki.

Based on: com.github.jps3.download.SketchUpPro

Main changes are non-overridable year and locale.
Removed superfluous CodeSignatureVerification from PKG.
</string>
	<key>Identifier</key>
	<string>com.github.dataJAR-recipes.munki.SketchUp Pro 2016 EN</string>
	<key>Input</key>
	<dict>
		<key>NAME</key>
		<string>SketchUpPro2016-EN</string>
		<key>MUNKI_REPO_SUBDIR</key>
		<string>apps/%NAME%</string>
		<key>pkginfo</key>
		<dict>
			<key>catalogs</key>
			<array>
				<string>testing</string>
			</array>
			<key>description</key>
			<string>The most intuitive way to design, document and communicate your ideas in 3D</string>
			<key>display_name</key>
			<string>SketchUp Pro 2016</string>
			<key>developer</key>
			<string>Trimble Navigation Ltd</string>
			<key>name</key>
			<string>%NAME%</string>
			<key>blocking_applications</key>
			<array>
				<string>SketchUp</string>
				<string>Style Builder</string>
				<string>Layout</string>
			</array>
			<key>unattended_install</key>
			<true/>
			<key>unattended_uninstall</key>
			<true/>
		</dict>
	</dict>
	<key>MinimumVersion</key>
	<string>0.4.1</string>
	<key>ParentRecipe</key>
	<string>com.github.dataJAR-recipes.pkg.SketchUp Pro 2016 EN</string>
	<key>Process</key>
	<array>
		<dict>
			<key>Processor</key>
			<string>MunkiPkginfoMerger</string>
			<key>Arguments</key>
			<dict>
				<key>additional_pkginfo</key>
				<dict>
					<key>version</key>
					<string>%version%</string>
				</dict>
			</dict>
		</dict>
		<dict>
			<key>Processor</key>
			<string>MunkiInstallsItemsCreator</string>
			<key>Arguments</key>
			<dict>
				<key>faux_root</key>
				<string>%RECIPE_CACHE_DIR%/pkgroot</string>
				<key>version_comparison_key</key>
				<string>CFBundleVersion</string>
				<key>installs_item_paths</key>
				<array>
					<string>/Applications/SketchUp 2016/SketchUp.app</string>
					<string>/Applications/SketchUp 2016/Layout.app</string>
					<string>/Applications/SketchUp 2016/Style Builder.app</string>
				</array>
			</dict>
		</dict>
		<dict>
			<key>Processor</key>
			<string>MunkiPkginfoMerger</string>
		</dict>
		<dict>
			<key>Arguments</key>
			<dict>
				<key>pkg_path</key>
				<string>%pkg_path%</string>
				<key>repo_subdirectory</key>
				<string>%MUNKI_REPO_SUBDIR%</string>
			</dict>
			<key>Processor</key>
			<string>MunkiImporter</string>
		</dict>
	</array>
</dict>
</plist>

SketchUp Pro 2016 EN/SketchUp Pro 2016 EN.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of SketchUp Pro 2016 EN. 

Based on: com.github.jps3.download.SketchUpPro

Locales can be specified.

Main changes are non-overridable year, removed superfluous CodeSignatureVerification from PKG.
</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.SketchUp Pro 2016 EN</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>SketchUpPro2016-EN</string>
    </dict>
    <key>MinimumVersion</key>
    <string>1.1</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>DeprecationWarning</string>
            <key>Arguments</key>
            <dict>
                <key>warning_message</key>
                <string>This recipe is now non-functional, only current year-2 are available via https://help.sketchup.com/en/downloading-older-versions now. Please remove it from your list of recipes.</string>
            </dict>
        </dict>
        <dict>   
            <key>Processor</key>   
            <string>StopProcessingIf</string>   
            <key>Arguments</key>   
            <dict>   
                <key>predicate</key>   
                <string>TRUEPREDICATE</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>

SketchUp Pro 2015 EN/SketchUp Pro 2015 EN.pkg.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
	<string>Downloads the latest version of SketchUp Pro 2015 EN and creates a PKG.

Based on: com.github.jps3.download.SketchUpPro

Locales can be specified.

Main changes are non-overridable year, removed superfluous CodeSignatureVerification from PKG.</string>
	<key>Identifier</key>
    <string>com.github.dataJAR-recipes.pkg.SketchUp Pro 2015 EN</string>
    <key>Input</key>
	<dict>
		<key>NAME</key>
		<string>SketchUpPro2015-EN</string>
	</dict>
    <key>MinimumVersion</key>
    <string>0.4.1</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.SketchUp Pro 2015 EN</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>PkgRootCreator</string>
            <key>Arguments</key>
            <dict>
                <key>pkgroot</key>
                <string>%RECIPE_CACHE_DIR%/pkgroot</string>
                <key>pkgdirs</key>
                <dict>
                    <key>Applications</key>
                    <string>0775</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>Copier</string>
            <key>Arguments</key>
            <dict>
                <key>source_path</key>
                <string>%pathname%/SketchUp 2015/</string>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/pkgroot/Applications/SketchUp 2015/</string>
                <key>overwrite</key>
                <true/>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>Versioner</string>
            <key>Arguments</key>
            <dict>
                <key>input_plist_path</key>
                <string>%RECIPE_CACHE_DIR%/pkgroot/Applications/SketchUp 2015/SketchUp.app/Contents/Info.plist</string>
                <key>plist_version_key</key>
                <string>CFBundleVersion</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PkgCreator</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_request</key>
                <dict>
                	<key>chown</key>
					<array>
						<dict>
							<key>group</key>
							<string>admin</string>
							<key>path</key>
							<string>/</string>
							<key>user</key>
							<string>root</string>
						</dict>
					</array>
                    <key>id</key>
                    <string>com.sketchup.%NAME%-%version%</string>
                    <key>options</key>
                    <string>purge_ds_store</string>
                    <key>pkgname</key>
                    <string>%NAME%-%version%</string>
                    <key>pkgroot</key>
					<string>%pkgroot%</string>
					<key>version</key>
					<string>%version%</string>
                </dict>
            </dict>
        </dict>
    </array>
</dict>
</plist>

SketchUp Pro 2015 EN/SketchUp Pro 2015 EN.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>Description</key>
	<string>Downloads the latest version of SketchUp Pro 2015 EN and imports into Munki.

Based on: com.github.jps3.download.SketchUpPro

Main changes are non-overridable year and locale.
Removed superfluous CodeSignatureVerification from PKG.
</string>
	<key>Identifier</key>
	<string>com.github.dataJAR-recipes.munki.SketchUp Pro 2015 EN</string>
	<key>Input</key>
	<dict>
		<key>NAME</key>
		<string>SketchUpPro2015-EN</string>
		<key>MUNKI_REPO_SUBDIR</key>
		<string>apps/%NAME%</string>
		<key>pkginfo</key>
		<dict>
			<key>catalogs</key>
			<array>
				<string>testing</string>
			</array>
			<key>description</key>
			<string>The most intuitive way to design, document and communicate your ideas in 3D</string>
			<key>display_name</key>
			<string>SketchUp Pro 2015</string>
			<key>developer</key>
			<string>Trimble Navigation Ltd</string>
			<key>name</key>
			<string>%NAME%</string>
			<key>blocking_applications</key>
			<array>
				<string>SketchUp</string>
				<string>Style Builder</string>
				<string>Layout</string>
			</array>
			<key>unattended_install</key>
			<true/>
			<key>unattended_uninstall</key>
			<true/>
		</dict>
	</dict>
	<key>MinimumVersion</key>
	<string>0.4.1</string>
	<key>ParentRecipe</key>
	<string>com.github.dataJAR-recipes.pkg.SketchUp Pro 2015 EN</string>
	<key>Process</key>
	<array>
		<dict>
			<key>Processor</key>
			<string>MunkiPkginfoMerger</string>
			<key>Arguments</key>
			<dict>
				<key>additional_pkginfo</key>
				<dict>
					<key>version</key>
					<string>%version%</string>
				</dict>
			</dict>
		</dict>
		<dict>
			<key>Processor</key>
			<string>MunkiInstallsItemsCreator</string>
			<key>Arguments</key>
			<dict>
				<key>faux_root</key>
				<string>%RECIPE_CACHE_DIR%/pkgroot</string>
				<key>version_comparison_key</key>
				<string>CFBundleVersion</string>
				<key>installs_item_paths</key>
				<array>
					<string>/Applications/SketchUp 2015/SketchUp.app</string>
					<string>/Applications/SketchUp 2015/Layout.app</string>
					<string>/Applications/SketchUp 2015/Style Builder.app</string>
				</array>
			</dict>
		</dict>
		<dict>
			<key>Processor</key>
			<string>MunkiPkginfoMerger</string>
		</dict>
		<dict>
			<key>Arguments</key>
			<dict>
				<key>pkg_path</key>
				<string>%pkg_path%</string>
				<key>repo_subdirectory</key>
				<string>%MUNKI_REPO_SUBDIR%</string>
			</dict>
			<key>Processor</key>
			<string>MunkiImporter</string>
		</dict>
	</array>
</dict>
</plist>

SketchUp Pro 2015 EN/SketchUp Pro 2015 EN.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of SketchUp Pro 2015 EN. 

Based on: com.github.jps3.download.SketchUpPro

Locales can be specified.

Main changes are non-overridable year, removed superfluous CodeSignatureVerification from PKG.
</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.SketchUp Pro 2015 EN</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>SketchUpPro2015-EN</string>
    </dict>
    <key>MinimumVersion</key>
    <string>1.1</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>DeprecationWarning</string>
            <key>Arguments</key>
            <dict>
                <key>warning_message</key>
                <string>This recipe is now non-functional, only current year-2 are available via https://help.sketchup.com/en/downloading-older-versions now. Please remove it from your list of recipes.</string>
            </dict>
        </dict>
        <dict>   
            <key>Processor</key>   
            <string>StopProcessingIf</string>   
            <key>Arguments</key>   
            <dict>   
                <key>predicate</key>   
                <string>TRUEPREDICATE</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>

SketchUp Make 2017 EN/SketchUp Make 2017 EN.pkg.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/MakepertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
	<string>Downloads the latest version of SketchUp Make 2017 EN and creates a PKG.

Based on: com.github.jps3.download.SketchUpPro

Locales can be specified.

Main changes are non-overridable year, removed superfluous CodeSignatureVerification from PKG.</string>
	<key>Identifier</key>
    <string>com.github.dataJAR-recipes.pkg.SketchUp Make 2017 EN</string>
    <key>Input</key>
	<dict>
		<key>NAME</key>
		<string>SketchUpMake2017-EN</string>
	</dict>
    <key>MinimumVersion</key>
    <string>0.4.1</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.SketchUp Make 2017 EN</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>PkgRootCreator</string>
            <key>Arguments</key>
            <dict>
                <key>pkgroot</key>
                <string>%RECIPE_CACHE_DIR%/pkgroot</string>
                <key>pkgdirs</key>
                <dict>
                    <key>Applications</key>
                    <string>0775</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>Copier</string>
            <key>Arguments</key>
            <dict>
                <key>source_path</key>
                <string>%pathname%/SketchUp 2017/</string>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/pkgroot/Applications/SketchUp 2017/</string>
                <key>overwrite</key>
                <true/>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>Versioner</string>
            <key>Arguments</key>
            <dict>
                <key>input_plist_path</key>
                <string>%RECIPE_CACHE_DIR%/pkgroot/Applications/SketchUp 2017/SketchUp.app/Contents/Info.plist</string>
                <key>plist_version_key</key>
                <string>CFBundleVersion</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PkgCreator</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_request</key>
                <dict>
                	<key>chown</key>
					<array>
						<dict>
							<key>group</key>
							<string>admin</string>
							<key>path</key>
							<string>/</string>
							<key>user</key>
							<string>root</string>
						</dict>
					</array>
                    <key>id</key>
                    <string>com.sketchup.%NAME%-%version%</string>
                    <key>options</key>
                    <string>purge_ds_store</string>
                    <key>pkgname</key>
                    <string>%NAME%-%version%</string>
                    <key>pkgroot</key>
					<string>%pkgroot%</string>
					<key>version</key>
					<string>%version%</string>
                </dict>
            </dict>
        </dict>
    </array>
</dict>
</plist>

SketchUp Make 2017 EN/SketchUp Make 2017 EN.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/MakepertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of SketchUp Make 2017 EN and imports into Munki.

Based on: com.github.jps3.download.SketchUpPro

Main changes are non-overridable year and locale.
Removed superfluous CodeSignatureVerification from PKG.
</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.SketchUp Make 2017 EN</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>SketchUpMake2017-EN</string>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>pkginfo</key>
        <dict>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>The easy, fun, and free way to draw in 3D.</string>
            <key>display_name</key>
            <string>SketchUp Make 2017</string>
            <key>developer</key>
            <string>Trimble Navigation Ltd</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>blocking_applications</key>
            <array>
                <string>SketchUp</string>
                <string>Style Builder</string>
                <string>Layout</string>
            </array>
            <key>unattended_install</key>
            <true/>
            <key>unattended_uninstall</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.4.1</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.pkg.SketchUp Make 2017 EN</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>MunkiPkginfoMerger</string>
            <key>Arguments</key>
            <dict>
                <key>additional_pkginfo</key>
                <dict>
                    <key>version</key>
                    <string>%version%</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiInstallsItemsCreator</string>
            <key>Arguments</key>
            <dict>
                <key>faux_root</key>
                <string>%RECIPE_CACHE_DIR%/pkgroot</string>
                <key>version_comparison_key</key>
                <string>CFBundleVersion</string>
                <key>installs_item_paths</key>
                <array>
                    <string>/Applications/SketchUp 2017/SketchUp.app</string>
                    <string>/Applications/SketchUp 2017/Layout.app</string>
                    <string>/Applications/SketchUp 2017/Style Builder.app</string>
                </array>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiPkginfoMerger</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%pkg_path%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PathDeleter</string>
            <key>Arguments</key>
            <dict>
                <key>path_list</key>
                <array>
                    <string>%RECIPE_CACHE_DIR%/pkgroot</string>
                </array>
            </dict>
        </dict>
    </array>
</dict>
</plist>

SketchUp Make 2017 EN/SketchUp Make 2017 EN.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/MakepertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of SketchUp Make 2017. 

Based on: com.github.jps3.download.SketchUpPro

Locales can be specified.

Main changes are non-overridable year, removed superfluous CodeSignatureVerification from PKG.
</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.SketchUp Make 2017 EN</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>SketchUpMake2017-EN</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.4.1</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>URLTextSearcher</string>
            <key>Arguments</key>
            <dict>
                <key>url</key>
                <string>https://help.sketchup.com/en/downloading-older-versions</string>
                <key>result_output_var_name</key>
                <string>url</string>
                <key>re_pattern</key>
                <string>https://www.sketchup.com/sketchup/2017/en/sketchupmake-2017-[\S]+\-[\S]+\-[\S]+\-en-dmg</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>URLDownloader</string>
            <key>Arguments</key>
            <dict>
                <key>filename</key>
                <string>%NAME%.dmg</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
            <key>Arguments</key>
            <dict>
                <key>input_path</key>
                <string>%pathname%/SketchUp 2017/LayOut.app</string>
                <key>requirement</key>
                <string>anchor apple generic 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] = J8PVMCY7KL)</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
            <key>Arguments</key>
            <dict>
                <key>input_path</key>
                <string>%pathname%/SketchUp 2017/SketchUp.app</string>
                <key>requirement</key>
                <string>anchor apple generic 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] = J8PVMCY7KL)</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
            <key>Arguments</key>
            <dict>
                <key>input_path</key>
                <string>%pathname%/SketchUp 2017/Style Builder.app</string>
                <key>requirement</key>
                <string>anchor apple generic 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] = J8PVMCY7KL)</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>

Signiant App/Signiant App.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads latest version of Signiant App and imports into Munki.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.Signiant App</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>SigniantApp</string>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps</string>
        <key>pkginfo</key>
        <dict>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>The Signiant App connects your computer to Media Shuttle allowing you to transfer multiple files at once via high speed transfer. Download the latest version of the Signiant App to take advantage of the latest updates for Media Shuttle and Signiant's Transfer API.</string>
            <key>display_name</key>
            <string>Signiant App</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
            <key>unattended_install</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.2.0</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.Signiant App</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%pathname%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>
Signiant App/Signiant App.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads latest version of Signiant App</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.Signiant App</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>SigniantApp</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.2.0</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>URLTextSearcher</string>
            <key>Arguments</key>
            <dict>
                <key>url</key>
                <string>https://updates.signiant.com/signiant_app/signiant-app-info-mac.xml</string>
                <key>re_pattern</key>
                <string>&lt;file&gt;(.*)&lt;/file&gt;</string>
                <key>result_output_var_name</key>
                <string>match</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>URLDownloader</string>
            <key>Arguments</key>
            <dict>
                <key>url</key>
                <string>https://updates.signiant.com/signiant_app/%match%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
            <key>Arguments</key>
            <dict>
                <key>input_path</key>
                <string>%pathname%/Signiant App.app</string>
                <key>requirement</key>
                <string>anchor apple generic and identifier "com.signiant.Signiant-App" 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] = U6ZZ4QLU4Q)</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>
Shift/Shift.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of Shift and imports it into Munki.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.Shift</string>
    <key>Input</key>
    <dict>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>NAME</key>
        <string>Shift</string>
        <key>pkginfo</key>
        <dict>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>Toggle between multiple apps, and accounts, with just one click. Shift is the #1 way productive people stay productive.</string>
            <key>developer</key>
            <string>Shift Technologies Inc</string>
            <key>display_name</key>
            <string>Shift</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
            <key>unattended_uninstall</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.Shift</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%pathname%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>

Shift/Shift.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Download recipe for Shift.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.Shift</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>Shift</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.2.0</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>URLDownloader</string>
            <key>Arguments</key>
            <dict>
                <key>url</key>
                <string>https://update.tryshift.com</string>
                <key>filename</key>
                <string>%NAME%.dmg</string>
                <key>request_headers</key>
                <dict>
                    <key>user-agent</key>
                    <string>Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.2 Safari/605.1.15</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
            <key>Arguments</key>
            <dict>
                <key>input_path</key>
                <string>%pathname%/Shift.app</string>
                <key>requirement</key>
                <string>identifier "com.rdbrck.shift" and anchor apple generic and 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] = TYR24A9JU5</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>
Shared Processors/Shared Processors.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>Description</key>
	<string>Recipe stub for any Shared Processors in this directory.</string>
	<key>Identifier</key>
	<string>com.github.dataJAR-recipes.Shared Processors</string>
	<key>Input</key>
	<dict/>
	<key>MinimumVersion</key>
	<string>0.4.0</string>
	<key>Process</key>
	<array/>
</dict>
</plist>
Shared Processors/ReadMe.md METASEP
# DistributionPkgInfo

## Description
Parses a distribution pkg to pull additional information.

## Input Variables
- **pkg_path:**
    - **required:** True
    - **description:** Path to the PKG to parse.

## Output Variables
- **pkg_id:**
    - **description:** The package ID.
- **version:**
    - **description:** The version of the pkg from it's info.

---

# JSONFileReader

## Description
Parses a JSON file, returning the value of the supplied key.

Raising if the key is not found.

## Input Variables
- **json_key:**
    - **required:** True
    - **description:** Key to look for, and return the value of.
- **json_path:**
    - **required:** True
    - **description:** Path to the JSON file.

## Output Variables
- **json_value:**
    - **description:** Value of the JSON key.

ShareFile Sync/ShareFileSync.png METASEP

ShareFile Sync/ShareFile Sync.pkg.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest ShareFile Sync disk image and  builds a package.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.pkg.ShareFile Sync</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>ShareFile Sync</string>
    </dict>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.ShareFile Sync</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>DeprecationWarning</string>
            <key>Arguments</key>
            <dict>
                <key>warning_message</key>
                <string>ShareFile Sync has been replaced with Citrix Files for Mac. Recipes are available for Files for Mac.</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>

ShareFile Sync/ShareFile Sync.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest ShareFile Sync disk image and imports into Munki.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.ShareFile Sync</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>ShareFile Sync</string>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>pkginfo</key>
        <dict>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>category</key>
            <string>Applications</string>
            <key>developer</key>
            <string>ShareFile Sync</string>
            <key>description</key>
            <string>ShareFile Sync for Mac is designed to provide ShareFile customers with an easy way to access and synchronize personal folders from your ShareFile account to your local computer.</string>
            <key>display_name</key>
            <string>ShareFile Sync</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.2.0</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.ShareFile Sync</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>DeprecationWarning</string>
            <key>Arguments</key>
            <dict>
                <key>warning_message</key>
                <string>ShareFile Sync has been replaced with Citrix Files for Mac. Recipes are available for Files for Mac.</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>

ShareFile Sync/ShareFile Sync.jss.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest ShareFile Sync disk image and then uploads to the JSS.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.jss.ShareFile Sync</string>
    <key>Input</key>
    <dict>
        <key>CATEGORY</key>
        <string>Productivity</string>
        <key>GROUP_NAME</key>
        <string>%NAME%-update-smart</string>
        <key>GROUP_TEMPLATE</key>
        <string>SmartGroupTemplate.xml</string>
        <key>NAME</key>
        <string>ShareFile Sync</string>
        <key>POLICY_CATEGORY</key>
        <string>Testing</string>
        <key>POLICY_TEMPLATE</key>
        <string>PolicyTemplate.xml</string>
        <key>SELF_SERVICE_DESCRIPTION</key>
        <string>ShareFile Sync for Mac is designed to provide ShareFile customers with an easy way to access and synchronize personal folders from your ShareFile account to your local computer.</string>
        <key>SELF_SERVICE_ICON</key>
        <string>ShareFileSync.png</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.pkg.ShareFile Sync</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>DeprecationWarning</string>
            <key>Arguments</key>
            <dict>
                <key>warning_message</key>
                <string>ShareFile Sync has been replaced with Citrix Files for Mac. Recipes are available for Files for Mac.</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>

ShareFile Sync/ShareFile Sync.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Download recipe for ShareFile Sync.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.ShareFile Sync</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>ShareFileSync</string>
    </dict>
    <key>MinimumVersion</key>
    <string>1.0.0</string>
    <key>Process</key>
    <array>
		<dict>
			<key>Processor</key>
			<string>DeprecationWarning</string>
			<key>Arguments</key>
			<dict>
				<key>warning_message</key>
				<string>ShareFile Sync has been replaced with Citrix Files for Mac, recipes are available at: https://github.com/autopkg/dataJAR-recipes/tree/master/Citrix%20Files%20for%20Mac</string>
			</dict>
		</dict>
        <dict>   
            <key>Processor</key>   
            <string>StopProcessingIf</string>   
            <key>Arguments</key>   
            <dict>   
                <key>predicate</key>   
                <string>TRUEPREDICATE</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>
ShareFile Desktop/ShareFileDesktop.png METASEP

ShareFile Desktop/ShareFileDesktop-SmartGroupTemplate.xml METASEP
<computer_group>
	<name>%group_name%</name>
	<is_smart>true</is_smart>
	<criteria>
		<criterion>
			<name>Application Title</name>
			<priority>0</priority>
			<and_or>and</and_or>
			<search_type>is</search_type>
			<value>%JSS_INVENTORY_NAME%</value>
		</criterion>
		<criterion>
			<name>ShareFileDesktopVersion</name>
			<priority>1</priority>
			<and_or>and</and_or>
			<search_type>is not</search_type>
			<value>%VERSION%</value>
		</criterion>
		<criterion>
			<name>Computer Group</name>
			<priority>2</priority>
			<and_or>and</and_or>
			<search_type>member of</search_type>
			<value>Testing</value>
		</criterion>
	</criteria>
</computer_group>

ShareFile Desktop/ShareFileDesktop-CFBundleVersionExtensionAttribute.xml METASEP
<computer_extension_attribute>
	<name>ShareFileDesktopVersion</name>
	<description />
	<data_type>String</data_type>
	<input_type>
		<type>script</type>
		<platform>Mac</platform>
		<script>#!/bin/assh
CFBundleVersion=""
if [ -f "/Applications/ShareFile Desktop.app/Contents/Info.plist" ]; then
	CFBundleVersion=$(defaults read "/Applications/ShareFile Desktop.app/Contents/Info.plist" CFBundleVersion)
fi
echo "&lt;result&gt;$CFBundleVersion&lt;/result&gt;"
exit 0
		</script>
	</input_type>
	<inventory_display>Extension Attributes</inventory_display>
	<recon_display>Extension Attributes</recon_display>
</computer_extension_attribute>

ShareFile Desktop/ShareFile Desktop.pkg.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of ShareFile Desktop and creates a package.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.pkg.ShareFile Desktop</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>ShareFileDesktop</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.ShareFile Desktop</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>AppDmgVersioner</string>
            <key>Arguments</key>
            <dict>
                <key>dmg_path</key>
                <string>%pathname%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PkgRootCreator</string>
            <key>Arguments</key>
            <dict>
                <key>pkgroot</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%</string>
                <key>pkgdirs</key>
                <dict>
                    <key>Applications</key>
                    <string>0775</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>Versioner</string>
            <key>Arguments</key>
            <dict>
                <key>input_plist_path</key>
                <string>%pathname%/%app_name%/Contents/Info.plist</string>
                <key>plist_version_key</key>
                <string>CFBundleVersion</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>Copier</string>
            <key>Arguments</key>
            <dict>
                <key>source_path</key>
                <string>%pathname%/%app_name%</string>
                <key>destination_path</key>
                <string>%pkgroot%/Applications/%app_name%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PkgCreator</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_request</key>
                <dict>
                    <key>pkgname</key>
                    <string>%NAME%-%version%</string>
                    <key>version</key>
                    <string>%version%</string>
                    <key>id</key>
                    <string>%bundleid%</string>
                    <key>options</key>
                    <string>purge_ds_store</string>
                    <key>chown</key>
                    <array>
                        <dict>
                            <key>path</key>
                            <string>Applications</string>
                            <key>user</key>
                            <string>root</string>
                            <key>group</key>
                            <string>admin</string>
                        </dict>
                    </array>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PathDeleter</string>
            <key>Arguments</key>
            <dict>
                <key>path_list</key>
                <array>
                    <string>%RECIPE_CACHE_DIR%/%NAME%/</string>
                </array>
            </dict>
        </dict>
    </array>
</dict>
</plist>

ShareFile Desktop/ShareFile Desktop.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of ShareFile Desktop and imports into Munki.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.ShareFile Desktop</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>ShareFileDesktop</string>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>pkginfo</key>
        <dict>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>Secure, one-click access to ShareFile without opening a web browser. Focused on speed and convenience, this app is a flexible way to manage your ShareFile account with drag and drop functionality, keyboard shortcut support, native interactions and adjustable, modular windows.</string>
            <key>display_name</key>
            <string>ShareFile Desktop</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.2.0</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.ShareFile Desktop</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>MunkiPkginfoMerger</string>
            <key>Arguments</key>
            <dict>
                <key>additional_pkginfo</key>
                <dict>
                    <key>version</key>
                    <string>%version%</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>AppDmgVersioner</string>
            <key>Arguments</key>
            <dict>
                <key>dmg_path</key>
                <string>%pathname%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%dmg_path%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
                <key>version_comparison_key</key>
                <string>CFBundleVersion</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>

ShareFile Desktop/ShareFile Desktop.jss.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the current release version of ShareFile Desktop and then uploads to the JSS</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.jss.ShareFile Desktop</string>
    <key>Input</key>
    <dict>
        <key>CATEGORY</key>
        <string>Productivity</string>
        <key>GROUP_NAME</key>
        <string>%NAME%-update-smart</string>
        <key>GROUP_TEMPLATE</key>
        <string>ShareFileDesktop-SmartGroupTemplate.xml</string>
        <key>NAME</key>
        <string>ShareFileDesktop</string>
        <key>POLICY_CATEGORY</key>
        <string>Testing</string>
        <key>POLICY_TEMPLATE</key>
        <string>PolicyTemplate.xml</string>
        <key>SELF_SERVICE_DESCRIPTION</key>
        <string>Secure, one-click access to ShareFile without opening a web browser. Focused on speed and convenience, this app is a flexible way to manage your ShareFile account with drag and drop functionality, keyboard shortcut support, native interactions and adjustable, modular windows.</string>
        <key>SELF_SERVICE_ICON</key>
        <string>ShareFileDesktop.png</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.pkg.ShareFile Desktop</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Arguments</key>
            <dict>
                <key>category</key>
                <string>%CATEGORY%</string>
                <key>extension_attributes</key>
                <array>
                    <dict>
                        <key>ext_attribute_path</key>
                        <string>ShareFileDesktop-CFBundleVersionExtensionAttribute.xml</string>
                    </dict>
                </array>
                <key>groups</key>
                <array>
                    <dict>
                        <key>name</key>
                        <string>%GROUP_NAME%</string>
                        <key>smart</key>
                        <true/>
                        <key>template_path</key>
                        <string>%GROUP_TEMPLATE%</string>
                    </dict>
                </array>
                <key>policy_category</key>
                <string>%POLICY_CATEGORY%</string>
                <key>policy_template</key>
                <string>%POLICY_TEMPLATE%</string>
                <key>prod_name</key>
                <string>ShareFile Desktop</string>
                <key>self_service_description</key>
                <string>%SELF_SERVICE_DESCRIPTION%</string>
                <key>self_service_icon</key>
                <string>%SELF_SERVICE_ICON%</string>
            </dict>
            <key>Processor</key>
            <string>JSSImporter</string>
        </dict>
    </array>
</dict>
</plist>

ShareFile Desktop/ShareFile Desktop.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads latest version of ShareFile Desktop</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.ShareFile Desktop</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>ShareFileDesktop</string>
        <key>SPARKLE_FEED_URL</key>
        <string>https://dl.sharefile.com/sfdesktopmac/updates.xml</string>
    </dict>
    <key>MinimumVersion</key>
    <string>1.1</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>DeprecationWarning</string>
            <key>Arguments</key>
            <dict>
                <key>warning_message</key>
                <string>This title has been replaced with Citrix Files for Mac, as such please use: https://github.com/autopkg/dataJAR-recipes/tree/master/Citrix%20Files%20for%20Mac </string>
            </dict>
        </dict>
        <dict>   
            <key>Processor</key>   
            <string>StopProcessingIf</string>   
            <key>Arguments</key>   
            <dict>   
                <key>predicate</key>   
                <string>TRUEPREDICATE</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>

Sennheiser Wireless Systems Manager/Sennheiser Wireless Systems Manager.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>Description</key>
	<string>Downloads the latest version of the Sennheiser Wireless Systems Manager and imports it into Munki.</string>
	<key>Identifier</key>
	<string>com.github.dataJAR-recipes.munki.Sennheiser Wireless Systems Manager</string>
	<key>Input</key>
	<dict>
		<key>MUNKI_REPO_SUBDIR</key>
		<string>apps/%NAME%</string>
		<key>NAME</key>
		<string>WirelessSystemsManager</string>
		<key>pkginfo</key>
		<dict>
			<key>catalogs</key>
			<array>
				<string>testing</string>
			</array>
			<key>description</key>
			<string>Sennheiser's Wireless Systems Manager is a professional software solution for remotely monitoring and controlling wireless systems. Its intelligent features make the WSM the ideal choice for TV studios, live events, as well as musical productions. Wireless Systems Manager for Mac and Windows assists users in setting up and coordinating the frequencies of wireless microphones and personal monitors by having the most important parameters like charging levels handily displayed on a single screen.</string>
			<key>developer</key>
			<string>Sennheiser</string>
			<key>display_name</key>
			<string>Wireless Systems Manager</string>
			<key>name</key>
			<string>%NAME%</string>
			<key>unattended_install</key>
			<true/>
		</dict>
	</dict>
	<key>MinimumVersion</key>
	<string>0.6.1</string>
	<key>ParentRecipe</key>
	<string>com.github.dataJAR-recipes.download.Sennheiser Wireless Systems Manager</string>
	<key>Process</key>
	<array>
		<dict>
			<key>Processor</key>
			<string>MunkiImporter</string>
			<key>Arguments</key>
			<dict>
				<key>pkg_path</key>
				<string>%pathname%</string>
				<key>repo_subdirectory</key>
				<string>%MUNKI_REPO_SUBDIR%</string>
			</dict>
		</dict>
	</array>
</dict>
</plist>
Sennheiser Wireless Systems Manager/Sennheiser Wireless Systems Manager.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>Description</key>
	<string>Downloads the latest version of the Sennheiser Wireless Systems Manager.</string>
	<key>Identifier</key>
	<string>com.github.dataJAR-recipes.download.Sennheiser Wireless Systems Manager</string>
	<key>Input</key>
	<dict>
		<key>NAME</key>
		<string>WirelessSystemsManager</string>
	</dict>
	<key>MinimumVersion</key>
	<string>0.6.1</string>
	<key>Process</key>
	<array>
		<dict>
			<key>Processor</key>
			<string>URLTextSearcher</string>
			<key>Arguments</key>
			<dict>
				<key>re_pattern</key>
				<string>macOS\n.*?\"(/global_downloads/.*?/agreement)\"</string>
				<key>url</key>
				<string>https://en-uk.sennheiser.com/service-support-services-wireless-systems-manager#product-downloads-22799</string>
			</dict>
		</dict>
		<dict>
			<key>Processor</key>
			<string>URLTextSearcher</string>
			<key>Arguments</key>
			<dict>
				<key>re_pattern</key>
				<string>https://sennheiser-sites\.com/responsive-manuals/WSM/Sennheiser_WSM_Setup_.*?\.dmg</string>
				<key>url</key>
				<string>https://en-uk.sennheiser.com%match%</string>
				<key>result_output_var_name</key>
				<string>url</string>
			</dict>
		</dict>
		<dict>
			<key>Processor</key>
			<string>URLDownloader</string>
		</dict>
		<dict>
			<key>Processor</key>
			<string>EndOfCheckPhase</string>
		</dict>
        <dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
            <key>Arguments</key>
            <dict>
                <key>input_path</key>
                <string>%pathname%/WSM.app</string>
                <key>requirement</key>
                <string>identifier "com.Sennheiser.WSM" and anchor apple generic and 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] = XKNNU9WTL7</string>
            </dict>
        </dict>
	</array>
</dict>
</plist>
Sennheiser AMBEO Orbit/Sennheiser AMBEO Orbit.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of Sennheiser AMBEO Orbit and imports into Munki.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.Sennheiser AMBEO Orbit</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>AMBEO Orbit</string>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>        
        <key>pkginfo</key>
        <dict>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>The AMBEO Orbit is a Sennheiser’s free binaural panner plugin, designed to facilitate mixing immersive binaural content.</string>
            <key>display_name</key>
            <string>%NAME%</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
            <key>unattended_uninstall</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>1.0.0</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.Sennheiser AMBEO Orbit</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%found_filename%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PathDeleter</string>
            <key>Arguments</key>
            <dict>
                <key>path_list</key>
                <array>
                    <string>%RECIPE_CACHE_DIR%/extract</string>
                </array>
            </dict>
        </dict>
    </array>
</dict>
</plist>

Sennheiser AMBEO Orbit/Sennheiser AMBEO Orbit.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>Description</key>
	<string>Downloads the latest version of Sennheiser AMBEO Orbit.</string>
	<key>Identifier</key>
	<string>com.github.dataJAR-recipes.download.Sennheiser AMBEO Orbit</string>
	<key>Input</key>
	<dict>
		<key>NAME</key>
		<string>AMBEO Orbit</string>
	</dict>
	<key>MinimumVersion</key>
	<string>1.0.0</string>
	<key>Process</key>
	<array>
		<dict>
        	<key>Processor</key>
            <string>URLTextSearcher</string>
            <key>Arguments</key>
            <dict>
				<key>url</key>
				<string>https://en-us.sennheiser.com/ambeo-orbit</string>
				<key>re_pattern</key>
				<string>https://assets\.sennheiser\.com/global-downloads/file/\d.*/Sennheiser_AMBEO_Orbit_\S.*_MAC\.zip</string>
				<key>result_output_var_name</key>
				<string>url</string>
			</dict>
		</dict>
		<dict>
            <key>Processor</key>
            <string>URLDownloader</string>
        </dict>
		<dict>
			<key>Processor</key>
			<string>EndOfCheckPhase</string>
		</dict>
		<dict>
            <key>Processor</key>
            <string>Unarchiver</string>
            <key>Arguments</key>
            <dict>
                <key>archive_path</key>
                <string>%pathname%</string>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/extract</string>
                <key>purge_destination</key>
                <true/>
                <key>archive_format</key>
                <string>zip</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>FileFinder</string>
            <key>Arguments</key>
            <dict>
            	<key>pattern</key>
                <string>%RECIPE_CACHE_DIR%/extract/Install Sennheiser AMBEO Orbit*.pkg</string>
            </dict>
        </dict>
            <dict>
                <key>Processor</key>
                <string>CodeSignatureVerifier</string>
                <key>Arguments</key>
                <dict>
                    <key>input_path</key>
                    <string>%found_filename%</string>
                    <key>expected_authority_names</key>
                    <array>
                        <string>Developer ID Installer: Sennheiser electronic (XKNNU9WTL7)</string>
                        <string>Developer ID Certification Authority</string>
                        <string>Apple Root CA</string>
                    </array>
                </dict>
            </dict>
	</array>
</dict>
</plist>

Sennheiser AMBEO A-B Converter/Sennheiser AMBEO A-B Converter.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>Description</key>
	<string>Downloads the latest version of the Sennheiser AMBEO A-B Converter plugin and imports it into Munki.</string>
	<key>Identifier</key>
	<string>com.github.dataJAR-recipes.munki.Sennheiser AMBEO A-B Converter</string>
	<key>Input</key>
	<dict>
		<key>MUNKI_REPO_SUBDIR</key>
		<string>apps/%NAME%</string>
		<key>NAME</key>
		<string>AMBEO A-B Converter</string>
		<key>pkginfo</key>
		<dict>
			<key>catalogs</key>
			<array>
				<string>testing</string>
			</array>
			<key>description</key>
			<string>The AMBEO A-B Converter is the free tool that converts the output of the Sennheiser AMBEO VR Mic into Ambisonics B-Format. After the conversion it is directly compatible with the spatial audio format of both Youtube and Facebook 360 videos. The plugin supports both FuMa and ambiX output and has a specially tuned “Ambisonics Correction Filter” that improves spatial accuracy when used with the AMBEO VR Mic. It’s also possible to define the recording position and adjust the orientation to realign with the camera angle.</string>
			<key>developer</key>
			<string>Sennheiser</string>
			<key>display_name</key>
			<string>AMBEO A-B Converter</string>
			<key>name</key>
			<string>%NAME%</string>
			<key>unattended_install</key>
			<true/>
		</dict>
	</dict>
	<key>MinimumVersion</key>
	<string>0.6.1</string>
	<key>ParentRecipe</key>
	<string>com.github.dataJAR-recipes.download.Sennheiser AMBEO A-B Converter</string>
	<key>Process</key>
	<array>
		<dict>
			<key>Processor</key>
			<string>MunkiImporter</string>
			<key>Arguments</key>
			<dict>
				<key>pkg_path</key>
				<string>%found_filename%</string>
				<key>repo_subdirectory</key>
				<string>%MUNKI_REPO_SUBDIR%</string>
			</dict>
		</dict>
        <dict>
            <key>Processor</key>
            <string>PathDeleter</string>
            <key>Arguments</key>
            <dict>
                <key>path_list</key>
                <array>
                    <string>%RECIPE_CACHE_DIR%/extract</string>
                </array>
            </dict>
        </dict>
	</array>
</dict>
</plist>

Sennheiser AMBEO A-B Converter/Sennheiser AMBEO A-B Converter.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>Description</key>
	<string>Downloads the latest version of the Sennheiser AMBEO A-B Converter plugin.</string>
	<key>Identifier</key>
	<string>com.github.dataJAR-recipes.download.Sennheiser AMBEO A-B Converter</string>
	<key>Input</key>
	<dict>
		<key>NAME</key>
		<string>AMBEO A-B Converter</string>
	</dict>
	<key>MinimumVersion</key>
	<string>0.6.1</string>
	<key>Process</key>
	<array>
		<dict>
			<key>Processor</key>
			<string>URLTextSearcher</string>
			<key>Arguments</key>
			<dict>
				<key>url</key>
				<string>https://en-uk.sennheiser.com/ambeo-abconverter</string>
				<key>re_pattern</key>
				<string>https://assets.sennheiser.com/global-downloads/file/\d.*/Sennheiser_AMBEO_A-B_Converter_\S.*_MAC.zip</string>
				<key>result_output_var_name</key>
				<string>url</string>
			</dict>
		</dict>
		<dict>
			<key>Processor</key>
			<string>URLDownloader</string>
		</dict>
		<dict>
			<key>Processor</key>
			<string>EndOfCheckPhase</string>
		</dict>
		<dict>
			<key>Processor</key>
			<string>Unarchiver</string>
			<key>Arguments</key>
			<dict>
				<key>archive_path</key>
				<string>%pathname%</string>
				<key>destination_path</key>
				<string>%RECIPE_CACHE_DIR%/extract</string>
				<key>purge_destination</key>
				<true/>
				<key>archive_format</key>
				<string>zip</string>
			</dict>
		</dict>
		<dict>
			<key>Processor</key>
			<string>FileFinder</string>
			<key>Arguments</key>
			<dict>
				<key>pattern</key>
				<string>%RECIPE_CACHE_DIR%/extract/Install Sennheiser AMBEO VR Mic A-B Converter*.pkg</string>
			</dict>
		</dict>
		<dict>
			<key>Processor</key>
			<string>CodeSignatureVerifier</string>
			<key>Arguments</key>
			<dict>
				<key>input_path</key>
				<string>%found_filename%</string>
				<key>expected_authority_names</key>
				<array>
					<string>Developer ID Installer: Sennheiser electronic (XKNNU9WTL7)</string>
					<string>Developer ID Certification Authority</string>
					<string>Apple Root CA</string>
				</array>
			</dict>
		</dict>
	</array>
</dict>
</plist>
SecureSafe/SecureSafe.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads latest version of SecureSafe for macOS and imports into Munki.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.SecureSafe</string>
    <key>Input</key>
    <dict>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>NAME</key>
        <string>SecureSafe</string>
        <key>pkginfo</key>
        <dict> 
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>SecureSafe is an award-winning online storage solution for companies and individuals alike. The cloud safe simplifies online file sharing and protects documents and passwords, offering a level of security comparable to a Swiss bank. SecureSafe is a unique solution thanks to the use of double encryption, triple data redundancy for each and every file and zero knowledge architecture, thus offering the highest level of privacy protection.</string>
            <key>display_name</key>
            <string>SecureSafe</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
            <key>unattended_uninstall</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>ParentRecipe</key>
    <string>com.github.andredb90.download.securesafe</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>PkgPayloadUnpacker</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_payload_path</key>
                <string>%RECIPE_CACHE_DIR%/unpacked/Core.pkg/Payload</string>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%/Applications</string>
                <key>purge_destination</key>
                <true/>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiInstallsItemsCreator</string>
            <key>Arguments</key>
            <dict>
                <key>faux_root</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%/</string>
                <key>installs_item_paths</key>
                <array>
                    <string>/Applications/SecureSafe.app</string>
                </array>
                <key>version_comparison_key</key>
                <string>CFBundleShortVersionString</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiPkginfoMerger</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PlistReader</string>
            <key>Arguments</key>
            <dict>
                <key>info_path</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%/Applications/SecureSafe.app/Contents/Info.plist</string>
                <key>plist_keys</key>
                <dict>
                    <key>CFBundleShortVersionString</key>
                    <string>version</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiPkginfoMerger</string>
            <key>Arguments</key>
            <dict>
                <key>additional_pkginfo</key>
                <dict>
                    <key>version</key>
                    <string>%version%</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%pathname%</string>
                <key>munkiimport_pkgname</key>
                <string>%MUNKIIMPORT_PKG_NAME%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PathDeleter</string>
            <key>Arguments</key>
            <dict>
                <key>path_list</key>
                <array>
                    <string>%RECIPE_CACHE_DIR%/%NAME%</string>
                    <string>%RECIPE_CACHE_DIR%/expanded</string>
                    <string>%RECIPE_CACHE_DIR%/unpacked</string>
                </array>
            </dict>
        </dict>
    </array>
</dict>
</plist>
Seafile Client/Seafile Client.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads latest version of Seafile Client and imports into Munki.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.Seafile Client</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>SeafileClient</string>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps</string>
        <key>pkginfo</key>
        <dict>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>Seafile is an open source cloud storage for your teams and organizations. (Dropbox like)</string>
            <key>display_name</key>
            <string>Seafile Client</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
            <key>unattended_install</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.2.0</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.Seafile Client</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%pathname%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>
Seafile Client/Seafile Client.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads latest version of Seafile Client for mac</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.Seafile Client</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>SeafileClient</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.2.0</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>URLTextSearcher</string>
            <key>Arguments</key>
            <dict>
                <key>url</key>
                <string>https://www.seafile.com/en/download/</string>
                <key>re_pattern</key>
                <string>https://s3.eu-central-1.amazonaws.com/download.seadrive.org/seafile-client-8.*.dmg</string>
                <key>result_output_var_name</key>
                <string>url</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>URLDownloader</string>
            <key>Arguments</key>
            <dict>
                <key>filename</key>
                <string>%NAME%.dmg</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
            <key>Arguments</key>
            <dict>
                <key>input_path</key>
                <string>%pathname%/Seafile Client.app</string>
                <key>requirement</key>
                <string>identifier "com.seafile.seafile-client" and anchor apple generic and 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] = "55LCTZ5354"</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>
Screencast-O-Matic/Screencast-O-Matic.png METASEP

Screencast-O-Matic/Screencast-O-Matic.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads latest version of Screencast-O-Matic for macOS and imports into Munki.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.Screencast-O-Matic</string>
    <key>Input</key>
    <dict>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>NAME</key>
        <string>Screencast-O-Matic</string>
        <key>pkginfo</key>
        <dict>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>Screencast-O-Matic is a screencasting and video editing software tool.</string>
            <key>display_name</key>
            <string>Screencast-O-Matic</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>postinstall_script</key>
            <string>#!/bin/bash
#
# Copyright (c) 2020, dataJAR Ltd.  All rights reserved.
#

# User needs read write access to app bundle

if [ -d "/Applications/Screencast-O-Matic v2.0.app" ]
then
    /bin/echo "Found /Applications/Screencast-O-Matic v2.0.app, Setting permissions..."
    /bin/chmod -R 777 "/Applications/Screencast-O-Matic v2.0.app"
fi</string>
            <key>unattended_install</key>
            <true/>
            <key>unattended_uninstall</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>ParentRecipe</key>
    <string>com.github.mlbz521.download.Screencast-O-Matic</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>Copier</string>
            <key>Arguments</key>
            <dict>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%/Applications/Screencast-O-Matic v2.0.app</string>
                <key>overwrite</key>
                <true/>
                <key>source_path</key>
                <string>%pathname%/Screencast-O-Matic v2.0.app</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>com.github.dataJAR-recipes.Shared Processors/TempFileFinder</string>
            <key>Arguments</key>
            <dict>
                <key>pattern</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%/Applications/Screencast-O-Matic v2.0.app/Contents/app/AppMain-*.jar</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>com.github.homebysix.VersionSplitter/VersionSplitter</string>
            <key>Arguments</key>
            <dict>
                <key>index</key>
                <integer>1</integer>
                <key>split_on</key>
                <string>AppMain-</string>
                <key>version</key>
                <string>%found_basename%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>com.github.homebysix.VersionSplitter/VersionSplitter</string>
            <key>Arguments</key>
            <dict>
                <key>index</key>
                <integer>0</integer>
                <key>split_on</key>
                <string>-</string>
                <key>version</key>
                <string>%version%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiInstallsItemsCreator</string>
            <key>Arguments</key>
            <dict>
                <key>faux_root</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%/</string>
                <key>installs_item_paths</key>
                <array>
                    <string>/Applications/Screencast-O-Matic v2.0.app/Contents/app/%found_basename%</string>
                </array>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiPkginfoMerger</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiPkginfoMerger</string>
            <key>Arguments</key>
            <dict>
                <key>additional_pkginfo</key>
                <dict>
                    <key>version</key>
                    <string>%version%</string>
                    <key>installcheck_script</key>
                    <string>#!/usr/local/munki/munki-python
# pylint: disable = invalid-name

'''
Copyright (c) 2021, dataJAR Ltd.  All rights reserved.
     Redistribution and use in source and binary forms, with or without
     modification, are permitted provided that the following conditions are met:
             * Redistributions of source code must retain the above copyright
               notice, this list of conditions and the following disclaimer.
             * Redistributions in binary form must reproduce the above copyright
               notice, this list of conditions and the following disclaimer in the
               documentation and/or other materials provided with the distribution.
             * Neither data JAR Ltd nor the names of its contributors may be used to
               endorse or promote products derived from this software without specific
               prior written permission.
     THIS SOFTWARE IS PROVIDED BY DATA JAR LTD 'AS IS' AND ANY
     EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
     WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
     DISCLAIMED. IN NO EVENT SHALL DATA JAR LTD BE LIABLE FOR ANY
     DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
     (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
     ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
     (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
     SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
SUPPORT FOR THIS PROGRAM
    This program is distributed 'as is' by DATA JAR LTD.
    For more information or support, please utilise the following resources:
            http://www.datajar.co.uk

DESCRIPTION

See docstring in main()

'''

from distutils.version import LooseVersion
import glob
import sys


def main():
    '''
        Gets the Screencast-O-Matic version from .jar files name as the info.plist is 1.0

        Exit 1 if Screencast-O-Matic is installed and newer than what we have in Munki.

    '''

    # pylint: disable = line-too-long
    jar_path = glob.glob('/Applications/Screencast-O-Matic*.app/Contents/app/AppMain-*-JRE*.jar')
    munki_version = '%version%'

    # If the .jar exists, then jar_path will have a value
    if jar_path:
        try:
            jar_version = jar_path[0].split('AppMain-')[1].split('-')[10]
        except IndexError:
            print("Encountered an error when ascertaining Screencast-O-Matic version, "
                  "proceeding with install...")
            sys.exit(0)
    else:
        print("Cannot find a .jar at: "
              "/Applications/Screencast-O-Matic*.app/Contents/app/AppMain-*-JRE*.jar, "
              "proceeding with install...")
        sys.exit(0)

    if LooseVersion(jar_version) &lt; LooseVersion(munki_version):
        print("Older version of Screencast-O-Matic found,  proceeding with install...")
        sys.exit(0)
    print("Version of Screencast-O-Matic same or newer than the munki version, skipping...")
    sys.exit(1)


if __name__ == '__main__':
    main()
</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%pathname%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PathDeleter</string>
            <key>Arguments</key>
            <dict>
                <key>path_list</key>
                <array>
                    <string>%RECIPE_CACHE_DIR%/%NAME%</string>
                </array>
            </dict>
        </dict>
    </array>
</dict>
</plist>
Scratch Desktop/Scratch Desktop.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>Description</key>
	<string>Download recipe for Scratch Desktop</string>
	<key>Identifier</key>
	<string>com.github.dataJAR-recipes.download.Scratch Desktop</string>
	<key>Input</key>
	<dict>
		<key>NAME</key>
		<string>Scratch Desktop</string>
		<key>USER_AGENT</key>
		<string>Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_2) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/12.0.2 Safari/605.1.15</string>
		<key>baseurl</key>
		<string>https://scratch.mit.edu</string>
	</dict>
	<key>MinimumVersion</key>
	<string>1.1</string>
	<key>Process</key>
	<array>
        <dict>
            <key>Arguments</key>
            <dict>
                <key>warning_message</key>
                <string>This recipe has been deprecated following the release of Scratch 3 in place of Scratch Desktop</string>
             </dict>
           	<key>Processor</key>
            <string>DeprecationWarning</string>
        </dict>
        <dict>   
            <key>Processor</key>   
            <string>StopProcessingIf</string>   
            <key>Arguments</key>   
            <dict>   
                <key>predicate</key>   
                <string>TRUEPREDICATE</string>
            </dict>
        </dict>
	</array>
</dict>
</plist>
Scratch 3/Scratch 3.png METASEP

Scratch 3/Scratch 3.pkg.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>Description</key>
	<string>Downloads the latest version of Scratch 3 and creates a package.</string>
	<key>Identifier</key>
	<string>com.github.dataJAR-recipes.pkg.Scratch 3</string>
	<key>Input</key>
	<dict>
		<key>NAME</key>
		<string>Scratch Desktop</string>
	</dict>
	<key>MinimumVersion</key>
	<string>1.0</string>
	<key>ParentRecipe</key>
	<string>com.github.dataJAR-recipes.download.Scratch 3</string>
	<key>Process</key>
	<array>
		<dict>
			<key>Arguments</key>
			<dict>
				<key>pkgdirs</key>
				<dict>
					<key>Applications</key>
					<string>0775</string>
				</dict>
				<key>pkgroot</key>
				<string>%RECIPE_CACHE_DIR%/%NAME%</string>
			</dict>
			<key>Processor</key>
			<string>PkgRootCreator</string>
		</dict>
		<dict>
			<key>Arguments</key>
			<dict>
				<key>destination_path</key>
				<string>%pkgroot%/Applications/Scratch 3.app</string>
				<key>source_path</key>
				<string>%RECIPE_CACHE_DIR%/downloads/%NAME%.dmg/Scratch 3.app</string>
			</dict>
			<key>Processor</key>
			<string>Copier</string>
		</dict>
		<dict>
			<key>Arguments</key>
			<dict>
				<key>dmg_path</key>
				<string>%RECIPE_CACHE_DIR%/downloads/%NAME%.dmg</string>
			</dict>
			<key>Processor</key>
			<string>AppDmgVersioner</string>
		</dict>
		<dict>
			<key>Arguments</key>
			<dict>
				<key>pkg_request</key>
				<dict>
					<key>chown</key>
					<array>
						<dict>
							<key>group</key>
							<string>admin</string>
							<key>path</key>
							<string>Applications</string>
							<key>user</key>
							<string>root</string>
						</dict>
					</array>
					<key>id</key>
					<string>%bundleid%</string>
					<key>options</key>
					<string>purge_ds_store</string>
					<key>pkgname</key>
					<string>%NAME%-%version%</string>
					<key>pkgroot</key>
					<string>%RECIPE_CACHE_DIR%/%NAME%</string>
					<key>version</key>
					<string>%version%</string>
				</dict>
			</dict>
			<key>Processor</key>
			<string>PkgCreator</string>
		</dict>
	</array>
</dict>
</plist>

Scratch 3/Scratch 3.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the current release version of Scratch 3 and imports into Munki.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.Scratch 3</string>
    <key>Input</key>
    <dict>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>NAME</key>
        <string>Scratch 3</string>
        <key>pkginfo</key>
        <dict>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
           	<key>category</key>
			<string>Programming</string>
			<key>developer</key>
			<string>MIT</string>
            <key>description</key>
            <string>Scratch is a free programming language and online community where you can create your own interactive stories, games, and animations.</string>
            <key>display_name</key>
            <string>Scratch 3</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>1.0</string>
    <key>ParentRecipe</key>
	<string>com.github.dataJAR-recipes.download.Scratch 3</string>
    <key>Process</key>
	<array>
		<dict>
			<key>Arguments</key>
			<dict>
				<key>pkg_path</key>
				<string>%RECIPE_CACHE_DIR%/downloads/%NAME%.dmg</string>
				<key>repo_subdirectory</key>
				<string>%MUNKI_REPO_SUBDIR%</string>
				<key>version_comparison_key</key>
				<string>CFBundleShortVersionString</string>
			</dict>
			<key>Processor</key>
			<string>MunkiImporter</string>
		</dict>
    </array>
</dict>
</plist>
Scratch 3/Scratch 3.jss.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>Description</key>
	<string>Downloads the current release version of Scratch 3 and then uploads to the JSS</string>
	<key>Identifier</key>
	<string>com.github.dataJAR-recipes.jss.Scratch 3</string>
	<key>Input</key>
	<dict>
		<key>CATEGORY</key>
		<string>Productivity</string>
		<key>GROUP_NAME</key>
		<string>%NAME%-update-smart</string>
		<key>GROUP_TEMPLATE</key>
		<string>SmartGroupTemplate.xml</string>
		<key>NAME</key>
		<string>Scratch Desktop</string>
		<key>POLICY_CATEGORY</key>
		<string>Testing</string>
		<key>POLICY_TEMPLATE</key>
		<string>PolicyTemplate.xml</string>
		<key>SELF_SERVICE_DESCRIPTION</key>
		<string>Scratch is a free programming language and online community where you can create your own interactive stories, games, and animations.</string>
		<key>SELF_SERVICE_ICON</key>
		<string>Abstract.png</string>
	</dict>
	<key>MinimumVersion</key>
	<string>0.6.1</string>
	<key>ParentRecipe</key>
	<string>com.github.dataJAR-recipes.pkg.Scratch 3</string>
	<key>Process</key>
	<array>
		<dict>
			<key>Arguments</key>
			<dict>
				<key>category</key>
				<string>%CATEGORY%</string>
				<key>groups</key>
				<array>
					<dict>
						<key>name</key>
						<string>%GROUP_NAME%</string>
						<key>smart</key>
						<true/>
						<key>template_path</key>
						<string>%GROUP_TEMPLATE%</string>
					</dict>
				</array>
				<key>policy_category</key>
				<string>%POLICY_CATEGORY%</string>
				<key>policy_template</key>
				<string>%POLICY_TEMPLATE%</string>
				<key>prod_name</key>
				<string>%NAME%</string>
				<key>self_service_description</key>
				<string>%SELF_SERVICE_DESCRIPTION%</string>
				<key>self_service_icon</key>
				<string>%SELF_SERVICE_ICON%</string>
			</dict>
			<key>Processor</key>
			<string>JSSImporter</string>
		</dict>
	</array>
</dict>
</plist>

Scratch 3/Scratch 3.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>Description</key>
	<string>Download recipe for Scratch 3</string>
	<key>Identifier</key>
	<string>com.github.dataJAR-recipes.download.Scratch 3</string>
	<key>Input</key>
	<dict>
		<key>NAME</key>
		<string>Scratch 3</string>
		<key>USER_AGENT</key>
		<string>Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_2) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/12.0.2 Safari/605.1.15</string>
		<key>baseurl</key>
		<string>https://scratch.mit.edu</string>
	</dict>
	<key>MinimumVersion</key>
	<string>1.0</string>
	<key>Process</key>
	<array>
		<dict>
			<key>Processor</key>
			<string>URLTextSearcher</string>
			<key>Arguments</key>
			<dict>
				<key>request_headers</key>
				<dict>
					<key>User-Agent</key>
					<string>%USER_AGENT%</string>
				</dict>
				<key>url</key>
				<string>%baseurl%/js/download.bundle.js</string>
				<key>re_pattern</key>
				<string>(https://downloads.scratch.mit.edu/desktop/Scratch.dmg)</string>
				<key>result_output_var_name</key>
				<string>url</string>
			</dict>
		</dict>
		<dict>
			<key>Processor</key>
			<string>URLDownloader</string>
			<key>Arguments</key>
			<dict>
			   <key>filename</key>
			   <string>%NAME%.dmg</string>
			</dict>
		</dict>
		<dict>
			<key>Processor</key>
			<string>EndOfCheckPhase</string>
		</dict>
		<dict>
	<key>Processor</key>
	<string>CodeSignatureVerifier</string>
	<key>Arguments</key>
	<dict>
		<key>input_path</key>
		<string>%RECIPE_CACHE_DIR%/downloads/%NAME%.dmg/Scratch 3.app</string>
		<key>requirement</key>
		<string>identifier "edu.mit.scratch.scratch-desktop" and anchor apple generic and 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] = W7AR3WMP87</string>
	</dict>
</dict>
	</array>
</dict>
</plist>
Scratch 2/Scratch2.png METASEP

Scratch 2/Scratch 2.pkg.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>Description</key>
	<string>Downloads the latest version of Scratch 2 and creates a package..</string>
	<key>Identifier</key>
	<string>com.github.dataJAR-recipes.pkg.Scratch 2</string>
	<key>Input</key>
	<dict>
		<key>NAME</key>
		<string>Scratch 2</string>
	</dict>
	<key>MinimumVersion</key>
	<string>0.2.0</string>
	<key>ParentRecipe</key>
	<string>com.github.aysiu.download.Scratch2</string>
	<key>Process</key>
	<array>
		<dict>
			<key>Arguments</key>
			<dict>
				<key>pkgdirs</key>
				<dict>
					<key>Applications</key>
					<string>0775</string>
				</dict>
				<key>pkgroot</key>
				<string>%RECIPE_CACHE_DIR%/%NAME%</string>
			</dict>
			<key>Processor</key>
			<string>PkgRootCreator</string>
		</dict>
		<dict>
			<key>Processor</key>
		   <string>Copier</string>
		   <key>Arguments</key>
		   <dict>
				<key>source_path</key>
				<string>%RECIPE_CACHE_DIR%/downloads/%NAME%.dmg/Install Scratch 2.app/Contents/Resources/Scratch 2</string>
			   <key>destination_path</key>
			   <string>%pkgroot%/Applications/Scratch 2.app</string>
			</dict>
		</dict>
		<dict>
            <key>Processor</key>
            <string>PlistReader</string>
            <key>Arguments</key>
            <dict>
                <key>info_path</key>
                <string>%pkgroot%/Applications/Scratch 2.app</string>
                <key>plist_keys</key>
                <dict>
                    <key>CFBundleShortVersionString</key>
                    <string>version</string>
                    <key>CFBundleIdentifier</key>
                    <string>bundleid</string>
                </dict>
            </dict>
        </dict>
		<dict>
			<key>Arguments</key>
			<dict>
				<key>pkg_request</key>
				<dict>
					<key>chown</key>
					<array>
						<dict>
							<key>group</key>
							<string>admin</string>
							<key>path</key>
							<string>Applications</string>
							<key>user</key>
							<string>root</string>
						</dict>
					</array>
					<key>id</key>
					<string>%bundleid%</string>
					<key>options</key>
					<string>purge_ds_store</string>
					<key>pkgname</key>
					<string>%NAME%-%version%</string>
					<key>pkgroot</key>
					<string>%RECIPE_CACHE_DIR%/%NAME%</string>
					<key>version</key>
					<string>%version%</string>
				</dict>
			</dict>
			<key>Processor</key>
			<string>PkgCreator</string>
		</dict>
	</array>
</dict>
</plist>

Scratch 2/Scratch 2.jss.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>Description</key>
	<string>Downloads the current release version of Scratch 2 and then uploads to the JSS</string>
	<key>Identifier</key>
	<string>com.github.dataJAR-recipes.jss.Scratch 2</string>
	<key>Input</key>
	<dict>
		<key>CATEGORY</key>
		<string>Progamming</string>
		<key>GROUP_NAME</key>
		<string>%NAME%-update-smart</string>
		<key>GROUP_TEMPLATE</key>
		<string>SmartGroupTemplate.xml</string>
		<key>NAME</key>
		<string>Scratch 2</string>
		<key>POLICY_CATEGORY</key>
		<string>Testing</string>
		<key>POLICY_TEMPLATE</key>
		<string>PolicyTemplate.xml</string>
		<key>SELF_SERVICE_DESCRIPTION</key>
		<string>Scratch is a free programming language and online community where you can create your own interactive stories, games, and animations.</string>
		<key>SELF_SERVICE_ICON</key>
		<string>Scratch2.png</string>
	</dict>
	<key>MinimumVersion</key>
	<string>0.2.0</string>
	<key>ParentRecipe</key>
	<string>com.github.dataJAR-recipes.pkg.Scratch 2</string>
	<key>Process</key>
	<array>
		<dict>
			<key>Arguments</key>
			<dict>
				<key>category</key>
				<string>%CATEGORY%</string>
				<key>groups</key>
				<array>
					<dict>
						<key>name</key>
						<string>%GROUP_NAME%</string>
						<key>smart</key>
						<true/>
						<key>template_path</key>
						<string>%GROUP_TEMPLATE%</string>
					</dict>
				</array>
				<key>policy_category</key>
				<string>%POLICY_CATEGORY%</string>
				<key>policy_template</key>
				<string>%POLICY_TEMPLATE%</string>
				<key>prod_name</key>
				<string>%NAME%</string>
				<key>self_service_description</key>
				<string>%SELF_SERVICE_DESCRIPTION%</string>
				<key>self_service_icon</key>
				<string>%SELF_SERVICE_ICON%</string>
				<key>version</key>
      			<string>%version%</string>
			</dict>
			<key>Processor</key>
			<string>JSSImporter</string>
		</dict>
	</array>
</dict>
</plist>

Sawgrass Print Manager/Sawgrass Print Manager.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of Sawgrass Print Manager and imports into Munki</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.Sawgrass Print Manager</string>
    <key>Input</key>
    <dict>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>NAME</key>
        <string>Sawgrass Print Manager</string>
        <key>pkginfo</key>
        <dict>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>Sawgrass Print Manager is sophisticated color management software designed to make things easy with simple setup, intuitive workflow, and powerful print controls.</string>
            <key>developer</key>
            <string>Sawgrass Technologies</string>
            <key>display_name</key>
            <string>Sawgrass Print Manager</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true></true>
            <key>unattended_uninstall</key>
            <true></true>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.5.0</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.Sawgrass Print Manager</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>FlatPkgUnpacker</string>
            <key>Arguments</key>
            <dict>
                <key>flat_pkg_path</key>
                <string>%pathname%</string>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/unpack</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PkgPayloadUnpacker</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_payload_path</key>
                <string>%RECIPE_CACHE_DIR%/unpack/Sawgrass_Print_Manager.pkg/Payload</string>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%</string>
                <key>purge_destination</key>
                <true/>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiInstallsItemsCreator</string>
            <key>Arguments</key>
            <dict>
                <key>faux_root</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%/</string>
                <key>installs_item_paths</key>
                <array>
                    <string>/Applications/Sawgrass Print Manager.app</string>
                </array>
                <key>version_comparison_key</key>
                <string>CFBundleShortVersionString</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiPkginfoMerger</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PlistReader</string>
            <key>Arguments</key>
            <dict>
                <key>info_path</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%/Applications/Sawgrass Print Manager.app/Contents/Info.plist</string>
                <key>plist_keys</key>
                <dict>
                    <key>CFBundleShortVersionString</key>
                    <string>version</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiPkginfoMerger</string>
            <key>Arguments</key>
            <dict>
                <key>additional_pkginfo</key>
                <dict>
                    <key>version</key>
                    <string>%version%</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%pathname%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PathDeleter</string>
            <key>Arguments</key>
            <dict>
                <key>path_list</key>
                <array>
                    <string>%RECIPE_CACHE_DIR%/%NAME%/</string>  
                    <string>%RECIPE_CACHE_DIR%/unpack/</string>                      
                </array>
            </dict>
        </dict>
    </array>
</dict>
</plist>
Sawgrass Print Manager/Sawgrass Print Manager.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of Sawgrass Print Manager</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.Sawgrass Print Manager</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>Sawgrass Print Manager</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.5.0</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>URLDownloader</string>
            <key>Arguments</key>
            <dict>
                <key>filename</key>
                <string>%NAME%.pkg</string>
                <key>url</key>
                <string>https://www.sawgrassink.com/spm/mac</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
            <key>Arguments</key>
            <dict>
                <key>input_path</key>
                <string>%pathname%</string>
                <key>expected_authority_names</key>
                <array>
                    <string>Developer ID Installer: Sawgrass Technologies, Inc. (2DD4HMHX5K)</string>
                    <string>Developer ID Certification Authority</string>
                    <string>Apple Root CA</string>
                </array>
            </dict>
        </dict>
    </array>
</dict>
</plist>
Sassafras KeyAccess/Sassafras KeyAccess.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest client installer for Sassafras KeyAccess and imports it into Munki.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.Sassafras KeyAccess</string>
    <key>Input</key>
    <dict>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>NAME</key>
        <string>SassafrasKeyAccess</string>
        <key>pkginfo</key>
        <dict>
            <key>blocking_applications</key>
            <array>
                <string>KeyAccess</string>
                <string>KeyCheckout</string>
                <string>KeyVerify</string>
            </array>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>developer</key>
            <string>Sassafras Software</string>
            <key>display_name</key>
            <string>Sassafras KeyAccess</string>
            <key>description</key>
            <string>Sassafras KeyAccess client software can connect devices to your KeyServer.</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>display_name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
            <key>unattended_uninstall</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.3.0</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.Sassafras KeyAccess</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>FlatPkgUnpacker</string>
            <key>Arguments</key>
            <dict>
                <key>flat_pkg_path</key>
                <string>%pathname%</string>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/unpack</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PkgPayloadUnpacker</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_payload_path</key>
                <string>%RECIPE_CACHE_DIR%/unpack/KeyAccess.pkg/Payload</string>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/pkgroot/Library</string>
                <key>purge_destination</key>
                <true/>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PkgPayloadUnpacker</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_payload_path</key>
                <string>%RECIPE_CACHE_DIR%/unpack/KeyCheckout.pkg/Payload</string>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/unpack/KeyCheckout</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>Copier</string>
            <key>Arguments</key>
            <dict>
                <key>source_path</key>
                <string>%RECIPE_CACHE_DIR%/unpack/KeyCheckout/KeyAccess/KeyCheckout.app</string>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/pkgroot/Library/KeyAccess/KeyCheckout.app</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PkgPayloadUnpacker</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_payload_path</key>
                <string>%RECIPE_CACHE_DIR%/unpack/KeyVerify.pkg/Payload</string>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/unpack/KeyVerify</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>Copier</string>
            <key>Arguments</key>
            <dict>
                <key>source_path</key>
                <string>%RECIPE_CACHE_DIR%/unpack/KeyVerify/KeyAccess/KeyVerify.app</string>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/pkgroot/Library/KeyAccess/KeyVerify.app</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PkgPayloadUnpacker</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_payload_path</key>
                <string>%RECIPE_CACHE_DIR%/unpack/KeyAccessPref.pkg/Payload</string>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/unpack/KeyAccessPref</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>Copier</string>
            <key>Arguments</key>
            <dict>
                <key>source_path</key>
                <string>%RECIPE_CACHE_DIR%/unpack/KeyAccessPref/PreferencePanes/KeyAccessPref.prefPane</string>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/pkgroot/Library/PreferencePanes/KeyAccessPref.prefPane</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiInstallsItemsCreator</string>
            <key>Arguments</key>
            <dict>
                <key>faux_root</key>
                <string>%RECIPE_CACHE_DIR%/pkgroot/</string>
                <key>installs_item_paths</key>
                <array>
                    <string>/Library/KeyAccess/KeyAccess.app</string>
                    <string>/Library/KeyAccess/KeyCheckout.app</string>
                    <string>/Library/KeyAccess/KeyVerify.app</string>
                    <string>/Library/PreferencePanes/KeyAccessPref.prefPane</string>
                </array>
                <key>version_comparison_key</key>
                <string>CFBundleShortVersionString</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiPkginfoMerger</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PlistReader</string>
            <key>Arguments</key>
            <dict>
                <key>info_path</key>
                <string>%RECIPE_CACHE_DIR%/pkgroot/Library/KeyAccess/KeyAccess.app/Contents/Info.plist</string>
                <key>plist_keys</key>
                <dict>
                    <key>CFBundleShortVersionString</key>
                    <string>version</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiPkginfoMerger</string>
            <key>Arguments</key>
            <dict>
                <key>additional_pkginfo</key>
                <dict>
                    <key>version</key>
                    <string>%version%</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%pathname%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PathDeleter</string>
            <key>Arguments</key>
            <dict>
                <key>path_list</key>
                <array>
                    <string>%RECIPE_CACHE_DIR%/pkgroot/</string>  
                    <string>%RECIPE_CACHE_DIR%/unpack/</string>                      
                </array>
            </dict>
        </dict>
    </array>
</dict>
</plist>
Sassafras KeyAccess/Sassafras KeyAccess.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of Sassafras KeyAccess</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.Sassafras KeyAccess</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>SassafrasKeyAccess</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.2.0</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>URLTextSearcher</string>
            <key>Arguments</key>
            <dict>
                <key>url</key>
                <string>https://www.sassafras.com/client-download/</string>
                <key>re_pattern</key>
                <string>KeyAccess .* for Mac.*\"(/links/ksp-client-.*?-latest\.pkg)\">Mac</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>URLDownloader</string>
            <key>Arguments</key>
            <dict>
                <key>url</key>
                <string>http://www.sassafras.com/%match%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
            <key>Arguments</key>
            <dict>
                <key>input_path</key>
                <string>%pathname%</string>
                <key>expected_authority_names</key>
                <array>
                    <string>Developer ID Installer: Sassafras Software, Inc. (7Z2KSDFMVY)</string>
                    <string>Developer ID Certification Authority</string>
                    <string>Apple Root CA</string>
                </array>
            </dict>
        </dict>
    </array>
</dict>
</plist>
Sassafras Client/SassafrasClient.png METASEP

Sassafras Client/SassafrasClient.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest client installer for Sassafras AllSight/LabSight/KeySight and imports it into Munki.</string>
    <key>Comment</key>
    <string>Parent is com.github.jazzace.download.sassafrasclient</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.sassafrasclient</string>
    <key>Input</key>
    <dict>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/sassafrasclient</string>
        <key>NAME</key>
        <string>Sassafras Client</string>
        <key>pkginfo</key>
        <dict>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>developer</key>
            <string>Sassafras Software</string>
            <key>display_name</key>
            <string>Sassafras Client</string>
            <key>description</key>
            <string>KSP Client Installer from Sassafras Software</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>display_name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.3.0</string>
    <key>ParentRecipe</key>
    <string>com.github.jazzace.download.sassafrasclient</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>DeprecationWarning</string>
            <key>Arguments</key>
            <dict>
                <key>warning_message</key>
                <string>This recipe has been replaced by: https://github.com/autopkg/dataJAR-recipes/tree/master/Sassafras%20KeyAccess.</string>
            </dict>
        </dict>
        <dict>   
            <key>Processor</key>   
            <string>StopProcessingIf</string>   
            <key>Arguments</key>   
            <dict>   
                <key>predicate</key>   
                <string>TRUEPREDICATE</string>
            </dict>
        </dict>
        <dict>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%pathname%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
        </dict>
    </array>
</dict>
</plist>
STAN4J/STAN4J.pkg.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the current release version of STAN4J and builds a package. Taken from bnpl-recipes repo</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.pkg.stan4j</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>STAN4J</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.2.8</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.stan4j</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>PkgRootCreator</string>
            <key>Arguments</key>
            <dict>
                <key>pkgroot</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%</string>
                <key>pkgdirs</key>
                <dict>
                    <key>Applications</key>
                    <string>0775</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>Unarchiver</string>
            <key>Arguments</key>
            <dict>
                <key>purge_destination</key>
                <true/>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/zip</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>FileMover</string>
            <key>Arguments</key>
            <dict>
                <key>source</key>
                <string>%RECIPE_CACHE_DIR%/zip/stan/stan.app</string>
                <key>target</key>
                <string>%pkgroot%/Applications/STAN.app</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>FileMover</string>
            <key>Arguments</key>
            <dict>
                <key>source</key>
                <string>%RECIPE_CACHE_DIR%/zip/stan/configuration</string>
                <key>target</key>
                <string>%pkgroot%/Applications/STAN.app/configuration</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>FileMover</string>
            <key>Arguments</key>
            <dict>
                <key>source</key>
                <string>%RECIPE_CACHE_DIR%/zip/stan/features</string>
                <key>target</key>
                <string>%pkgroot%/Applications/STAN.app/features</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>FileMover</string>
            <key>Arguments</key>
            <dict>
                <key>source</key>
                <string>%RECIPE_CACHE_DIR%/zip/stan/plugins</string>
                <key>target</key>
                <string>%pkgroot%/Applications/STAN.app/plugins</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>FileCreator</string>
            <key>Arguments</key>
            <dict>
                <key>file_content</key>
                <string>-startup
../../plugins/org.eclipse.equinox.launcher_1.3.0.v20120522-1813.jar
--launcher.library
../../plugins/org.eclipse.equinox.launcher.cocoa.macosx.x86_64_1.1.200.v20120913-144807
-vmargs
-Xmx512M
-Djava.awt.headless=true
-Dorg.eclipse.swt.internal.carbon.smallFonts
</string>
                <key>file_path</key>
                <string>%pkgroot%/Applications/STAN.app/Contents/MacOS/stan.ini</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>FileCreator</string>
            <key>Arguments</key>
            <dict>
                <key>file_content</key>
                <string>#Product Runtime Configuration File
osgi.splashPath=platform:/base/plugins/de.odysseus.stan.eclipse.rcp
eclipse.product=de.odysseus.stan.eclipse.rcp.product
osgi.bundles=org.eclipse.equinox.common@2:start,org.eclipse.core.runtime@start,org.eclipse.update.configurator@3:start
osgi.bundles.defaultStartLevel=4
osgi.instance.area.default=@user.home/Documents/workspace
</string>
                <key>file_path</key>
                <string>%pkgroot%/Applications/STAN.app/configuration/config.ini</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PlistReader</string>
            <key>Arguments</key>
            <dict>
                <key>info_path</key>
                <string>%pkgroot%/Applications/STAN.app</string>
                <key>plist_keys</key>
                <dict>
                    <key>CFBundleShortVersionString</key>
                    <string>version</string>
                    <key>CFBundleIdentifier</key>
                    <string>PKG_ID</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PkgCreator</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_request</key>
                <dict>
                    <key>pkgname</key>
                    <string>%NAME%-%version%</string>
                    <key>pkgdir</key>
                    <string>%RECIPE_CACHE_DIR%</string>
                    <key>id</key>
                    <string>%PKG_ID%</string>
                    <key>options</key>
                    <string>purge_ds_store</string>
                    <key>chown</key>
                    <array>
                        <dict>
                            <key>path</key>
                            <string>Applications</string>
                            <key>user</key>
                            <string>root</string>
                            <key>group</key>
                            <string>admin</string>
                        </dict>
                        <dict>
                            <key>path</key>
                            <string>Applications/STAN.app/Contents/MacOS/stan</string>
                            <key>user</key>
                            <string>root</string>
                            <key>group</key>
                            <string>admin</string>
                            <key>mode</key>
                            <string>755</string>
                        </dict>
                    </array>
                </dict>
            </dict>
        </dict>
    </array>
</dict>
</plist>

STAN4J/STAN4J.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the current release version of STAN4J, builds a package and imports it to Munki. Taken from bnpl-recipes repo</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.stan4j</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>STAN4J</string>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps</string>
        <key>pkginfo</key>
        <dict>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>category</key>
            <string>Utilities</string>
            <key>description</key>
            <string>Structure analysis tool for Java, brings together development and quality assurance in a natural way.</string>
            <key>developer</key>
            <string>Odysseus Software GmbH</string>
            <key>display_name</key>
            <string>STAN4J</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
            <key>unattended_uninstall</key>
            <true/>
            <key>uninstallable</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.4.3</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.pkg.stan4j</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Arguments</key>
            <dict>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
        </dict>
    </array>
</dict>
</plist>

STAN4J/STAN4J.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the current release version of STAN4J. Taken from bnpl-recipes repo</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.stan4j</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>STAN4J</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.2.0</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>URLTextSearcher</string>
            <key>Arguments</key>
            <dict>
                <key>url</key>
                <string>https://stan4j.com/download/app/</string>
                <key>re_pattern</key>
                <string>download.stan4j.com/app/stan-[^"]+macosx.cocoa.x86_64.zip</string>
                <key>result_output_var_name</key>
                <string>match</string>
                <key>request_headers</key>
                <dict>
                    <key>user-agent</key>
                    <string>Mozilla/5.0 (Macintosh; Intel Mac OS X 10.11; rv:46.0) Gecko/20100101 Firefox/46.0</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>URLDownloader</string>
            <key>Arguments</key>
            <dict>
                <key>url</key>
                <string>%match%</string>
                <key>CHECK_FILESIZE_ONLY</key>
                <true/>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
    </array>
</dict>
</plist>

SPEAR/SPEAR.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of SPEAR and imports it into Munki.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.SPEAR</string>
    <key>Input</key>
    <dict>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>NAME</key>
        <string>SPEAR</string>
        <key>pkginfo</key>
        <dict>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>SPEAR is an application for audio analysis, editing and synthesis. The analysis procedure (which is based on the traditional McAulay-Quatieri technique) attempts to represent a sound with many individual sinusoidal tracks (partials), each corresponding to a single sinusoidal wave with time varying frequency and amplitude.</string>
            <key>developer</key>
            <string>Michael Klingbeil</string>
            <key>display_name</key>
            <string>SPEAR</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
            <key>unattended_uninstall</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>1.0.0</string>
    <key>ParentRecipe</key>
    <string>com.github.hansen-m.download.SPEAR</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%pathname%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>
SMART Product Drivers and Ink/SMART Product Drivers and Ink.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of SMART Product Drivers and Ink and imports into Munki.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.SMARTProductDriversandInk</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>SMARTProductDriversandInk</string>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>pkginfo</key>
        <dict>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>Driver software for SMART Board interactive displays.</string>
            <key>display_name</key>
            <string>%NAME%</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
            <key>unattended_uninstall</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>1.0.0</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.SMARTProductDriversandInk</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>FlatPkgUnpacker</string>
            <key>Arguments</key>
            <dict>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/installer_unpack/</string>
                <key>flat_pkg_path</key>
                <string>%pathname%/*.pkg</string>
                <key>purge_destination</key>
                <true/>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PkgPayloadUnpacker</string>
            <key>Arguments</key>
            <dict>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/app_unpack/</string>
                <key>pkg_payload_path</key>
                <string>%RECIPE_CACHE_DIR%/installer_unpack/SMART_Product_Drivers.pkg/Payload</string>
                <key>purge_destination</key>
                <true/>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PlistReader</string>
            <key>Arguments</key>
            <dict>
                <key>info_path</key>
                <string>%RECIPE_CACHE_DIR%/app_unpack/Applications/SMART Technologies/SMART Settings.app/Contents/Info.plist</string>
                <key>plist_keys</key>
                <dict>
                    <key>CFBundleShortVersionString</key>
                    <string>version</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiInstallsItemsCreator</string>
            <key>Arguments</key>
            <dict>
                <key>faux_root</key>
                <string>%RECIPE_CACHE_DIR%/app_unpack</string>
                <key>installs_item_paths</key>
                <array>
                    <string>/Applications/SMART Technologies/SMART Settings.app</string>
                </array>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiPkginfoMerger</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiPkginfoMerger</string>
            <key>Arguments</key>
            <dict>
                <key>additional_pkginfo</key>
                <dict>
                    <key>minimum_os_version</key>
                    <string>10.13.0</string>
                    <key>version</key>
                    <string>%version%</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%pathname%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
                <key>version_comparison_key</key>
                <string>CFBundleShortVersionString</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PathDeleter</string>
            <key>Arguments</key>
            <dict>
                <key>path_list</key>
                <array>
                    <string>%RECIPE_CACHE_DIR%/installer_unpack/</string>
                    <string>%RECIPE_CACHE_DIR%/app_unpack/</string>
                </array>
            </dict>
        </dict>
    </array>
</dict>
</plist>
SMART Product Drivers and Ink/SMART Product Drivers and Ink.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of SMART Product Drivers and Ink.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.SMARTProductDriversandInk</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>SMARTProductDriversandInk</string>
        <key>USER_AGENT</key>
        <string>Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.116 Safari/537.36</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.2.0</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>URLTextSearcher</string>
            <key>Arguments</key>
            <dict>
                <key>re_pattern</key>
                <string>https://support\.smarttech\.com/docs/software/product-drivers-ink/(.*?)/en/home\.cshtml</string>
                <key>url</key>
                <string>https://support.smarttech.com/en/software/product-drivers-and-ink</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>URLTextSearcher</string>
            <key>Arguments</key>
            <dict>
                <key>re_pattern</key>
                <string>https://downloads\.smarttech\.com/software/driversink/.*?/mac/smartproductdrivers.*?\.dmg</string>
                <key>url</key>
                <string>https://support.smarttech.com/docs/software/product-drivers-ink/%match%/en/downloads/drink-mac-download.cshtml</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>URLDownloader</string>
            <key>Arguments</key>
            <dict>
                <key>url</key>
                <string>%match%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
            <key>Arguments</key>
            <dict>
                <key>input_path</key>
                <string>%pathname%/Install SMART Product Drivers.pkg</string>
                <key>expected_authority_names</key>
                <array>
                    <string>Developer ID Installer: SMART Technologies ULC (53V9BC2FMQ)</string>
                    <string>Developer ID Certification Authority</string>
                    <string>Apple Root CA</string>
                </array>
            </dict>
        </dict>
    </array>
</dict>
</plist>
SMART Education Software Web/SMART Education Software Web.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of SMART Education Software Web and imports into Munki</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.SMART Education Software Web</string>
    <key>Input</key>
    <dict>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>NAME</key>
        <string>SMART Education Software Web</string>
        <key>pkginfo</key>
        <dict>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>SMART Notebook Administrator Tools</string>
            <key>developer</key>
            <string>SMART Technologies ULC</string>
            <key>display_name</key>
            <string>SMART Education Software Web</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
            <key>unattended_uninstall</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.5.0</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.SMART Education Software Web</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Arguments</key>
            <dict>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/installer_unpack/</string>
                <key>flat_pkg_path</key>
                <string>%pathname%/*.pkg</string>
                <key>purge_destination</key>
                <string>true</string>
            </dict>
            <key>Processor</key>
            <string>FlatPkgUnpacker</string>
        </dict>
        <dict>
            <key>Arguments</key>
            <dict>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/app_unpack/</string>
                <key>pkg_payload_path</key>
                <string>%RECIPE_CACHE_DIR%/installer_unpack/SMART_Notebook.pkg/Payload</string>
                <key>purge_destination</key>
                <string>true</string>
            </dict>
            <key>Processor</key>
            <string>PkgPayloadUnpacker</string>
        </dict>
        <dict>
            <key>Arguments</key>
            <dict>
                <key>input_plist_path</key>
                <string>%RECIPE_CACHE_DIR%/app_unpack/Applications/SMART Technologies/Notebook.app/Contents/Info.plist</string>
                <key>plist_version_key</key>
                <string>CFBundleShortVersionString</string>
            </dict>
            <key>Processor</key>
            <string>Versioner</string>
        </dict>
        <dict>
            <key>Arguments</key>
            <dict>
                <key>faux_root</key>
                <string>%RECIPE_CACHE_DIR%/app_unpack</string>
                <key>installs_item_paths</key>
                <array>
                    <string>/Applications/SMART Technologies/Notebook.app</string>
                </array>
            </dict>
            <key>Processor</key>
            <string>MunkiInstallsItemsCreator</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiPkginfoMerger</string>
        </dict>
        <dict>
            <key>Arguments</key>
            <dict>
                <key>additional_pkginfo</key>
                <dict>
                    <key>minimum_os_version</key>
                    <string>10.13.0</string>
                    <key>version</key>
                    <string>%version%</string>
                </dict>
            </dict>
            <key>Processor</key>
            <string>MunkiPkginfoMerger</string>
        </dict>
        <dict>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%pathname%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
        </dict>
        <dict>
            <key>Arguments</key>
            <dict>
                <key>path_list</key>
                <array>
                    <string>%RECIPE_CACHE_DIR%/installer_unpack/</string>
                    <string>%RECIPE_CACHE_DIR%/app_unpack/</string>
                </array>
            </dict>
            <key>Processor</key>
            <string>PathDeleter</string>
        </dict>
    </array>
</dict>
</plist>

SMART Education Software Web/SMART Education Software Web.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of SMART Education Software Web</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.SMART Education Software Web</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>SMART Education Software Web</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.5.0</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Arguments</key>
            <dict>
                <key>re_pattern</key>
                <string>(https:\/\/downloads\.smarttech\.com\/software\/education\/\S*\/mac\/\S*\/smart\S*-web\.dmg)</string>
                <key>result_output_var_name</key>
                <string>match</string>
                <key>url</key>
                <string>https://www.smarttech.com/_api/SoftwareDownloadTypes?FolderID=%7B68EC019A-56BC-4E16-8464-6463C51D65D0%7D</string>
            </dict>
            <key>Processor</key>
            <string>URLTextSearcher</string>
        </dict>
        <dict>
            <key>Arguments</key>
            <dict>
                <key>url</key>
                <string>%match%</string>
            </dict>
            <key>Processor</key>
            <string>URLDownloader</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
        <dict>
            <key>Arguments</key>
            <dict>
                <key>expected_authority_names</key>
                <array>
                    <string>Developer ID Installer: SMART Technologies ULC (53V9BC2FMQ)</string>
                    <string>Developer ID Certification Authority</string>
                    <string>Apple Root CA</string>
                </array>
                <key>input_path</key>
                <string>%pathname%/*.pkg</string>
            </dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
        </dict>
    </array>
</dict>
</plist>

SF Symbols 2/SF Symbols 2.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>Description</key>
	<string>Downloads the latest version of SF Symbols 2 and imports into Munki</string>
	<key>Identifier</key>
	<string>com.github.dataJAR-recipes.munki.SF Symbols 2</string>
	<key>Input</key>
	<dict>
		<key>MUNKI_REPO_SUBDIR</key>
		<string>apps/%NAME%</string>
		<key>NAME</key>
		<string>SFSymbols2</string>
		<key>pkginfo</key>
		<dict>
			<key>catalogs</key>
			<array>
				<string>testing</string>
			</array>
			<key>description</key>
			<string>With over 3,100 symbols, SF Symbols is a library of iconography designed to integrate seamlessly with San Francisco, the system font for Apple platforms. Symbols come in nine weights and three scales, and automatically align with text labels. They can be exported and edited in vector graphics editing tools to create custom symbols with shared design characteristics and accessibility features. SF Symbols 3 features over 600 new symbols, enhanced color customization, a new inspector, and improved support for custom symbols.</string>
			<key>developer</key>
			<string>Apple</string>
			<key>display_name</key>
			<string>SF Symbols 2</string>
			<key>name</key>
			<string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
            <key>unattended_uninstall</key>
            <true/>
		</dict>
	</dict>
	<key>MinimumVersion</key>
	<string>0.5.0</string>
	<key>ParentRecipe</key>
	<string>com.github.dataJAR-recipes.download.SF Symbols 2</string>
	<key>Process</key>
	<array>
        <dict>
            <key>Processor</key>
            <string>FlatPkgUnpacker</string>
            <key>Arguments</key>
            <dict>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/unpack</string>
                <key>flat_pkg_path</key>
                <string>%pathname%/SF Symbols.pkg</string>
                <key>purge_destination</key>
                <true/>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PkgPayloadUnpacker</string>
            <key>Arguments</key>
            <dict>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%</string>
                <key>pkg_payload_path</key>
                <string>%RECIPE_CACHE_DIR%/unpack/SFSymbols.pkg/Payload</string>
                <key>purge_destination</key>
                <true/>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiInstallsItemsCreator</string>
            <key>Arguments</key>
            <dict>
                <key>faux_root</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%</string>
                <key>version_comparison_key</key>
                <string>CFBundleShortVersionString</string>
                <key>installs_item_paths</key>
                <array>
                    <string>/Applications/SF Symbols.app</string>
                </array>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiPkginfoMerger</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>Versioner</string>
            <key>Arguments</key>
            <dict>
                <key>input_plist_path</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%/Applications/SF Symbols.app/Contents/Info.plist</string>
                <key>plist_version_key</key>
                <string>CFBundleShortVersionString</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiPkginfoMerger</string>
            <key>Arguments</key>
            <dict>
                <key>additional_pkginfo</key>
                <dict>
                    <key>version</key>
                    <string>%version%</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%pathname%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PathDeleter</string>
            <key>Arguments</key>
            <dict>
                <key>path_list</key>
                <array>
                    <string>%RECIPE_CACHE_DIR%/%NAME%/</string>
                    <string>%RECIPE_CACHE_DIR%/unpack/</string>
                </array>
            </dict>
        </dict>
	</array>
</dict>
</plist>
SF Symbols 2/SF Symbols 2.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>Description</key>
	<string>Downloads the latest version of SF Symbols 2</string>
	<key>Identifier</key>
	<string>com.github.dataJAR-recipes.download.SF Symbols 2</string>
	<key>Input</key>
	<dict>
		<key>NAME</key>
		<string>SFSymbols2</string>
	</dict>
	<key>MinimumVersion</key>
	<string>0.5.0</string>
	<key>Process</key>
	<array>
		<dict>
			<key>Processor</key>
			<string>URLTextSearcher</string>
			<key>Arguments</key>
			<dict>
				<key>re_pattern</key>
				<string>https://devimages-cdn\.apple\.com/design/resources/download/SF-Symbols-2\..*?\.dmg</string>
				<key>url</key>
				<string>https://developer.apple.com/sf-symbols/</string>
			</dict>
		</dict>
		<dict>
			<key>Processor</key>
			<string>URLDownloader</string>
			<key>Arguments</key>
			<dict>
				<key>url</key>
				<string>%match%</string>
			</dict>
		</dict>
		<dict>
			<key>Processor</key>
			<string>EndOfCheckPhase</string>
		</dict>
		<dict>
			<key>Processor</key>
			<string>CodeSignatureVerifier</string>
			<key>Arguments</key>
			<dict>
				<key>input_path</key>
				<string>%pathname%/SF Symbols.pkg</string>
				<key>expected_authority_names</key>
				<array>
					<string>Development Update</string>
					<string>Apple Software Update Certification Authority</string>
					<string>Apple Root CA</string>
				</array>
			</dict>
		</dict>
	</array>
</dict>
</plist>
SF Pro Fonts/SF Pro Fonts.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of SF Pro Fonts and imports into Munki</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.SF Pro Fonts</string>
    <key>Input</key>
    <dict>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>NAME</key>
        <string>SF Pro Fonts</string>
        <key>pkginfo</key>
        <dict>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>This neutral, flexible, sans-serif typeface is the system font for iOS, iPad OS, macOS and tvOS. SF Pro features nine weights, variable optical sizes for optimal legibility, and includes a rounded variant. SF Pro supports over 150 languages across Latin, Greek, and Cyrillic scripts.</string>
            <key>developer</key>
            <string>Apple</string>
            <key>display_name</key>
            <string>SF Pro Fonts</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
            <key>unattended_uninstall</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.5.0</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.SF Pro Fonts</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%pathname%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>
SF Pro Fonts/SF Pro Fonts.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
    <dict>
        <key>Description</key>
        <string>Downloads the latest version of SF Pro Fonts</string>
        <key>Identifier</key>
        <string>com.github.dataJAR-recipes.download.SF Pro Fonts</string>
        <key>Input</key>
        <dict>
            <key>NAME</key>
            <string>SF Pro Fonts</string>
            <key>DOWNLOAD_URL</key>
            <string>https://devimages-cdn.apple.com/design/resources/download/SF-Pro.dmg</string>
        </dict>
        <key>MinimumVersion</key>
        <string>0.5.0</string>
        <key>Process</key>
        <array>
            <dict>
                <key>Processor</key>
                <string>URLDownloader</string>
                <key>Arguments</key>
                <dict>
                    <key>filename</key>
                    <string>%NAME%.dmg</string>
                    <key>url</key>
                    <string>%DOWNLOAD_URL%</string>
                </dict>
            </dict>
            <dict>
                <key>Processor</key>
                <string>EndOfCheckPhase</string>
            </dict>
            <dict>
                <key>Processor</key>
                <string>CodeSignatureVerifier</string>
                <key>Arguments</key>
                <dict>
                    <key>input_path</key>
                    <string>%pathname%/*.pkg</string>
                    <key>expected_authority_names</key>
                    <array>
                        <string>Software Update</string>
                        <string>Apple Software Update Certification Authority</string>
                        <string>Apple Root CA</string>
                    </array>
                </dict>
            </dict>
        </array>
    </dict>
</plist>
SF Mono Fonts/SF Mono Fonts.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of SF Mono Fonts and imports into Munki</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.SF Mono Fonts</string>
    <key>Input</key>
    <dict>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>NAME</key>
        <string>SF Mono Fonts</string>
        <key>pkginfo</key>
        <dict>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>This monospaced variant of San Francisco enables alignment between rows and columns of text, and is used in coding environments like Xcode. SF Mono features six weights and supports Latin, Greek, and Cyrillic scripts.</string>
            <key>developer</key>
            <string>Apple</string>
            <key>display_name</key>
            <string>SF Mono Fonts</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
            <key>unattended_uninstall</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.5.0</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.SF Mono Fonts</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%pathname%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
        </dict>
    </array>
    </dict>
</plist>
SF Mono Fonts/SF Mono Fonts.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
    <dict>
        <key>Description</key>
        <string>Downloads the latest version of SF Mono Fonts</string>
        <key>Identifier</key>
        <string>com.github.dataJAR-recipes.download.SF Mono Fonts</string>
        <key>Input</key>
        <dict>
            <key>NAME</key>
            <string>SF Mono Fonts</string>
            <key>DOWNLOAD_URL</key>
            <string>https://devimages-cdn.apple.com/design/resources/download/SF-Mono.dmg</string>
        </dict>
        <key>MinimumVersion</key>
        <string>0.5.0</string>
        <key>Process</key>
        <array>
            <dict>
                <key>Arguments</key>
                <dict>
                    <key>filename</key>
                    <string>%NAME%.dmg</string>
                    <key>url</key>
                    <string>%DOWNLOAD_URL%</string>
                </dict>
                <key>Processor</key>
                <string>URLDownloader</string>
            </dict>
            <dict>
                <key>Processor</key>
                <string>EndOfCheckPhase</string>
            </dict>
            <dict>
                <key>Arguments</key>
                <dict>
                    <key>input_path</key>
                    <string>%pathname%/*.pkg</string>
                    <key>expected_authority_names</key>
                    <array>
                        <string>Software Update</string>
                        <string>Apple Software Update Certification Authority</string>
                        <string>Apple Root CA</string>
                    </array>
                </dict>
                <key>Processor</key>
                <string>CodeSignatureVerifier</string>
            </dict>
        </array>
    </dict>
</plist>
SF Compact Fonts/SF Compact Fonts.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of SF Compact Fonts and imports into Munki</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.SF Compact Fonts</string>
    <key>Input</key>
    <dict>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>NAME</key>
        <string>SF Compact Fonts</string>
        <key>pkginfo</key>
        <dict>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>Sharing many features with SF Pro, SF Compact features an efficient, compact design that is optimized for small sizes and narrow columns. SF Compact is the system font for watchOS and includes a rounded variant.</string>
            <key>developer</key>
            <string>Apple</string>
            <key>display_name</key>
            <string>SF Compact Fonts</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
            <key>unattended_uninstall</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.5.0</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.SF Compact Fonts</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%pathname%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>
SF Compact Fonts/SF Compact Fonts.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
    <dict>
        <key>Description</key>
        <string>Downloads the latest version of SF Compact Fonts</string>
        <key>Identifier</key>
        <string>com.github.dataJAR-recipes.download.SF Compact Fonts</string>
        <key>Input</key>
        <dict>
            <key>NAME</key>
            <string>SF Compact Fonts</string>
            <key>DOWNLOAD_URL</key>
            <string>https://devimages-cdn.apple.com/design/resources/download/SF-Compact.dmg</string>
        </dict>
        <key>MinimumVersion</key>
        <string>0.5.0</string>
        <key>Process</key>
        <array>
            <dict>
                <key>Processor</key>
                <string>URLDownloader</string>
                <key>Arguments</key>
                <dict>
                    <key>filename</key>
                    <string>%NAME%.dmg</string>
                    <key>url</key>
                    <string>%DOWNLOAD_URL%</string>
                </dict>
            </dict>
            <dict>
                <key>Processor</key>
                <string>EndOfCheckPhase</string>
            </dict>
            <dict>
                <key>Processor</key>
                <string>CodeSignatureVerifier</string>
                <key>Arguments</key>
                <dict>
                    <key>input_path</key>
                    <string>%pathname%/*.pkg</string>
                    <key>expected_authority_names</key>
                    <array>
                        <string>Software Update</string>
                        <string>Apple Software Update Certification Authority</string>
                        <string>Apple Root CA</string>
                    </array>
                </dict>
            </dict>
        </array>
    </dict>
</plist>
SF Arabic Fonts/SF Arabic Fonts.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of SF Arabic Fonts and imports into Munki</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.SF Arabic Fonts</string>
    <key>Input</key>
    <dict>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>NAME</key>
        <string>SF Arabic Fonts</string>
        <key>pkginfo</key>
        <dict>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>A contemporary interpretation of the Naskh style with a rational and flexible design, this extension of San Francisco is the Arabic system font on Apple platforms. Like San Francisco, SF Arabic features nine weights and variable optical sizes that automatically adjust spacing and contrast based on the point size.</string>
            <key>developer</key>
            <string>Apple</string>
            <key>display_name</key>
            <string>SF Arabic Fonts</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
            <key>unattended_uninstall</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.5.0</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.SF Arabic Fonts</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%pathname%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>
SF Arabic Fonts/SF Arabic Fonts.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
    <dict>
        <key>Description</key>
        <string>Downloads the latest version of SF Arabic Fonts</string>
        <key>Identifier</key>
        <string>com.github.dataJAR-recipes.download.SF Arabic Fonts</string>
        <key>Input</key>
        <dict>
            <key>NAME</key>
            <string>SF Arabic Fonts</string>
            <key>DOWNLOAD_URL</key>
            <string>https://devimages-cdn.apple.com/design/resources/download/SF-Arabic.dmg</string>
        </dict>
        <key>MinimumVersion</key>
        <string>0.5.0</string>
        <key>Process</key>
        <array>
            <dict>
                <key>Processor</key>
                <string>URLDownloader</string>
                <key>Arguments</key>
                <dict>
                    <key>filename</key>
                    <string>%NAME%.dmg</string>
                    <key>url</key>
                    <string>%DOWNLOAD_URL%</string>
                </dict>
            </dict>
            <dict>
                <key>Processor</key>
                <string>EndOfCheckPhase</string>
            </dict>
            <dict>
                <key>Processor</key>
                <string>CodeSignatureVerifier</string>
                <key>Arguments</key>
                <dict>
                    <key>input_path</key>
                    <string>%pathname%/*.pkg</string>
                    <key>expected_authority_names</key>
                    <array>
                        <string>Software Update</string>
                        <string>Apple Software Update Certification Authority</string>
                        <string>Apple Root CA</string>
                    </array>
                </dict>
            </dict>
        </array>
    </dict>
</plist>
RingCentral Rooms/RingCentral Rooms.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of RingCentral Rooms</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.RingCentral Rooms</string>
    <key>Input</key>
    <dict>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/RingCentral</string>
        <key>NAME</key>
        <string>RingCentral Rooms</string>
        <key>pkginfo</key>
        <dict>
            <key>blocking_applications</key>
            <array>
                <string>RingCentralVideo</string>
            </array>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>RingCentral Rooms transforms your meeting spaces into dynamically enabled web conferencing destinations. Using existing off-the-shelf equipment, you can easily set up, hold, and manage web conferences with the highest quality “in-room” experience. Walk into any room and easily start and control a video meeting with one touch. Share presentations, documents, and other content wirelessly from your laptop. With Microsoft and Google Сalendar integrations, rooms can be reserved for ad hoc or pre-scheduled meetings.</string>
            <key>display_name</key>
            <string>RingCentral Rooms</string>
            <key>minimum_os_version</key>
            <string>10.14</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.2.0</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.RingCentral Rooms</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>FlatPkgUnpacker</string>
            <key>Arguments</key>
            <dict>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/unpack</string>
                <key>flat_pkg_path</key>
                <string>%pathname%</string>
                <key>purge_destination</key>
                <true/>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PkgPayloadUnpacker</string>
            <key>Arguments</key>
            <dict>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/Applications/</string>
                <key>pkg_payload_path</key>
                <string>%RECIPE_CACHE_DIR%/unpack/RingCentral_Rooms.pkg/Payload</string>
                <key>purge_destination</key>
                <true/>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiInstallsItemsCreator</string>
            <key>Arguments</key>
            <dict>
                <key>faux_root</key>
                <string>%RECIPE_CACHE_DIR%</string>
                <key>installs_item_paths</key>
                <array>
                    <string>/Applications/RingCentralVideo.app</string>
                </array>
            </dict>
        </dict>
       <dict>
            <key>Processor</key>
            <string>MunkiPkginfoMerger</string>
        </dict>
        <dict>
          <key>Processor</key>
          <string>Versioner</string>
          <key>Arguments</key>
          <dict>
              <key>input_plist_path</key>
              <string>%destination_path%/RingCentralVideo.app/Contents/Info.plist</string>
              <key>plist_version_key</key>
              <string>CFBundleShortVersionString</string>
          </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiPkginfoMerger</string>
            <key>Arguments</key>
            <dict>
                <key>additional_pkginfo</key>
                <dict>
                    <key>version</key>
                    <string>%version%</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%pathname%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PathDeleter</string>
            <key>Arguments</key>
            <dict>
                <key>path_list</key>
                <array>
                    <string>%RECIPE_CACHE_DIR%/Applications</string>
                    <string>%RECIPE_CACHE_DIR%/unpack</string>
                </array>
            </dict>
        </dict>
    </array>
</dict>
</plist>

RingCentral Rooms/RingCentral Rooms.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of RingCentral Rooms</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.RingCentral Rooms</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>RingCentral Rooms</string>
        <key>DOWNLOAD_URL</key>
        <string>https://downloads.ringcentral.com/rooms/mac/production/apps/RingCentralRoomsInstaller.pkg</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.2.0</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>URLDownloader</string>
            <key>Arguments</key>
            <dict>
                <key>url</key>
                <string>%DOWNLOAD_URL%</string>
                <key>filename</key>
                <string>%NAME%.pkg</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
            <key>Arguments</key>
            <dict>
                <key>input_path</key>
                <string>%pathname%</string>
                <key>expected_authority_names</key>
                <array>
                    <string>Developer ID Installer: RingCentral, Inc. (M932RC5J66)</string>
                    <string>Developer ID Certification Authority</string>
                    <string>Apple Root CA</string>
                </array>
            </dict>
        </dict>
    </array>
</dict>
</plist>

RingCentral Meetings Rooms/RingCentral Meetings Rooms.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of RingCentral Meetings Rooms</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.RingCentral Meetings Rooms</string>
    <key>Input</key>
    <dict>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/RingCentral</string>
        <key>NAME</key>
        <string>RingCentral Meetings Rooms</string>
        <key>pkginfo</key>
        <dict>
            <key>blocking_applications</key>
            <array>
                <string>RingCentralVideo</string>
            </array>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>RingCentral Meetings Rooms is the “Every Room” video conferencing solution. It is a next-generation cloud-based video conference room solution without the expensive proprietary hardware needed with traditional video conference room systems. It is easy to configure with off-the-shelf equipment and delivers HD video, audio,and web conferencing capabilities.</string>
            <key>display_name</key>
            <string>RingCentral Meetings Rooms</string>
            <key>minimum_os_version</key>
            <string>10.14</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.2.0</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.RingCentral Meetings Rooms</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>FlatPkgUnpacker</string>
            <key>Arguments</key>
            <dict>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/unpack</string>
                <key>flat_pkg_path</key>
                <string>%pathname%</string>
                <key>purge_destination</key>
                <true/>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PkgPayloadUnpacker</string>
            <key>Arguments</key>
            <dict>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/Applications/RingCentral Rooms.app</string>
                <key>pkg_payload_path</key>
                <string>%RECIPE_CACHE_DIR%/unpack/zp.pkg/Payload</string>
                <key>purge_destination</key>
                <true/>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiInstallsItemsCreator</string>
            <key>Arguments</key>
            <dict>
                <key>faux_root</key>
                <string>%RECIPE_CACHE_DIR%</string>
                <key>installs_item_paths</key>
                <array>
                    <string>/Applications/RingCentral Rooms.app</string>
                </array>
            </dict>
        </dict>
       <dict>
            <key>Processor</key>
            <string>MunkiPkginfoMerger</string>
        </dict>
        <dict>
          <key>Processor</key>
          <string>Versioner</string>
          <key>Arguments</key>
          <dict>
              <key>input_plist_path</key>
              <string>%destination_path%/Contents/Info.plist</string>
              <key>plist_version_key</key>
              <string>CFBundleShortVersionString</string>
          </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiPkginfoMerger</string>
            <key>Arguments</key>
            <dict>
                <key>additional_pkginfo</key>
                <dict>
                    <key>version</key>
                    <string>%version%</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%pathname%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PathDeleter</string>
            <key>Arguments</key>
            <dict>
                <key>path_list</key>
                <array>
                    <string>%RECIPE_CACHE_DIR%/Applications</string>
                    <string>%RECIPE_CACHE_DIR%/unpack</string>
                </array>
            </dict>
        </dict>
    </array>
</dict>
</plist>

RingCentral Meetings Rooms/RingCentral Meetings Rooms.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of RingCentral Meetings Rooms</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.RingCentral Meetings Rooms</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>RingCentral Meetings Rooms</string>
        <key>DOWNLOAD_URL</key>
        <string>https://downloads.ringcentral.com/RCM/RC/rooms/mac/RingCentralRoomsSetup.pkg</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.2.0</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>URLDownloader</string>
            <key>Arguments</key>
            <dict>
                <key>url</key>
                <string>%DOWNLOAD_URL%</string>
                <key>filename</key>
                <string>%NAME%.pkg</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
            <key>Arguments</key>
            <dict>
                <key>input_path</key>
                <string>%pathname%</string>
                <key>expected_authority_names</key>
                <array>
                    <string>Developer ID Installer: RingCentral, Inc. (M932RC5J66)</string>
                    <string>Developer ID Certification Authority</string>
                    <string>Apple Root CA</string>
                </array>
            </dict>
        </dict>
    </array>
</dict>
</plist>

RingCentral Classic/RingCentral Classic.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the current release version of RingCentral Classic and imports it to Munki.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.RingCentral Classic</string>
    <key>Input</key>
    <dict>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/RingCentral</string>
        <key>NAME</key>
        <string>RingCentral Classic</string>
        <key>pkginfo</key>
        <dict>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>The RingCentral Classic app provides an intuitive, unified experience that lets you message, video, and phone wherever you are.</string>
            <key>display_name</key>
            <string>RingCentral Classic</string>
            <key>minimum_os_version</key>
            <string>10.10</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
            <key>unattended_uninstall</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.2.0</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.RingCentral Classic</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%pathname%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>

RingCentral Classic/RingCentral Classic.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of RingCentral Classic</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.RingCentral Classic</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>RingCentral Classic</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.2.0</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>URLTextSearcher</string>
            <key>Arguments</key>
            <dict>
                <key>url</key>
                <string>https://www.ringcentral.com/apps/rc-classic</string>
                <key>re_pattern</key>
                <string>\"macOS\",\"link\":\"(https://downloads\.ringcentral\.com/.*?/.*?/GlipForMac)\"</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>URLDownloader</string>
            <key>Arguments</key>
            <dict>
                <key>filename</key>
                <string>%NAME%.dmg</string>
                <key>url</key>
                <string>%match%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
            <key>Arguments</key>
            <dict>
                <key>input_path</key>
                <string>%pathname%/Glip.app</string>
                <key>requirement</key>
                  <string>identifier "com.Glip.Glip" and anchor apple generic and 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] = M932RC5J66</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>

Rhinoceros/Rhinoceros.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the current release version of Rhinoceros and imports into Munki.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.Rhinoceros</string>
    <key>Input</key>
    <dict>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>NAME</key>
        <string>Rhinoceros</string>
        <key>pkginfo</key>
        <dict>
            <key>blocking_applications</key>
            <array>
                <string>Rhinoceros</string>
            </array>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>Rhino can create, edit, analyze, document, render, animate, and translate NURBS curves, surfaces, and solids, point clouds, and polygon meshes.</string>
            <key>display_name</key>
            <string>Rhinoceros</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
            <key>unattended_uninstall</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>1.0</string>
    <key>ParentRecipe</key>
	<string>com.github.hansen-m.download.Rhinoceros</string>
    <key>Process</key>
	<array>
		<dict>
            <key>Processor</key>
            <string>FileFinder</string>
            <key>Arguments</key>
            <dict>
                <key>pattern</key>
                <string>%RECIPE_CACHE_DIR%/downloads/rhino_*.dmg</string>
            </dict>
        </dict>
		<dict>
			<key>Arguments</key>
			<dict>
				<key>pkg_path</key>
				<string>%found_filename%</string>
				<key>repo_subdirectory</key>
				<string>%MUNKI_REPO_SUBDIR%</string>
				<key>version_comparison_key</key>
				<string>CFBundleShortVersionString</string>
			</dict>
			<key>Processor</key>
			<string>MunkiImporter</string>
		</dict>
    </array>
</dict>
</plist>
Rhinoceros 7/Rhinoceros 7.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the current release version of Rhinoceros and imports into Munki.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.Rhinoceros 7</string>
    <key>Input</key>
    <dict>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>NAME</key>
        <string>Rhinoceros</string>
        <key>pkginfo</key>
        <dict>
            <key>blocking_applications</key>
            <array>
                <string>Rhino 7</string>
            </array>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>Rhino can create, edit, analyze, document, render, animate, and translate NURBS curves, surfaces, and solids, point clouds, and polygon meshes.</string>
            <key>display_name</key>
            <string>Rhinoceros 7</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
            <key>unattended_uninstall</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>1.0</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.Rhinoceros 7</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Arguments</key>
            <dict>
                <key>pattern</key>
                <string>%RECIPE_CACHE_DIR%/downloads/rhino_*.dmg</string>
            </dict>
            <key>Processor</key>
            <string>FileFinder</string>
        </dict>
        <dict>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%found_filename%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
                <key>version_comparison_key</key>
                <string>CFBundleShortVersionString</string>
            </dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
        </dict>
    </array>
</dict>
</plist>

Rhinoceros 7/Rhinoceros 7.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version Rhinoceros 7.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.Rhinoceros 7</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>Rhinoceros 7</string>
        <key>SEARCH_URL</key>
        <string>https://files.mcneel.com/rhino/7/mac/updates/commercialUpdates.xml</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.4.0</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>DeprecationWarning</string>
            <key>Arguments</key>
            <dict>
                <key>warning_message</key>
                <string>These recipes have been renamed Rhino 7, and can be found at: https://github.com/autopkg/dataJAR-recipes/tree/master/Rhino%207.</string>
            </dict>
        </dict>
        <dict>   
            <key>Processor</key>   
            <string>StopProcessingIf</string>   
            <key>Arguments</key>   
            <dict>   
                <key>predicate</key>   
                <string>TRUEPREDICATE</string>
            </dict>
        </dict>
        <dict>
            <key>Arguments</key>
            <dict>
                <key>re_pattern</key>
                <string>sparkle:version="(?P&lt;version&gt;([0-9.]+))</string>
                <key>url</key>
                <string>%SEARCH_URL%</string>
            </dict>
            <key>Processor</key>
            <string>URLTextSearcher</string>
        </dict>
        <dict>
            <key>Arguments</key>
            <dict>
                <key>re_pattern</key>
                <string>url="(?P&lt;url&gt;http.*.dmg)</string>
                <key>url</key>
                <string>%SEARCH_URL%</string>
            </dict>
            <key>Processor</key>
            <string>URLTextSearcher</string>
        </dict>
        <dict>
            <key>Arguments</key>
            <dict>
                <key>url</key>
                <string>%url%</string>
            </dict>
            <key>Processor</key>
            <string>URLDownloader</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
        <dict>
            <key>Arguments</key>
            <dict>
                <key>input_path</key>
                <string>%pathname%/Rhino 7.app</string>
                <key>requirement</key>
                <string>anchor apple generic and identifier "com.mcneel.rhinoceros.7" 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] = D6XDM4N99E)</string>
            </dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
        </dict>
    </array>
</dict>
</plist>

Rhino 7/Rhino 7.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the current release version of Rhino 7 and imports into Munki.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.Rhino 7</string>
    <key>Input</key>
    <dict>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>NAME</key>
        <string>Rhinoceros</string>
        <key>pkginfo</key>
        <dict>
            <key>blocking_applications</key>
            <array>
                <string>Rhino 7</string>
            </array>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>Rhino can create, edit, analyze, document, render, animate, and translate NURBS curves, surfaces, and solids, point clouds, and polygon meshes.</string>
            <key>display_name</key>
            <string>Rhino 7</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
            <key>unattended_uninstall</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>1.0</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.Rhino 7</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Arguments</key>
            <dict>
                <key>pattern</key>
                <string>%RECIPE_CACHE_DIR%/downloads/rhino_*.dmg</string>
            </dict>
            <key>Processor</key>
            <string>FileFinder</string>
        </dict>
        <dict>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%found_filename%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
                <key>version_comparison_key</key>
                <string>CFBundleShortVersionString</string>
            </dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
        </dict>
    </array>
</dict>
</plist>

Rhino 7/Rhino 7.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version Rhino 7.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.Rhino 7</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>Rhino 7</string>
        <key>SPARKLE_FEED_URL</key>
        <string>https://files.mcneel.com/rhino/7/mac/updates/commercialUpdates.xml</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.4.0</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>SparkleUpdateInfoProvider</string>
            <key>Arguments</key>
            <dict>
                <key>appcast_url</key>
                <string>%SPARKLE_FEED_URL%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>URLDownloader</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
            <key>Arguments</key>
            <dict>
                <key>input_path</key>
                <string>%pathname%/Rhino 7.app</string>
                <key>requirement</key>
                <string>anchor apple generic and identifier "com.mcneel.rhinoceros.7" 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] = D6XDM4N99E)</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>
Resolume Avenue/Resolume Avenue.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of Resolume Avenue and imports into Munki.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.Resolume Avenue</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>Resolume Avenue</string>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>pkginfo</key>
        <dict>
            <key>blocking_applications</key>
            <array>
                <string>Alley</string>
                <string>Avenue</string>
                <string>Wire</string>
            </array>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>Avenue is an instrument for VJs, AV performers and video artists. It puts all your media and effects right at your fingertips so you can quickly improvise your live visuals.</string>
            <key>display_name</key>
            <string>Resolume Avenue</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.2.0</string>
    <key>ParentRecipe</key>
    <string>com.github.amsysuk-recipes.download.Avenue</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>PkgCopier</string>
            <key>Arguments</key>
            <dict>
                <key>source_pkg</key>
                <string>%pathname%/Resolume Avenue Installer.pkg</string>
                <key>pkg_path</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%.pkg</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>FlatPkgUnpacker</string>
            <key>Arguments</key>
            <dict>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/pkg_unpack</string>
                <key>flat_pkg_path</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%.pkg</string>
                <key>purge_destination</key>
                <string>true</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PkgPayloadUnpacker</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_payload_path</key>
                <string>%RECIPE_CACHE_DIR%/pkg_unpack/Resolume_Avenue.pkg/Payload</string>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%/</string>
                <key>purge_destination</key>
                <string>true</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PkgPayloadUnpacker</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_payload_path</key>
                <string>%RECIPE_CACHE_DIR%/pkg_unpack/Resolume_Alley.pkg/Payload</string>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/pkg_unpack/Alley</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>Copier</string>
            <key>Arguments</key>
            <dict>
                <key>source_path</key>
                <string>%RECIPE_CACHE_DIR%/pkg_unpack/Alley/Applications/Resolume Alley</string>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%/Applications/Resolume Alley</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PkgPayloadUnpacker</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_payload_path</key>
                <string>%RECIPE_CACHE_DIR%/pkg_unpack/Wire.pkg/Payload</string>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/pkg_unpack/Wire</string>
            </dict>
        </dict>
       <dict>
            <key>Processor</key>
            <string>Copier</string>
            <key>Arguments</key>
            <dict>
                <key>source_path</key>
                <string>%RECIPE_CACHE_DIR%/pkg_unpack/Wire/Applications/Resolume Wire</string>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%/Applications/Resolume Wire</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiInstallsItemsCreator</string>
            <key>Arguments</key>
            <dict>
                <key>faux_root</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%</string>
                <key>installs_item_paths</key>
                <array>
                    <string>/Applications/Resolume Avenue/Avenue.app</string>
                    <string>/Applications/Resolume Alley/Alley.app</string>
                    <string>/Applications/Resolume Wire/Wire.app</string>
                </array>
                <key>version_comparison_key</key>
                <string>CFBundleVersion</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiPkginfoMerger</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PlistReader</string>
            <key>Arguments</key>
            <dict>
                <key>info_path</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%/Applications/Resolume Avenue/Avenue.app/Contents/Info.plist</string>
                <key>plist_keys</key>
                <dict>
                    <key>CFBundleVersion</key>
                    <string>version</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiPkginfoMerger</string>
            <key>Arguments</key>
            <dict>
                <key>additional_pkginfo</key>
                <dict>
                    <key>version</key>
                    <string>%version%</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%pkg_path%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PathDeleter</string>
            <key>Arguments</key>
            <dict>
                <key>path_list</key>
                <array>
                    <string>%RECIPE_CACHE_DIR%/%NAME%</string>
                    <string>%RECIPE_CACHE_DIR%/pkg_unpack</string>
                </array>
            </dict>
        </dict>
    </array>
</dict>
</plist>

Resolume Arena/Resolume Arena.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of Resolume Arena and imports into Munki.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.Resolume Arena</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>Resolume Arena</string>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>pkginfo</key>
        <dict>
            <key>blocking_applications</key>
            <array>
                <string>Alley</string>
                <string>Arena</string>
                <string>Wire</string>
            </array>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>Arena has everything Avenue has, plus advanced options for projection mapping and blending projectors. Control it from a lighting desk and sync to the DJ via SMPTE timecode.</string>
            <key>display_name</key>
            <string>Resolume Arena</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.2.0</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.Resolume Arena</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>PkgCopier</string>
            <key>Arguments</key>
            <dict>
                <key>source_pkg</key>
                <string>%pathname%/Resolume Arena Installer.pkg</string>
                <key>pkg_path</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%.pkg</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>FlatPkgUnpacker</string>
            <key>Arguments</key>
            <dict>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/pkg_unpack</string>
                <key>flat_pkg_path</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%.pkg</string>
                <key>purge_destination</key>
                <string>true</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PkgPayloadUnpacker</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_payload_path</key>
                <string>%RECIPE_CACHE_DIR%/pkg_unpack/Resolume_Arena.pkg/Payload</string>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%/</string>
                <key>purge_destination</key>
                <string>true</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PkgPayloadUnpacker</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_payload_path</key>
                <string>%RECIPE_CACHE_DIR%/pkg_unpack/Resolume_Alley.pkg/Payload</string>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/pkg_unpack/Alley</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>Copier</string>
            <key>Arguments</key>
            <dict>
                <key>source_path</key>
                <string>%RECIPE_CACHE_DIR%/pkg_unpack/Alley/Applications/Resolume Alley</string>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%/Applications/Resolume Alley</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PkgPayloadUnpacker</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_payload_path</key>
                <string>%RECIPE_CACHE_DIR%/pkg_unpack/Wire.pkg/Payload</string>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/pkg_unpack/Wire</string>
            </dict>
        </dict>
       <dict>
            <key>Processor</key>
            <string>Copier</string>
            <key>Arguments</key>
            <dict>
                <key>source_path</key>
                <string>%RECIPE_CACHE_DIR%/pkg_unpack/Wire/Applications/Resolume Wire</string>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%/Applications/Resolume Wire</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiInstallsItemsCreator</string>
            <key>Arguments</key>
            <dict>
                <key>faux_root</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%</string>
                <key>installs_item_paths</key>
                <array>
                    <string>/Applications/Resolume Arena/Arena.app</string>
                    <string>/Applications/Resolume Alley/Alley.app</string>
                    <string>/Applications/Resolume Wire/Wire.app</string>
                </array>
                <key>version_comparison_key</key>
                <string>CFBundleVersion</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiPkginfoMerger</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PlistReader</string>
            <key>Arguments</key>
            <dict>
                <key>info_path</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%/Applications/Resolume Arena/Arena.app/Contents/Info.plist</string>
                <key>plist_keys</key>
                <dict>
                    <key>CFBundleVersion</key>
                    <string>version</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiPkginfoMerger</string>
            <key>Arguments</key>
            <dict>
                <key>additional_pkginfo</key>
                <dict>
                    <key>version</key>
                    <string>%version%</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%pkg_path%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PathDeleter</string>
            <key>Arguments</key>
            <dict>
                <key>path_list</key>
                <array>
                    <string>%RECIPE_CACHE_DIR%/%NAME%</string>
                    <string>%RECIPE_CACHE_DIR%/pkg_unpack</string>
                </array>
            </dict>
        </dict>
    </array>
</dict>
</plist>
Resolume Arena/Resolume Arena.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of Resolume Arena.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.Resolume Arena</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>Resolume Arena</string>
        <key>CHECK_PAGE_URL</key>
        <string>https://resolume.com/download/?file=latest_arena</string>
        <key>DOWNLOAD_PAGE_URL</key>
        <string>https://resolume.com/download</string>
        <key>USER_AGENT</key>
        <string>Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_3) AppleWebKit/536.28.10 (KHTML, like Gecko) Version/6.0.3 Safari/536.28.10</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.4.1</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>URLTextSearcher</string>
            <key>Arguments</key>
            <dict>
                <key>url</key>
                <string>%CHECK_PAGE_URL%</string>
                <key>result_output_var_name</key>
                <string>url</string>
                <key>re_pattern</key>
                <string>//.*\..*\..*/Resolume_Arena.*\.dmg</string>
                <key>re_flags</key>
                <array>
                    <string>IGNORECASE</string>
                </array>
                <key>request_headers</key>
                <dict>
                    <key>user-agent</key>
                    <string>%USER_AGENT%</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>URLDownloader</string>
            <key>Arguments</key>
            <dict>
                <key>url</key>
                <string>https:%url%</string>
                <key>filename</key>
                <string>%NAME%.dmg</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
        <dict>
         <key>Processor</key>
          <string>CodeSignatureVerifier</string>
          <key>Arguments</key>
          <dict>
              <key>input_path</key>
               <string>%pathname%/Resolume Arena Installer.pkg</string>
               <key>expected_authority_names</key>
               <array>
                   <string>Developer ID Installer: Resolume (Z9Y8N6Q4L8)</string>
                   <string>Developer ID Certification Authority</string>
                    <string>Apple Root CA</string>
               </array>
          </dict>
        </dict>
    </array>
</dict>
</plist>
RemotePCViewer/RemotePCViewer.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of RemotePCViewer and imports it into Munki.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.RemotePCViewer</string>
    <key>Input</key>
    <dict>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>NAME</key>
        <string>RemotePCViewer</string>
        <key>pkginfo</key>
        <dict>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>The best remote access and remote desktop solution for PC, Mac and Linux.</string>
            <key>developer</key>
            <string>IDrive Inc</string>
            <key>display_name</key>
            <string>RemotePCViewer</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>1.0.0</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.RemotePCViewer</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>FlatPkgUnpacker</string>
            <key>Arguments</key>
            <dict>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/unpack</string>
                <key>flat_pkg_path</key>
                <string>%pathname%/RemotePCViewer.pkg</string>
                <key>purge_destination</key>
                <true/>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PkgRootCreator</string>
            <key>Arguments</key>
            <dict>
                <key>pkgdirs</key>
                <dict>
                    <key>Applications</key>
                    <string>0755</string>
                </dict>
                <key>pkgroot</key>
                <string>%RECIPE_CACHE_DIR%/pkgroot</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PkgPayloadUnpacker</string>
            <key>Arguments</key>
            <dict>
                <key>destination_path</key>
                <string>%pkgroot%</string>
                <key>pkg_payload_path</key>
                <string>%RECIPE_CACHE_DIR%/unpack/RemotePCViewer.pkg/Payload</string>
                <key>purge_destination</key>
                <true/>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiInstallsItemsCreator</string>
            <key>Arguments</key>
            <dict>
                <key>faux_root</key>
                <string>%pkgroot%</string>
                <key>version_comparison_key</key>
                <string>CFBundleShortVersionString</string>
                <key>installs_item_paths</key>
                <array>
                    <string>/Applications/RemotePCViewer.app</string>
                </array>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiPkginfoMerger</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>Versioner</string>
            <key>Arguments</key>
            <dict>
                <key>input_plist_path</key>
                <string>%pkgroot%/Applications/RemotePCViewer.app/Contents/Info.plist</string>
                <key>plist_version_key</key>
                <string>CFBundleShortVersionString</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiPkginfoMerger</string>
            <key>Arguments</key>
            <dict>
                <key>additional_pkginfo</key>
                <dict>
                    <key>version</key>
                    <string>%version%</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%pathname%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PathDeleter</string>
            <key>Arguments</key>
            <dict>
                <key>path_list</key>
                <array>
                    <string>%RECIPE_CACHE_DIR%/pkgroot/</string>
                    <string>%RECIPE_CACHE_DIR%/unpack/</string>
                </array>
            </dict>
        </dict>
    </array>
</dict>
</plist>

RemotePCViewer/RemotePCViewer.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of RemotePCViewer.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.RemotePCViewer</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>RemotePCViewer</string>
    </dict>
    <key>MinimumVersion</key>
    <string>1.0.0</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>URLTextSearcher</string>
            <key>Arguments</key>
            <dict>
                <key>re_pattern</key>
                <string>MAC_VIEWER_SETUP_DOWNLOAD_URL=\"(https://static\.remotepc\.com/downloads/rpc/.*/RemotePCViewer\.dmg)\"</string>
                <key>result_output_var_name</key>
                <string>match</string>
                <key>url</key>
                <string>https://static.remotepc.com/downloads/version_mac.js</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>URLDownloader</string>
            <key>Arguments</key>
            <dict>
                <key>filename</key>
                <string>%NAME%.dmg</string>
                <key>url</key>
                <string>%match%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
            <key>Arguments</key>
            <dict>
                <key>expected_authority_names</key>
                <array>
                    <string>Developer ID Installer: IDrive Incorporated (JWDCNYZ922)</string>
                    <string>Developer ID Certification Authority</string>
                    <string>Apple Root CA</string>
                </array>
                <key>input_path</key>
                <string>%pathname%/RemotePCViewer.pkg</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>
RemotePCSuite/RemotePCSuite.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of RemotePCSuite and imports it into Munki.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.RemotePCSuite</string>
    <key>Input</key>
    <dict>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>NAME</key>
        <string>RemotePCSuite</string>
        <key>pkginfo</key>
        <dict>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>The best remote access and remote desktop solution for PC, Mac and Linux.</string>
            <key>developer</key>
            <string>IDrive Inc</string>
            <key>display_name</key>
            <string>RemotePCSuite</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>1.0.0</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.RemotePCSuite</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>FlatPkgUnpacker</string>
            <key>Arguments</key>
            <dict>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/unpack</string>
                <key>flat_pkg_path</key>
                <string>%pathname%/RemotePCSuite.pkg</string>
                <key>purge_destination</key>
                <true/>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PkgRootCreator</string>
            <key>Arguments</key>
            <dict>
                <key>pkgdirs</key>
                <dict>
                    <key>Applications</key>
                    <string>0755</string>
                </dict>
                <key>pkgroot</key>
                <string>%RECIPE_CACHE_DIR%/pkgroot</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PkgPayloadUnpacker</string>
            <key>Arguments</key>
            <dict>
                <key>destination_path</key>
                <string>%pkgroot%/Applications</string>
                <key>pkg_payload_path</key>
                <string>%RECIPE_CACHE_DIR%/unpack/ApplicationDirectory.pkg/Payload</string>
                <key>purge_destination</key>
                <true/>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiInstallsItemsCreator</string>
            <key>Arguments</key>
            <dict>
                <key>faux_root</key>
                <string>%pkgroot%</string>
                <key>version_comparison_key</key>
                <string>CFBundleShortVersionString</string>
                <key>installs_item_paths</key>
                <array>
                    <string>/Applications/RemotePCSuite.app</string>
                </array>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiPkginfoMerger</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>Versioner</string>
            <key>Arguments</key>
            <dict>
                <key>input_plist_path</key>
                <string>%pkgroot%/Applications/RemotePCSuite.app/Contents/Info.plist</string>
                <key>plist_version_key</key>
                <string>CFBundleShortVersionString</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiPkginfoMerger</string>
            <key>Arguments</key>
            <dict>
                <key>additional_pkginfo</key>
                <dict>
                    <key>version</key>
                    <string>%version%</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%pathname%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PathDeleter</string>
            <key>Arguments</key>
            <dict>
                <key>path_list</key>
                <array>
                    <string>%RECIPE_CACHE_DIR%/pkgroot/</string>
                    <string>%RECIPE_CACHE_DIR%/unpack/</string>
                </array>
            </dict>
        </dict>
    </array>
</dict>
</plist>

RemotePCSuite/RemotePCSuite.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of RemotePCSuite.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.RemotePCSuite</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>RemotePCSuite</string>
    </dict>
    <key>MinimumVersion</key>
    <string>1.0.0</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>URLTextSearcher</string>
            <key>Arguments</key>
            <dict>
                <key>re_pattern</key>
                <string>MAC_FULL_SETUP_DOWNLOAD_URL=\"(https://static\.remotepc\.com/downloads/rpc/.*/RemotePCSuite\.dmg)\"</string>
                <key>result_output_var_name</key>
                <string>match</string>
                <key>url</key>
                <string>https://static.remotepc.com/downloads/version_mac.js</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>URLDownloader</string>
            <key>Arguments</key>
            <dict>
                <key>filename</key>
                <string>%NAME%.dmg</string>
                <key>url</key>
                <string>%match%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
            <key>Arguments</key>
            <dict>
                <key>expected_authority_names</key>
                <array>
                    <string>Developer ID Installer: IDrive Incorporated (JWDCNYZ922)</string>
                    <string>Developer ID Certification Authority</string>
                    <string>Apple Root CA</string>
                </array>
                <key>input_path</key>
                <string>%pathname%/RemotePCSuite.pkg</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>
RemotePCAttended/RemotePCAttended.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of RemotePCAttended and imports it into Munki.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.RemotePCAttended</string>
    <key>Input</key>
    <dict>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>NAME</key>
        <string>RemotePCAttended</string>
        <key>pkginfo</key>
        <dict>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>The best remote access and remote desktop solution for PC, Mac and Linux.</string>
            <key>developer</key>
            <string>IDrive Inc</string>
            <key>display_name</key>
            <string>RemotePCAttended</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>1.0.0</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.RemotePCAttended</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%pathname%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>

RemotePCAttended/RemotePCAttended.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of RemotePCAttended.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.RemotePCAttended</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>RemotePCAttended</string>
    </dict>
    <key>MinimumVersion</key>
    <string>1.0.0</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>URLDownloader</string>
            <key>Arguments</key>
            <dict>
                <key>filename</key>
                <string>%NAME%.dmg</string>
                <key>url</key>
                <string>https://static.remotepc.com/downloads/OTA/RemotePCAttended.dmg</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
            <key>Arguments</key>
            <dict>
                <key>input_path</key>
                <string>%pathname%/RemotePCAttended.app</string>
                <key>requirement</key>
                <string>anchor apple generic and identifier "com.prosoftnet.remotepcAttended" 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] = JWDCNYZ922)</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>
Reflector 4/Reflector 4.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Imports the latest version of the Reflector 4 client into Munki.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.Reflector 4</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>Reflector4</string>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>pkginfo</key>
    		<dict>
    			<key>catalogs</key>
    			<array>
    				<string>testing</string>
    			</array>
    			<key>description</key>
    			<string>Discover how easy it is to wirelessly share and record your favorite devices. No cables, adapters or confusing hardware. Present, teach or entertain from the palm of your hand.</string>
    			<key>developer</key>
    			<string>Squirrels LLC</string>
    			<key>display_name</key>
    			<string>Reflector 4</string>
    			<key>name</key>
    			<string>%NAME%</string>
    			<key>unattended_install</key>
    			<true/>
    			<key>unattended_uninstall</key>
    			<true/>
    		</dict>
    	</dict>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.Reflector 4</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%pathname%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>

Reflector 4/Reflector 4.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of the Reflector 4 app.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.Reflector 4</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>Reflector4</string>
        <key>SPARKLE_FEED_URL</key>
        <string>https://updates-prod.airsquirrels.com/Reflector4/Mac/updateCheck/</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.2.0</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>SparkleUpdateInfoProvider</string>
            <key>Arguments</key>
            <dict>
                <key>appcast_url</key>
                <string>%SPARKLE_FEED_URL%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>URLDownloader</string>
            <key>Arguments</key>
            <dict>
                <key>filename</key>
                <string>%NAME%.dmg</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
            <key>Arguments</key>
            <dict>
                <key>input_path</key>
                <string>%pathname%/Reflector 4.app</string>
                <key>requirement</key>
                <string>identifier "com.squirrels.Reflector-4" and anchor apple generic and 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] = "67X2M9MT5G"</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>
Red Giant Trapcode Suite/Red Giant Trapcode Suite.pkg.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of Red Giant Trapcode Suite and creates a package</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.pkg.Red Giant Trapcode Suite</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>RedGiantTrapcodeSuite</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.5.0</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.Red Giant Trapcode Suite</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>Unarchiver</string>
            <key>Arguments</key>
            <dict>
                <key>archive_path</key>
                <string>%pathname%</string>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/Scripts</string>
                <key>purge_destination</key>
                <true/>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PkgRootCreator</string>
            <key>Arguments</key>
            <dict>
                <key>pkgdirs</key>
                <dict/>
                <key>pkgroot</key>
                <string>%RECIPE_CACHE_DIR%/pkgroot</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>FileFinder</string>
            <key>Arguments</key>
            <dict>
                <key>pattern</key>
                <string>%RECIPE_CACHE_DIR%/Scripts/*.app</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PlistReader</string>
            <key>Arguments</key>
            <dict>
                <key>info_path</key>
                <string>%found_filename%/Contents/Info.plist</string>
                <key>plist_keys</key>
                <dict>
                    <key>CFBundleIdentifier</key>
                    <string>bundleid</string>
                    <key>CFBundleShortVersionString</key>
                    <string>version</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>FileCreator</string>
            <key>Arguments</key>
            <dict>
                <key>file_content</key>
                <string>#!/bin/bash
# Determine working directory
install_dir=$(dirname $0)
# Determine app name
appname="$(/bin/ls ${dirname} | /usr/bin/grep Trapcode)"
# Install the application using the Installer application’s native script
/bin/sh "${install_dir}/${appname}/Contents/Scripts/install.sh"</string>
                <key>file_mode</key>
                <string>0755</string>
                <key>file_path</key>
                <string>%RECIPE_CACHE_DIR%/Scripts/postinstall</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PkgCreator</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_request</key>
                <dict>
                    <key>id</key>
                    <string>%bundleid%</string>
                    <key>pkgname</key>
                    <string>%NAME%-%version%</string>
                    <key>pkgroot</key>
                    <string>%RECIPE_CACHE_DIR%/pkgroot</string>
                    <key>pkgtype</key>
                    <string>flat</string>
                    <key>scripts</key>
                    <string>Scripts</string>
                    <key>version</key>
                    <string>%version%</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PathDeleter</string>
            <key>Arguments</key>
            <dict>
                <key>path_list</key>
                <array>
                    <string>%RECIPE_CACHE_DIR%/Scripts</string>
                    <string>%RECIPE_CACHE_DIR%/pkgroot</string>
                    <string>%RECIPE_CACHE_DIR%/unzip</string>
                </array>
            </dict>
        </dict>
    </array>
</dict>
</plist>
Red Giant Trapcode Suite/Red Giant Trapcode Suite.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of Red Giant Trapcode Suite and imports into Munki</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.Red Giant Trapcode Suite</string>
    <key>Input</key>
    <dict>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>NAME</key>
        <string>RedGiantTrapcodeSuite</string>
        <key>pkginfo</key>
        <dict>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>Trapcode Suite is a complete set of plugins from Red Giant for 3D motion graphics.</string>
            <key>developer</key>
            <string>Maxon</string>
            <key>display_name</key>
            <string>Red Giant Trapcode Suite</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
            <key>unattended_uninstall</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.5.0</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.pkg.Red Giant Trapcode Suite</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%pkg_path%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>
Red Giant Trapcode Suite/Red Giant Trapcode Suite.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of Red Giant Trapcode Suite</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.Red Giant Trapcode Suite</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>RedGiantTrapcodeSuite</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.5.0</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>URLTextSearcher</string>
            <key>Arguments</key>
            <dict>
                <key>re_pattern</key>
                <string>https://downloads\.redgiant\.com/redgiant/products/singlesuites/trapcode/TCSuite_Mac_Full\.zip</string>
                <key>url</key>
                <string>https://www.redgiant.com/support/installers/</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>URLDownloader</string>
            <key>Arguments</key>
            <dict>
                <key>url</key>
                <string>%match%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>Unarchiver</string>
            <key>Arguments</key>
            <dict>
                <key>archive_path</key>
                <string>%pathname%</string>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/unzip</string>
                <key>purge_destination</key>
                <true/>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
            <key>Arguments</key>
            <dict>
                <key>input_path</key>
                <string>%RECIPE_CACHE_DIR%/unzip/*.app</string>
                <key>requirement</key>
                <string>anchor apple generic and identifier "com.redgiant.Trapcode-Suite-Installer" 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] = D642JS68SL)</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>
Red Giant Application Manager/Red Giant Application Manager.pkg.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of Red Giant Application Manager and creates a package</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.pkg.Red Giant Application Manager</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>RedGiantApplicationManager</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.5.0</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.Red Giant Application Manager</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>FileFinder</string>
            <key>Arguments</key>
            <dict>
                <key>pattern</key>
                <string>%RECIPE_CACHE_DIR%/unzip/*.app</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>Unarchiver</string>
            <key>Arguments</key>
            <dict>
                <key>archive_path</key>
                <string>%found_filename%/Contents/Resources/packages/com.redgiant.app.zip</string>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/app_unzip/</string>
                <key>purge_destination</key>
                <true/>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>Copier</string>
            <key>Arguments</key>
            <dict>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%/Applications/Red Giant Application Manager.app</string>
                <key>overwrite</key>
                <true/>
                <key>source_path</key>
                <string>%RECIPE_CACHE_DIR%/app_unzip/app/Red Giant Application Manager.app</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PlistReader</string>
            <key>Arguments</key>
            <dict>
                <key>info_path</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%/Applications/Red Giant Application Manager.app/Contents/Info.plist</string>
                <key>plist_keys</key>
                <dict>
                    <key>CFBundleIdentifier</key>
                    <string>bundleid</string>
                    <key>CFBundleShortVersionString</key>
                    <string>version</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>Unarchiver</string>
            <key>Arguments</key>
            <dict>
                <key>archive_path</key>
                <string>%pathname%</string>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/Scripts</string>
                <key>purge_destination</key>
                <true/>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>FileFinder</string>
            <key>Arguments</key>
            <dict>
                <key>pattern</key>
                <string>%RECIPE_CACHE_DIR%/Scripts/*.app</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>FileCreator</string>
            <key>Arguments</key>
            <dict>
                <key>file_content</key>
                <string>#!/bin/bash
# Determine working directory
install_dir=$(dirname $0)
# Determine app name
appname="$(/bin/ls ${dirname} | /usr/bin/grep Manager)"
# Install the application using the Installer application’s native script
/bin/sh "${install_dir}/${appname}/Contents/Scripts/install.sh"</string>
                <key>file_mode</key>
                <string>0755</string>
                <key>file_path</key>
                <string>%RECIPE_CACHE_DIR%/Scripts/postinstall</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PkgRootCreator</string>
            <key>Arguments</key>
            <dict>
                <key>pkgdirs</key>
                <dict/>
                <key>pkgroot</key>
                <string>%RECIPE_CACHE_DIR%/pkgroot</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PkgCreator</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_request</key>
                <dict>
                    <key>id</key>
                    <string>%bundleid%</string>
                    <key>pkgname</key>
                    <string>%NAME%-%version%</string>
                    <key>pkgroot</key>
                    <string>%RECIPE_CACHE_DIR%/pkgroot</string>
                    <key>pkgtype</key>
                    <string>flat</string>
                    <key>scripts</key>
                    <string>Scripts</string>
                    <key>version</key>
                    <string>%version%</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PathDeleter</string>
            <key>Arguments</key>
            <dict>
                <key>path_list</key>
                <array>
                    <string>%RECIPE_CACHE_DIR%/app_unzip</string>
                    <string>%RECIPE_CACHE_DIR%/Scripts</string>
                    <string>%RECIPE_CACHE_DIR%/pkgroot</string>
                    <string>%RECIPE_CACHE_DIR%/unzip</string>
                </array>
            </dict>
        </dict>
    </array>
</dict>
</plist>
Red Giant Application Manager/Red Giant Application Manager.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of Red Giant Application Manager and imports into Munki</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.Red Giant Application Manager</string>
    <key>Input</key>
    <dict>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>NAME</key>
        <string>RedGiantApplicationManager</string>
        <key>pkginfo</key>
        <dict>
            <key>blocking_applications</key>
            <array>
                <string>Red Giant Application Manager</string>
                <string>RedNet Control 2</string>
            </array>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>Red Giant Application Manager manages the installation, licensing, upgrades, and updates for your Red Giant products.  It verifies the license status for your purchased products and will display any trials you may have.  Should you decide to purchase any of your trial products, simply click the Buy button.</string>
            <key>developer</key>
            <string>Maxon</string>
            <key>display_name</key>
            <string>Red Giant Application Manager</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
            <key>unattended_uninstall</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.5.0</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.pkg.Red Giant Application Manager</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>MunkiPkginfoMerger</string>
            <key>Arguments</key>
            <dict>
                <key>additional_pkginfo</key>
                <dict>
                    <key>version</key>
                    <string>%version%</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiInstallsItemsCreator</string>
            <key>Arguments</key>
            <dict>
                <key>faux_root</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%/</string>
                <key>installs_item_paths</key>
                <array>
                    <string>/Applications/Red Giant Application Manager.app</string>
                </array>
                <key>version_comparison_key</key>
                <string>CFBundleShortVersionString</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiPkginfoMerger</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%pkg_path%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PathDeleter</string>
            <key>Arguments</key>
            <dict>
                <key>path_list</key>
                <array>
                    <string>%RECIPE_CACHE_DIR%/%NAME%</string>
                </array>
            </dict>
        </dict>
    </array>
</dict>
</plist>
Red Giant Application Manager/Red Giant Application Manager.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of Red Giant Application Manager</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.Red Giant Application Manager</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>RedGiantApplicationManager</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.5.0</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>URLTextSearcher</string>
            <key>Arguments</key>
            <dict>
                <key>re_pattern</key>
                <string>//downloads\.redgiant\.com/redgiant/products/appmanager/Red_Giant_Application_Manager_Mac\.zip</string>
                <key>url</key>
                <string>https://www.redgiant.com/support/installers/</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>URLDownloader</string>
            <key>Arguments</key>
            <dict>
                <key>url</key>
                <string>https:%match%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>Unarchiver</string>
            <key>Arguments</key>
            <dict>
                <key>archive_path</key>
                <string>%pathname%</string>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/unzip</string>
                <key>purge_destination</key>
                <true/>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
            <key>Arguments</key>
            <dict>
                <key>input_path</key>
                <string>%RECIPE_CACHE_DIR%/unzip/*.app</string>
                <key>requirement</key>
                <string>anchor apple generic and identifier "com.redgiant.Red-Giant-Service-Installer" 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] = D642JS68SL)</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>
Rectangle/Rectangle.png METASEP

Rectangle/Rectangle.pkg.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of Rectangle and creates a package.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.pkg.Rectangle</string>
    <key>Input</key>
    <dict>
        <key>BUNDLE_ID</key>
        <string>com.knollsoft.Rectangle</string>
        <key>NAME</key>
        <string>Rectangle</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.Rectangle</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>PkgRootCreator</string>
            <key>Arguments</key>
            <dict>
                <key>pkgroot</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%</string>
                <key>pkgdirs</key>
                <dict>
                    <key>Applications</key>
                    <string>0775</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>Copier</string>
            <key>Arguments</key>
            <dict>
                <key>source_path</key>
                <string>%pathname%/Rectangle.app</string>
                <key>destination_path</key>
                <string>%pkgroot%/Applications/Rectangle.app</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PkgCreator</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_request</key>
                <dict>
                    <key>pkgname</key>
                    <string>%NAME%-%version%</string>
                    <key>pkgdir</key>
                    <string>%RECIPE_CACHE_DIR%</string>
                    <key>id</key>
                    <string>%BUNDLE_ID%</string>
                    <key>options</key>
                    <string>purge_ds_store</string>
                    <key>chown</key>
                    <array>
                        <dict>
                            <key>path</key>
                            <string>Applications</string>
                            <key>user</key>
                            <string>root</string>
                            <key>group</key>
                            <string>admin</string>
                        </dict>
                    </array>
                </dict>
            </dict>
        </dict>
    </array>
</dict>
</plist>

Rectangle/Rectangle.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of Rectangle and imports it into Munki.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.Rectangle</string>
    <key>Input</key>
    <dict>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>NAME</key>
        <string>Rectangle</string>
        <key>pkginfo</key>
        <dict>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>blocking_applications</key>
            <array/>
            <key>description</key>
            <string>Move and resize windows on macOS with keyboard shortcuts and snap areas.</string>
            <key>developer</key>
            <string>Knollsoft</string>
            <key>display_name</key>
            <string>Rectangle</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>postuninstall_script</key>
            <string>#!/bin/bash
/usr/bin/pkill -9 Rectangle</string>
            <key>unattended_install</key>
            <true/>
            <key>unattended_uninstall</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.Rectangle</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%pathname%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
        </dict>
    </array>
</dict>
</plist>
Rectangle/Rectangle.jss.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the current release version of Rectangle and then uploads to the JSS</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.jss.Rectangle</string>
    <key>Input</key>
    <dict>
        <key>CATEGORY</key>
        <string>Productivity</string>
        <key>GROUP_NAME</key>
        <string>%NAME%-update-smart</string>
        <key>GROUP_TEMPLATE</key>
        <string>SmartGroupTemplate.xml</string>
        <key>NAME</key>
        <string>Rectangle</string>
        <key>POLICY_CATEGORY</key>
        <string>Testing</string>
        <key>POLICY_TEMPLATE</key>
        <string>PolicyTemplate.xml</string>
        <key>SELF_SERVICE_DESCRIPTION</key>
        <string>Move and resize windows on macOS with keyboard shortcuts and snap areas</string>
        <key>SELF_SERVICE_ICON</key>
        <string>Rectangle.png</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.2.0</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.pkg.Rectangle</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Arguments</key>
            <dict>
                <key>category</key>
                <string>%CATEGORY%</string>
                <key>groups</key>
                <array>
                    <dict>
                        <key>name</key>
                        <string>%GROUP_NAME%</string>
                        <key>smart</key>
                        <true/>
                        <key>template_path</key>
                        <string>%GROUP_TEMPLATE%</string>
                    </dict>
                </array>
                <key>policy_category</key>
                <string>%POLICY_CATEGORY%</string>
                <key>policy_template</key>
                <string>%POLICY_TEMPLATE%</string>
                <key>prod_name</key>
                <string>%NAME%</string>
                <key>self_service_description</key>
                <string>%SELF_SERVICE_DESCRIPTION%</string>
                <key>self_service_icon</key>
                <string>%SELF_SERVICE_ICON%</string>
            </dict>
            <key>Processor</key>
            <string>JSSImporter</string>
        </dict>
    </array>
</dict>
</plist>
Rectangle/Rectangle.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of Rectangle.
Set PRERELEASE to a non-empty string to download prereleases, either
via Input in an override or via the -k option,
i.e.: `-k PRERELEASE=yes`</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.Rectangle</string>
    <key>Input</key>
    <dict>
        <key>PRERELEASE</key>
        <string></string>
        <key>NAME</key>
        <string>Rectangle</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Arguments</key>
            <dict>
                <key>github_repo</key>
                <string>rxhanson/Rectangle</string>
                <key>include_prereleases</key>
                <string>%PRERELEASE%</string>
                <key>asset_regex</key>
                <string>[\S]+\.dmg</string>
            </dict>
            <key>Processor</key>
            <string>GitHubReleasesInfoProvider</string>
        </dict>
        <dict>
            <key>Arguments</key>
            <dict>
                <key>filename</key>
                <string>%NAME%-%version%.dmg</string>
            </dict>
            <key>Processor</key>
            <string>URLDownloader</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
            <key>Arguments</key>
            <dict>
                <key>input_path</key>
                <string>%pathname%/Rectangle.app</string>
                <key>requirement</key>
                <string>anchor apple generic and identifier "com.knollsoft.Rectangle" 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] = XSYZ3E4B7D)</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>

Razer Synapse/Razer Synapse.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of Razer Synapse and imports into Munki</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.Razer Synapse</string>
    <key>Input</key>
    <dict>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>NAME</key>
        <string>RazerSynapse</string>
        <key>pkginfo</key>
        <dict>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>Razer Synapse is our unified configuration software that allows you to rebind controls or assign macros to any of your Razer peripherals and saves all your settings automatically to the cloud.</string>
            <key>developer</key>
            <string>Razer</string>
            <key>display_name</key>
            <string>Razer Synapse</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
            <key>unattended_uninstall</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.5.0</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.Razer Synapse</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>FlatPkgUnpacker</string>
            <key>Arguments</key>
            <dict>
                <key>flat_pkg_path</key>
                <string>%pathname%/Razer Synapse.pkg</string>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/unpack</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PkgPayloadUnpacker</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_payload_path</key>
                <string>%RECIPE_CACHE_DIR%/unpack/Build.pkg/Payload</string>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/pkgroot/</string>
                <key>purge_destination</key>
                <true/>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>FlatPkgUnpacker</string>
            <key>Arguments</key>
            <dict>
                <key>flat_pkg_path</key>
                <string>%RECIPE_CACHE_DIR%/pkgroot/Razer Synapse.pkg</string>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/payload</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PkgPayloadUnpacker</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_payload_path</key>
                <string>%RECIPE_CACHE_DIR%/payload/razerSynapse.pkg/Payload</string>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/Applications</string>
                <key>purge_destination</key>
                <true/>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiInstallsItemsCreator</string>
            <key>Arguments</key>
            <dict>
                <key>faux_root</key>
                <string>%RECIPE_CACHE_DIR%/</string>
                <key>installs_item_paths</key>
                <array>
                    <string>/Applications/Razer Synapse.app</string>
                </array>
                <key>version_comparison_key</key>
                <string>CFBundleVersion</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiPkginfoMerger</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PlistReader</string>
            <key>Arguments</key>
            <dict>
                <key>info_path</key>
                <string>%RECIPE_CACHE_DIR%/Applications/Razer Synapse.app/Contents/Info.plist</string>
                <key>plist_keys</key>
                <dict>
                    <key>CFBundleVersion</key>
                    <string>version</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiPkginfoMerger</string>
            <key>Arguments</key>
            <dict>
                <key>additional_pkginfo</key>
                <dict>
                    <key>version</key>
                    <string>%version%</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PkgCopier</string>
            <key>Arguments</key>
            <dict>
                <key>source_pkg</key>
                <string>%pathname%/Razer Synapse.pkg</string>
                <key>pkg_path</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%.pkg</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%pkg_path%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PathDeleter</string>
            <key>Arguments</key>
            <dict>
                <key>path_list</key>
                <array>
                    <string>%RECIPE_CACHE_DIR%/Applications/</string> 
                    <string>%RECIPE_CACHE_DIR%/payload/</string> 
                    <string>%RECIPE_CACHE_DIR%/pkgroot/</string>  
                    <string>%RECIPE_CACHE_DIR%/unpack/</string>                      
                </array>
            </dict>
        </dict>
    </array>
</dict>
</plist>
Razer Synapse/Razer Synapse.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of Razer Synapse</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.Razer Synapse</string>
    <key>Input</key>
    <dict>
        <key>DOWNLOAD_URL</key>
        <string>https://rzr.to/synapse-mac-download</string>
        <key>NAME</key>
        <string>RazerSynapse</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.5.0</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>URLDownloader</string>
            <key>Arguments</key>
            <dict>
                <key>filename</key>
                <string>%NAME%.dmg</string>
                <key>url</key>
                <string>%DOWNLOAD_URL%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
            <key>Arguments</key>
            <dict>
                <key>expected_authority_names</key>
                <array>
                    <string>Developer ID Installer: Razer USA Ltd. (R2H967U7J8)</string>
                    <string>Developer ID Certification Authority</string>
                    <string>Apple Root CA</string>
                </array>
                <key>input_path</key>
                <string>%pathname%/Razer Synapse.pkg</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>
Razer Synapse 2/Razer Synapse 2.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of Razer Synapse 2 and imports into Munki</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.Razer Synapse 2</string>
    <key>Input</key>
    <dict>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>NAME</key>
        <string>Razer Synapse 2</string>
        <key>pkginfo</key>
        <dict>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>Razer Synapse is our unified configuration software that allows you to rebind controls or assign macros to any of your Razer peripherals and saves all your settings automatically to the cloud.</string>
            <key>developer</key>
            <string>Razer</string>
            <key>display_name</key>
            <string>Razer Synapse 2</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
            <key>unattended_uninstall</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.5.0</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.Razer Synapse 2</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%pathname%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
        </dict>
    </array>
</dict>
</plist>

Razer Synapse 2/Razer Synapse 2.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of Razer Synapse 2</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.Razer Synapse 2</string>
    <key>Input</key>
    <dict>
        <key>DOWNLOAD_URL</key>
        <string>https://rzr.to/synapse-mac-download</string>
        <key>NAME</key>
        <string>Razer Synapse 2</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.5.0</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>DeprecationWarning</string>
            <key>Arguments</key>
            <dict>
                <key>warning_message</key>
                <string>These recipes have been replaced by: https://github.com/autopkg/dataJAR-recipes/tree/master/Razer%20Synapse.</string>
            </dict>
        </dict>
        <dict>   
            <key>Processor</key>   
            <string>StopProcessingIf</string>   
            <key>Arguments</key>   
            <dict>   
                <key>predicate</key>   
                <string>TRUEPREDICATE</string>
            </dict>
        </dict>
        <dict>
            <key>Arguments</key>
            <dict>
                <key>filename</key>
                <string>%NAME%.dmg</string>
                <key>url</key>
                <string>%DOWNLOAD_URL%</string>
            </dict>
            <key>Processor</key>
            <string>URLDownloader</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
        <dict>
            <key>Arguments</key>
            <dict>
                <key>expected_authority_names</key>
                <array>
                    <string>Developer ID Installer: Razer USA Ltd. (R2H967U7J8)</string>
                    <string>Developer ID Certification Authority</string>
                    <string>Apple Root CA</string>
                </array>
                <key>input_path</key>
                <string>%pathname%/*.pkg</string>
            </dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
        </dict>
    </array>
</dict>
</plist>

Racket 8/Racket 8.pkg.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Download recipe for the latest version of Racket 8 and creates a pkg.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.pkg.Racket 8</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>Racket8</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.Racket 8</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>PkgRootCreator</string>
            <key>Arguments</key>
            <dict>
                <key>pkgroot</key>
                <string>%RECIPE_CACHE_DIR%/pkgroot</string>
                <key>pkgdirs</key>
                <dict>
                    <key>Applications</key>
                    <string>0775</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>Copier</string>
            <key>Arguments</key>
            <dict>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/pkgroot/Applications/Racket v%version%</string>
                <key>source_path</key>
                <string>%pathname%/Racket v%version%</string>
                <key>overwrite</key>
                <string>true</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PkgCreator</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_request</key>
                <dict>
                    <key>chown</key>
                    <array>
                        <dict>
                            <key>group</key>
                            <string>admin</string>
                            <key>path</key>
                            <string>Applications</string>
                            <key>user</key>
                            <string>root</string>
                        </dict>
                    </array>
                    <key>id</key>
                    <string>org.racket-lang.Racket7</string>
                    <key>options</key>
                    <string>purge_ds_store</string>
                    <key>pkgname</key>
                    <string>%NAME%</string>
                    <key>pkgroot</key>
                    <string>%pkgroot%</string>
                    <key>version</key>
                    <string>%version%</string>
                </dict>
            </dict>
        </dict>
    </array>
</dict>
</plist>
Racket 8/Racket 8.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Download recipe for the latest version of Racket 8 and imports into Munki.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.Racket 8</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>Racket8</string>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>pkginfo</key>
        <dict>
            <key>blocking_applications</key>
            <array>
                <string>DrRacket</string>
                <string>PLT Games</string>
                <string>Racket Documentation</string>
                <string>Slideshow</string>
            </array>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>Racket is a general-purpose programming language as well as the world’s first ecosystem for developing and deploying new languages. Make your dream language, or use one of the dozens already available.</string>
            <key>display_name</key>
            <string>Racket 8</string>
            <key>developer</key>
            <string>PLT Inc</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
            <key>unattended_uninstall</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.pkg.Racket 8</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>MunkiPkginfoMerger</string>
            <key>Arguments</key>
            <dict>
                <key>additional_pkginfo</key>
                <dict>
                    <key>version</key>
                    <string>%version%</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiInstallsItemsCreator</string>
            <key>Arguments</key>
            <dict>
                <key>faux_root</key>
                <string>%RECIPE_CACHE_DIR%/pkgroot/</string>
                <key>installs_item_paths</key>
                <array>
                    <string>/Applications/Racket v%version%/DrRacket.app</string>
                    <string>/Applications/Racket v%version%/PLT Games.app</string>
                    <string>/Applications/Racket v%version%/Racket Documentation.app</string>
                    <string>/Applications/Racket v%version%/Slideshow.app</string>
                </array>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiPkginfoMerger</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%pkg_path%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PathDeleter</string>
            <key>Arguments</key>
            <dict>
                <key>path_list</key>
                <array>
                    <string>%pkgroot%</string>
                </array>
            </dict>
        </dict>
    </array>
</dict>
</plist>
Racket 8/Racket 8.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Download recipe for the latest version of Racket 8.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.Racket 8</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>Racket8</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>URLTextSearcher</string>
            <key>Arguments</key>
            <dict>
                <key>url</key>
                <string>https://download.racket-lang.org/all-versions.html</string>
                <key>re_pattern</key>
                <string>/racket-v8.\d.*.html</string>
                <key>result_output_var_name</key>
                <string>DownloadPage</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>URLTextSearcher</string>
            <key>Arguments</key>
            <dict>
                <key>url</key>
                <string>https://download.racket-lang.org%DownloadPage%</string>
                <key>re_pattern</key>
                <string>8.\d*/racket-8.\d*-x86_64-macosx-cs.dmg</string>
                <key>result_output_var_name</key>
                <string>match</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>URLDownloader</string>
            <key>Arguments</key>
            <dict>
                <key>url</key>
                <string>https://www.cs.utah.edu/plt/installers/%match%</string>
                <key>filename</key>
                <string>%NAME%.dmg</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>FileFinder</string>
            <key>Arguments</key>
            <dict>
                <key>pattern</key>
                <string>%pathname%/Racket v8.*/DrRacket.app</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
            <key>Arguments</key>
            <dict>
                <key>input_path</key>
                <string>%pathname%/%dmg_found_filename%</string>
                <key>requirement</key>
                <string>identifier "org.racket-lang.DrRacket" and anchor apple generic and 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] = MHDH6AFHDR</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>Versioner</string>
            <key>Arguments</key>
            <dict>
                <key>input_plist_path</key>
                <string>%pathname%/%dmg_found_filename%/Contents/Info.plist</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
            <key>Arguments</key>
            <dict>
                <key>input_path</key>
                <string>%pathname%/Racket v%version%/PLT Games.app</string>
                <key>requirement</key>
                <string>identifier "org.racket-lang.PLT Games" and anchor apple generic and 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] = MHDH6AFHDR</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
            <key>Arguments</key>
            <dict>
                <key>input_path</key>
                <string>%pathname%/Racket v%version%/Racket Documentation.app</string>
                <key>requirement</key>
                <string>identifier "org.racket-lang.Racket Documentation" and anchor apple generic and 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] = MHDH6AFHDR</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
            <key>Arguments</key>
            <dict>
                <key>input_path</key>
                <string>%pathname%/Racket v%version%/Slideshow.app</string>
                <key>requirement</key>
                <string>identifier "org.racket-lang.Slideshow" and anchor apple generic and 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] = MHDH6AFHDR</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>
Racket 7/Racket7.png METASEP

Racket 7/Racket 7.pkg.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Download recipe for the latest version of Racket 7 and creates a pkg.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.pkg.Racket 7</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>Racket7</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.Racket 7</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>PkgRootCreator</string>
            <key>Arguments</key>
            <dict>
                <key>pkgroot</key>
                <string>%RECIPE_CACHE_DIR%/pkgroot</string>
                <key>pkgdirs</key>
                <dict>
                    <key>Applications</key>
                    <string>0775</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>Copier</string>
            <key>Arguments</key>
            <dict>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/pkgroot/Applications/Racket v%version%</string>
                <key>source_path</key>
                <string>%pathname%/Racket v%version%</string>
                <key>overwrite</key>
                <string>true</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PkgCreator</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_request</key>
                <dict>
                    <key>chown</key>
                    <array>
                        <dict>
                            <key>group</key>
                            <string>admin</string>
                            <key>path</key>
                            <string>Applications</string>
                            <key>user</key>
                            <string>root</string>
                        </dict>
                    </array>
                    <key>id</key>
                    <string>org.racket-lang.Racket7</string>
                    <key>options</key>
                    <string>purge_ds_store</string>
                    <key>pkgname</key>
                    <string>%NAME%</string>
                    <key>pkgroot</key>
                    <string>%pkgroot%</string>
                    <key>version</key>
                    <string>%version%</string>
                </dict>
            </dict>
        </dict>
    </array>
</dict>
</plist>
Racket 7/Racket 7.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Download recipe for the latest version of Racket 7 and imports into Munki.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.Racket 7</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>Racket7</string>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>pkginfo</key>
        <dict>
            <key>blocking_applications</key>
            <array>
                <string>DrRacket</string>
                <string>PLT Games</string>
                <string>Racket Documentation</string>
                <string>Slideshow</string>
            </array>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>Racket is a general-purpose programming language as well as the world’s first ecosystem for developing and deploying new languages. Make your dream language, or use one of the dozens already available.</string>
            <key>display_name</key>
            <string>Racket 7</string>
            <key>developer</key>
            <string>PLT Inc</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
            <key>unattended_uninstall</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.pkg.Racket 7</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>MunkiPkginfoMerger</string>
            <key>Arguments</key>
            <dict>
                <key>additional_pkginfo</key>
                <dict>
                    <key>version</key>
                    <string>%version%</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiInstallsItemsCreator</string>
            <key>Arguments</key>
            <dict>
                <key>faux_root</key>
                <string>%RECIPE_CACHE_DIR%/pkgroot/</string>
                <key>installs_item_paths</key>
                <array>
                    <string>/Applications/Racket v%version%/DrRacket.app</string>
                    <string>/Applications/Racket v%version%/PLT Games.app</string>
                    <string>/Applications/Racket v%version%/Racket Documentation.app</string>
                    <string>/Applications/Racket v%version%/Slideshow.app</string>
                </array>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiPkginfoMerger</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%pkg_path%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PathDeleter</string>
            <key>Arguments</key>
            <dict>
                <key>path_list</key>
                <array>
                    <string>%pkgroot%</string>
                </array>
            </dict>
        </dict>
    </array>
</dict>
</plist>
Racket 7/Racket 7.jss.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Download recipe for the latest version of Racket 7 and then uploads to the JSS.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.jss.Racket 7</string>
    <key>Input</key>
	<dict>
		<key>CATEGORY</key>
		<string>Development</string>
		<key>GROUP_NAME</key>
		<string>%NAME%-update-smart</string>
		<key>GROUP_TEMPLATE</key>
		<string>SmartGroupTemplate.xml</string>
		<key>JSS_INVENTORY_NAME</key>
        <string>DrRacket.app</string>
		<key>NAME</key>
		<string>Racket7</string>
		<key>POLICY_CATEGORY</key>
		<string>Testing</string>
		<key>POLICY_TEMPLATE</key>
		<string>PolicyTemplate.xml</string>
		<key>SELF_SERVICE_DESCRIPTION</key>
		<string>Racket is a general-purpose programming language as well as the world’s first ecosystem for developing and deploying new languages. Make your dream language, or use one of the dozens already available.</string>
		<key>SELF_SERVICE_ICON</key>
		<string>Racket7.png</string>
	</dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
	<key>ParentRecipe</key>
	<string>com.github.dataJAR-recipes.pkg.Racket 7</string>
    <key>Process</key>
    <array>
		<dict>
			<key>Processor</key>
			<string>FileMover</string>
			<key>Arguments</key>
			<dict>
				<key>source</key>
				<string>%pkg_path%</string>
				<key>target</key>
				<string>%RECIPE_CACHE_DIR%/%NAME%-%version%.pkg</string>
			</dict>
		</dict>
		<dict>
			<key>Arguments</key>
			<dict>
				<key>category</key>
				<string>%CATEGORY%</string>
				<key>groups</key>
				<array>
					<dict>
						<key>name</key>
						<string>%GROUP_NAME%</string>
						<key>smart</key>
						<true/>
						<key>template_path</key>
						<string>%GROUP_TEMPLATE%</string>
					</dict>
				</array>
				<key>jss_inventory_name</key>
				<string>%JSS_INVENTORY_NAME%</string>
				<key>pkg_path</key>
				<string>%target%</string>
				<key>policy_category</key>
				<string>%POLICY_CATEGORY%</string>
				<key>policy_template</key>
				<string>%POLICY_TEMPLATE%</string>
				<key>prod_name</key>
				<string>Racket 7</string>
				<key>self_service_description</key>
				<string>%SELF_SERVICE_DESCRIPTION%</string>
				<key>self_service_icon</key>
				<string>%SELF_SERVICE_ICON%</string>
			</dict>
			<key>Processor</key>
			<string>JSSImporter</string>
		</dict>
    </array>
</dict>
</plist>


Racket 7/Racket 7.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Download recipe for the latest version of Racket 7.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.Racket 7</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>Racket7</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>URLTextSearcher</string>
            <key>Arguments</key>
            <dict>
                <key>url</key>
                <string>https://download.racket-lang.org/all-versions.html</string>
                <key>re_pattern</key>
                <string>/racket-v7.\d.*.html</string>
                <key>result_output_var_name</key>
                <string>DownloadPage</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>URLTextSearcher</string>
            <key>Arguments</key>
            <dict>
                <key>url</key>
                <string>https://download.racket-lang.org%DownloadPage%</string>
                <key>re_pattern</key>
                <string>7.\d*/racket-7.\d*-x86_64-macosx.dmg</string>
                <key>result_output_var_name</key>
                <string>match</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>URLDownloader</string>
            <key>Arguments</key>
            <dict>
                <key>url</key>
                <string>https://www.cs.utah.edu/plt/installers/%match%</string>
                <key>filename</key>
                <string>%NAME%.dmg</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>FileFinder</string>
            <key>Arguments</key>
            <dict>
                <key>pattern</key>
                <string>%pathname%/Racket v7.*/DrRacket.app</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
            <key>Arguments</key>
            <dict>
                <key>input_path</key>
                <string>%pathname%/%dmg_found_filename%</string>
                <key>requirement</key>
                <string>identifier "org.racket-lang.DrRacket" and anchor apple generic and 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] = MHDH6AFHDR</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>Versioner</string>
            <key>Arguments</key>
            <dict>
                <key>input_plist_path</key>
                <string>%pathname%/%dmg_found_filename%/Contents/Info.plist</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
            <key>Arguments</key>
            <dict>
                <key>input_path</key>
                <string>%pathname%/Racket v%version%/PLT Games.app</string>
                <key>requirement</key>
                <string>identifier "org.racket-lang.PLT Games" and anchor apple generic and 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] = MHDH6AFHDR</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
            <key>Arguments</key>
            <dict>
                <key>input_path</key>
                <string>%pathname%/Racket v%version%/Racket Documentation.app</string>
                <key>requirement</key>
                <string>identifier "org.racket-lang.Racket Documentation" and anchor apple generic and 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] = MHDH6AFHDR</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
            <key>Arguments</key>
            <dict>
                <key>input_path</key>
                <string>%pathname%/Racket v%version%/Slideshow.app</string>
                <key>requirement</key>
                <string>identifier "org.racket-lang.Slideshow" and anchor apple generic and 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] = MHDH6AFHDR</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>
Racket 6/Racket6.png METASEP

Racket 6/Racket 6.pkg.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Download recipe for the latest version of Racket 6 and creates a pkg.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.pkg.Racket 6</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>Racket6</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.Racket 6</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>PkgRootCreator</string>
            <key>Arguments</key>
            <dict>
                <key>pkgroot</key>
                <string>%RECIPE_CACHE_DIR%/pkgroot</string>
                <key>pkgdirs</key>
                <dict>
                    <key>Applications</key>
                    <string>0775</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>Copier</string>
            <key>Arguments</key>
            <dict>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/pkgroot/Applications/Racket v%version%</string>
                <key>source_path</key>
                <string>%pathname%/Racket v%version%</string>
                <key>overwrite</key>
                <string>true</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PkgCreator</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_request</key>
                <dict>
                    <key>chown</key>
                    <array>
                        <dict>
                            <key>group</key>
                            <string>admin</string>
                            <key>path</key>
                            <string>Applications</string>
                            <key>user</key>
                            <string>root</string>
                        </dict>
                    </array>
                    <key>id</key>
                    <string>org.racket-lang.Racket6</string>
                    <key>options</key>
                    <string>purge_ds_store</string>
                    <key>pkgname</key>
                    <string>%NAME%</string>
                    <key>pkgroot</key>
                    <string>%pkgroot%</string>
                    <key>version</key>
                    <string>%version%</string>
                </dict>
            </dict>
        </dict>
    </array>
</dict>
</plist>
Racket 6/Racket 6.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Download recipe for the latest version of Racket 6 and imports into Munki.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.Racket 6</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>Racket6</string>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>pkginfo</key>
        <dict>
            <key>blocking_applications</key>
            <array>
                <string>DrRacket</string>
                <string>PLT Games</string>
                <string>Racket Documentation</string>
                <string>Slideshow</string>
            </array>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>Racket is a general-purpose programming language as well as the world’s first ecosystem for developing and deploying new languages. Make your dream language, or use one of the dozens already available.</string>
            <key>display_name</key>
            <string>Racket 6</string>
            <key>developer</key>
            <string>PLT Inc</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
            <key>unattended_uninstall</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.pkg.Racket 6</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>MunkiPkginfoMerger</string>
            <key>Arguments</key>
            <dict>
                <key>additional_pkginfo</key>
                <dict>
                    <key>version</key>
                    <string>%version%</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiInstallsItemsCreator</string>
            <key>Arguments</key>
            <dict>
                <key>faux_root</key>
                <string>%RECIPE_CACHE_DIR%/pkgroot/</string>
                <key>installs_item_paths</key>
                <array>
                    <string>/Applications/Racket v%version%/DrRacket.app</string>
                    <string>/Applications/Racket v%version%/PLT Games.app</string>
                    <string>/Applications/Racket v%version%/Racket Documentation.app</string>
                    <string>/Applications/Racket v%version%/Slideshow.app</string>
                </array>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiPkginfoMerger</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%pkg_path%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PathDeleter</string>
            <key>Arguments</key>
            <dict>
                <key>path_list</key>
                <array>
                    <string>%pkgroot%</string>
                </array>
            </dict>
        </dict>
    </array>
</dict>
</plist>
Racket 6/Racket 6.jss.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Download recipe for the latest version of Racket 6 and then uploads to the JSS.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.jss.Racket 6</string>
    <key>Input</key>
	<dict>
		<key>CATEGORY</key>
		<string>Development</string>
		<key>GROUP_NAME</key>
		<string>%NAME%-update-smart</string>
		<key>GROUP_TEMPLATE</key>
		<string>SmartGroupTemplate.xml</string>
		<key>JSS_INVENTORY_NAME</key>
        <string>DrRacket.app</string>
		<key>NAME</key>
		<string>Racket6</string>
		<key>POLICY_CATEGORY</key>
		<string>Testing</string>
		<key>POLICY_TEMPLATE</key>
		<string>PolicyTemplate.xml</string>
		<key>SELF_SERVICE_DESCRIPTION</key>
		<string>Racket is a general-purpose programming language as well as the world’s first ecosystem for developing and deploying new languages. Make your dream language, or use one of the dozens already available.</string>
		<key>SELF_SERVICE_ICON</key>
		<string>Racket6.png</string>
	</dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
	<key>ParentRecipe</key>
	<string>com.github.dataJAR-recipes.pkg.Racket 6</string>
    <key>Process</key>
    <array>
		<dict>
			<key>Processor</key>
			<string>FileMover</string>
			<key>Arguments</key>
			<dict>
				<key>source</key>
				<string>%pkg_path%</string>
				<key>target</key>
				<string>%RECIPE_CACHE_DIR%/%NAME%-%version%.pkg</string>
			</dict>
		</dict>
		<dict>
			<key>Arguments</key>
			<dict>
				<key>category</key>
				<string>%CATEGORY%</string>
				<key>groups</key>
				<array>
					<dict>
						<key>name</key>
						<string>%GROUP_NAME%</string>
						<key>smart</key>
						<true/>
						<key>template_path</key>
						<string>%GROUP_TEMPLATE%</string>
					</dict>
				</array>
				<key>jss_inventory_name</key>
				<string>%JSS_INVENTORY_NAME%</string>
				<key>pkg_path</key>
				<string>%target%</string>
				<key>policy_category</key>
				<string>%POLICY_CATEGORY%</string>
				<key>policy_template</key>
				<string>%POLICY_TEMPLATE%</string>
				<key>prod_name</key>
				<string>Racket 6</string>
				<key>self_service_description</key>
				<string>%SELF_SERVICE_DESCRIPTION%</string>
				<key>self_service_icon</key>
				<string>%SELF_SERVICE_ICON%</string>
			</dict>
			<key>Processor</key>
			<string>JSSImporter</string>
		</dict>
    </array>
</dict>
</plist>


Racket 6/Racket 6.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Download recipe for the latest version of Racket 6.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.Racket 6</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>Racket6</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>URLTextSearcher</string>
            <key>Arguments</key>
            <dict>
                <key>url</key>
                <string>https://download.racket-lang.org/all-versions.html</string>
                <key>re_pattern</key>
                <string>/racket-v6.\d.*.html</string>
                <key>result_output_var_name</key>
                <string>DownloadPage</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>URLTextSearcher</string>
            <key>Arguments</key>
            <dict>
                <key>url</key>
                <string>https://download.racket-lang.org%DownloadPage%</string>
                <key>re_pattern</key>
                <string>6.\d*/racket-6.\d*-x86_64-macosx.dmg</string>
                <key>result_output_var_name</key>
                <string>match</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>URLDownloader</string>
            <key>Arguments</key>
            <dict>
                <key>url</key>
                <string>https://www.cs.utah.edu/plt/installers/%match%</string>
                <key>filename</key>
                <string>%NAME%.dmg</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>FileFinder</string>
            <key>Arguments</key>
            <dict>
                <key>pattern</key>
                <string>%pathname%/Racket v6.*/DrRacket.app</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
            <key>Arguments</key>
            <dict>
                <key>input_path</key>
                <string>%pathname%/%dmg_found_filename%</string>
                <key>requirement</key>
                <string>identifier "org.racket-lang.DrRacket" and anchor apple generic and 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] = "5D265M8873"</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>Versioner</string>
            <key>Arguments</key>
            <dict>
                <key>input_plist_path</key>
                <string>%pathname%/%dmg_found_filename%/Contents/Info.plist</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
            <key>Arguments</key>
            <dict>
                <key>input_path</key>
                <string>%pathname%/Racket v%version%/PLT Games.app</string>
                <key>requirement</key>
                <string>identifier "org.racket-lang.PLT Games" and anchor apple generic and 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] = "5D265M8873"</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
            <key>Arguments</key>
            <dict>
                <key>input_path</key>
                <string>%pathname%/Racket v%version%/Racket Documentation.app</string>
                <key>requirement</key>
                <string>identifier "org.racket-lang.Racket Documentation" and anchor apple generic and 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] = "5D265M8873"</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
            <key>Arguments</key>
            <dict>
                <key>input_path</key>
                <string>%pathname%/Racket v%version%/Slideshow.app</string>
                <key>requirement</key>
                <string>identifier "org.racket-lang.Slideshow" and anchor apple generic and 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] = "5D265M8873"</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>
RAW Viewer/RAW Viewer.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of RAW Viewer and imports it into Munki.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.RAW Viewer</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>RAWViewer</string>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>pkginfo</key>
        <dict>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>RAW Viewer is a viewer application that can handle Sony RAW/X-OCN files recorded by VENICE/F65/F55/F5/NEX-FS700 with SR-R4/AXS-R5/R7. Users can check and playback the files, control images and generate several video formats.</string>
            <key>developer</key>
            <string>Sony Imaging Products and Solutions, Inc.</string>
            <key>display_name</key>
            <string>RAW Viewer</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
            <key>unattended_uninstall</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.RAW Viewer</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>MunkiInstallsItemsCreator</string>
            <key>Arguments</key>
            <dict>
                <key>faux_root</key>
                <string>%RECIPE_CACHE_DIR%/installer_payload/</string>
                <key>installs_item_paths</key>
                <array>
                    <string>/Applications/RAW Viewer.app</string>
                </array>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiPkginfoMerger</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>Versioner</string>
            <key>Arguments</key>
            <dict>
                <key>input_plist_path</key>
                <string>%destination_path%/Contents/Info.plist</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiPkginfoMerger</string>
            <key>Arguments</key>
            <dict>
                <key>additional_pkginfo</key>
                <dict>
                    <key>version</key>
                    <string>%version%</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiPkginfoMerger</string>
        </dict>
        <dict>  
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%pkg_path%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PathDeleter</string>
            <key>Arguments</key>
            <dict>
                <key>path_list</key>
                <array>
                    <string>%RECIPE_CACHE_DIR%/installer_payload/</string>
                    <string>%RECIPE_CACHE_DIR%/installer_pkg/</string>
                    <string>%RECIPE_CACHE_DIR%/installer_unpack/</string>
                    <string>%RECIPE_CACHE_DIR%/installer_unzip/</string>
                </array>
            </dict>
        </dict>
    </array>
</dict>
</plist>
RAW Viewer/RAW Viewer.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads latest version of RAW Viewer.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.RAW Viewer</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>RAWViewer</string>
        <key>BASE_URL</key>
        <string>https://www.sonycreativesoftware.com</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>URLTextSearcher</string>
            <key>Arguments</key>
            <dict>
                <key>url</key>
                <string>%BASE_URL%/download/rawviewer</string>
                <key>re_pattern</key>
                <string>(\d+)">RAW Viewer \(RWV-10\) \| macOS</string>
                <key>result_output_var_name</key>
                <string>first_match</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>URLTextSearcher</string>
            <key>Arguments</key>
            <dict>
                <key>url</key>
                <string>%BASE_URL%/download/rawviewer</string>
                <key>re_pattern</key>
                <string>id="dl_\S+_%first_match%" name="dl_\S+" href="(\/download\/link\?id=\S+)\"</string>
                <key>result_output_var_name</key>
                <string>second_match</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>URLDownloader</string>
            <key>Arguments</key>
            <dict>
                <key>filename</key>
                <string>%NAME%.zip</string>
                <key>url</key>
                <string>%BASE_URL%/%second_match%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>Unarchiver</string>
            <key>Arguments</key>
            <dict>
                <key>archive_path</key>
                <string>%pathname%</string>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/installer_unzip/</string>
                <key>purge_destination</key>
                <true/>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PkgRootCreator</string>
            <key>Arguments</key>
                <dict>
                <key>pkgroot</key>
                <string>%RECIPE_CACHE_DIR%/installer_pkg/</string>
                <key>pkgdirs</key>
                <dict/>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>FileFinder</string>
            <key>Arguments</key>
            <dict>
                <key>pattern</key>
                <string>%destination_path%*.dmg</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PkgCopier</string>
            <key>Arguments</key>
            <dict>
                <key>source_pkg</key>
                <string>%found_filename%/RAW_Viewer.pkg</string>
                <key>pkg_path</key>
                <string>%RECIPE_CACHE_DIR%/installer_pkg/%NAME%.pkg</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
            <key>Arguments</key>
            <dict>
                <key>input_path</key>
                <string>%pkg_path%</string>
                <key>expected_authority_names</key>
                <array>
                    <string>Developer ID Installer: Sony Imaging Products &amp; Solutions Inc. (EKS2CRZPNK)</string>
                    <string>Developer ID Certification Authority</string>
                    <string>Apple Root CA</string>
                </array>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>FlatPkgUnpacker</string>
            <key>Arguments</key>
            <dict>
                <key>flat_pkg_path</key>
                <string>%pkg_path%</string>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/installer_unpack</string>
                <key>purge_destination</key>
                <true/>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PkgPayloadUnpacker</string>
            <key>Arguments</key>
            <dict>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/installer_payload/Applications/RAW Viewer.app</string>
                <key>pkg_payload_path</key>
                <string>%RECIPE_CACHE_DIR%/installer_unpack/rawviewer.pkg/Payload</string>
                <key>purge_destination</key>
                <true/>
            </dict>
        </dict>
    </array>
</dict>
</plist>
R1 V3/R1 V3.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the current release version of R1 V3, builds a package and imports it to Munki.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.R1 V3</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>R1V3</string>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps</string>
        <key>pkginfo</key>
        <dict>
            <key>blocking_applications</key>
            <array>
                <string>R1 V3</string>
            </array>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>category</key>
            <string>Applications</string>
            <key>description</key>
            <string>The R1 Remote control software presents a d&amp;b system graphically, channel by channel, loudspeaker by loudspeaker, group by group, with faders and buttons arranged just as required. Dials and displays control equalization, delay, levels, switchable filter functions, Mute and power. Even an offline mode is available for advance preparation.</string>
            <key>developer</key>
            <string>d&amp;b audiotechnik GmbH &amp; Co</string>
            <key>display_name</key>
            <string>R1 V3</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
            <key>unattended_uninstall</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.4.3</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.R1 V3</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%pathname%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
                <key>version_comparison_key</key>
                <string>CFBundleShortVersionString</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>
R1 V3/R1 V3.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the current release version of R1 V3.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.R1 V3</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>R1V3</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.2.0</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>URLTextSearcher</string>
            <key>Arguments</key>
            <dict>
                <key>re_pattern</key>
                <string>/assets/products/downloads/software/r1/dbaudio-software-r1-v3\..*?-mac\.dmg</string>
                <key>url</key>
                <string>https://www.dbaudio.com/global/en/products/software/r1/#tab-downloads</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>URLDownloader</string>
            <key>Arguments</key>
            <dict>
                <key>url</key>
                <string>https://www.dbaudio.com/%match%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
            <key>Arguments</key>
            <dict>
                <key>input_path</key>
                <string>%pathname%/R1 V3.app</string>
                <key>requirement</key>
                <string>identifier "com.dbaudio.R1 V3" and anchor apple generic and 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] = G24Y233R69</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>
QLab4/QLab4.png METASEP

QLab4/QLab4.pkg.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>Description</key>
	<string>Downloads the latest version of QLab4 and creates a package.</string>
	<key>Identifier</key>
	<string>com.github.dataJAR-recipes.pkg.QLab4</string>
	<key>Input</key>
	<dict>
		<key>NAME</key>
		<string>QLab4</string>
	</dict>
	<key>MinimumVersion</key>
	<string>0.6.1</string>
	<key>ParentRecipe</key>
	<string>com.github.dataJAR-recipes.download.QLab4</string>
	<key>Process</key>
	<array>
		<dict>
			<key>Arguments</key>
			<dict>
				<key>pkg_request</key>
				<dict>
					<key>chown</key>
					<array>
						<dict>
							<key>group</key>
							<string>admin</string>
							<key>path</key>
							<string>Applications</string>
							<key>user</key>
							<string>root</string>
						</dict>
					</array>
					<key>id</key>
					<string>com.figure53.QLab.4</string>
					<key>options</key>
					<string>purge_ds_store</string>
					<key>pkgname</key>
					<string>%NAME%-%version%</string>
					<key>pkgroot</key>
					<string>%RECIPE_CACHE_DIR%/%NAME%</string>
					<key>version</key>
					<string>%version%</string>
				</dict>
			</dict>
			<key>Processor</key>
			<string>PkgCreator</string>
		</dict>
	</array>
</dict>
</plist>

QLab4/QLab4.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of QLab 4 and imports into Munki.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.QLab4</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>QLab4</string>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>pkginfo</key>
        <dict>
            <key>blocking_applications</key>
            <array>
                <string>QLab</string>
            </array>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>QLab® 4 combines powerful audio, video, and lighting control in one elegant package. With an all-new Light cue, a major upgrade to QLab Remote for iOS, and over 40 new features, this is the best version of QLab we’ve ever made.</string>
            <key>display_name</key>
            <string>QLab 4</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
            <key>unattended_uninstall</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.2.0</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.QLab4</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>Unarchiver</string>
            <key>Arguments</key>
            <dict>
                <key>archive_path</key>
                <string>%pathname%</string>
                <key>purge_destination</key>
                <true/>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>DmgCreator</string>
            <key>Arguments</key>
            <dict>
                <key>dmg_root</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%/Applications</string>
                <key>dmg_path</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%.dmg</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%dmg_path%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PathDeleter</string>
            <key>Arguments</key>
            <dict>
                <key>path_list</key>
                <array>
                    <string>%RECIPE_CACHE_DIR%/%NAME%/</string>                   
                </array>
            </dict>
        </dict>
    </array>
</dict>
</plist>
QLab4/QLab4.jss.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>Description</key>
	<string>Downloads the current release version of QLab4 and then uploads to the JSS</string>
	<key>Identifier</key>
	<string>com.github.dataJAR-recipes.jss.QLab4</string>
	<key>Input</key>
	<dict>
		<key>CATEGORY</key>
		<string>Productivity</string>
		<key>GROUP_NAME</key>
		<string>%NAME%-update-smart</string>
		<key>GROUP_TEMPLATE</key>
		<string>SmartGroupTemplate.xml</string>
		<key>NAME</key>
		<string>QLab4</string>
		<key>POLICY_CATEGORY</key>
		<string>Testing</string>
		<key>POLICY_TEMPLATE</key>
		<string>PolicyTemplate.xml</string>
		<key>SELF_SERVICE_DESCRIPTION</key>
		<string>QLab® 4 combines powerful audio, video, and lighting control in one elegant package. With an all-new Light cue, a major upgrade to QLab Remote for iOS, and over 40 new features, this is the best version of QLab we’ve ever made.</string>
        <key>SELF_SERVICE_ICON</key>
		<string>QLab4.png</string>
	</dict>
	<key>MinimumVersion</key>
	<string>0.2.0</string>
	<key>ParentRecipe</key>
	<string>com.github.dataJAR-recipes.pkg.QLab4</string>
	<key>Process</key>
	<array>
		<dict>
			<key>Arguments</key>
			<dict>
				<key>category</key>
				<string>%CATEGORY%</string>
				<key>groups</key>
				<array>
					<dict>
						<key>name</key>
						<string>%GROUP_NAME%</string>
						<key>smart</key>
						<true/>
						<key>template_path</key>
						<string>%GROUP_TEMPLATE%</string>
					</dict>
				</array>
				<key>policy_category</key>
				<string>%POLICY_CATEGORY%</string>
				<key>policy_template</key>
				<string>%POLICY_TEMPLATE%</string>
				<key>prod_name</key>
				<string>%NAME%</string>
				<key>self_service_description</key>
				<string>%SELF_SERVICE_DESCRIPTION%</string>
				<key>self_service_icon</key>
				<string>%SELF_SERVICE_ICON%</string>
			</dict>
			<key>Processor</key>
			<string>JSSImporter</string>
		</dict>
	</array>
</dict>
</plist>

QLab4/QLab4.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads latest version of QLab 4.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.QLab4</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>QLab4</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.2.0</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Arguments</key>
            <dict>
                <key>appcast_url</key>
                <string>https://figure53.com/qlab/downloads/appcast-v4</string>
            </dict>
            <key>Processor</key>
            <string>SparkleUpdateInfoProvider</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>URLDownloader</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
        <dict>
            <key>Arguments</key>
            <dict>
                <key>archive_path</key>
                <string>%pathname%</string>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%/Applications</string>
                <key>purge_destination</key>
                <true/>
            </dict>
            <key>Processor</key>
            <string>Unarchiver</string>
        </dict>
        <dict>
            <key>Arguments</key>
            <dict>
                <key>input_path</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%/Applications/QLab.app</string>
                <key>requirement</key>
                <string>anchor apple generic and identifier "com.figure53.QLab.4" 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] = "7672N4CCJM")</string>
            </dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
        </dict>
    </array>
</dict>
</plist>
Processing 4/Processing 4.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of Processing 4 and imports it into Munki.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.Processing 4</string>
    <key>Input</key>
    <dict>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>NAME</key>
        <string>Processing4</string>
        <key>pkginfo</key>
        <dict>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>Processing 4 makes important updates to the code to prepare the platform for its future. Most significantly, this includes the move to JDK 11 and support for new Java language features. The changes should be transparent to most users, but because of the massive shift behind the scenes, this will be 4.0.</string>
            <key>developer</key>
            <string>Processing 4</string>
            <key>display_name</key>
            <string>Processing 4</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
            <key>unattended_uninstall</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.Processing 4</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>DmgCreator</string>
            <key>Arguments</key>
            <dict>
                <key>dmg_path</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%.dmg</string>
                <key>dmg_root</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%dmg_path%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
                <key>version_comparison_key</key>
                <string>CFBundleShortVersionString</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PathDeleter</string>
            <key>Arguments</key>
            <dict>
                <key>path_list</key>
                <array>
                    <string>%RECIPE_CACHE_DIR%/%NAME%/</string>
                </array>
            </dict>
        </dict>
    </array>
</dict>
</plist>
Processing 4/Processing 4.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of Processing 4.
Set PRERELEASE to a non-empty string to download prereleases, either
via Input in an override or via the -k option,
i.e.: `-k PRERELEASE=yes`</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.Processing 4</string>
    <key>Input</key>
    <dict>
        <key>PRERELEASE</key>
        <string></string>
        <key>NAME</key>
        <string>Processing4</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>GitHubReleasesInfoProvider</string>
            <key>Arguments</key>
            <dict>
                <key>github_repo</key>
                <string>processing/processing4</string>
                <key>include_prereleases</key>
                <string>%PRERELEASE%</string>
                <key>asset_regex</key>
                <string>processing-.*?-macosx.zip</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>URLDownloader</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>Unarchiver</string>
            <key>Arguments</key>
            <dict>
                <key>archive_path</key>
                <string>%pathname%</string>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%</string>
                <key>purge_destination</key>
                <true/>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
            <key>Arguments</key>
            <dict>
                <key>input_path</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%/Processing.app</string>
                <key>requirement</key>
                <string>identifier "org.processing.four" and anchor apple generic and 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] = "8SBRM6J77J"</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>
Pritunl Client/PritunlClient.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of Pritunl Client and imports it into Munki.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.pritunlclient</string>
      <key>Input</key>
    <dict>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>NAME</key>
        <string>PritunlClient</string>
        <key>pkginfo</key>
        <dict>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
			<key>developer</key>
			<string>Pritunl</string>
            <key>description</key>
            <string>Connect to OpenVPN servers with a free, open source and secure client. Additional integration available when connecting to a Pritunl server.</string>
            <key>display_name</key>
            <string>Pritunl Client</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
            <key>unattended_uninstall</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.3.1</string>
    <key>ParentRecipe</key>
	<string>com.github.dataJAR-recipes.download.pritunlclient</string>
    <key>Process</key>
    <array>
		<dict>
			<key>Processor</key>
			<string>FlatPkgUnpacker</string>
			<key>Arguments</key>
			<dict>
				<key>flat_pkg_path</key>
				<string>%RECIPE_CACHE_DIR%/%NAME%/Pritunl.pkg</string>
				<key>destination_path</key>
				<string>%RECIPE_CACHE_DIR%/unpack</string>
			</dict>
		</dict>
		<dict>
			<key>Processor</key>
			<string>PkgPayloadUnpacker</string>
			<key>Arguments</key>
			<dict>
				<key>pkg_payload_path</key>
				<string>%RECIPE_CACHE_DIR%/unpack/Build.pkg/Payload</string>
				<key>destination_path</key>
				<string>%RECIPE_CACHE_DIR%/pkgroot/</string>
				<key>purge_destination</key>
				<true/>
			</dict>
		</dict>
		<dict>
			<key>Processor</key>
			<string>MunkiInstallsItemsCreator</string>
			<key>Arguments</key>
			<dict>
				<key>faux_root</key>
				<string>%RECIPE_CACHE_DIR%/pkgroot/</string>
				<key>installs_item_paths</key>
				<array>
					<string>/Applications/Pritunl.app</string>
				</array>
			</dict>
		</dict>
		<dict>
			<key>Processor</key>
			<string>MunkiPkginfoMerger</string>
		</dict>
		<dict>
			<key>Processor</key>
			<string>PlistReader</string>
			<key>Arguments</key>
			<dict>
				<key>info_path</key>
				<string>%RECIPE_CACHE_DIR%/pkgroot/Applications/Pritunl.app/Contents/Info.plist</string>
			</dict>
		</dict>
		<dict>
			<key>Processor</key>
			<string>MunkiPkginfoMerger</string>
			<key>Arguments</key>
			<dict>
				<key>additional_pkginfo</key>
				<dict>
					<key>version</key>
					<string>%version%</string>
				</dict>
			</dict>
		</dict>
		<dict>
			<key>Processor</key>
			<string>MunkiImporter</string>
			<key>Arguments</key>
			<dict>
				<key>pkg_path</key>
				<string>%RECIPE_CACHE_DIR%/%NAME%/Pritunl.pkg</string>
				<key>repo_subdirectory</key>
				<string>%MUNKI_REPO_SUBDIR%</string>
			</dict>
		</dict>
		<dict>
			<key>Processor</key>
			<string>PathDeleter</string>
			<key>Arguments</key>
			<dict>
				<key>path_list</key>
				<array>
					<string>%RECIPE_CACHE_DIR%/pkgroot/</string>  
					<string>%RECIPE_CACHE_DIR%/unpack/</string>                      
				</array>
			</dict>
		</dict>
    </array>
</dict>
</plist>
Pritunl Client/PritunlClient.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest Pritunl Client.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.pritunlclient</string>
    <key>Input</key>
    <dict>
        <key>PRERELEASE</key>
        <string></string>
        <key>NAME</key>
        <string>PritunlClient</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>GitHubReleasesInfoProvider</string>
            <key>Arguments</key>
            <dict>
                <key>github_repo</key>
                <string>pritunl/pritunl-client-electron</string>
                <key>asset_regex</key>
                <string>Pritunl.pkg.zip</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>URLDownloader</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>Unarchiver</string>
            <key>Arguments</key>
            <dict>
                <key>archive_path</key>
                <string>%pathname%</string>
                <key>purge_destination</key>
                <true/>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
            <key>Arguments</key>
            <dict>
                <key>input_path</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%/Pritunl.pkg</string>
                <key>requirement</key>
                <string>identifier "com.electron.pritunl" and anchor apple generic and 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] = U22BLATN63</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>
PreSonus Universal Control/PreSonus Universal Control.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
    <dict>
        <key>Description</key>
        <string>Downloads the latest version of PreSonus Universal Control and imports into Munki</string>
        <key>Identifier</key>
        <string>com.github.dataJAR-recipes.munki.PreSonus Universal Control</string>
        <key>Input</key>
        <dict>
            <key>MUNKI_REPO_SUBDIR</key>
            <string>apps/%NAME%</string>
            <key>NAME</key>
            <string>PreSonus Universal Control</string>
            <key>pkginfo</key>
            <dict>
                <key>catalogs</key>
                <array>
                    <string>testing</string>
                </array>
                <key>description</key>
                <string>Universal Control provides the foundation upon which all FireStudio interfaces and Studio Live Mixers operate when connected to your Mac or PC.</string>
                <key>developer</key>
                <string>PreSonus</string>
                <key>display_name</key>
                <string>PreSonus Universal Control</string>
                <key>name</key>
                <string>%NAME%</string>
                <key>unattended_install</key>
                <true></true>
                <key>unattended_uninstall</key>
                <true></true>
            </dict>
        </dict>
        <key>MinimumVersion</key>
        <string>0.5.0</string>
        <key>ParentRecipe</key>
        <string>com.github.dataJAR-recipes.download.PreSonus Universal Control</string>
        <key>Process</key>
        <array>
            <dict>
                <key>Arguments</key>
                <dict>
                    <key>pkg_path</key>
                    <string>%RECIPE_CACHE_DIR%/PreSonus Universal Control.pkg</string>
                    <key>source_pkg</key>
                    <string>%pathname%/PreSonus Universal Control.pkg</string>
                </dict>
                <key>Processor</key>
                <string>PkgCopier</string>
            </dict>
            <dict>
                <key>Arguments</key>
                <dict>
                    <key>repo_subdirectory</key>
                    <string>%MUNKI_REPO_SUBDIR%</string>
                </dict>
                <key>Processor</key>
                <string>MunkiImporter</string>
            </dict>
        </array>
    </dict>
</plist>
PreSonus Universal Control/PreSonus Universal Control.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
    <dict>
        <key>Description</key>
        <string>Downloads the latest version of Universal Control</string>
        <key>Identifier</key>
        <string>com.github.dataJAR-recipes.download.PreSonus Universal Control</string>
        <key>Input</key>
        <dict>
            <key>NAME</key>
            <string>PreSonus Universal Control</string>
        </dict>
        <key>MinimumVersion</key>
        <string>0.5.0</string>
        <key>Process</key>
        <array>
            <dict>
                <key>Arguments</key>
                <dict>
                    <key>re_pattern</key>
                    <string>\/\/pae-web\.presonusmusic\.com\/downloads\/products\/dmg\/PreSonus_UniversalControl_\S*\.dmg</string>
                    <key>result_output_var_name</key>
                    <string>match</string>
                    <key>url</key>
                    <string>https://www.presonus.com/products/StudioLive-AR8-USB/downloads</string>
                </dict>
                <key>Processor</key>
                <string>URLTextSearcher</string>
            </dict>
            <dict>
                <key>Arguments</key>
                <dict>
                    <key>url</key>
                    <string>https:%match%</string>
                </dict>
                <key>Processor</key>
                <string>URLDownloader</string>
            </dict>
            <dict>
                <key>Arguments</key>
                <dict>
                    <key>input_path</key>
                    <string>%pathname%/PreSonus Universal Control.pkg</string>
                    <key>expected_authority_names</key>
                    <array>
                        <string>Developer ID Installer: PreSonus Software Limited (Q524P4NWE7)</string>
                        <string>Developer ID Certification Authority</string>
                        <string>Apple Root CA</string>
                    </array>
                </dict>
                <key>Processor</key>
                <string>CodeSignatureVerifier</string>
            </dict>
        </array>
    </dict>
</plist>
PreForm/PreForm.png METASEP

PreForm/PreForm.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest trial version of PreForm and imports into Munki.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.PreForm</string>
    <key>Input</key>
    <dict>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>NAME</key>
        <string>PreForm</string>
        <key>pkginfo</key>
        <dict> 
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>PreForm prepares your 3D models for printing on your Formlabs printer, giving you the freedom to focus on creating. Get your model ready in minutes, upload to your printer, and let it build.</string>
            <key>display_name</key>
            <string>PreForm</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
            <key>unattended_uninstall</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>ParentRecipe</key>
    <string>com.github.haircut.download.PreForm</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%pathname%</string>
                <key>munkiimport_appname</key>
                <string>PreForm.app</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>
PreForm/PreForm.jss.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the current release version of PreForm and then uploads to the JSS</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.jss.PreForm</string>
    <key>Input</key>
    <dict>
        <key>CATEGORY</key>
        <string>Applications</string>
        <key>GROUP_NAME</key>
        <string>%NAME%-update-smart</string>
        <key>GROUP_TEMPLATE</key>
        <string>SmartGroupTemplate.xml</string>
        <key>NAME</key>
        <string>PreForm</string>
        <key>POLICY_CATEGORY</key>
        <string>Testing</string>
        <key>POLICY_TEMPLATE</key>
        <string>PolicyTemplate.xml</string>
        <key>SELF_SERVICE_DESCRIPTION</key>
        <string>PreForm prepares your 3D models for printing on your Formlabs printer, giving you the freedom to focus on creating. Get your model ready in minutes, upload to your printer, and let it build.</string>
        <key>SELF_SERVICE_ICON</key>
        <string>PreForm.png</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>ParentRecipe</key>
    <string>com.github.haircut.pkg.PreForm</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Arguments</key>
            <dict>
                <key>category</key>
                <string>%CATEGORY%</string>
                <key>groups</key>
                <array>
                    <dict>
                        <key>name</key>
                        <string>%GROUP_NAME%</string>
                        <key>smart</key>
                        <true/>
                        <key>template_path</key>
                        <string>%GROUP_TEMPLATE%</string>
                    </dict>
                </array>
                <key>policy_category</key>
                <string>%POLICY_CATEGORY%</string>
                <key>policy_template</key>
                <string>%POLICY_TEMPLATE%</string>
                <key>prod_name</key>
                <string>PreForm</string>
                <key>self_service_description</key>
                <string>%SELF_SERVICE_DESCRIPTION%</string>
                <key>self_service_icon</key>
                <string>%SELF_SERVICE_ICON%</string>
                <key>version</key>
                <string>%version%</string>
            </dict>
            <key>Processor</key>
            <string>JSSImporter</string>
        </dict>
    </array>
</dict>
</plist>

Postman/Postman.pkg.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>Description</key>
	<string>Downloads the current release version of Postman and builds a package. Taken from bnpl-recipes repo</string>
	<key>Identifier</key>
	<string>com.github.dataJAR-recipes.pkg.postman</string>
	<key>Input</key>
	<dict>
		<key>NAME</key>
		<string>Postman</string>
	</dict>
	<key>MinimumVersion</key>
	<string>1.0.0</string>
	<key>ParentRecipe</key>
	<string>com.github.dataJAR-recipes.download.postman</string>
	<key>Process</key>
	<array>
		<dict>
			<key>Arguments</key>
			<dict>
				<key>app_path</key>
				<string>%RECIPE_CACHE_DIR%/%NAME%/Postman.app</string>
			</dict>
			<key>Processor</key>
			<string>AppPkgCreator</string>
		</dict>
	</array>
</dict>
</plist>

Postman/Postman.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the current release version of Postman, builds a package and imports it to Munki. Taken from bnpl-recipes repo</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.postman</string>
    <key>Input</key>
    <dict>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>developer</string>
        <key>NAME</key>
        <string>Postman</string>
        <key>pkginfo</key>
        <dict>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>category</key>
            <string>Developer Tools</string>
            <key>description</key>
            <string>Create and send any HTTP request using the awesome Postman request builder. Write your own test cases to validate response data, response times, and more!</string>
            <key>developer</key>
            <string>Postdot Technologies, Inc.</string>
            <key>display_name</key>
            <string>Postman</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
            <key>unattended_uninstall</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>1.0.0</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.postman</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>DmgCreator</string>
            <key>Arguments</key>
            <dict>
                <key>dmg_path</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%.dmg</string>
                <key>dmg_root</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%dmg_path%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PathDeleter</string>
            <key>Arguments</key>
            <dict>
                <key>path_list</key>
                <array>
                    <string>%RECIPE_CACHE_DIR%/%NAME%/</string>
                </array>
            </dict>
        </dict>
    </array>
</dict>
</plist>
Postman/Postman.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the current release version of Postman. Taken from bnpl-recipes repo. thanks to TSPARR for the Code Signature Check</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.postman</string>
    <key>Input</key>
    <dict>
        <key>DOWNLOAD_URL</key>
        <string>https://dl.pstmn.io/download/latest/osx</string>
        <key>NAME</key>
        <string>Postman</string>
    </dict>
    <key>MinimumVersion</key>
    <string>1.0.0</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Arguments</key>
            <dict>
                <key>url</key>
                <string>%DOWNLOAD_URL%</string>
            </dict>
            <key>Processor</key>
            <string>URLDownloader</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>Unarchiver</string>
            <key>Arguments</key>
            <dict>
                <key>archive_format</key>
                <string>zip</string>
                <key>archive_path</key>
                <string>%pathname%</string>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%</string>
                <key>purge_destination</key>
                <true/>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
            <key>Arguments</key>
            <dict>
                <key>input_path</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%/Postman.app</string>
                <key>requirement</key>
                <string>identifier "com.postmanlabs.mac" and anchor apple generic and 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] = H7H8Q7M5CK</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>
PostgreSQL 14/PostgreSQL 14.pkg.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Generates a pkg of PostgreSQL 14.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.pkg.PostgreSQL 14</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>PostgreSQL14</string>
    </dict>
    <key>MinimumVersion</key>
    <string>1.0.0</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.PostgreSQL 14</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>PkgRootCreator</string>
            <key>Arguments</key>
            <dict>
                <key>pkgroot</key>
                <string>%RECIPE_CACHE_DIR%/pkgroot</string>
                <key>pkgdirs</key>
                <dict/>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>Copier</string>
            <key>Arguments</key>
            <dict>
                <key>source_path</key>
                <string>%pathname%/postgresql-%match%-1-osx.app</string>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/Scripts/postgresql-%match%-1-osx.app</string>
                <key>overwrite</key>
                <true/>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>FileCreator</string>
            <key>Arguments</key>
            <dict>
                <key>file_path</key>
                <string>%RECIPE_CACHE_DIR%/Scripts/postinstall</string>
                <key>file_mode</key>
                <string>0755</string>
                <key>file_content</key>
                <string>#!/bin/bash

# Determine working directory
install_dir=$(dirname $0)

# install with no UI
"${install_dir}/postgresql-%match%-1-osx.app/Contents/MacOS/osx-x86_64" --unattendedmodeui none --mode unattended</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PkgCreator</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_request</key>
                <dict>
                    <key>pkgroot</key>
                    <string>%RECIPE_CACHE_DIR%/pkgroot</string>
                    <key>pkgname</key>
                    <string>%NAME%-%match%</string>
                    <key>pkgtype</key>
                    <string>flat</string>
                    <key>id</key>
                    <string>com.enterprisedb.postgresql.pkg</string>
                    <key>version</key>
                    <string>%match%</string>
                    <key>scripts</key>
                    <string>Scripts</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PathDeleter</string>
            <key>Arguments</key>
            <dict>
                <key>path_list</key>
                <array>
                    <string>%RECIPE_CACHE_DIR%/pkgroot</string>
                    <string>%RECIPE_CACHE_DIR%/Scripts</string>
                </array>
            </dict>
        </dict>
    </array>
</dict>
</plist>
PostgreSQL 14/PostgreSQL 14.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of PostgreSQL 14 and imports it into Munki.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.PostgreSQL 14</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>PostgreSQL14</string>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>pkginfo</key>
        <dict>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>PostgreSQL 14 database system packaged by EnterpriseDB.com.

This installer includes the PostgreSQL server, pgAdmin; a graphical tool for managing and developing your databases, and StackBuilder; a package manager that can be used to download and install additional PostgreSQL tools and drivers. Stackbuilder includes management, integration, migration, replication, geospatial, connectors and other tools. </string>
            <key>developer</key>
            <string>EnterpriseDB Corporation</string>
            <key>display_name</key>
            <string>PostgreSQL 14</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
            <key>uninstall_method</key>
            <string>uninstall_script</string>
            <key>uninstall_script</key>
            <string>#!/bin/bash
#
# If the versions uninstaller exists, call it.
#
# NOTE: The script states that after running: 
# "The data directory (/Library/PostgreSQL/14/data) and service user account (postgres) have not been removed.
#

installbuilderScript="/Library/PostgreSQL/14/uninstall-postgresql.app/Contents/MacOS/installbuilder.sh"

if [ -e "${installbuilderScript}" ]
then
    /bin/echo "Running ${installbuilderScript} --unattendedmodeui none --mode unattended..."
    "${installbuilderScript}" --unattendedmodeui none --mode unattended
else
    /bin/echo "Cannot find ${installbuilderScript}..."
fi

# Deletes this dir if found after uninstallation
if [ -d "/Applications/PostgreSQL 14/" ]
then
    /bin/echo "Deleting /Applications/PostgreSQL 14..."
    /bin/rm -rf "/Applications/PostgreSQL 14"
fi</string>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>1.0.0</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.pkg.PostgreSQL 14</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%pkg_path%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
                <key>version_comparison_key</key>
                <string>CFBundleVersion</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>
PostgreSQL 14/PostgreSQL 14.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of PostgreSQL 14.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.PostgreSQL 14</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>PostgreSQL14</string>
    </dict>
    <key>MinimumVersion</key>
    <string>1.0.0</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>URLTextSearcher</string>
            <key>Arguments</key>
            <dict>
                <key>url</key>
                <string>https://www.enterprisedb.com/download-postgresql-binaries</string>
                <key>re_pattern</key>
                <string>eVersion (14\..*?)\\u</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>URLDownloader</string>
            <key>Arguments</key>
            <dict>
                <key>url</key>
                <string>https://get.enterprisedb.com/postgresql/postgresql-%match%-1-osx.dmg</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
            <key>Arguments</key>
            <dict>
                <key>input_path</key>
                <string>%pathname%/postgresql-%match%-1-osx.app</string>
                <key>requirement</key>
                <string>identifier "com.edb.postgresql" and anchor apple generic and 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] = "26QKX55P9K"</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>
PostgreSQL 13/PostgreSQL 13.pkg.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Generates a pkg of PostgreSQL 13.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.pkg.PostgreSQL 13</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>PostgreSQL13</string>
    </dict>
    <key>MinimumVersion</key>
    <string>1.0.0</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.PostgreSQL 13</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>PkgRootCreator</string>
            <key>Arguments</key>
            <dict>
                <key>pkgroot</key>
                <string>%RECIPE_CACHE_DIR%/pkgroot</string>
                <key>pkgdirs</key>
                <dict/>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>Copier</string>
            <key>Arguments</key>
            <dict>
                <key>source_path</key>
                <string>%pathname%/postgresql-%match%-1-osx.app</string>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/Scripts/postgresql-%match%-1-osx.app</string>
                <key>overwrite</key>
                <true/>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>FileCreator</string>
            <key>Arguments</key>
            <dict>
                <key>file_path</key>
                <string>%RECIPE_CACHE_DIR%/Scripts/postinstall</string>
                <key>file_mode</key>
                <string>0755</string>
                <key>file_content</key>
                <string>#!/bin/bash

# Determine working directory
install_dir=$(dirname $0)

# install with no UI
"${install_dir}/postgresql-%match%-1-osx.app/Contents/MacOS/osx-x86_64" --unattendedmodeui none --mode unattended</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PkgCreator</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_request</key>
                <dict>
                    <key>pkgroot</key>
                    <string>%RECIPE_CACHE_DIR%/pkgroot</string>
                    <key>pkgname</key>
                    <string>%NAME%-%match%</string>
                    <key>pkgtype</key>
                    <string>flat</string>
                    <key>id</key>
                    <string>com.enterprisedb.postgresql.pkg</string>
                    <key>version</key>
                    <string>%match%</string>
                    <key>scripts</key>
                    <string>Scripts</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PathDeleter</string>
            <key>Arguments</key>
            <dict>
                <key>path_list</key>
                <array>
                    <string>%RECIPE_CACHE_DIR%/pkgroot</string>
                    <string>%RECIPE_CACHE_DIR%/Scripts</string>
                </array>
            </dict>
        </dict>
    </array>
</dict>
</plist>
PostgreSQL 13/PostgreSQL 13.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of PostgreSQL 13 and imports it into Munki.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.PostgreSQL 13</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>PostgreSQL13</string>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>pkginfo</key>
        <dict>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>PostgreSQL 13 database system packaged by EnterpriseDB.com.

This installer includes the PostgreSQL server, pgAdmin; a graphical tool for managing and developing your databases, and StackBuilder; a package manager that can be used to download and install additional PostgreSQL tools and drivers. Stackbuilder includes management, integration, migration, replication, geospatial, connectors and other tools. </string>
            <key>developer</key>
            <string>EnterpriseDB Corporation</string>
            <key>display_name</key>
            <string>PostgreSQL 13</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
            <key>uninstall_method</key>
            <string>uninstall_script</string>
            <key>uninstall_script</key>
            <string>#!/bin/bash
#
# If the versions uninstaller exists, call it.
#
# NOTE: The script states that after running: 
# "The data directory (/Library/PostgreSQL/13/data) and service user account (postgres) have not been removed.
#

installbuilderScript="/Library/PostgreSQL/13/uninstall-postgresql.app/Contents/MacOS/installbuilder.sh"

if [ -e "${installbuilderScript}" ]
then
    /bin/echo "Running ${installbuilderScript} --unattendedmodeui none --mode unattended..."
    "${installbuilderScript}" --unattendedmodeui none --mode unattended
else
    /bin/echo "Cannot find ${installbuilderScript}..."
fi

# Deletes this dir if found after uninstallation
if [ -d "/Applications/PostgreSQL 13/" ]
then
    /bin/echo "Deleting /Applications/PostgreSQL 13..."
    /bin/rm -rf "/Applications/PostgreSQL 13"
fi</string>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>1.0.0</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.pkg.PostgreSQL 13</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%pkg_path%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
                <key>version_comparison_key</key>
                <string>CFBundleVersion</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>
PostgreSQL 13/PostgreSQL 13.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of PostgreSQL 13.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.PostgreSQL 13</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>PostgreSQL13</string>
    </dict>
    <key>MinimumVersion</key>
    <string>1.0.0</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>URLTextSearcher</string>
            <key>Arguments</key>
            <dict>
                <key>url</key>
                <string>https://www.enterprisedb.com/download-postgresql-binaries</string>
                <key>re_pattern</key>
                <string>Version (13\..*?)\\u</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>URLDownloader</string>
            <key>Arguments</key>
            <dict>
                <key>url</key>
                <string>https://get.enterprisedb.com/postgresql/postgresql-%match%-1-osx.dmg</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
            <key>Arguments</key>
            <dict>
                <key>input_path</key>
                <string>%pathname%/postgresql-%match%-1-osx.app</string>
                <key>requirement</key>
                <string>identifier "com.edb.postgresql" and anchor apple generic and 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] = "26QKX55P9K"</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>
Post Haste/PostHaste.png METASEP

Post Haste/Post Haste.pkg.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>Description</key>
	<string>Downloads the latest version of Post Haste and creates a package.</string>
	<key>Identifier</key>
	<string>com.github.dataJAR-recipes.pkg.Post Haste</string>
	<key>Input</key>
	<dict>
		<key>NAME</key>
		<string>Post Haste</string>
	</dict>
	<key>MinimumVersion</key>
	<string>0.6.1</string>
	<key>ParentRecipe</key>
	<string>com.github.dataJAR-recipes.download.Post Haste</string>
	<key>Process</key>
	<array>
		<dict>
			<key>Arguments</key>
			<dict>
				<key>pkgdirs</key>
				<dict>
					<key>Applications</key>
					<string>0775</string>
				</dict>
				<key>pkgroot</key>
				<string>%RECIPE_CACHE_DIR%/%NAME%</string>
			</dict>
			<key>Processor</key>
			<string>PkgRootCreator</string>
		</dict>
		<dict>
			<key>Arguments</key>
			<dict>
				<key>destination_path</key>
				<string>%pkgroot%/Applications/Post Haste.app</string>
				<key>source_path</key>
				<string>%RECIPE_CACHE_DIR%/downloads/%filename%/Post Haste.app</string>
			</dict>
			<key>Processor</key>
			<string>Copier</string>
		</dict>
	    <dict>
            <key>Processor</key>
            <string>PlistReader</string>
            <key>Arguments</key>
            <dict>
                <key>info_path</key>
                <string>%pkgroot%/Applications/Post Haste.app/Contents/Info.plist</string>
				<key>plist_keys</key>
                <dict>
                    <key>CFBundleVersion</key>
                    <string>version</string>
                    <key>CFBundleIdentifier</key>
                    <string>bundleid</string>
                </dict>
            </dict>
        </dict>
		<dict>
			<key>Arguments</key>
			<dict>
				<key>pkg_request</key>
				<dict>
					<key>chown</key>
					<array>
						<dict>
							<key>group</key>
							<string>admin</string>
							<key>path</key>
							<string>Applications</string>
							<key>user</key>
							<string>root</string>
						</dict>
					</array>
					<key>id</key>
					<string>%bundleid%</string>
					<key>options</key>
					<string>purge_ds_store</string>
					<key>pkgname</key>
					<string>%NAME%-%version%</string>
					<key>pkgroot</key>
					<string>%RECIPE_CACHE_DIR%/%NAME%</string>
					<key>version</key>
					<string>%version%</string>
				</dict>
			</dict>
			<key>Processor</key>
			<string>PkgCreator</string>
		</dict>
	</array>
</dict>
</plist>

Post Haste/Post Haste.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of Post Haste and imports it into Munki.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.Post Haste</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>Post Haste</string>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>pkginfo</key>
        <dict>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>Post Haste is a free project management tool that allows you to setup file and folder templates for your projects. Create a new project and everything's organized, ready for you to start.</string>
            <key>developer</key>
			<string>Digital Rebellion</string>
            <key>display_name</key>
            <string>Post Haste</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
        </dict>
		<key>pkginfo_keys_to_copy_from_sparkle_feed</key>
		<array>
			<string>minimum_os_version</string>
		</array>  
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.Post Haste</string>
    <key>Process</key>
    <array>
		<dict>
			<key>Processor</key>
			<string>MunkiImporter</string>
			<key>Arguments</key>
			<dict>
				<key>pkg_path</key>
				<string>%pathname%</string>
				<key>repo_subdirectory</key>
				<string>%MUNKI_REPO_SUBDIR%</string>
			</dict>
		</dict>
    </array>
</dict>
</plist>
Post Haste/Post Haste.jss.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>Description</key>
	<string>Downloads the current release version of Post Haste and builds a package. Then, uploads to the JSS.</string>
	<key>Identifier</key>
	<string>com.github.dataJAR-recipes.jss.Post Haste</string>
	<key>Input</key>
	<dict>
		<key>CATEGORY</key>
		<string>Productivity</string>
		<key>GROUP_NAME</key>
		<string>%NAME%-update-smart</string>
		<key>GROUP_TEMPLATE</key>
		<string>Post Haste-SmartGroupTemplate.xml</string>
		<key>NAME</key>
		<string>Post Haste-Trial</string>
		<key>POLICY_CATEGORY</key>
		<string>Testing</string>
		<key>POLICY_TEMPLATE</key>
		<string>PolicyTemplate.xml</string>
		<key>SELF_SERVICE_DESCRIPTION</key>
        <string>Post Haste is a free project management tool that allows you to setup file and folder templates for your projects. Create a new project and everything's organized, ready for you to start.</string>
        <key>SELF_SERVICE_ICON</key>
		<string>PostHaste.png</string>
	</dict>
	<key>MinimumVersion</key>
	<string>0.6.1</string>
	<key>ParentRecipe</key>
	<string>com.github.dataJAR-recipes.pkg.Post Haste</string>
	<key>Process</key>
	<array>
		<dict>
			<key>Arguments</key>
			<dict>
				<key>category</key>
				<string>%CATEGORY%</string>
				<key>extension_attributes</key>
				<array>
					<dict>
						<key>ext_attribute_path</key>
						<string>Post Haste-ExtensionAttribute.xml</string>
					</dict>
				</array>
				<key>groups</key>
				<array>
					<dict>
						<key>name</key>
						<string>%GROUP_NAME%</string>
						<key>smart</key>
						<true/>
						<key>template_path</key>
						<string>%GROUP_TEMPLATE%</string>
					</dict>
				</array>
				<key>policy_category</key>
				<string>%POLICY_CATEGORY%</string>
				<key>policy_template</key>
				<string>%POLICY_TEMPLATE%</string>
				<key>prod_name</key>
				<string>%NAME%</string>
				<key>self_service_description</key>
				<string>%SELF_SERVICE_DESCRIPTION%</string>
				<key>self_service_icon</key>
				<string>%SELF_SERVICE_ICON%</string>
			</dict>
			<key>Processor</key>
			<string>JSSImporter</string>
		</dict>
	</array>
</dict>
</plist>

Post Haste/Post Haste.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads latest version of Post Haste.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.Post Haste</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>Post Haste</string>
        <key>DOWNLOAD_CHECK_URL</key>
        <string>https://www.digitalrebellion.com/posthaste/download-mac</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>URLTextSearcher</string>
            <key>Arguments</key>
            <dict>
                <key>url</key>
                <string>%DOWNLOAD_CHECK_URL%</string>
                <key>re_pattern</key>
                <string>Downloading Post Haste for Mac.*/download\/posthaste\?version=(.*)\"&gt;click</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>URLDownloader</string>
            <key>Arguments</key>
            <dict>
                <key>url</key>
                <string>https://digitalrebellion-downloads.s3.amazonaws.com/posthaste/Post_Haste_for_Mac_%match%.dmg</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
            <key>Arguments</key>
            <dict>
                <key>input_path</key>
                <string>%pathname%/Post Haste.app</string>
                <key>requirement</key>
                <string>identifier "com.digitalrebellion.PostHaste" and anchor apple generic and 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] = "7F8QJ989JE"</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>
Post Haste/Post Haste-SmartGroupTemplate.xml METASEP
<computer_group>
	<name>%group_name%</name>
	<is_smart>true</is_smart>
	<criteria>
		<criterion>
			<name>PostHasteVersion</name>
			<priority>0</priority>
			<and_or>and</and_or>
			<search_type>is not</search_type>
			<value>%VERSION%</value>
		</criterion>
		<criterion>
			<name>PostHasteVersion</name>
			<priority>1</priority>
			<and_or>and</and_or>
			<search_type>is not</search_type>
			<value></value>
		</criterion>
		<criterion>
			<name>Computer Group</name>
			<priority>2</priority>
			<and_or>and</and_or>
			<search_type>member of</search_type>
			<value>Testing</value>
		</criterion>
	</criteria>
</computer_group>

Post Haste/Post Haste-ExtensionAttribute.xml METASEP
<computer_extension_attribute>
	<name>PostHasteVersion</name>
	<description>Returns the CFBundleVersion of Post Haste if installed, as this is incremented &amp; not CFBundleShortVersionString.</description>
	<data_type>String</data_type>
	<input_type>
		<type>script</type>
		<platform>Mac</platform>
		<script>#!/bin/bash
PostHasteVersion=""
if [ -f /Applications/Post Haste.app/Contents/Info.plist ]
	then
		PostHasteVersion=$(/usr/bin/defaults read /Applications/Post Haste.app/Contents/Info.plist CFBundleVersion)
fi

/bin/echo "&lt;result&gt;$PostHasteVersion&lt;/result&gt;"

exit 0</script>
	</input_type>
	<inventory_display>Extension Attributes</inventory_display>
	<recon_display>Extension Attributes</recon_display>
</computer_extension_attribute>

Polycom Content App/PolycomContentApp.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Imports the latest version of Polycom Content App into Munki.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.PolycomContentApp</string>
    <key>Input</key>
    <dict>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/polycom</string>
        <key>NAME</key>
        <string>PolycomContentApp</string>
        <key>SEARCH_URL</key>
        <string>https://support.polycom.com/content/support/north-america/usa/en/support/video/polycom-content-app.html</string>
        <key>POLYCOMRPDESKTOP_DMG_REPATTERN</key>
        <string>https://downloads\.polycom\.com/video/content-app/PolycomContentApp_(?P&lt;version&gt;.*?_.*?_.*?)_(?P&lt;bundle_version&gt;.*?)\.dmg</string>
        <key>pkginfo</key>
        <dict>
        	<key>blocking_applications</key>
			<array>
				<string>Polycom Content App</string>
			</array>
            <key>category</key>
            <string>Productivity</string>
            <key>developer</key>
            <string>Polycom</string>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>The easiest way to share content at work</string>
            <key>display_name</key>
            <string>Polycom Content App</string>
            <key>unattended_install</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.2.9</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.PolycomContentApp</string>
    <key>Process</key>
    <array>
		<dict>
			<key>Processor</key>
			<string>FlatPkgUnpacker</string>
			<key>Arguments</key>
			<dict>
				<key>flat_pkg_path</key>
				<string>%pathname%/*.pkg</string>
				<key>destination_path</key>
				<string>%RECIPE_CACHE_DIR%/unpack</string>
			</dict>
		</dict>
		<dict>
			<key>Processor</key>
			<string>PkgPayloadUnpacker</string>
			<key>Arguments</key>
			<dict>
				<key>pkg_payload_path</key>
				<string>%RECIPE_CACHE_DIR%/unpack/PolycomContentApp.pkg/Payload</string>
				<key>destination_path</key>
				<string>%RECIPE_CACHE_DIR%/pkgroot/Applications/</string>
				<key>purge_destination</key>
				<true/>
			</dict>
		</dict>
		<dict>
			<key>Processor</key>
			<string>MunkiInstallsItemsCreator</string>
			<key>Arguments</key>
			<dict>
				<key>faux_root</key>
				<string>%RECIPE_CACHE_DIR%/pkgroot/</string>
				<key>installs_item_paths</key>
				<array>
					<string>/Applications/Polycom Content App.app</string>
				</array>
			</dict>
		</dict>
		<dict>
			<key>Processor</key>
			<string>MunkiPkginfoMerger</string>
		</dict>
		<dict>
			<key>Processor</key>
			<string>PlistReader</string>
			<key>Arguments</key>
			<dict>
				<key>info_path</key>
				<string>%RECIPE_CACHE_DIR%/pkgroot/Applications/Polycom Content App.app/Contents/Info.plist</string>
				<key>plist_keys</key>
				<dict>
					<key>CFBundleVersion</key>
					<string>version</string>
				</dict>
			</dict>
		</dict>
		<dict>
			<key>Processor</key>
			<string>MunkiPkginfoMerger</string>
			<key>Arguments</key>
			<dict>
				<key>additional_pkginfo</key>
				<dict>
					<key>version</key>
					<string>%version%</string>
				</dict>
			</dict>
		</dict>
		<dict>
			<key>Processor</key>
			<string>MunkiImporter</string>
			<key>Arguments</key>
			<dict>
				<key>pkg_path</key>
				<string>%pathname%</string>
				<key>repo_subdirectory</key>
				<string>%MUNKI_REPO_SUBDIR%</string>
			</dict>
		</dict>
		<dict>
			<key>Processor</key>
			<string>PathDeleter</string>
			<key>Arguments</key>
			<dict>
				<key>path_list</key>
				<array>
					<string>%RECIPE_CACHE_DIR%/pkgroot/</string>  
					<string>%RECIPE_CACHE_DIR%/unpack/</string>                      
				</array>
			</dict>
		</dict>
    </array>
</dict>
</plist>

Polycom Content App/PolycomContentApp.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of Polycom Content App.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.PolycomContentApp</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>PolycomContentApp</string>
        <key>SEARCH_URL</key>
        <string>https://support.polycom.com/content/support/north-america/usa/en/support/video/polycom-content-app.html</string>
        <key>POLYCOMRPDESKTOP_DMG_REPATTERN</key>
        <string>https://downloads\.polycom\.com/video/content-app/PolycomContentApp_(?P&lt;version&gt;.*?_.*?_.*?)_(?P&lt;bundle_version&gt;.*?)\.dmg</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.2.9</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>URLTextSearcher</string>
            <key>Arguments</key>
            <dict>
                <key>url</key>
                <string>%SEARCH_URL%</string>
                <key>re_pattern</key>
                <string>(?P&lt;url&gt;%POLYCOMRPDESKTOP_DMG_REPATTERN%)</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>URLDownloader</string>
            <key>Arguments</key>
            <dict>
                <key>url</key>
                <string>%url%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
        <dict>   
            <key>Processor</key>   
            <string>CodeSignatureVerifier</string>   
            <key>Arguments</key>   
            <dict>   
                <key>input_path</key>   
                <string>%pathname%/*.pkg</string>
                <key>expected_authority_names</key>
                <array>
                    <string>Developer ID Installer: Polycom (WJCM3F7AQ4)</string>
                    <string>Developer ID Certification Authority</string>
                    <string>Apple Root CA</string>
                </array>
            </dict>
        </dict>
    </array>
</dict>
</plist>

Poll Everywhere/Poll Everywhere.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Imports the latest version of the Poll Everywhere client into Munki.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.Poll Everywhere</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>PollEverywhere</string>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>pkginfo</key>
    		<dict>
    			<key>catalogs</key>
    			<array>
    				<string>testing</string>
    			</array>
    			<key>description</key>
    			<string>Capture powerful feedback instantly during virtual meetings, classes, events, and more.</string>
    			<key>developer</key>
    			<string>Poll Everywhere</string>
    			<key>display_name</key>
    			<string>Poll Everywhere</string>
    			<key>name</key>
    			<string>%NAME%</string>
    			<key>unattended_install</key>
    			<true/>
    			<key>unattended_uninstall</key>
    			<true/>
    		</dict>
    	</dict>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.Poll Everywhere</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%pathname%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>

Poll Everywhere/Poll Everywhere.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of the Poll Everywhere app.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.Poll Everywhere</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>PollEverywhere</string>
        <key>SPARKLE_FEED_URL</key>
        <string>https://polleverywhere-app.s3.amazonaws.com/mac-stable/appcast.xml</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.2.0</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>SparkleUpdateInfoProvider</string>
            <key>Arguments</key>
            <dict>
                <key>appcast_url</key>
                <string>%SPARKLE_FEED_URL%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>URLDownloader</string>
            <key>Arguments</key>
            <dict>
                <key>filename</key>
                <string>%NAME%.dmg</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
            <key>Arguments</key>
            <dict>
                <key>input_path</key>
                <string>%pathname%/Poll Everywhere.app</string>
                <key>requirement</key>
                <string>identifier "com.polleverywhere.PollEv-Presenter" and anchor apple generic and 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] = W48F3X5M8W</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>

Polar FlowSync/Polar FlowSync 4.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.Polar FlowSync 4</string>
    <key>Description</key>
    <string>Downloads the current release version of Polar FlowSync 4 and imports it to Munki.</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>PolarFlowSync4</string>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>Applications</string>
        <key>pkginfo</key>
        <dict>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>category</key>
            <string>Applications</string>
            <key>description</key>
            <string>Install Polar FlowSync 4 to sync all your training sessions and activity data with the Polar Flow web service for more in-depth analysis.</string>
            <key>developer</key>
            <string>Polar</string>
            <key>display_name</key>
            <string>Polar FlowSync 4</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
            <key>unattended_uninstall</key>
            <true/>
            <key>uninstallable</key>
            <true/>
        </dict>        
    </dict>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.Polar FlowSync 4</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>FlatPkgUnpacker</string>
            <key>Arguments</key>
            <dict>
                <key>flat_pkg_path</key>
                <string>%pathname%</string>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/unpack</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PkgPayloadUnpacker</string>
            <key>Arguments</key>
            <dict>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/pkgroot/</string>
                <key>pkg_payload_path</key>
                <string>%RECIPE_CACHE_DIR%/unpack/Polar_FlowSync.pkg/Payload</string>
                <key>purge_destination</key>
                <true/>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiInstallsItemsCreator</string>
            <key>Arguments</key>
            <dict>
                <key>faux_root</key>
                <string>%RECIPE_CACHE_DIR%/pkgroot</string>
                <key>installs_item_paths</key>
                <array>
                    <string>/Applications/Polar FlowSync.app</string>
                </array>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiPkginfoMerger</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
                <key>pkg_path</key>
                <string>%pathname%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PathDeleter</string>
            <key>Arguments</key>
            <dict>
                <key>path_list</key>
                <array>
                    <string>%RECIPE_CACHE_DIR%/pkgroot</string>
                    <string>%RECIPE_CACHE_DIR%/unpack</string>
                </array>
            </dict>
        </dict>
    </array>
</dict>
</plist>

Polar FlowSync/Polar FlowSync 4.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the current release version of Polar FlowSync 4.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.Polar FlowSync 4</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>PolarFlowSync4</string>
        <key>USER_AGENT</key>
        <string>Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.4 Safari/605.1.15</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.2.0</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>URLTextSearcher</string>
            <key>Arguments</key>
            <dict>
                <key>url</key>
                <string>https://flow.polar.com/start</string>
                <key>re_pattern</key>
                <string>href=\"(https:\/\/flowsync\.flow\.polar\.com\/app\/FlowSync_installer-4.*?\.pkg)\"</string>
                <key>request_headers</key>
                <dict>
                    <key>user-agent</key>
                    <string>%USER_AGENT%</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>URLDownloader</string>
        	<key>Arguments</key>
            <dict>
                <key>url</key>
                <string>%match%</string>
                <key>filename</key>
                <string>%NAME%.pkg</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
            <key>Arguments</key>
            <dict>
                <key>input_path</key>
                <string>%RECIPE_CACHE_DIR%/downloads/%NAME%.pkg</string>
                <key>expected_authority_names</key>
                <array>
                    <string>Developer ID Installer: Polar Electro Oy (48T8QNDCP9)</string>
                    <string>Developer ID Certification Authority</string>
                    <string>Apple Root CA</string>
                </array>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
    </array>
</dict>
</plist>

Polar FlowSync/FlowSync.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>Identifier</key>
	<string>com.github.dataJAR-recipes.munki.flowsync</string>
	<key>Description</key>
    <string>Downloads the current release version of Polar FlowSync and imports it to Munki.</string>
	<key>Input</key>
	<dict>
		<key>NAME</key>
		<string>FlowSync</string>
		<key>MUNKI_REPO_SUBDIR</key>
        <string>Applications</string>
        <key>pkginfo</key>
        <dict>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>category</key>
            <string>Applications</string>
            <key>description</key>
            <string>Install FlowSync to sync all your training sessions and activity data with the Polar Flow web service for more in-depth analysis.</string>
            <key>developer</key>
            <string>Polar</string>
            <key>display_name</key>
            <string>FlowSync</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
            <key>unattended_uninstall</key>
            <true/>
            <key>uninstallable</key>
            <true/>
        </dict>        
	</dict>
	<key>ParentRecipe</key>
	<string>com.github.dataJAR-recipes.download.flowsync</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Arguments</key>
            <dict>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
                <key>pkg_path</key>
                <string>%RECIPE_CACHE_DIR%/downloads/%NAME%.pkg</string>
            </dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
        </dict>
    </array>
</dict>
</plist>

Polar FlowSync/FlowSync.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the current release version of Polar FlowSync.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.flowsync</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>FlowSync</string>
        <key>USER_AGENT</key>
        <string>Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.4 Safari/605.1.15</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.2.0</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>URLTextSearcher</string>
            <key>Arguments</key>
            <dict>
                <key>url</key>
                <string>https://flow.polar.com/start</string>
                <key>re_pattern</key>
                <string>href=\"(https:\/\/flowsync\.flow\.polar\.com\/app\/FlowSync_.*?\.pkg)\"</string>
                <key>request_headers</key>
                <dict>
                    <key>user-agent</key>
                    <string>%USER_AGENT%</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>URLDownloader</string>
        	<key>Arguments</key>
            <dict>
                <key>url</key>
                <string>%match%</string>
                <key>filename</key>
                <string>%NAME%.pkg</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
            <key>Arguments</key>
            <dict>
                <key>input_path</key>
                <string>%RECIPE_CACHE_DIR%/downloads/%NAME%.pkg</string>
                <key>expected_authority_names</key>
                <array>
                    <string>Developer ID Installer: Polar Electro Oy (48T8QNDCP9)</string>
                    <string>Developer ID Certification Authority</string>
                    <string>Apple Root CA</string>
                </array>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
    </array>
</dict>
</plist>

Platypus/Platypus.png METASEP

Platypus/Platypus.pkg.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>Description</key>
	<string>Downloads the current release version of Platypus and makes a package.</string>
	<key>Identifier</key>
	<string>com.github.dataJAR-recipes.pkg.Platypus</string>
	<key>Input</key>
	<dict>
		<key>NAME</key>
		<string>Platypus</string>
	</dict>
	<key>MinimumVersion</key>
	<string>1.0</string>
	<key>ParentRecipe</key>
	<string>com.github.peshay.download.Platypus</string>
	<key>Process</key>
	<array>
		<dict>
			<key>Arguments</key>
			<dict>
				<key>app_path</key>
				<string>%RECIPE_CACHE_DIR%/%NAME%/Platypus.app</string>
			</dict>
			<key>Processor</key>
			<string>AppPkgCreator</string>
		</dict>
	</array>
</dict>
</plist>

Platypus/Platypus.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of Platypus and imports it into Munki.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.Platypus</string>
    <key>Input</key>
    <dict>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>NAME</key>
        <string>Platypus</string>
        <key>pkginfo</key>
        <dict>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>Platypus is a developer tool for the macOS operating system. It creates native macOS applications from interpreted scripts such as shell scripts or Perl, Ruby and Python programs. This is done by wrapping the script in an application bundle along with a native executable binary that runs the script.</string>
            <key>developer</key>
            <string>Sveinbjorn Thordarson</string>
            <key>display_name</key>
            <string>Platypus</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.5.0</string>
    <key>ParentRecipe</key>
    <string>com.github.peshay.download.Platypus</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Arguments</key>
            <dict>
                <key>dmg_path</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%.dmg</string>
                <key>dmg_root</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%/Platypus.app</string>
            </dict>
            <key>Processor</key>
            <string>DmgCreator</string>
        </dict>
        <dict>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%dmg_path%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PathDeleter</string>
            <key>Arguments</key>
            <dict>
                <key>path_list</key>
                <array>
                    <string>%RECIPE_CACHE_DIR%/%NAME%</string>
                </array>
            </dict>
        </dict>
    </array>
</dict>
</plist>

Platypus/Platypus.jss.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the current release version of Platypus and builds a package. Then, uploads to the JSS.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.jss.Platypus</string>
    <key>Input</key>
    <dict>
        <key>CATEGORY</key>
        <string>Productivity</string>
        <key>GROUP_NAME</key>
        <string>%NAME%-update-smart</string>
        <key>GROUP_TEMPLATE</key>
        <string>SmartGroupTemplate.xml</string>
        <key>NAME</key>
        <string>Platypus</string>
        <key>POLICY_CATEGORY</key>
        <string>Testing</string>
        <key>POLICY_TEMPLATE</key>
        <string>PolicyTemplate.xml</string>
        <key>SELF_SERVICE_DESCRIPTION</key>
        <string>Platypus is a developer tool for the macOS operating system. It creates native macOS applications from interpreted scripts such as shell scripts or Perl, Ruby and Python programs. This is done by wrapping the script in an application bundle along with a native executable binary that runs the script.</string>
        <key>SELF_SERVICE_ICON</key>
        <string>Platypus.png</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.5.0</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.pkg.Platypus</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Arguments</key>
            <dict>
                <key>category</key>
                <string>%CATEGORY%</string>
                <key>groups</key>
                <array>
                    <dict>
                        <key>name</key>
                        <string>%GROUP_NAME%</string>
                        <key>smart</key>
                        <true/>
                        <key>template_path</key>
                        <string>%GROUP_TEMPLATE%</string>
                    </dict>
                </array>
                <key>policy_category</key>
                <string>%POLICY_CATEGORY%</string>
                <key>policy_template</key>
                <string>%POLICY_TEMPLATE%</string>
                <key>prod_name</key>
                <string>%NAME%</string>
                <key>self_service_description</key>
                <string>%SELF_SERVICE_DESCRIPTION%</string>
                <key>self_service_icon</key>
                <string>%SELF_SERVICE_ICON%</string>
                <key>version</key>
                <string>%version%</string>
            </dict>
            <key>Processor</key>
            <string>JSSImporter</string>
        </dict>
    </array>
</dict>
</plist>

Pitch/Pitch.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the current release version of Pitch, builds a package and imports it to Munki.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.Pitch</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>Pitch</string>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps</string>
        <key>pkginfo</key>
        <dict>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>category</key>
            <string>Applications</string>
            <key>description</key>
            <string>From pitch decks to project plans, conference keynotes to all-hands meetings, our presentation software gives teams space to share all the work that matters.</string>
            <key>developer</key>
            <string>Pitch Software GmbH</string>
            <key>display_name</key>
            <string>Pitch</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
            <key>unattended_uninstall</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.4.3</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.Pitch</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%pathname%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>
Pitch/Pitch.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the current release version of Pitch.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.Pitch</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>Pitch</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.2.0</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>URLDownloader</string>
            <key>Arguments</key>
            <dict>
                <key>url</key>
                <string>https://desktop.pitch.com/mac/Pitch.dmg</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
            <key>Arguments</key>
            <dict>
                <key>input_path</key>
                <string>%pathname%/Pitch.app</string>
                <key>requirement</key>
                <string>identifier "io.pitch.pitch-macos" and anchor apple generic and 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] = KUCN8NUU6Z</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>
Perimeter 81/Perimeter 81.pkg.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the current release version of Perimeter 81 and builds a package.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.pkg.Perimeter 81</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>Perimeter 81</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.2.8</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.Perimeter 81</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Arguments</key>
            <dict>
                <key>flat_pkg_path</key>
                <string>%RECIPE_CACHE_DIR%/downloads/Perimeter81.pkg</string>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/installer_unpack</string>
                <key>purge_destination</key>
                <true/>
            </dict>
            <key>Processor</key>
            <string>FlatPkgUnpacker</string>
        </dict>
        <dict>
            <key>Arguments</key>
            <dict>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/installer_payload/Applications</string>
                <key>pkg_payload_path</key>
                <string>%RECIPE_CACHE_DIR%/installer_unpack/Payload</string>
                <key>purge_destination</key>
                <true />
            </dict>
            <key>Processor</key>
            <string>PkgPayloadUnpacker</string>
        </dict>
        <dict>
            <key>Arguments</key>
            <dict>
                <key>input_plist_path</key>
                <string>%RECIPE_CACHE_DIR%/installer_payload/Applications/Perimeter 81.app/Contents/Info.plist</string>
                <key>plist_version_key</key>
                <string>CFBundleShortVersionString</string>
            </dict>
            <key>Processor</key>
            <string>Versioner</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PkgCopier</string>
            <key>Arguments</key>
            <dict>
                <key>source_pkg</key>
                <string>%RECIPE_CACHE_DIR%/downloads/Perimeter81.pkg</string>
                <key>pkg_path</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%-%version%.pkg</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>

Perimeter 81/Perimeter 81.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the current release version of Perimeter 81, builds a package and imports it to Munki.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.Perimeter 81</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>Perimeter81</string>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps</string>
        <key>pkginfo</key>
        <dict>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>category</key>
            <string>Applications</string>
            <key>description</key>
            <string>Perimeter 81 is a Zero Trust Network as a Service that helps you to secure your team’s network, including valuable local and cloud resources.
Incorporating the highest standards of Zero Trust Security, Perimeter 81 users can create adaptive least-privilege access policies based on device, identity, role, and location.</string>
            <key>developer</key>
            <string>Safer Social</string>
            <key>display_name</key>
            <string>Perimeter 81</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
            <key>unattended_uninstall</key>
            <true/>
            <key>uninstallable</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.4.3</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.pkg.Perimeter 81</string>
    <key>Process</key>
    <array>
		<dict>
			<key>Arguments</key>
			<dict>
				<key>faux_root</key>
                <string>%RECIPE_CACHE_DIR%/installer_payload</string>
				<key>installs_item_paths</key>
				<array>
					<string>/Applications/Perimeter 81.app</string>
				</array>
			</dict>
			<key>Processor</key>
			<string>MunkiInstallsItemsCreator</string>
		</dict>
		<dict>
			<key>Processor</key>
			<string>MunkiPkginfoMerger</string>
		</dict>
    	<dict>
			<key>Processor</key>
			<string>MunkiPkginfoMerger</string>
			<key>Arguments</key>
			<dict>
				<key>additional_pkginfo</key>
				<dict>
					<key>version</key>
					<string>%version%</string>
				</dict>
			</dict>
		</dict>
        <dict>
            <key>Arguments</key>
            <dict>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
        </dict>
        <dict>
            <key>Arguments</key>
            <dict>
                <key>path_list</key>
                <array>
                    <string>%RECIPE_CACHE_DIR%/installer_payload/</string>
                    <string>%RECIPE_CACHE_DIR%/installer_unpack/</string>
                </array>
            </dict>
            <key>Processor</key>
            <string>PathDeleter</string>
        </dict>
    </array>
</dict>
</plist>

Perimeter 81/Perimeter 81.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the current release version of Perimeter 81.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.Perimeter 81</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>Perimeter81</string>
        <key>DOWNLOAD_URL</key>
        <string>https://static.perimeter81.com/apps/osx/Perimeter81.pkg</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.2.0</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>URLDownloader</string>
            <key>Arguments</key>
            <dict>
                <key>url</key>
                <string>%DOWNLOAD_URL%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
            <key>Arguments</key>
            <dict>
                <key>input_path</key>
                <string>%RECIPE_CACHE_DIR%/downloads/Perimeter81.pkg</string>
                <key>expected_authority_names</key>
                <array>
                    <string>Developer ID Installer: Safer Social Ltd. (924635PD62)</string>
                    <string>Developer ID Certification Authority</string>
                    <string>Apple Root CA</string>
                </array>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
    </array>
</dict>
</plist>

Pencil/Pencil.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest trial version of Pencil and imports into Munki.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.Pencil</string>
    <key>Input</key>
    <dict>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>NAME</key>
        <string>Pencil</string>
        <key>pkginfo</key>
        <dict> 
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>Pencil is built for the purpose of providing a free and open-source GUI prototyping tool that people can easily install and use to create mockups in popular desktop platforms.</string>
            <key>display_name</key>
            <string>Pencil</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
            <key>unattended_uninstall</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.Pencil</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%pathname%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>
Pencil/Pencil.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads latest version of Pencil.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.Pencil</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>Pencil</string>
        <key>DOWNLOAD_URL</key>
        <string>https://pencil.evolus.vn</string>
   	</dict>
    <key>MinimumVersion</key>
    <string>1.0.0</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>URLTextSearcher</string>
            <key>Arguments</key>
            <dict>
                <key>url</key>
                <string>%DOWNLOAD_URL%/Downloads.html</string>
                <key>re_pattern</key>
                <string>href="(\/dl\/V.*\/Pencil-.*.dmg)"</string>
                <key>result_output_var_name</key>
                <string>match</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>URLDownloader</string>
            <key>Arguments</key>
            <dict>
                <key>url</key>
                <string>%DOWNLOAD_URL%%match%</string>
                <key>filename</key>
                <string>%NAME%.dmg</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
    </array>
</dict>
</plist>
Pd-l2ork/Pd-l2ork.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of Pd-l2ork and imports it into Munki.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.Pd-l2ork</string>
    <key>Input</key>
    <dict>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>NAME</key>
        <string>Pd-l2ork</string>
        <key>pkginfo</key>
        <dict>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>Jonathan Wilkes’ Purr Data a.k.a. Pd-l2ork 2 is an improved version of Miller Puckette’s Pd. It is based on Ico Bukvic’s Pd-l2ork, which in turn is a fork of Hans-Christoph Steiner’s Pd-extended.</string>
            <key>developer</key>
            <string>Albert Graef</string>
            <key>display_name</key>
            <string>Pd-l2ork</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
            <key>unattended_uninstall</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.Pd-l2ork</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>FileFinder</string>
            <key>Arguments</key>
            <dict>
                <key>pattern</key>
                <string>%destination_path%/Pd-l2ork-*.dmg</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%found_filename%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>
Pd-l2ork/Pd-l2ork.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of Pd-l2ork.
Set PRERELEASE to a non-empty string to download prereleases, either
via Input in an override or via the -k option,
i.e.: `-k PRERELEASE=yes`</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.Pd-l2ork</string>
    <key>Input</key>
    <dict>
        <key>PRERELEASE</key>
        <string></string>
        <key>NAME</key>
        <string>Pd-l2ork</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>GitHubReleasesInfoProvider</string>
            <key>Arguments</key>
            <dict>
                <key>github_repo</key>
                <string>agraef/purr-data</string>
                <key>include_prereleases</key>
                <string>%PRERELEASE%</string>
                <key>asset_regex</key>
                <string>[\S]+\-osx_10\.11-[\S]+\.*-dmg\.zip</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>URLDownloader</string>
            <key>Arguments</key>
            <dict>
                <key>filename</key>
                <string>%NAME%.zip</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>Unarchiver</string>
            <key>Arguments</key>
            <dict>
                <key>archive_path</key>
                <string>%pathname%</string>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/unzip/</string>
                <key>purge_destination</key>
                <true/>
            </dict>
        </dict>
    </array>
</dict>
</plist>
PRTG Desktop/PRTG Desktop.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of PRTG Desktop and imports into Munki</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.PRTG Desktop</string>
    <key>Input</key>
    <dict>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>NAME</key>
        <string>PRTG Desktop</string>
        <key>pkginfo</key>
        <dict>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>PRTG Desktop is a native application that allows you to manage multiple PRTG servers.</string>
            <key>developer</key>
            <string>Paessler AG</string>
            <key>display_name</key>
            <string>PRTG Desktop</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
            <key>unattended_uninstall</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.5.0</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.PRTG Desktop</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%pathname%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
        </dict>
    </array>
</dict>
</plist>

PRTG Desktop/PRTG Desktop.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of PRTG Desktop</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.PRTG Desktop</string>
    <key>Input</key>
    <dict>
        <key>DOWNLOAD_URL</key>
        <string>https://downloads.paessler.com/prtg_desktop/macos</string>
        <key>NAME</key>
        <string>PRTG Desktop</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.5.0</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Arguments</key>
            <dict>
                <key>filename</key>
                <string>%NAME%.dmg</string>
                <key>url</key>
                <string>%DOWNLOAD_URL%</string>
            </dict>
            <key>Processor</key>
            <string>URLDownloader</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
        <dict>
            <key>Arguments</key>
            <dict>
                <key>input_path</key>
                <string>%pathname%/PRTG.app</string>
                <key>requirement</key>
                <string>identifier "com.paessler.prtgdesktop" and anchor apple generic and 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] = "8S2A47TY6X"</string>
            </dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
        </dict>
    </array>
</dict>
</plist>

PPPC-Utility/PPPC-Utility.pkg.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>Description</key>
	<string>Downloads the latest version of PPPC Utility and creates a package.</string>
	<key>Identifier</key>
	<string>com.github.dataJAR-recipes.pkg.PPPC-Utility</string>
	<key>Input</key>
	<dict>
		<key>BUNDLE_ID</key>
		<string>com.jamf.opensource.pppcutility</string>
		<key>NAME</key>
		<string>PPPC Utility</string>
	</dict>
	<key>MinimumVersion</key>
	<string>0.6.1</string>
	<key>ParentRecipe</key>
	<string>com.github.dataJAR-recipes.download.PPPC-Utility</string>
	<key>Process</key>
	<array>
		<dict>
			<key>Arguments</key>
			<dict>
				<key>pkg_request</key>
				<dict>
					<key>chown</key>
					<array>
						<dict>
							<key>group</key>
							<string>admin</string>
							<key>path</key>
							<string>Applications</string>
							<key>user</key>
							<string>root</string>
						</dict>
					</array>
					<key>id</key>
					<string>%BUNDLE_ID%</string>
					<key>options</key>
					<string>purge_ds_store</string>
					<key>pkgname</key>
					<string>%NAME%-%version%</string>
					<key>pkgroot</key>
					<string>%RECIPE_CACHE_DIR%/%NAME%</string>
					<key>version</key>
					<string>%version%</string>
				</dict>
			</dict>
			<key>Processor</key>
			<string>PkgCreator</string>
		</dict>
	</array>
</dict>
</plist>

PPPC-Utility/PPPC-Utility.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of PPPC Utility and imports it into Munki.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.PPPC-Utility</string>
    <key>Input</key>
    <dict>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>NAME</key>
        <string>PPPC Utility</string>
        <key>pkginfo</key>
        <dict>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>PPPC Utility is a macOS (10.15 and newer) application for creating configuration profiles containing the Privacy Preferences Policy Control payload for macOS. The profiles can be saved locally, signed or unsigned. Profiles can also be uploaded directly to a Jamf Pro server.</string>
            <key>developer</key>
            <string>Jamf</string>
            <key>display_name</key>
            <string>PPPC Utility</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.PPPC-Utility</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>DmgCreator</string>
            <key>Arguments</key>
            <dict>
                <key>dmg_path</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%.dmg</string>
                <key>dmg_root</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%/Applications</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%dmg_path%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
                <key>version_comparison_key</key>
                <string>CFBundleShortVersionString</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PathDeleter</string>
            <key>Arguments</key>
            <dict>
                <key>path_list</key>
                <array>
                    <string>%RECIPE_CACHE_DIR%/%NAME%/</string>
                </array>
            </dict>
        </dict>
    </array>
</dict>
</plist>
PPPC-Utility/PPPC-Utility.jss.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>Description</key>
	<string>Downloads the current release version of PPPC Utility and then uploads to the JSS</string>
	<key>Identifier</key>
	<string>com.github.dataJAR-recipes.jss.PPPC-Utility</string>
	<key>Input</key>
	<dict>
		<key>CATEGORY</key>
		<string>Productivity</string>
		<key>GROUP_NAME</key>
		<string>%NAME%-update-smart</string>
		<key>GROUP_TEMPLATE</key>
		<string>SmartGroupTemplate.xml</string>
		<key>NAME</key>
		<string>PPPC Utility</string>
		<key>POLICY_CATEGORY</key>
		<string>Testing</string>
		<key>POLICY_TEMPLATE</key>
		<string>PolicyTemplate.xml</string>
		<key>SELF_SERVICE_DESCRIPTION</key>
		<string>PPPC Utility is a macOS (10.13 and newer) application for creating configuration profiles containing the Privacy Preferences Policy Control payload for macOS. The profiles can be saved locally signed or unsigned. Profiles can also be uploaded directly to a Jamf Pro server</string>
		<key>SELF_SERVICE_ICON</key>
		<string>PPPC Utility.png</string>
	</dict>
	<key>MinimumVersion</key>
	<string>0.2.0</string>
	<key>ParentRecipe</key>
	<string>com.github.dataJAR-recipes.pkg.PPPC-Utility</string>
	<key>Process</key>
	<array>
		<dict>
			<key>Arguments</key>
			<dict>
				<key>category</key>
				<string>%CATEGORY%</string>
				<key>groups</key>
				<array>
					<dict>
						<key>name</key>
						<string>%GROUP_NAME%</string>
						<key>smart</key>
						<true/>
						<key>template_path</key>
						<string>%GROUP_TEMPLATE%</string>
					</dict>
				</array>
				<key>policy_category</key>
				<string>%POLICY_CATEGORY%</string>
				<key>policy_template</key>
				<string>%POLICY_TEMPLATE%</string>
				<key>prod_name</key>
				<string>%NAME%</string>
				<key>self_service_description</key>
				<string>%SELF_SERVICE_DESCRIPTION%</string>
				<key>self_service_icon</key>
				<string>%SELF_SERVICE_ICON%</string>
			</dict>
			<key>Processor</key>
			<string>JSSImporter</string>
		</dict>
	</array>
</dict>
</plist>

PPPC-Utility/PPPC-Utility.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of Jamf's PPPC-Utility.
Set PRERELEASE to a non-empty string to download prereleases, either
via Input in an override or via the -k option,
i.e.: `-k PRERELEASE=yes`</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.PPPC-Utility</string>
    <key>Input</key>
    <dict>
        <key>PRERELEASE</key>
        <string></string>
        <key>NAME</key>
        <string>PPPC Utility</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>GitHubReleasesInfoProvider</string>
            <key>Arguments</key>
            <dict>
                <key>github_repo</key>
                <string>jamf/PPPC-Utility</string>
                <key>include_prereleases</key>
                <string>%PRERELEASE%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>URLDownloader</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
        <dict>
            <key>Arguments</key>
            <dict>
                <key>archive_path</key>
                <string>%pathname%</string>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%/Applications</string>
                <key>purge_destination</key>
                <true/>
            </dict>
            <key>Processor</key>
            <string>Unarchiver</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
            <key>Arguments</key>
            <dict>
                <key>input_path</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%/Applications/PPPC Utility.app</string>
                <key>requirement</key>
                <string>anchor apple generic and identifier "com.jamf.opensource.pppcutility" 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] = "483DWKW443")</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>
PPPC-Utility/PPPC Utility.png METASEP

Osculator 3/Osculator 3.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of OSCulator 3 and imports into Munki.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.OSCulator 3</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>OSCulator 3</string>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>pkginfo</key>
        <dict>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>OSCulator is the missing link between your controllers and your music or video software. For example, you can use your Nintendo Wiimote or Apple iPhone with Ableton Live or any MIDI compatible application, with ease</string>
            <key>display_name</key>
            <string>OSCulator 3</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.2.0</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.OSCulator 3</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%pathname%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>
Osculator 3/Osculator 3.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads latest version of OSCulator 3</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.OSCulator 3</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>OSCulator 3</string>
        <key>SPARKLE_FEED_URL</key>
        <string>https://backend.wildora.net/v1/products/osculator-v3/revisions.rss</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.2.0</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>SparkleUpdateInfoProvider</string>
            <key>Arguments</key>
            <dict>
                <key>appcast_url</key>
                <string>%SPARKLE_FEED_URL%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>URLDownloader</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
            <key>Arguments</key>
            <dict>
                <key>input_path</key>
                <string>%pathname%/OSCulator.app</string>
                <key>requirement</key>
                <string>identifier "net.osculator.OSCulator" and anchor apple generic and 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] = "2B429GPEQZ"</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>
OpenVPN Connect Client/OpenVPN Connect Client 3.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>Description</key>
	<string>Downloads the latest version of OpenVPN Connect Client 3 and imports it into Munki.</string>
	<key>Identifier</key>
	<string>com.github.dataJAR-recipes.munki.OpenVPN Connect Client 3</string>
	<key>Input</key>
	<dict>
		<key>MUNKI_REPO_SUBDIR</key>
		<string>apps/%NAME%</string>
		<key>NAME</key>
		<string>OpenVPNConnectClient3</string>
		<key>pkginfo</key>
		<dict>
			<key>catalogs</key>
			<array>
				<string>testing</string>
			</array>
			<key>description</key>
			<string>Official OpenVPN client for Mac for connecting to VPN servers using the OpenVPN protocol.</string>
			<key>developer</key>
			<string>OpenVPN</string>
			<key>category</key>
			<string>Utilities</string>
			<key>display_name</key>
			<string>OpenVPN</string>
			<key>name</key>
			<string>%NAME%</string>
			<key>unattended_install</key>
			<true/>
		</dict>
	</dict>
	<key>MinimumVersion</key>
	<string>1.0.0</string>
	<key>ParentRecipe</key>
	<string>com.github.dataJAR-recipes.download.OpenVPN Connect Client 3</string>
	<key>Process</key>
	<array>
        <dict>
            <key>Processor</key>
            <string>FlatPkgUnpacker</string>
            <key>Arguments</key>
            <dict>
                <key>flat_pkg_path</key>
                <string>%pathname%/OpenVPN*.pkg</string>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/unpack</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PkgPayloadUnpacker</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_payload_path</key>
                <string>%RECIPE_CACHE_DIR%/unpack/tmp-app.pkg/Payload</string>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/pkgroot/Applications/OpenVPN Connect/OpenVPN Connect.app</string>
                <key>purge_destination</key>
                <true/>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiInstallsItemsCreator</string>
            <key>Arguments</key>
            <dict>
                <key>faux_root</key>
                <string>%RECIPE_CACHE_DIR%/pkgroot/</string>
                <key>installs_item_paths</key>
                <array>
                    <string>/Applications/OpenVPN Connect/OpenVPN Connect.app</string>
                </array>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiPkginfoMerger</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PlistReader</string>
            <key>Arguments</key>
            <dict>
                <key>info_path</key>
                <string>%RECIPE_CACHE_DIR%/pkgroot/Applications/OpenVPN Connect/OpenVPN Connect.app/Contents/Info.plist</string>
                <key>plist_keys</key>
                <dict>
                    <key>CFBundleShortVersionString</key>
                    <string>version</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiPkginfoMerger</string>
            <key>Arguments</key>
            <dict>
                <key>additional_pkginfo</key>
                <dict>
                    <key>version</key>
                    <string>%version%</string>
                </dict>
            </dict>
        </dict>
		<dict>
			<key>Processor</key>
			<string>MunkiImporter</string>
			<key>Arguments</key>
			<dict>
				<key>pkg_path</key>
				<string>%pathname%</string>
				<key>repo_subdirectory</key>
				<string>%MUNKI_REPO_SUBDIR%</string>
			</dict>
		</dict>
        <dict>
            <key>Processor</key>
            <string>PathDeleter</string>
            <key>Arguments</key>
            <dict>
                <key>path_list</key>
                <array>
                    <string>%RECIPE_CACHE_DIR%/pkgroot/</string>  
                    <string>%RECIPE_CACHE_DIR%/unpack/</string>                      
                </array>
            </dict>
        </dict>
	</array>
</dict>
</plist>

OpenVPN Connect Client/OpenVPN Connect Client 3.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>Description</key>
	<string>Downloads the latest version of the OpenVPN Connect Client 3 for Mac.</string>
	<key>Identifier</key>
	<string>com.github.dataJAR-recipes.download.OpenVPN Connect Client 3</string>
	<key>Input</key>
	<dict>
		<key>NAME</key>
		<string>OpenVPNConnectClient3</string>
		<key>USER_AGENT</key>
		<string>Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36</string>
	 </dict>
	<key>MinimumVersion</key>
	<string>0.2.0</string>
	<key>Process</key>
	<array>
		<dict>
			<key>Processor</key>
			<string>URLTextSearcher</string>
			<key>Arguments</key>
			<dict>
				<key>url</key>
				<string>https://openvpn.net/vpn-server-resources/connecting-to-access-server-with-macos</string>
				<key>re_pattern</key>
				<string>(/downloads/openvpn-connect-v3-.*.dmg)</string>
				<key>result_output_var_name</key>
				<string>url</string>
			</dict>
		</dict>
		<dict>
			<key>Processor</key>
			<string>URLDownloader</string>
			<key>Arguments</key>
			<dict>
				<key>url</key>
				<string>https://openvpn.net%url%</string>
			</dict>
		</dict>
		<dict>
			<key>Processor</key>
			<string>EndOfCheckPhase</string>
		</dict>
		<dict>
			<key>Processor</key>
			<string>CodeSignatureVerifier</string>
			<key>Arguments</key>
			<dict>
				<key>input_path</key>
				<string>%pathname%/OpenVPN_Connect*.pkg</string>
				<key>expected_authority_names</key>
				<array>
					<string>Developer ID Installer: OPENVPN TECHNOLOGIES, INC. (ACV7L3WCD8)</string>
					<string>Developer ID Certification Authority</string>
					<string>Apple Root CA</string>
				</array>
			</dict>
		</dict>
	</array>
</dict>
</plist>
OpenToonz/OpenToonz.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
     <key>Description</key>
     <string>Imports the latest version of the OpenToonz software into Munki.</string>
     <key>Identifier</key>
     <string>com.github.dataJAR-recipes.munki.OpenToonz</string>
     <key>Input</key>
     <dict>
          <key>NAME</key>
          <string>OpenToonz</string>
          <key>MUNKI_REPO_SUBDIR</key>
          <string>apps/%NAME%</string>
          <key>pkginfo</key>
                <dict>
                     <key>catalogs</key>
                     <array>
                            <string>testing</string>
                     </array>
                     <key>description</key>
                     <string>OpenToonz - An open-source full-featured 2D animation creation software</string>
                     <key>developer</key>
                      <string>Toonz</string>
                     <key>display_name</key>
                     <string>OpenToonz</string>
                     <key>name</key>
                     <string>%NAME%</string>
                     <key>unattended_install</key>
                     <true/>
                     <key>unattended_uninstall</key>
                     <true/>
                </dict>
          </dict>
     <key>ParentRecipe</key>
     <string>com.github.rustymyers.download.opentoonz</string>
     <key>Process</key>
     <array>
          <dict>
                <key>Processor</key>
                <string>FlatPkgUnpacker</string>
                <key>Arguments</key>
                <dict>
                     <key>destination_path</key>
                     <string>%RECIPE_CACHE_DIR%/unpack</string>
                     <key>flat_pkg_path</key>
                     <string>%pathname%</string>
                     <key>purge_destination</key>
                     <true/>
                </dict>
          </dict>
          <dict>
                <key>Processor</key>
                <string>PkgPayloadUnpacker</string>
                <key>Arguments</key>
                <dict>
                     <key>destination_path</key>
                     <string>%RECIPE_CACHE_DIR%/payload</string>
                     <key>pkg_payload_path</key>
                     <string>%RECIPE_CACHE_DIR%/unpack/OpenToonzBuild.pkg/Payload</string>
                     <key>purge_destination</key>
                     <true/>
                </dict>
          </dict>
          <dict>
                <key>Processor</key>
                <string>Versioner</string>
                <key>Arguments</key>
                <dict>
                     <key>input_plist_path</key>
                     <string>%RECIPE_CACHE_DIR%/payload/Applications/OpenToonz.app/Contents/Info.plist</string>
                     <key>plist_version_key</key>
                     <string>CFBundleShortVersionString</string>
                </dict>
          </dict>
          <dict>
                <key>Processor</key>
                <string>MunkiPkginfoMerger</string>
                <key>Arguments</key>
                <dict>
                     <key>additional_pkginfo</key>
                     <dict>
                          <key>version</key>
                          <string>%version%</string>
                     </dict>
                </dict>
          </dict>
          <dict>
                <key>Processor</key>
                <string>MunkiInstallsItemsCreator</string>
                <key>Arguments</key>
                <dict>
                     <key>faux_root</key>
                     <string>%RECIPE_CACHE_DIR%/payload/</string>
                     <key>installs_item_paths</key>
                     <array>
                          <string>/Applications/OpenToonz.app</string>
                     </array>
                </dict>
          </dict>
          <dict>
                <key>Processor</key>
                <string>MunkiPkginfoMerger</string>
          </dict>
          <dict>
                <key>Processor</key>
                <string>MunkiImporter</string>
                <key>Arguments</key>
                <dict>
                     <key>pkg_path</key>
                     <string>%pathname%</string>
                     <key>repo_subdirectory</key>
                     <string>%MUNKI_REPO_SUBDIR%</string>
                </dict>
          </dict>
        <dict>
            <key>Processor</key>
            <string>PathDeleter</string>
            <key>Arguments</key>
            <dict>
                <key>path_list</key>
                <array>
                    <string>%RECIPE_CACHE_DIR%/payload</string>
                    <string>%RECIPE_CACHE_DIR%/unpack</string>
                </array>
            </dict>
        </dict>
     </array>
</dict>
</plist>
OpenJDK15/OpenJDK15.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.OpenJDK15</string>
    <key>Description</key>
    <string>Downloads the current release version of OpenJDK 15, builds a package and imports it to Munki.</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>OpenJDK 15</string>
        <key>MAJOR_VERSION</key>
        <string>15</string>
        <key>SOFTWARETITLE</key>
        <string>Java</string>
        <key>SOFTWARETYPE</key>
        <string>JDK</string>
        <key>VENDOR</key>
        <string>OpenJDK</string>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>%VENDOR%</string>
        <key>pkginfo</key>
        <dict>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>category</key>
            <string>%SOFTWARETYPE%</string>
            <key>description</key>
            <string>OpenJDK is a free and open-source implementation of the Java Platform, Standard Edition.</string>
            <key>developer</key>
            <string>%VENDOR%</string>
            <key>display_name</key>
            <string>OpenJDK 15</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
            <key>unattended_uninstall</key>
            <true/>
            <key>uninstallable</key>
            <true/>
        </dict>        
    </dict>
    <key>ParentRecipe</key>
    <string>com.github.rtrouton.pkg.OpenJDK13</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>DeprecationWarning</string>
            <key>Arguments</key>
            <dict>
                <key>warning_message</key>
                <string>This has been replaced by a recipe which should pull the latest version OpenJDK always. See https://github.com/autopkg/dataJAR-recipes/blob/master/OpenJDK/.</string>
            </dict>
        </dict>
        <dict>   
            <key>Processor</key>   
            <string>StopProcessingIf</string>   
            <key>Arguments</key>   
            <dict>   
                <key>predicate</key>   
                <string>TRUEPREDICATE</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>

OpenJDK14/OpenJDK14.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.OpenJDK14</string>
    <key>Description</key>
    <string>Downloads the current release version of OpenJDK 14, builds a package and imports it to Munki.</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>OpenJDK 14</string>
        <key>MAJOR_VERSION</key>
        <string>14</string>
        <key>SOFTWARETITLE</key>
        <string>Java</string>
        <key>SOFTWARETYPE</key>
        <string>JDK</string>
        <key>VENDOR</key>
        <string>OpenJDK</string>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>%VENDOR%</string>
        <key>pkginfo</key>
        <dict>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>category</key>
            <string>%SOFTWARETYPE%</string>
            <key>description</key>
            <string>OpenJDK is a free and open-source implementation of the Java Platform, Standard Edition.</string>
            <key>developer</key>
            <string>%VENDOR%</string>
            <key>display_name</key>
            <string>OpenJDK 14</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
            <key>unattended_uninstall</key>
            <true/>
            <key>uninstallable</key>
            <true/>
        </dict>        
    </dict>
    <key>ParentRecipe</key>
    <string>com.github.rtrouton.pkg.OpenJDK13</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>DeprecationWarning</string>
            <key>Arguments</key>
            <dict>
                <key>warning_message</key>
                <string>This has been replaced by OpenJDK 15. See https://github.com/autopkg/dataJAR-recipes/blob/master/OpenJDK15/OpenJDK15.munki.recipe.</string>
            </dict>
        </dict>
        <dict>   
            <key>Processor</key>   
            <string>StopProcessingIf</string>   
            <key>Arguments</key>   
            <dict>   
                <key>predicate</key>   
                <string>TRUEPREDICATE</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>

OpenJDK13/OpenJDK13.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.OpenJDK13</string>
    <key>Description</key>
    <string>Downloads the current release version of OpenJDK 13, builds a package and imports it to Munki.</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>OpenJDK 13</string>
        <key>SOFTWARETITLE</key>
        <string>Java</string>
        <key>SOFTWARETYPE</key>
        <string>JDK</string>
        <key>VENDOR</key>
        <string>OpenJDK</string>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>%VENDOR%</string>
        <key>pkginfo</key>
        <dict>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>category</key>
            <string>%SOFTWARETYPE%</string>
            <key>description</key>
            <string>OpenJDK is a free and open-source implementation of the Java Platform, Standard Edition.</string>
            <key>developer</key>
            <string>%VENDOR%</string>
            <key>display_name</key>
            <string>OpenJDK 13</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
            <key>unattended_uninstall</key>
            <true/>
            <key>uninstallable</key>
            <true/>
        </dict>        
    </dict>
    <key>ParentRecipe</key>
    <string>com.github.rtrouton.pkg.OpenJDK13</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>DeprecationWarning</string>
            <key>Arguments</key>
            <dict>
                <key>warning_message</key>
                <string>This has been replaced by OpenJDK 15. See https://github.com/autopkg/dataJAR-recipes/blob/master/OpenJDK15/OpenJDK15.munki.recipe.</string>
            </dict>
        </dict>
        <dict>   
            <key>Processor</key>   
            <string>StopProcessingIf</string>   
            <key>Arguments</key>   
            <dict>   
                <key>predicate</key>   
                <string>TRUEPREDICATE</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>

OpenJDK12/OpenJDK12.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>Identifier</key>
	<string>com.github.dataJAR-recipes.munki.OpenJDK12</string>
	<key>Description</key>
    <string>Downloads the current release version of OpenJDK 12, builds a package and imports it to Munki.</string>
	<key>Input</key>
	<dict>
		<key>NAME</key>
		<string>OpenJDK 12</string>
		<key>SOFTWARETITLE</key>
		<string>Java</string>
		<key>SOFTWARETYPE</key>
		<string>JDK</string>
		<key>VENDOR</key>
		<string>OpenJDK</string>
		<key>MUNKI_REPO_SUBDIR</key>
        <string>%VENDOR%</string>
        <key>pkginfo</key>
        <dict>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>category</key>
            <string>%SOFTWARETYPE%</string>
            <key>description</key>
            <string>OpenJDK is a free and open-source implementation of the Java Platform, Standard Edition.</string>
            <key>developer</key>
            <string>%VENDOR%</string>
            <key>display_name</key>
            <string>OpenJDK 12</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
            <key>unattended_uninstall</key>
            <true/>
            <key>uninstallable</key>
            <true/>
        </dict>        
	</dict>
	<key>ParentRecipe</key>
	<string>com.github.rtrouton.pkg.OpenJDK12</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>DeprecationWarning</string>
            <key>Arguments</key>
            <dict>
                <key>warning_message</key>
                <string>This has been replaced by OpenJDK 15. See https://github.com/autopkg/dataJAR-recipes/blob/master/OpenJDK15/OpenJDK15.munki.recipe.</string>
            </dict>
        </dict>
        <dict>   
            <key>Processor</key>   
            <string>StopProcessingIf</string>   
            <key>Arguments</key>   
            <dict>   
                <key>predicate</key>   
                <string>TRUEPREDICATE</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>

OpenJDK/OpenJDK.pkg.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
   <dict>
      <key>Description</key>
      <string>Downloads the current release version of OpenJDK and builds a package.</string>
      <key>Identifier</key>
      <string>com.github.dataJAR-recipes.pkg.OpenJDK</string>
      <key>Input</key>
      <dict>
         <key>NAME</key>
         <string>OpenJDK</string>
      </dict>
      <key>ParentRecipe</key>
      <string>com.github.dataJAR-recipes.download.OpenJDK</string>
      <key>MinimumVersion</key>
      <string>1.0.0</string>
      <key>Process</key>
      <array>
         <dict>
            <key>Processor</key>
            <string>FileFinder</string>
            <key>Arguments</key>
            <dict>
               <key>pattern</key>
               <string>%pkgroot%/Library/Java/JavaVirtualMachines/jdk*/Contents/Info.plist</string>
            </dict>
         </dict>
         <dict>
           <key>Processor</key>
            <string>Versioner</string>
            <key>Arguments</key>
            <dict>
               <key>input_plist_path</key>
               <string>%found_filename%</string>
               <key>plist_version_key</key>
               <string>CFBundleShortVersionString</string>
            </dict>
         </dict>
         <dict>
            <key>Processor</key>
            <string>FileCreator</string>
            <key>Arguments</key>
            <dict>
               <key>file_path</key>
               <string>%RECIPE_CACHE_DIR%/Scripts/preinstall</string>
               <key>file_mode</key>
               <string>0755</string>
               <key>file_content</key>
               <string>#!/bin/bash

# Remove existing OpenJDK %version% installation

version_number="%version%"
java_directory="$3/Library/Java/JavaVirtualMachines/jdk-$version_number.jdk"

if [[ -d "$java_directory" ]]; then
  rm -rf "$java_directory"
fi

exit 0</string>
            </dict>
         </dict>

         <dict>
            <key>Processor</key>
            <string>PkgCreator</string>
            <key>Arguments</key>
            <dict>
               <key>pkg_request</key>
               <dict>
                  <key>pkgname</key>
                  <string>OpenJDK-%version%</string>
                  <key>version</key>
                  <string>%version%</string>
                  <key>id</key>
                  <string>net.java.openjdk</string>
                  <key>scripts</key>
                  <string>Scripts</string>
                  <key>options</key>
                  <string>purge_ds_store</string>
                  <key>chown</key>
                  <array>
                     <dict>
                        <key>path</key>
                        <string>Library</string>
                        <key>user</key>
                        <string>root</string>
                        <key>group</key>
                        <string>wheel</string>
                     </dict>
                     <dict>
                        <key>path</key>
                        <string>Library/Java</string>
                        <key>user</key>
                        <string>root</string>
                        <key>group</key>
                        <string>wheel</string>
                     </dict>
                     <dict>
                        <key>path</key>
                        <string>Library/Java/JavaVirtualMachines</string>
                        <key>user</key>
                        <string>root</string>
                        <key>group</key>
                        <string>wheel</string>
                     </dict>
                  </array>
               </dict>
            </dict>
         </dict>
      </array>
   </dict>
</plist>
OpenJDK/OpenJDK.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the current release version of OpenJDK and imports it to Munki.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.OpenJDK</string>
    <key>Input</key>
    <dict>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>NAME</key>
        <string>OpenJDK</string>
        <key>pkginfo</key>
        <dict>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>category</key>
            <string>Internet Plugins</string>
            <key>description</key>
            <string>OpenJDK is a free and open-source implementation of the Java Platform, Standard Edition.</string>
            <key>developer</key>
            <string>OpenJDK</string>
            <key>display_name</key>
            <string>OpenJDK</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
            <key>unattended_uninstall</key>
            <true/>
            <key>uninstallable</key>
            <true/>
        </dict>
    </dict>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.pkg.OpenJDK</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>MunkiInstallsItemsCreator</string>
            <key>Arguments</key>
            <dict>
                <key>faux_root</key>
                <string>%pkgroot%</string>
                <key>installs_item_paths</key>
                <array>
                    <string>/Library/Java/JavaVirtualMachines/jdk-%version%.jdk</string>
                </array>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiPkginfoMerger</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%pkg_path%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
        </dict>
         <dict>
            <key>Processor</key>
            <string>PathDeleter</string>
            <key>Arguments</key>
            <dict>
               <key>path_list</key>
               <array>
                  <string>%RECIPE_CACHE_DIR%/pkgroot</string>
                  <string>%RECIPE_CACHE_DIR%/Scripts</string>
               </array>
            </dict>
         </dict>
    </array>
</dict>
</plist>

OpenJDK/OpenJDK.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Comment</key>
    <string>Set ARCHITECTURE "x64" to download the Intel or "aarch64" for Apple Silicon.</string>
    <key>Description</key>
    <string>Downloads the latest OpenJDK for macOS.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.OpenJDK</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>OpenJDK</string>
        <key>ARCHITECTURE</key>
        <string>x64</string>
    </dict>
    <key>MinimumVersion</key>
    <string>1.0.0</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>URLTextSearcher</string>
            <key>Arguments</key>
            <dict>
                <key>url</key>
                <string>https://jdk.java.net</string>
                <key>re_pattern</key>
                <string>&lt;h1 class=\&quot;gap\&quot;&gt;Ready for use: &lt;a href=\&quot;/(\d*)/\&quot;&gt;JDK \d*&lt;/a&gt;</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>URLTextSearcher</string>
            <key>Arguments</key>
            <dict>
                <key>url</key>
                <string>https://jdk.java.net/%match%/index.html</string>
                <key>re_pattern</key>
                <string>(?P&lt;url&gt;https://download.java.net/java/GA/jdk%match%.*?/GPL/openjdk-%match%.*?_macos-%ARCHITECTURE%_bin\.tar\.gz)</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>URLDownloader</string>
            <key>Arguments</key>
            <dict>
                <key>url</key>
                <string>%url%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
         <dict>
            <key>Processor</key>
            <string>PkgRootCreator</string>
            <key>Arguments</key>
            <dict>
               <key>pkgroot</key>
               <string>%RECIPE_CACHE_DIR%/Scripts</string>
               <key>pkgdirs</key>
               <dict/>
            </dict>
         </dict>
         <dict>
            <key>Processor</key>
            <string>PkgRootCreator</string>
            <key>Arguments</key>
            <dict>
               <key>pkgroot</key>
               <string>%RECIPE_CACHE_DIR%/pkgroot</string>
               <key>pkgdirs</key>
               <dict>
                  <key>Library</key>
                  <string>0755</string>
                  <key>Library/Java</key>
                  <string>0755</string>
                  <key>Library/Java/JavaVirtualMachines</key>
                  <string>0755</string>
               </dict>
            </dict>
         </dict>
         <dict>
            <key>Processor</key>
            <string>Unarchiver</string>
            <key>Arguments</key>
            <dict>
               <key>archive_path</key>
               <string>%pathname%</string>
               <key>destination_path</key>
               <string>%pkgroot%/Library/Java/JavaVirtualMachines</string>
               <key>purge_destination</key>
               <true/>
            </dict>
         </dict>
        <dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
            <key>Arguments</key>
            <dict>
                <key>input_path</key>
                <string>%destination_path%/jdk*/</string>
                <key>requirement</key>
                <string>identifier "net.java.openjdk.jdk" and anchor apple generic and 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] = VB5E2TV963</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>

Noun Project/Noun Project.png METASEP

Noun Project/Noun Project.pkg.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>Description</key>
	<string>Downloads the latest version of Noun Project and creates a package.</string>
	<key>Identifier</key>
	<string>com.github.dataJAR-recipes.pkg.Noun Project</string>
	<key>Input</key>
	<dict>
		<key>NAME</key>
		<string>NounProject</string>
	</dict>
	<key>MinimumVersion</key>
	<string>0.6.1</string>
	<key>ParentRecipe</key>
	<string>com.github.dataJAR-recipes.download.Noun Project</string>
	<key>Process</key>
	<array>
		<dict>
			<key>Arguments</key>
			<dict>
				<key>pkg_request</key>
				<dict>
					<key>chown</key>
					<array>
						<dict>
							<key>group</key>
							<string>admin</string>
							<key>path</key>
							<string>Applications</string>
							<key>user</key>
							<string>root</string>
						</dict>
					</array>
					<key>id</key>
					<string>com.thenounproject.Noun-Project</string>
					<key>options</key>
					<string>purge_ds_store</string>
					<key>pkgname</key>
					<string>%NAME%-%version%</string>
					<key>pkgroot</key>
					<string>%RECIPE_CACHE_DIR%/%NAME%</string>
					<key>version</key>
					<string>%version%</string>
				</dict>
			</dict>
			<key>Processor</key>
			<string>PkgCreator</string>
		</dict>
	</array>
</dict>
</plist>

Noun Project/Noun Project.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of Noun Project and imports into Munki.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.Noun Project</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>NounProject</string>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>pkginfo</key>
        <dict>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>It’s all the great functionality of the Noun Project, but all in one simple app for your desktop. Just search for the term you’re looking for, scroll through results, and drag and drop the icon you like into your favorite application.</string>
            <key>display_name</key>
            <string>Noun Project</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.2.0</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.Noun Project</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>DmgCreator</string>
            <key>Arguments</key>
            <dict>
                <key>dmg_root</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%/Applications</string>
                <key>dmg_path</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%.dmg</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%dmg_path%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PathDeleter</string>
            <key>Arguments</key>
            <dict>
                <key>path_list</key>
                <array>
                    <string>%RECIPE_CACHE_DIR%/%NAME%/</string>
                </array>
            </dict>
        </dict>
    </array>
</dict>
</plist>

Noun Project/Noun Project.jss.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>Description</key>
	<string>Downloads the current release version of Noun Project and then uploads to the JSS</string>
	<key>Identifier</key>
	<string>com.github.dataJAR-recipes.jss.Noun Project</string>
	<key>Input</key>
	<dict>
		<key>CATEGORY</key>
		<string>Productivity</string>
		<key>GROUP_NAME</key>
		<string>%NAME%-update-smart</string>
		<key>GROUP_TEMPLATE</key>
		<string>SmartGroupTemplate.xml</string>
		<key>NAME</key>
		<string>NounProject</string>
		<key>POLICY_CATEGORY</key>
		<string>Testing</string>
		<key>POLICY_TEMPLATE</key>
		<string>PolicyTemplate.xml</string>
		<key>SELF_SERVICE_DESCRIPTION</key>
		<string>It’s all the great functionality of the Noun Project, but all in one simple app for your desktop. Just search for the term you’re looking for, scroll through results, and drag and drop the icon you like into your favorite application.</string>
        <key>SELF_SERVICE_ICON</key>
		<string>Noun Project.png</string>
	</dict>
	<key>MinimumVersion</key>
	<string>0.6.1</string>
	<key>ParentRecipe</key>
	<string>com.github.dataJAR-recipes.pkg.Noun Project</string>
	<key>Process</key>
	<array>
		<dict>
			<key>Arguments</key>
			<dict>
				<key>category</key>
				<string>%CATEGORY%</string>
				<key>groups</key>
				<array>
					<dict>
						<key>name</key>
						<string>%GROUP_NAME%</string>
						<key>smart</key>
						<true/>
						<key>template_path</key>
						<string>%GROUP_TEMPLATE%</string>
					</dict>
				</array>
				<key>policy_category</key>
				<string>%POLICY_CATEGORY%</string>
				<key>policy_template</key>
				<string>%POLICY_TEMPLATE%</string>
				<key>prod_name</key>
				<string>%NAME%</string>
				<key>self_service_description</key>
				<string>%SELF_SERVICE_DESCRIPTION%</string>
				<key>self_service_icon</key>
				<string>%SELF_SERVICE_ICON%</string>
			</dict>
			<key>Processor</key>
			<string>JSSImporter</string>
		</dict>
	</array>
</dict>
</plist>

Noun Project/Noun Project.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads latest version of Noun Project.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.Noun Project</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>NounProject</string>
        <key>SPARKLE_FEED_URL</key>
        <string>https://thenounproject.com/for-mac/feed/</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.2.0</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>SparkleUpdateInfoProvider</string>
            <key>Arguments</key>
            <dict>
                <key>appcast_url</key>
                <string>%SPARKLE_FEED_URL%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>URLDownloader</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>Unarchiver</string>
            <key>Arguments</key>
            <dict>
                <key>archive_path</key>
                <string>%pathname%</string>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%/Applications</string>
                <key>purge_destination</key>
                <true/>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
            <key>Arguments</key>
            <dict>
                <key>input_path</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%/Applications/Noun Project.app</string>
                <key>requirement</key>
                <string>anchor apple generic and identifier "com.thenounproject.Noun-Project" 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] = LR7ZLCPTEG)</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>
Node JS LTS.js/nodejslts.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
    <dict>
        <key>Comment</key>
        <string>Based on a receipe from gerardkok</string>
        <key>Description</key>
        <string>Downloads the latest LTS version of Node.js and imports into Munki.</string>
        <key>Identifier</key>
        <string>com.github.dataJAR-recipes.munki.nodejslts</string>
        <key>Input</key>
        <dict>
            <key>MUNKI_REPO_SUBDIR</key>
            <string>apps/NodeLTS.js</string>
            <key>MUNKI_CATEGORY</key>
            <string>Development</string>
            <key>NAME</key>
            <string>nodelts</string>
            <key>RELEASE</key>
            <string>latest-dubnium</string>
            <key>DISPLAY_NAME</key>
            <string>Node.js LTS</string>
            <key>pkginfo</key>
            <dict>
                <key>catalogs</key>
                <array>
                    <string>testing</string>
                </array>
                <key>blocking_applications</key>
                <array>
                    <string>node</string>
                    <string>npm</string>
                </array>
                <key>category</key>
                <string>%MUNKI_CATEGORY%</string>
                <key>description</key>
                <string>NodeLTS.js® is a platform built on Chrome's JavaScript runtime for easily building fast, scalable network applications.</string>
                <key>developer</key>
                <string>Node.js Foundation</string>
                <key>display_name</key>
                <string>%DISPLAY_NAME%</string>
                <key>name</key>
                <string>%NAME%</string>
                <key>unattended_install</key>
                <true/>
            </dict>
        </dict>
        <key>MinimumVersion</key>
        <string>0.6.0</string>
        <key>ParentRecipe</key>
        <string>com.github.dataJAR-recipes.download.nodejslts</string>
        <key>Process</key>
        <array>
            <dict>
                <key>Arguments</key>
                <dict>
                    <key>pkg_path</key>
                    <string>%pathname%</string>
                    <key>repo_subdirectory</key>
                    <string>%MUNKI_REPO_SUBDIR%</string>
                </dict>
                <key>Processor</key>
                <string>MunkiImporter</string>
            </dict>
        </array>
    </dict>
</plist>
Node JS LTS.js/nodejslts.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
    <dict>
        <key>Comment</key>
        <string>Based on a receipe from gerardkok</string>
        <key>Description</key>
        <string>Downloads the latest LTS version of Node.js.</string>
        <key>Identifier</key>
        <string>com.github.dataJAR-recipes.download.nodejslts</string>
        <key>Input</key>
        <dict>
            <key>NAME</key>
            <string>nodelts</string>
            <key>RELEASE</key>
            <string>latest</string>
        </dict>
        <key>MinimumVersion</key>
        <string>0.6.0</string>
        <key>Process</key>
        <array>
            <dict>
                <key>Processor</key>
                <string>URLTextSearcher</string>
                <key>Arguments</key>
                <dict>
                    <key>url</key>
                    <string>https://nodejs.org/en/download/</string>
                    <key>re_pattern</key>
                    <string>node-v([0-9\.]+).pkg</string>
                    <key>result_output_var_name</key>
                    <string>version</string>
                </dict>
            </dict>
            <dict>
                <key>Processor</key>
                <string>URLDownloader</string>
                <key>Arguments</key>
                <dict>
                    <key>url</key>
                    <string>https://nodejs.org/dist/v%version%/node-v%version%.pkg</string>
                </dict>
            </dict>
            <dict>
                <key>Processor</key>
                <string>EndOfCheckPhase</string>
            </dict>
            <dict>
                <key>Processor</key>
                <string>CodeSignatureVerifier</string>
                <key>Arguments</key>
                <dict>
                    <key>input_path</key>
                    <string>%pathname%</string>
                    <key>expected_authority_names</key>
                    <array>
                        <string>Developer ID Installer: Node.js Foundation (HX7739G8FX)</string>
                        <string>Developer ID Certification Authority</string>
                        <string>Apple Root CA</string>
                    </array>
                </dict>
            </dict>
        </array>
    </dict>
</plist>

Node JS LTS.js/NodeJS.png METASEP

New York Fonts/New York Fonts.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
    <dict>
        <key>Description</key>
        <string>Downloads the latest version of New York Fonts and imports into Munki</string>
        <key>Identifier</key>
        <string>com.github.dataJAR-recipes.munki.New York Fonts</string>
        <key>Input</key>
        <dict>
            <key>MUNKI_REPO_SUBDIR</key>
            <string>apps/%NAME%</string>
            <key>NAME</key>
            <string>New York Fonts</string>
            <key>pkginfo</key>
            <dict>
                <key>catalogs</key>
                <array>
                    <string>testing</string>
                </array>
                <key>description</key>
                <string>A companion to San Francisco, this serif typeface is based on essential aspects of historical type styles. New York features six weights, supports Latin, Greek and Cyrillic scripts, and features variable optical sizes allowing it to perform as a traditional reading face at small sizes and a graphic display face at larger sizes.</string>
                <key>developer</key>
                <string>Apple</string>
                <key>display_name</key>
                <string>New York Fonts</string>
                <key>name</key>
                <string>%NAME%</string>
                <key>unattended_install</key>
                <true></true>
                <key>unattended_uninstall</key>
                <true></true>
            </dict>
        </dict>
        <key>MinimumVersion</key>
        <string>0.5.0</string>
        <key>ParentRecipe</key>
        <string>com.github.dataJAR-recipes.download.New York Fonts</string>
        <key>Process</key>
        <array>
            <dict>
                <key>Processor</key>
                <string>MunkiImporter</string>
                <key>Arguments</key>
                <dict>
                    <key>pkg_path</key>
                    <string>%pathname%</string>
                    <key>repo_subdirectory</key>
                    <string>%MUNKI_REPO_SUBDIR%</string>
                </dict>
            </dict>
        </array>
    </dict>
</plist>
New York Fonts/New York Fonts.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
    <dict>
        <key>Description</key>
        <string>Downloads the latest version of New York Fonts</string>
        <key>Identifier</key>
        <string>com.github.dataJAR-recipes.download.New York Fonts</string>
        <key>Input</key>
        <dict>
            <key>NAME</key>
            <string>New York Fonts</string>
            <key>DOWNLOAD_URL</key>
            <string>https://devimages-cdn.apple.com/design/resources/download/NY.dmg</string>
        </dict>
        <key>MinimumVersion</key>
        <string>0.5.0</string>
        <key>Process</key>
        <array>
            <dict>
                <key>Processor</key>
                <string>URLDownloader</string>
                <key>Arguments</key>
                <dict>
                    <key>filename</key>
                    <string>%NAME%.dmg</string>
                    <key>url</key>
                    <string>%DOWNLOAD_URL%</string>
                </dict>
            </dict>
            <dict>
                <key>Processor</key>
                <string>EndOfCheckPhase</string>
            </dict>
            <dict>
                <key>Processor</key>
                <string>CodeSignatureVerifier</string>
                <key>Arguments</key>
                <dict>
                    <key>input_path</key>
                    <string>%pathname%/*.pkg</string>
                    <key>expected_authority_names</key>
                    <array>
                        <string>Software Update</string>
                        <string>Apple Software Update Certification Authority</string>
                        <string>Apple Root CA</string>
                    </array>
                </dict>
            </dict>
        </array>
    </dict>
</plist>
Navicat Premium Essentials 15-Trial/Navicat Premium Essentials 15-Trial.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of Navicat Premium Essentials 15 and imports it into Munki.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.Navicat Premium Essentials 15-Trial</string>
    <key>Input</key>
    <dict>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>NAME</key>
        <string>NavicatPremiumEssentials15</string>
        <key>pkginfo</key>
        <dict>
            <key>blocking_applications</key>
            <array>
                <string>Navicat Premium Essentials</string>
            </array>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>Navicat is a database administration tool that allows you to simultaneously connect to MySQL, MariaDB, SQL Server, Oracle, PostgreSQL, and SQLite databases from a single application.</string>
            <key>category</key>
            <string>Development</string>
            <key>developer</key>
            <string>PremiumSoft CyberTech</string>
            <key>display_name</key>
            <string>Navicat Premium Essentials 15</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>1.0.0</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.Navicat Premium Essentials 15-Trial</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>DmgCreator</string>
            <key>Arguments</key>
            <dict>
                <key>dmg_path</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%.dmg</string>
                <key>dmg_root</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%/Applications/</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%dmg_path%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PathDeleter</string>
            <key>Arguments</key>
            <dict>
                <key>path_list</key>
                <array>
                    <string>%RECIPE_CACHE_DIR%/%NAME%/</string>
                </array>
            </dict>
        </dict>
    </array>
</dict>
</plist>
Navicat Premium Essentials 15-Trial/Navicat Premium Essentials 15-Trial.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of Navicat Premium Essentials 15 Trial.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.Navicat Premium Essentials 15-Trial</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>NavicatPremiumEssentials15</string>
    </dict>
    <key>MinimumVersion</key>
    <string>1.0.0</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>SparkleUpdateInfoProvider</string>
            <key>Arguments</key>
            <dict>
                <key>appcast_url</key>
                <string>https://updater.navicat.com/mac/navicat_updates.php?appName=Navicat%20Premium%20Essentials&amp;appVersion=15&amp;appLang=en&amp;appLang=en</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>URLDownloader</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>Unarchiver</string>
            <key>Arguments</key>
            <dict>
                <key>archive_path</key>
                <string>%pathname%</string>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%/Applications/</string>
                <key>purge_destination</key>
                <true/>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
            <key>Arguments</key>
            <dict>
                <key>input_path</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%/Applications/Navicat Premium Essentials.app</string>
                <key>requirement</key>
                <string>anchor apple generic and identifier "com.prect.NavicatPremiumEssentials12" 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] = VH7G2MRF27)</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>
Navicat Essentials for MySQL/NavicatEssentialsforMySQL.png METASEP

Navicat Essentials for MySQL/Navicat Essentials for MySQL.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>Description</key>
	<string>Downloads the latest version of Navicat Essentials for MySQL and imports it into Munki.</string>
	<key>Identifier</key>
	<string>com.github.dataJAR-recipes.munki.Navicat Essentials for MySQL</string>
	<key>Input</key>
	<dict>
		<key>MUNKI_REPO_SUBDIR</key>
		<string>apps/%NAME%</string>
		<key>NAME</key>
		<string>NavicatEssentialsforMySQL</string>
		<key>pkginfo</key>
		<dict>
			<key>catalogs</key>
			<array>
				<string>testing</string>
			</array>
			<key>developer</key>
			<string>PremiumSoft</string>
			<key>description</key>
			<string>Navicat for MySQL is the ideal solution for MySQL/MariaDB administration and development.</string>
			<key>display_name</key>
			<string>Navicat Essentials for MySQL</string>
			<key>name</key>
			<string>%NAME%</string>
			<key>unattended_install</key>
			<true/>
		</dict>
	</dict>
	<key>MinimumVersion</key>
	<string>0.3.1</string>
	<key>ParentRecipe</key>
	<string>com.github.dataJAR-recipes.download.Navicat Essentials for MySQL</string>
	<key>Process</key>
	<array>
		<dict>
			<key>Arguments</key>
			<dict>
				<key>pkg_path</key>
				<string>%RECIPE_CACHE_DIR%/downloads/%NAME%.dmg</string>
				<key>repo_subdirectory</key>
				<string>%MUNKI_REPO_SUBDIR%</string>
				<key>version_comparison_key</key>
				<string>CFBundleShortVersionString</string>
			</dict>
			<key>Processor</key>
			<string>MunkiImporter</string>
		</dict>
	</array>
</dict>
</plist>
Navicat Essentials for MySQL/Navicat Essentials for MySQL.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of Navicat Essentials for MySQL.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.Navicat Essentials for MySQL</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>Navicat Essentials for MySQL</string>
        <key>USER_AGENT</key>
        <string>Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36</string>
    </dict>
    <key>MinimumVersion</key>
    <string>1.0.0</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Arguments</key>
            <dict>
                <key>url</key>
                <string>http://download.navicat.com/download/navicatess150_mysql_en.dmg</string>
                <key>filename</key>
                <string>%NAME%.dmg</string>
                <key>request_headers</key>
                <dict>
                    <key>user-agent</key>
                    <string>%USER_AGENT%</string>
                </dict>
            </dict>
            <key>Processor</key>
            <string>URLDownloader</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
            <key>Arguments</key>
            <dict>
                <key>input_path</key>
                <string>%RECIPE_CACHE_DIR%/downloads/%NAME%.dmg/Navicat Essentials for MySQL.app</string>
                <key>requirement</key>
                <string>identifier "com.prect.NavicatEssentialsForMySQL12" and anchor apple generic and 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] = VH7G2MRF27</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>
NWEA Secure Testing Browser/NWEA Secure Testing Browser.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>Description</key>
	<string>Downloads the current release version of NWEA Secure Testing Browser and imports into munki.</string>
	<key>Identifier</key>
	<string>com.github.dataJAR-recipes.munki.NWEA Secure Testing Browser</string>
	<key>Input</key>
	<dict>
		<key>MUNKI_REPO_SUBDIR</key>
		<string>apps/NWEA Secure Testing Browser</string>
		<key>NAME</key>
		<string>NWEA Secure Testing Browser</string>
		<key>pkginfo</key>
		<dict>
			<key>catalogs</key>
			<array>
				<string>testing</string>
			</array>
			<key>category</key>
			<string>Development</string>
			<key>description</key>
			<string>The NWEA Secure Testing Browser provides students the ability to complete our K12 assessments on an macOS.</string>
			<key>developer</key>
			<string>Northwest Evaluation Association</string>
			<key>display_name</key>
			<string>%NAME%</string>
			<key>name</key>
			<string>%NAME%</string>
			<key>unattended_install</key>
			<true/>
		</dict>
	</dict>
	<key>MinimumVersion</key>
	<string>1.0.0</string>
	<key>ParentRecipe</key>
	<string>com.github.nstrauss.download.NWEASecureTestingBrowser</string>
	<key>Process</key>
	<array>
		<dict>
			<key>Processor</key>
			<string>MunkiImporter</string>
			<key>Arguments</key>
			<dict>
				<key>pkg_path</key>
				<string>%pathname%</string>
				<key>repo_subdirectory</key>
				<string>%MUNKI_REPO_SUBDIR%</string>
			</dict>
		</dict>
	</array>
</dict>
</plist>

NVivo 12/NVivo 12.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of NVivo 12 and imports into Munki.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.NVivo 12</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>NVivo12</string>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>pkginfo</key>
        <dict>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>More than just a tool for organizing and managing data, NVivo offers an intuitive qualitative data analysis experience that helps you uncover deeper research insights.</string>
            <key>display_name</key>
            <string>NVivo 12</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>postinstall_script</key>
            <string>#!/bin/bash
#
# Copyright (c) 2020, dataJAR Ltd.  All rights reserved.
#
# The activationFile var needs to be amended and licenseKey var supplied as per: 
# http://techcenter.qsrinternational.com/desktop/nm12/nm12_mass_deployment.htm
#

activationFile="&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot; standalone=&quot;yes&quot;?&gt;
&lt;Activation&gt;
  &lt;Request&gt;
    &lt;FirstName&gt;John&lt;/FirstName&gt;
    &lt;LastName&gt;Sysadmin&lt;/LastName&gt;
    &lt;Email&gt;admin@yourorg.com&lt;/Email&gt;
    &lt;Phone&gt;+1-555-555-5555&lt;/Phone&gt;
    &lt;Fax&gt;+1-555-555-5555&lt;/Fax&gt;
    &lt;JobTitle&gt;Your Job Title&lt;/JobTitle&gt;
    &lt;Sector&gt;Your Sector&lt;/Sector&gt;
    &lt;Industry&gt;Your Industry&lt;/Industry&gt;
    &lt;Role&gt;Your Role&lt;/Role&gt;
    &lt;Department&gt;Your Department&lt;/Department&gt;
    &lt;Organization&gt;Your Organization&lt;/Organization&gt;
    &lt;City&gt;Boston&lt;/City&gt;
    &lt;Country&gt;USA&lt;/Country&gt;
    &lt;State&gt;Massachusetts&lt;/State&gt;
  &lt;/Request&gt;
&lt;/Activation&gt;"

licenseKey=""

# Proceed only if variable(s) have a value
if [ -n "${licenseKey}" ]
then
    /bin/echo "Creating activation file /tmp/activation.xml..."
    /bin/echo -n "${activationFile}" > /tmp/activation.xml
    /bin/echo "Licensing NVivo..."
    '/Applications/NVivo 12.app/Contents/MacOS/NVivo 12' -initialize "${licenseKey}" -activate /tmp/activation.xml
    /bin/rm /tmp/activation.xml
fi

/bin/echo "Disabling Automatic updates..."
/usr/bin/defaults write /Library/Preferences/com.qsrinternational.NVivo-12.plist SUEnableAutomaticChecks -bool NO 
/usr/bin/defaults write /Library/Preferences/com.qsrinternational.NVivo-12.plist SUAutomaticallyUpdate -bool NO</string>
            <key>unattended_install</key>
            <true/>
            <key>unattended_uninstall</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.2.0</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.NVivo 12</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%pathname%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>
NVivo 12/NVivo 12.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads latest version of NVivo 12.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.NVivo 12</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>NVivo12</string>
        <key>SPARKLE_FEED_URL</key>
        <string>https://download.qsrinternational.com/Software/NVivo12forMac/appcast.xml</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.2.0</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>SparkleUpdateInfoProvider</string>
            <key>Arguments</key>
            <dict>
                <key>appcast_url</key>
                <string>%SPARKLE_FEED_URL%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>URLDownloader</string>
            <key>Arguments</key>
            <dict>
                <key>filename</key>
                <string>%NAME%.dmg</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
            <key>Arguments</key>
            <dict>
                <key>input_path</key>
                <string>%pathname%/NVivo 12.app</string>
                <key>requirement</key>
                <string>identifier "com.qsrinternational.NVivo-12" and anchor apple generic and 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] = A66L57342X</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>
NOW TV Player/NOWTVPlayer.png METASEP

NOW TV Player/NOW TV Player.pkg.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of NOW TV Player and creates a versioned PKG.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.pkg.NOW TV Player</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>NOW TV Player</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.NOW TV Player</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>PkgRootCreator</string>
            <key>Arguments</key>
            <dict>
                <key>pkgroot</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%</string>
                <key>pkgdirs</key>
                <dict>
                    <key>Applications</key>
                    <string>0775</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>Copier</string>
            <key>Arguments</key>
            <dict>
                <key>source_path</key>
                <string>%input_path%</string>
                <key>destination_path</key>
                <string>%pkgroot%/Applications/NOW TV Player.app</string>
                <key>overwrite</key>
                <true/>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PlistReader</string>
            <key>Arguments</key>
            <dict>
                <key>info_path</key>
                <string>%destination_path%</string>
                <key>plist_keys</key>
                <dict>
                    <key>CFBundleIdentifier</key>
                    <string>bundleid</string>
                    <key>CFBundleShortVersionString</key>
                    <string>version</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PkgCreator</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_request</key>
                <dict>
                    <key>pkgname</key>
                    <string>%NAME%-%version%</string>
                    <key>chown</key>
                    <array>
                        <dict>
                            <key>path</key>
                            <string>Applications</string>
                            <key>user</key>
                            <string>root</string>
                            <key>group</key>
                            <string>admin</string>
                        </dict>
                    </array>
                    <key>id</key>
                    <string>%bundleid%</string>
                    <key>options</key>
                    <string>purge_ds_store</string>
                    <key>pkgdir</key>
                    <string>%RECIPE_CACHE_DIR%</string>
                    <key>pkgroot</key>
                    <string>%pkgroot%</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PathDeleter</string>
            <key>Arguments</key>
            <dict>
                <key>path_list</key>
                <array>
                    <string>%pkgroot%</string>                      
                </array>
            </dict>
        </dict>
    </array>
</dict>
</plist>

NOW TV Player/NOW TV Player.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of NOW TV Player and imports it into Munki.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.NOW TV Player</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>NOW TV Player</string>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>pkginfo</key>
        <dict>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>The NOW TV Player is an app you need to watch NOW TV on your Mac.</string>
            <key>developer</key>
            <string>Sky UK Limited</string>
            <key>display_name</key>
            <string>NOW TV Player</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
            <key>unattended_uninstall</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.NOW TV Player</string>
    <key>Process</key>
    <array>
        <dict>  
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%pathname%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>

NOW TV Player/NOW TV Player.jss.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the current release version of NOW TV Player and then uploads to the JSS</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.jss.NOW TV Player</string>
    <key>Input</key>
    <dict>
        <key>CATEGORY</key>
        <string>Applications</string>
        <key>GROUP_NAME</key>
        <string>%NAME%-update-smart</string>
        <key>GROUP_TEMPLATE</key>
        <string>SmartGroupTemplate.xml</string>
        <key>NAME</key>
        <string>NOW TV Player</string>
        <key>POLICY_CATEGORY</key>
        <string>Testing</string>
        <key>POLICY_TEMPLATE</key>
        <string>PolicyTemplate.xml</string>
        <key>SELF_SERVICE_DESCRIPTION</key>
        <string>The NOW TV Player is an app you need to watch NOW TV on your Mac.</string>
        <key>SELF_SERVICE_ICON</key>
        <string>NOWTVPlayer.png</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.pkg.NOW TV Player</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>JSSImporter</string>
            <key>Arguments</key>
            <dict>
                <key>category</key>
                <string>%CATEGORY%</string>
                <key>groups</key>
                <array>
                    <dict>
                        <key>name</key>
                        <string>%GROUP_NAME%</string>
                        <key>smart</key>
                        <true/>
                        <key>template_path</key>
                        <string>%GROUP_TEMPLATE%</string>
                    </dict>
                </array>
                <key>pkg_path</key>
                <string>%pkg_path%</string>
                <key>policy_category</key>
                <string>%POLICY_CATEGORY%</string>
                <key>policy_template</key>
                <string>%POLICY_TEMPLATE%</string>
                <key>prod_name</key>
                <string>NOW TV Player</string>
                <key>self_service_description</key>
                <string>%SELF_SERVICE_DESCRIPTION%</string>
                <key>self_service_icon</key>
                <string>%SELF_SERVICE_ICON%</string>
                <key>version</key>
                <string>%version%</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>
NOW TV Player/NOW TV Player.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads latest version of NOW TV Player.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.NOW TV Player</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>NOW TV Player</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>URLDownloader</string>
            <key>Arguments</key>
            <dict>
                <key>filename</key>
                <string>%NAME%.dmg</string>
                <key>url</key>
                <string>https://web.static.nowtv.com/watch/player/nowtv/gb/latest/NOWTVPlayer-Mac.dmg</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
            <key>Arguments</key>
            <dict>
                <key>input_path</key>
                <string>%pathname%/NOW TV Player.app</string>
                <key>requirement</key>
                <string>identifier "com.electron.now-tv-player" and anchor apple generic and 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] = GJ24C8864F</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>
Munki Catalog Browser/MunkiCatalogBrowser.png METASEP

Munki Catalog Browser/Munki Catalog Browser.pkg.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>Description</key>
	<string>Downloads the latest version of Munki Catalog Browser and creates a package.</string>
	<key>Identifier</key>
	<string>com.github.dataJAR-recipes.pkg.MunkiCatalogBrowser</string>
	<key>Input</key>
	<dict>
		<key>NAME</key>
		<string>MunkiCatalogBrowser</string>
	</dict>
	<key>MinimumVersion</key>
	<string>1.0.0</string>
	<key>ParentRecipe</key>
	<string>com.github.dataJAR-recipes.download.MunkiCatalogBrowser</string>
	<key>Process</key>
	<array>
		<dict>
			<key>Arguments</key>
			<dict>
				<key>app_path</key>
				<string>%RECIPE_CACHE_DIR%/%NAME%/Munki Catalog Browser.app</string>
				<key>pkg_path</key>
				<string>%RECIPE_CACHE_DIR%/%NAME%-%version%.pkg</string>
			</dict>
			<key>Processor</key>
			<string>AppPkgCreator</string>
		</dict>
		<dict>
			<key>Arguments</key>
			<dict>
				<key>path_list</key>
				<array>
					<string>%RECIPE_CACHE_DIR%/%NAME%</string>
				</array>
			</dict>
			<key>Processor</key>
			<string>PathDeleter</string>
		</dict>
	</array>
</dict>
</plist>

Munki Catalog Browser/Munki Catalog Browser.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of Munki Catalog Browser and imports it into Munki.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.MunkiCatalogBrowser</string>
    <key>Input</key>
    <dict>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>NAME</key>
        <string>MunkiCatalogBrowser</string>
        <key>pkginfo</key>
        <dict>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>Munki Catalog Browser is an app which allows for easy browsing of items in your devices Munki catalogs as well as exporting to CSV</string>
            <key>developer</key>
            <string>Data JAR Ltd</string>
            <key>display_name</key>
            <string>Munki Catalog Browser</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
            <key>unattended_uninstall</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>1.0.0</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.MunkiCatalogBrowser</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>DmgCreator</string>
            <key>Arguments</key>
            <dict>
                <key>dmg_path</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%.dmg</string>
                <key>dmg_root</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%/Applications</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%dmg_path%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PathDeleter</string>
            <key>Arguments</key>
            <dict>
                <key>path_list</key>
                <array>
                    <string>%RECIPE_CACHE_DIR%/%NAME%/</string>                           
                </array>
            </dict>
        </dict>
    </array>
</dict>
</plist>
Munki Catalog Browser/Munki Catalog Browser.jss.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>Description</key>
	<string>Downloads the latest version of Munki Catalog Browser and imports it into your JSS.</string>
	<key>Identifier</key>
	<string>com.github.dataJAR-recipes.jss.MunkiCatalogBrowser</string>
	<key>Input</key>
	<dict>
		<key>CATEGORY</key>
		<string>Productivity</string>
		<key>GROUP_NAME</key>
		<string>%NAME%-update-smart</string>
		<key>GROUP_TEMPLATE</key>
		<string>SmartGroupTemplate.xml</string>
		<key>NAME</key>
		<string>MunkiCatalogBrowser</string>
		<key>POLICY_CATEGORY</key>
		<string>Testing</string>
		<key>POLICY_TEMPLATE</key>
		<string>PolicyTemplate.xml</string>
		<key>SELF_SERVICE_DESCRIPTION</key>
		<string>Munki Catalog Browser is an app which allows for easy browsing of items in your devices Munki catalogs as well as exporting to CSV</string>
		<key>SELF_SERVICE_ICON</key>
		<string>%NAME%.png</string>
	</dict>
	<key>MinimumVersion</key>
	<string>1.0.0</string>
	<key>ParentRecipe</key>
	<string>com.github.dataJAR-recipes.pkg.MunkiCatalogBrowser</string>
	<key>Process</key>
	<array>
		<dict>
			<key>Arguments</key>
			<dict>
				<key>category</key>
				<string>%CATEGORY%</string>
				<key>groups</key>
				<array>
					<dict>
						<key>name</key>
						<string>%GROUP_NAME%</string>
						<key>smart</key>
						<true/>
						<key>template_path</key>
						<string>%GROUP_TEMPLATE%</string>
					</dict>
				</array>
				<key>policy_category</key>
				<string>%POLICY_CATEGORY%</string>
				<key>policy_template</key>
				<string>%POLICY_TEMPLATE%</string>
				<key>prod_name</key>
				<string>Munki Catalog Browser</string>
				<key>self_service_description</key>
				<string>%SELF_SERVICE_DESCRIPTION%</string>
				<key>self_service_icon</key>
				<string>%SELF_SERVICE_ICON%</string>
				<key>version</key>
				<string>%version%</string>
			</dict>
			<key>Processor</key>
			<string>JSSImporter</string>
		</dict>
	</array>
</dict>
</plist>

Munki Catalog Browser/Munki Catalog Browser.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of Munki Catalog Browser.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.MunkiCatalogBrowser</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>MunkiCatalogBrowser</string>
        <key>SPARKLE_FEED_URL</key>
        <string>https://raw.githubusercontent.com/dataJAR/Munki-Catalog-Browser/appcast/appcast.xml</string>
    </dict>
    <key>MinimumVersion</key>
    <string>1.0.0</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Arguments</key>
            <dict>
                <key>appcast_url</key>
                <string>%SPARKLE_FEED_URL%</string>
            </dict>
            <key>Processor</key>
            <string>SparkleUpdateInfoProvider</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>URLDownloader</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>Unarchiver</string>
            <key>Arguments</key>
            <dict>
                <key>archive_path</key>
                <string>%pathname%</string>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%/Applications/</string>
                <key>purge_destination</key>
                <true/>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
            <key>Arguments</key>
            <dict>
                <key>input_path</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%/Applications/Munki Catalog Browser.app</string>
                <key>requirement</key>
                <string>anchor apple generic and identifier "uk.co.dataJAR.MunkiCatalogBrowser" 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] = "82K2XFN8L6")</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>
Mu/Mu.png METASEP

Mu/Mu.pkg.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>Description</key>
	<string>Downloads the current release version of Mu and makes a package.</string>
	<key>Identifier</key>
	<string>com.github.dataJAR-recipes.pkg.Mu</string>
	<key>Input</key>
	<dict>
		<key>NAME</key>
		<string>Mu</string>
	</dict>
	<key>MinimumVersion</key>
	<string>1.0.0</string>
	<key>ParentRecipe</key>
	<string>com.github.dataJAR-recipes.download.Mu</string>
	<key>Process</key>
	<array>
		<dict>
			<key>Arguments</key>
			<dict>
				<key>archive_path</key>
				<string>%pathname%</string>
				<key>destination_path</key>
				<string>%RECIPE_CACHE_DIR%/%NAME%</string>
				<key>purge_destination</key>
				<true/>
			</dict>
			<key>Processor</key>
			<string>Unarchiver</string>
		</dict>
		<dict>
			<key>Arguments</key>
			<dict>
				<key>app_path</key>
				<string>%RECIPE_CACHE_DIR%/%NAME%/Mu.app</string>
				<key>bundleid</key>
				<string>com.github.mu-%version%</string>
				<key>version</key>
				<string>%version%</string>
			</dict>
			<key>Processor</key>
			<string>AppPkgCreator</string>
		</dict>
	</array>
</dict>
</plist>

Mu/Mu.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>Description</key>
	<string>Downloads the current release version of Mu and imports into munki.</string>
	<key>Identifier</key>
	<string>com.github.dataJAR-recipes.munki.Mu</string>
	<key>Input</key>
	<dict>
		<key>MUNKI_REPO_SUBDIR</key>
		<string>apps/Mu</string>
		<key>NAME</key>
		<string>Mu</string>
		<key>pkginfo</key>
		<dict>
			<key>catalogs</key>
			<array>
				<string>testing</string>
			</array>
			<key>category</key>
			<string>Development</string>
			<key>description</key>
			<string>Mu is a simple code editor for beginner programmers. It's written in Python and works on Windows, OSX, Linux and Raspberry Pi.</string>
			<key>developer</key>
			<string>Mu</string>
			<key>display_name</key>
			<string>%NAME%</string>
			<key>name</key>
			<string>%NAME%</string>
			<key>unattended_install</key>
			<true/>
		</dict>
	</dict>
	<key>MinimumVersion</key>
	<string>1.0.0</string>
	<key>ParentRecipe</key>
	<string>com.github.dataJAR-recipes.download.Mu</string>
	<key>Process</key>
	<array>
		<dict>
			<key>Arguments</key>
			<dict>
				<key>archive_path</key>
				<string>%pathname%</string>
				<key>destination_path</key>
				<string>%RECIPE_CACHE_DIR%/%NAME%/Applications/</string>
				<key>purge_destination</key>
				<true/>
			</dict>
			<key>Processor</key>
			<string>Unarchiver</string>
		</dict>
		<dict>
			<key>Arguments</key>
			<dict>
				<key>faux_root</key>
				<string>%RECIPE_CACHE_DIR%/%NAME%</string>
				<key>installs_item_paths</key>
				<array>
					<string>/Applications/Mu.app/Contents/MacOS/mu</string>
				</array>
			</dict>
			<key>Processor</key>
			<string>MunkiInstallsItemsCreator</string>
		</dict>
		<dict>
			<key>Processor</key>
			<string>MunkiPkginfoMerger</string>
		</dict>
		<dict>
			<key>Arguments</key>
			<dict>
				<key>additional_pkginfo</key>
				<dict>
					<key>items_to_copy</key>
					<array>
						<dict>
							<key>destination_path</key>
							<string>/Applications</string>
							<key>source_item</key>
							<string>Mu.app</string>
						</dict>
					</array>
					<key>version</key>
					<string>%version%</string>
				</dict>
			</dict>
			<key>Processor</key>
			<string>MunkiPkginfoMerger</string>
		</dict>
		<dict>
			<key>Arguments</key>
			<dict>
				<key>dmg_path</key>
				<string>%RECIPE_CACHE_DIR%/%NAME%.dmg</string>
				<key>dmg_root</key>
				<string>%RECIPE_CACHE_DIR%/%NAME%/Applications</string>
			</dict>
			<key>Processor</key>
			<string>DmgCreator</string>
		</dict>
		<dict>
			<key>Arguments</key>
			<dict>
				<key>pkg_path</key>
				<string>%dmg_path%</string>
				<key>repo_subdirectory</key>
				<string>%MUNKI_REPO_SUBDIR%</string>
			</dict>
			<key>Processor</key>
			<string>MunkiImporter</string>
		</dict>
	</array>
</dict>
</plist>

Mu/Mu.jss.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>Description</key>
	<string>Downloads the current release version of Mu and builds a package. Then, uploads to the JSS.</string>
	<key>Identifier</key>
	<string>com.github.dataJAR-recipes.jss.Mu</string>
	<key>Input</key>
	<dict>
		<key>CATEGORY</key>
		<string>Development</string>
		<key>GROUP_NAME</key>
		<string>%NAME%-update-smart</string>
		<key>GROUP_TEMPLATE</key>
		<string>Mu-SmartGroupTemplate.xml</string>
		<key>NAME</key>
		<string>Mu</string>
		<key>POLICY_CATEGORY</key>
		<string>Testing</string>
		<key>POLICY_TEMPLATE</key>
		<string>PolicyTemplate.xml</string>
		<key>SELF_SERVICE_DESCRIPTION</key>
		<string>Mu is a simple code editor for beginner programmers. It's written in Python and works on Windows, OSX, Linux and Raspberry Pi.</string>
		<key>SELF_SERVICE_ICON</key>
		<string>Mu.png</string>
	</dict>
	<key>MinimumVersion</key>
	<string>1.0.0</string>
	<key>ParentRecipe</key>
	<string>com.github.dataJAR-recipes.pkg.Mu</string>
	<key>Process</key>
	<array>
		<dict>
			<key>Arguments</key>
			<dict>
				<key>category</key>
				<string>%CATEGORY%</string>
				<key>groups</key>
				<array>
					<dict>
						<key>name</key>
						<string>%GROUP_NAME%</string>
						<key>smart</key>
						<true/>
						<key>template_path</key>
						<string>%GROUP_TEMPLATE%</string>
					</dict>
				</array>
				<key>pkg_path</key>
				<string>%RECIPE_CACHE_DIR%/%NAME%-%version%.pkg</string>
				<key>policy_category</key>
				<string>%POLICY_CATEGORY%</string>
				<key>policy_template</key>
				<string>%POLICY_TEMPLATE%</string>
				<key>prod_name</key>
				<string>%NAME%</string>
				<key>self_service_description</key>
				<string>%SELF_SERVICE_DESCRIPTION%</string>
				<key>self_service_icon</key>
				<string>%SELF_SERVICE_ICON%</string>
				<key>version</key>
				<string>%version%</string>
			</dict>
			<key>Processor</key>
			<string>JSSImporter</string>
		</dict>
	</array>
</dict>
</plist>

Mu/Mu.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>Description</key>
	<string>Downloads the latest version Mu.
Set PRERELEASE to a non-empty string to download prereleases, either
via Input in an override or via the -k option,
i.e.: `-k PRERELEASE=yes`</string>
	<key>Identifier</key>
	<string>com.github.dataJAR-recipes.download.Mu</string>
	<key>Input</key>
	<dict>
		<key>NAME</key>
		<string>Mu</string>
		<key>PRERELEASE</key>
        <string></string>
	</dict>
	<key>MinimumVersion</key>
	<string>0.6.1</string>
	<key>Process</key>
	<array>
        <dict>
            <key>Processor</key>
            <string>DeprecationWarning</string>
            <key>Arguments</key>
            <dict>
                <key>warning_message</key>
                <string>These recipes have been replaced by: https://github.com/autopkg/dataJAR-recipes/tree/master/Mu%20Editor.</string>
            </dict>
        </dict>
        <dict>   
            <key>Processor</key>   
            <string>StopProcessingIf</string>   
            <key>Arguments</key>   
            <dict>   
                <key>predicate</key>   
                <string>TRUEPREDICATE</string>
            </dict>
        </dict>
		<dict>
			<key>Arguments</key>
			<dict>
				<key>github_repo</key>
				<string>mu-editor/mu</string>
				<key>include_prereleases</key>
				<string>%PRERELEASE%</string>
				<key>asset_regex</key>
				<string>[\S]+\.osx.zip</string>
			</dict>
			<key>Processor</key>
			<string>GitHubReleasesInfoProvider</string>
		</dict>
		<dict>
			<key>Arguments</key>
			<dict>
				<key>filename</key>
				<string>%NAME%-%version%.zip</string>
			</dict>
			<key>Processor</key>
			<string>URLDownloader</string>
		</dict>
		<dict>
			<key>Processor</key>
			<string>EndOfCheckPhase</string>
		</dict>
	</array>
</dict>
</plist>

Mu/Mu-SmartGroupTemplate.xml METASEP
<computer_group>
	<name>%group_name%</name>
	<is_smart>true</is_smart>
	<criteria>
		<criterion>
			<name>Application Title</name>
			<priority>0</priority>
			<and_or>and</and_or>
			<search_type>is</search_type>
			<value>%JSS_INVENTORY_NAME%</value>
		</criterion>
		<criterion>
			<name>Packages Installed By Installer.app/SWU</name>
			<priority>0</priority>
			<and_or>and</and_or>
			<search_type>does not have</search_type>
			<value>com.github.mu-%version%</value>
		</criterion>
		<criterion>
			<name>Computer Group</name>
			<priority>2</priority>
			<and_or>and</and_or>
			<search_type>member of</search_type>
			<value>Testing</value>
		</criterion>
	</criteria>
</computer_group>

Mu Editor/Mu Editor.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>Description</key>
	<string>Downloads the current release version of Mu Editor and imports into munki.</string>
	<key>Identifier</key>
	<string>com.github.dataJAR-recipes.munki.Mu Editor</string>
	<key>Input</key>
	<dict>
		<key>MUNKI_REPO_SUBDIR</key>
		<string>apps/Mu Editor</string>
		<key>NAME</key>
		<string>Mu Editor</string>
		<key>pkginfo</key>
		<dict>
			<key>catalogs</key>
			<array>
				<string>testing</string>
			</array>
			<key>category</key>
			<string>Development</string>
			<key>description</key>
			<string>Code with Mu: a simple Python editor for beginner programmers.</string>
			<key>developer</key>
			<string>Mu</string>
			<key>display_name</key>
			<string>%NAME%</string>
			<key>name</key>
			<string>%NAME%</string>
			<key>unattended_install</key>
			<true/>
			<key>unattended_uninstall</key>
			<true/>
		</dict>
	</dict>
	<key>MinimumVersion</key>
	<string>1.0.0</string>
	<key>ParentRecipe</key>
	<string>com.github.dataJAR-recipes.download.Mu Editor</string>
	<key>Process</key>
	<array>
		<dict>
			<key>Processor</key>
			<string>MunkiImporter</string>
			<key>Arguments</key>
			<dict>
				<key>pkg_path</key>
				<string>%pathname%</string>
				<key>repo_subdirectory</key>
				<string>%MUNKI_REPO_SUBDIR%</string>
			</dict>
		</dict>
	</array>
</dict>
</plist>
Mu Editor/Mu Editor.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of Mu Editor.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.Mu Editor</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>MuEditor</string>
        <key>PRERELEASE</key>
        <string></string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>GitHubReleasesInfoProvider</string>
            <key>Arguments</key>
            <dict>
                <key>github_repo</key>
                <string>mu-editor/mu</string>
                <key>include_prereleases</key>
                <string>%PRERELEASE%</string>
                <key>asset_regex</key>
                <string>.*\.dmg</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>URLDownloader</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
            <key>Arguments</key>
            <dict>
                <key>input_path</key>
                <string>%pathname%/Mu Editor.app</string>
                <key>requirement</key>
                <string>identifier "com.github.mu-editor.mu" and anchor apple generic and 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] = "952X4X6R5U"</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>
Mobirise/Mobirise.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the current release version of Mobirise and imports into Munki</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.Mobirise</string>
    <key>Input</key>
    <dict>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>NAME</key>
        <string>Mobirise</string>
        <key>pkginfo</key>
        <dict>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>category</key>
            <string>Utilities</string>
            <key>developer</key>
            <string>Mobirise</string>
            <key>description</key>
            <string>Mobirise is a free offline app for Window and Mac to easily create small/medium websites, landing pages, online resumes and portfolios, promo sites for apps, events, services and products.</string>
            <key>display_name</key>
            <string>Mobirise</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
            <key>unattended_uninstall</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.3.1</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.Mobirise</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%pathname%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>
Mobirise/Mobirise.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Download recipe for the latest version of Mobirise.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.Mobirise</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>Mobirise</string>
        <key>DOWNLOAD_URL</key>
        <string>https://download.mobirise.com/MobiriseSetup.dmg</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.2.0</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>URLDownloader</string>
            <key>Arguments</key>
            <dict>
                <key>url</key>
                <string>%DOWNLOAD_URL%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
            <key>Arguments</key>
            <dict>
                <key>input_path</key>
                <string>%pathname%/Mobirise.app</string>
                <key>requirement</key>
                <string>identifier "com.mobirise.Mobirise" and anchor apple generic and 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] = UD4494E573</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>
MirrorOp/MirrorOp.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the current release version of MirrorOp and imports into Munki.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.MirrorOp</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>MirrorOp</string>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>pkginfo</key>
        <dict>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>category</key>
            <string>Applications</string>
            <key>developer</key>
            <string>Barco NV</string>
            <key>description</key>
            <string>With MirrorOp sender installed on your computer, you can not only watch videos or surf the internet on a larger display with friends, but also remotely operate your computer as if you were in front of it.</string>
            <key>display_name</key>
            <string>MirrorOp</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.2.0</string>
    <key>ParentRecipe</key>
    <string>com.github.moofit-recipes.download.MirrorOp</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%pathname%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
        </dict>
    </array>
</dict>
</plist>

Miro/Miro.pkg.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
	<dict>
		<key>Description</key>
		<string>Downloads the current release version of Miro and creates a package.</string>
		<key>Identifier</key>
		<string>com.github.dataJAR-recipes.pkg.Miro</string>
		<key>Input</key>
		<dict>
			<key>NAME</key>
			<string>Miro</string>
		</dict>
		<key>MinimumVersion</key>
		<string>0.2.5</string>
		<key>ParentRecipe</key>
		<string>com.github.dataJAR-recipes.download.Miro</string>
		<key>Process</key>
		<array>
			<dict>
				<key>Processor</key>
				<string>AppDmgVersioner</string>
				<key>Arguments</key>
				<dict>
					<key>dmg_path</key>
					<string>%pathname%</string>
				</dict>
			</dict>
			<dict>
				<key>Processor</key>
				<string>PkgRootCreator</string>
				<key>Arguments</key>
				<dict>
					<key>pkgroot</key>
					<string>%RECIPE_CACHE_DIR%/%NAME%</string>
					<key>pkgdirs</key>
					<dict>
						<key>Applications</key>
						<string>0775</string>
					</dict>
				</dict>
			</dict>
			<dict>
				<key>Processor</key>
				<string>Copier</string>
				<key>Arguments</key>
				<dict>
					<key>source_path</key>
					<string>%pathname%/Miro.app</string>
					<key>destination_path</key>
					<string>%pkgroot%/Applications/Miro.app</string>
				</dict>
			</dict>
			<dict>
				<key>Processor</key>
				<string>PkgCreator</string>
				<key>Arguments</key>
				<dict>
					<key>pkg_request</key>
					<dict>
						<key>pkgname</key>
						<string>%NAME%-%version%</string>
						<key>version</key>
						<string>%version%</string>
						<key>id</key>
						<string>com.miro</string>
						<key>options</key>
						<string>purge_ds_store</string>
						<key>chown</key>
						<array>
							<dict>
								<key>path</key>
								<string>Applications</string>
								<key>user</key>
								<string>root</string>
								<key>group</key>
								<string>admin</string>
							</dict>
						</array>
					</dict>
				</dict>
			</dict>
		</array>
	</dict>
</plist>

Miro/Miro.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>Description</key>
	<string>Downloads the latest version of Miro and imports into Munki.</string>
	<key>Identifier</key>
	<string>com.github.dataJAR-recipes.munki.Miro</string>
	<key>Input</key>
	<dict>
		<key>NAME</key>
		<string>Miro</string>
		<key>DOWNLOAD_URL</key>
		<string>https://desktop.miro.com/platforms/darwin/Miro.dmg</string>
		<key>MUNKI_REPO_SUBDIR</key>
		<string>apps/%NAME%</string>		
		<key>pkginfo</key>
		<dict>
			<key>catalogs</key>
			<array>
				<string>testing</string>
			</array>
			<key>description</key>
			<string>The online collaborative whiteboard platform to bring teams together, anytime, anywhere.</string>
			<key>display_name</key>
			<string>%NAME%</string>
			<key>name</key>
			<string>%NAME%</string>
			<key>unattended_install</key>
			<true/>
			<key>unattended_uninstall</key>
			<true/>
		</dict>
	</dict>
	<key>MinimumVersion</key>
	<string>1.0.0</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.Miro</string>
	<key>Process</key>
	<array>
		<dict>
			<key>Processor</key>
			<string>MunkiImporter</string>
			<key>Arguments</key>
			<dict>
				<key>pkg_path</key>
				<string>%pathname%</string>
				<key>repo_subdirectory</key>
				<string>%MUNKI_REPO_SUBDIR%</string>
			</dict>
		</dict>
	</array>
</dict>
</plist>

Miro/Miro.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>Description</key>
	<string>Downloads the latest version of Miro.</string>
	<key>Identifier</key>
	<string>com.github.dataJAR-recipes.download.Miro</string>
	<key>Input</key>
	<dict>
		<key>NAME</key>
		<string>Miro</string>
		<key>DOWNLOAD_URL</key>
		<string>https://desktop.miro.com/platforms/darwin/Miro.dmg</string>
	</dict>
	<key>MinimumVersion</key>
	<string>1.0.0</string>
	<key>Process</key>
	<array>
		<dict>
			<key>Processor</key>
			<string>URLDownloader</string>
			<key>Arguments</key>
			<dict>
				<key>filename</key>
				<string>%NAME%.dmg</string>
				<key>url</key>
				<string>%DOWNLOAD_URL%</string>
			</dict>
		</dict>
		<dict>
			<key>Processor</key>
			<string>EndOfCheckPhase</string>
		</dict>
		<dict>
			<key>Arguments</key>
			<dict>
				<key>input_path</key>
				<string>%pathname%/*.app</string>
				<key>requirement</key>
				<string>identifier "com.electron.realtimeboard" and anchor apple generic and 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] = M3GM7MFY7U</string>
			</dict>
			<key>Processor</key>
			<string>CodeSignatureVerifier</string>
		</dict>
	</array>
</dict>
</plist>

Miro Video Converter/Miro Video Converter.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>Description</key>
	<string>Downloads the current release version of Miro Video Converter and imports into Munki.</string>
	<key>Identifier</key>
	<string>com.github.dataJAR-recipes.munki.Miro Video Converter</string>
	<key>Input</key>
	<dict>
		<key>NAME</key>
		<string>Miro Video Converter</string>
		<key>MUNKI_REPO_SUBDIR</key>
		<string>apps/%NAME%</string>
		<key>pkginfo</key>
		<dict>
			<key>catalogs</key>
			<array>
				<string>testing</string>
			</array>
			<key>category</key>
			<string>Applications</string>
			<key>developer</key>
			<string>Participatory Culture Foundation</string>
			<key>description</key>
			<string>A beautiful, simple way to convert almost any video to MP4, WebM (vp8), Ogg Theora, or for Android, iPhone, and iPad. Batch conversion, custom sizing, and more!</string>
			<key>display_name</key>
			<string>Miro Video Converter</string>
			<key>name</key>
			<string>%NAME%</string>
			<key>unattended_install</key>
			<true/>
		</dict>
	</dict>
	<key>MinimumVersion</key>
	<string>0.2.0</string>
	<key>ParentRecipe</key>
	<string>com.github.dataJAR-recipes.download.Miro Video Converter</string>
	<key>Process</key>
	<array>
		<dict>
			<key>Arguments</key>
			<dict>
				<key>pkg_path</key>
				<string>%pathname%</string>
				<key>repo_subdirectory</key>
				<string>%MUNKI_REPO_SUBDIR%</string>
			</dict>
			<key>Processor</key>
			<string>MunkiImporter</string>
		</dict>
	</array>
</dict>
</plist>

Miro Video Converter/Miro Video Converter.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>Description</key>
	<string>Downloads the current release version of Miro Video Converter.</string>
	<key>Identifier</key>
	<string>com.github.dataJAR-recipes.download.Miro Video Converter</string>
	<key>Input</key>
	<dict>
		<key>NAME</key>
		<string>Miro Video Converter</string>
	</dict>
	<key>MinimumVersion</key>
	<string>0.5.1</string>
	<key>Process</key>
	<array>
		<dict>
			<key>Processor</key>
			<string>URLDownloader</string>
			<key>Arguments</key>
			<dict>
				<key>url</key>
				<string>https://getmiro.com/files/MiroVideoConverter.dmg</string>
			</dict>
		</dict>
		<dict>
			<key>Processor</key>
			<string>EndOfCheckPhase</string>
		</dict>
	</array>
</dict>
</plist>

Mindjet MindManager/MindManager.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads latest version of Mindjet MindManager for Mac OS X and imports into Munki.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.MindManager</string>
    <key>Input</key>
    <dict>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>NAME</key>
        <string>MindManager</string>
        <key>pkginfo</key>
        <dict> 
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>Digital mind mapping and data visualization</string>
            <key>display_name</key>
            <string>Mindjet MindManager</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
            <key>unattended_uninstall</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>ParentRecipe</key>
    <string>com.github.peshay.download.MindManager</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>DeprecationWarning</string>
            <key>Arguments</key>
            <dict>
                <key>warning_message</key>
                <string>v14 has been released, as such these recipes have been deprecated and replaced with: https://github.com/autopkg/dataJAR-recipes/tree/master/MindManager%2014.</string>
            </dict>
        </dict>
        <dict>   
            <key>Processor</key>   
            <string>StopProcessingIf</string>   
            <key>Arguments</key>   
            <dict>   
                <key>predicate</key>   
                <string>TRUEPREDICATE</string>
            </dict>
        </dict>
        <dict>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%pathname%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
        </dict>
    </array>
</dict>
</plist>
MindManager 14/MindManager 14.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads latest version of MindManager 14 and imports into Munki.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.MindManager 14</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>MindManager14</string>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>pkginfo</key>
        <dict>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>category</key>
            <string>Applications</string>
            <key>developer</key>
            <string>Talkdesk</string>
            <key>description</key>
            <string>Take your productivity and projects to new heights and expand your teaming capabilities.</string>
            <key>display_name</key>
            <string>MindManager 14</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
            <key>unattended_uninstall</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.MindManager 14</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%pathname%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>
MindManager 14/MindManager 14.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads latest version of MindManager 14.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.MindManager 14</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>MindManager14</string> 
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>Process</key>
    <array>
    	<dict>
            <key>Processor</key>
            <string>URLDownloader</string>
            <key>Arguments</key>
            <dict>
            	<key>filename</key>
            	<string>%NAME%.dmg</string>
                <key>url</key>
                <string>https://www.mindmanager.com/mm-mac-dmg</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
		<dict>
			<key>Processor</key>
			<string>CodeSignatureVerifier</string>
			<key>Arguments</key>
			<dict>
				<key>input_path</key>
				<string>%pathname%/*.app</string>
				<key>requirement</key>
				<string>identifier "com.mindjet.mindmanager.14" and anchor apple generic and 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] = ZF6ZZ779N5</string>
			</dict>
		</dict>
    </array>
</dict>
</plist>
Milanote/Milanote.png METASEP

Milanote/Milanote.pkg.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of Milanote and creates a package.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.pkg.Milanote</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>Milanote</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.Milanote</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>PkgRootCreator</string>
            <key>Arguments</key>
            <dict>
                <key>pkgroot</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%</string>
                <key>pkgdirs</key>
                <dict>
                    <key>Applications</key>
                    <string>0775</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>Copier</string>
            <key>Arguments</key>
            <dict>
                <key>source_path</key>
                <string>%pathname%/Milanote.app</string>
                <key>destination_path</key>
                <string>%pkgroot%/Applications/Milanote.app</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PlistReader</string>
            <key>Arguments</key>
            <dict>
                <key>info_path</key>
                <string>%destination_path%</string>
                <key>plist_keys</key>
                <dict>
                    <key>CFBundleIdentifier</key>
                    <string>bundleid</string>
                    <key>CFBundleShortVersionString</key>
                    <string>version</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PkgCreator</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_request</key>
                <dict>
                    <key>pkgname</key>
                    <string>%NAME%-%version%</string>
                    <key>chown</key>
                    <array>
                        <dict>
                            <key>path</key>
                            <string>Applications</string>
                            <key>user</key>
                            <string>root</string>
                            <key>group</key>
                            <string>admin</string>
                        </dict>
                    </array>
                    <key>id</key>
                    <string>%bundleid%</string>
                    <key>options</key>
                    <string>purge_ds_store</string>
                    <key>pkgdir</key>
                    <string>%RECIPE_CACHE_DIR%</string>
                    <key>pkgroot</key>
                    <string>%pkgroot%</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PathDeleter</string>
            <key>Arguments</key>
            <dict>
                <key>path_list</key>
                <array>
                    <string>%pkgroot%</string>
                </array>
            </dict>
        </dict>
    </array>
</dict>
</plist>

Milanote/Milanote.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of Milanote and imports into Munki.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.Milanote</string>
    <key>Input</key>
    <dict>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>NAME</key>
        <string>Milanote</string>
        <key>pkginfo</key>
        <dict>
            <key>blocking_applications</key>
            <array>
                <string>Milanote</string>
            </array>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>Milanote is a tool for planning creative projects.</string>
            <key>display_name</key>
            <string>Milanote</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
            <key>unattended_uninstall</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.2.0</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.Milanote</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%pathname%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>
Milanote/Milanote.jss.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of Milanote and then uploads to the JSS</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.jss.Milanote</string>
    <key>Input</key>
    <dict>
        <key>CATEGORY</key>
        <string>Applications</string>
        <key>GROUP_NAME</key>
        <string>%NAME%-update-smart</string>
        <key>GROUP_TEMPLATE</key>
        <string>SmartGroupTemplate.xml</string>
        <key>NAME</key>
        <string>Milanote</string>
        <key>POLICY_CATEGORY</key>
        <string>Testing</string>
        <key>POLICY_TEMPLATE</key>
        <string>PolicyTemplate.xml</string>
        <key>SELF_SERVICE_DESCRIPTION</key>
        <string>Milanote is a tool for planning creative projects.</string>
        <key>SELF_SERVICE_ICON</key>
        <string>Milanote.png</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.2.0</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.pkg.Milanote</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>JSSImporter</string>
            <key>Arguments</key>
            <dict>
                <key>category</key>
                <string>%CATEGORY%</string>
                <key>groups</key>
                <array>
                    <dict>
                        <key>name</key>
                        <string>%GROUP_NAME%</string>
                        <key>smart</key>
                        <true/>
                        <key>template_path</key>
                        <string>%GROUP_TEMPLATE%</string>
                    </dict>
                </array>
                <key>policy_category</key>
                <string>%POLICY_CATEGORY%</string>
                <key>policy_template</key>
                <string>%POLICY_TEMPLATE%</string>
                <key>prod_name</key>
                <string>Milanote</string>
                <key>self_service_description</key>
                <string>%SELF_SERVICE_DESCRIPTION%</string>
                <key>self_service_icon</key>
                <string>%SELF_SERVICE_ICON%</string>
                <key>version</key>
                <string>%version%</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>
Milanote/Milanote.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Download recipe for Milanote.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.Milanote</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>Milanote</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.2.0</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>URLTextSearcher</string>
            <key>Arguments</key>
            <dict>
                <key>url</key>
                <string>https://www.milanote.com/download-mac-app</string>
                <key>re_pattern</key>
                <string>https://milanote-app-releases\.s3\.amazonaws\.com/Milanote-.*\.dmg</string>
                <key>result_output_var_name</key>
                <string>url</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>URLDownloader</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
            <key>Arguments</key>
            <dict>
                <key>input_path</key>
                <string>%pathname%/Milanote.app</string>
                <key>requirement</key>
                <string>identifier "com.milanote.app" and anchor apple generic and 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] = "9T9DP69Z4A"</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>
Milanote 2/Milanote2.png METASEP

Milanote 2/Milanote 2.pkg.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of Milanote 2 and creates a package.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.pkg.Milanote 2</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>Milanote2</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.Milanote 2</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>PkgRootCreator</string>
            <key>Arguments</key>
            <dict>
                <key>pkgroot</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%</string>
                <key>pkgdirs</key>
                <dict>
                    <key>Applications</key>
                    <string>0775</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>Copier</string>
            <key>Arguments</key>
            <dict>
                <key>source_path</key>
                <string>%pathname%/Milanote.app</string>
                <key>destination_path</key>
                <string>%pkgroot%/Applications/Milanote.app</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PlistReader</string>
            <key>Arguments</key>
            <dict>
                <key>info_path</key>
                <string>%destination_path%</string>
                <key>plist_keys</key>
                <dict>
                    <key>CFBundleIdentifier</key>
                    <string>bundleid</string>
                    <key>CFBundleShortVersionString</key>
                    <string>version</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PkgCreator</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_request</key>
                <dict>
                    <key>pkgname</key>
                    <string>%NAME%-%version%</string>
                    <key>chown</key>
                    <array>
                        <dict>
                            <key>path</key>
                            <string>Applications</string>
                            <key>user</key>
                            <string>root</string>
                            <key>group</key>
                            <string>admin</string>
                        </dict>
                    </array>
                    <key>id</key>
                    <string>%bundleid%</string>
                    <key>options</key>
                    <string>purge_ds_store</string>
                    <key>pkgdir</key>
                    <string>%RECIPE_CACHE_DIR%</string>
                    <key>pkgroot</key>
                    <string>%pkgroot%</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PathDeleter</string>
            <key>Arguments</key>
            <dict>
                <key>path_list</key>
                <array>
                    <string>%pkgroot%</string>
                </array>
            </dict>
        </dict>
    </array>
</dict>
</plist>

Milanote 2/Milanote 2.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of Milanote 2 and imports into Munki.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.Milanote 2</string>
    <key>Input</key>
    <dict>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>NAME</key>
        <string>Milanote2</string>
        <key>pkginfo</key>
        <dict>
            <key>blocking_applications</key>
            <array>
                <string>Milanote</string>
            </array>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>Milanote is a tool for planning creative projects.</string>
            <key>display_name</key>
            <string>Milanote 2</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
            <key>unattended_uninstall</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.2.0</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.Milanote 2</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%pathname%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>

Milanote 2/Milanote 2.jss.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of Milanote 2 and then uploads to the JSS</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.jss.Milanote 2</string>
    <key>Input</key>
    <dict>
        <key>CATEGORY</key>
        <string>Applications</string>
        <key>GROUP_NAME</key>
        <string>%NAME%-update-smart</string>
        <key>GROUP_TEMPLATE</key>
        <string>SmartGroupTemplate.xml</string>
        <key>NAME</key>
        <string>Milanote2</string>
        <key>POLICY_CATEGORY</key>
        <string>Testing</string>
        <key>POLICY_TEMPLATE</key>
        <string>PolicyTemplate.xml</string>
        <key>SELF_SERVICE_DESCRIPTION</key>
        <string>Milanote is a tool for planning creative projects.</string>
        <key>SELF_SERVICE_ICON</key>
        <string>Milanote2.png</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.2.0</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.pkg.Milanote 2</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>JSSImporter</string>
            <key>Arguments</key>
            <dict>
                <key>category</key>
                <string>%CATEGORY%</string>
                <key>groups</key>
                <array>
                    <dict>
                        <key>name</key>
                        <string>%GROUP_NAME%</string>
                        <key>smart</key>
                        <true/>
                        <key>template_path</key>
                        <string>%GROUP_TEMPLATE%</string>
                    </dict>
                </array>
                <key>policy_category</key>
                <string>%POLICY_CATEGORY%</string>
                <key>policy_template</key>
                <string>%POLICY_TEMPLATE%</string>
                <key>prod_name</key>
                <string>Milanote</string>
                <key>self_service_description</key>
                <string>%SELF_SERVICE_DESCRIPTION%</string>
                <key>self_service_icon</key>
                <string>%SELF_SERVICE_ICON%</string>
                <key>version</key>
                <string>%version%</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>
Milanote 2/Milanote 2.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Download recipe for version 2 of Milanote.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.Milanote 2</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>Milanote2</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.2.0</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>DeprecationWarning</string>
            <key>Arguments</key>
            <dict>
                <key>warning_message</key>
                <string>These recipes have been replaced by: https://github.com/autopkg/dataJAR-recipes/tree/master/Milanote.</string>
            </dict>
        </dict>
        <dict>   
            <key>Processor</key>   
            <string>StopProcessingIf</string>   
            <key>Arguments</key>   
            <dict>   
                <key>predicate</key>   
                <string>TRUEPREDICATE</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>URLTextSearcher</string>
            <key>Arguments</key>
            <dict>
                <key>url</key>
                <string>https://www.milanote.com/download-mac-app</string>
                <key>re_pattern</key>
                <string>https://milanote-app-releases.s3.amazonaws.com/Milanote-2.[\S]+\.dmg</string>
                <key>result_output_var_name</key>
                <string>url</string>
            </dict>
        </dict>
        <dict>
            <key>Arguments</key>
            <dict>
                <key>filename</key>
                <string>%NAME%.dmg</string>
            </dict>
            <key>Processor</key>
            <string>URLDownloader</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
        <dict>
            <key>Arguments</key>
            <dict>
                <key>input_path</key>
                <string>%pathname%/Milanote.app</string>
                <key>requirement</key>
                <string>identifier "com.milanote.app" and anchor apple generic and 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] = "9T9DP69Z4A"</string>
            </dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
        </dict>
    </array>
</dict>
</plist>

Midi Monitor/MidiMonitor.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Download the latest version of Midi Monitor and imports it into Munki.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.midimonitor</string>
    <key>Input</key>
    <dict>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>NAME</key>
        <string>MidiMonitor</string>
        <key>pkginfo</key>
        <dict>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>developer</key>
            <string>Snoize</string>
            <key>display_name</key>
            <string>MidiMonitor</string>
            <key>description</key>
            <string>MIDI Monitor is an app to display MIDI signals going in and out of your Mac. Musicians will find it handy for tracking down confusing MIDI problems, and programmers can use it to test MIDI drivers and applications.</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>display_name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.3.0</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.midimonitor</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%pathname%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>
Midi Monitor/MidiMonitor.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Download recipe of Midi Monitor.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.midimonitor</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>MidiMonitor</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.2.0</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>URLTextSearcher</string>
            <key>Arguments</key>
            <dict>
                <key>re_pattern</key>
                <string>href=\"(MIDIMonitor\.dmg)\">Download</string>
                <key>url</key>
                <string>https://www.snoize.com/MIDIMonitor</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>URLDownloader</string>
            <key>Arguments</key>
            <dict>
                <key>url</key>
                <string>https://www.snoize.com/MIDIMonitor/%match%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
            <key>Arguments</key>
            <dict>
                <key>input_path</key>
                <string>%pathname%/MIDI Monitor.app</string>
                <key>requirement</key>
                <string>anchor apple generic and identifier "com.snoize.MIDIMonitor" 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] = YDJAW5GX9U)</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>
Microsoft Word 365/Microsoft Word 365.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>This recipe downloads and imports the full installer pkg for Microsoft Word 365 into Munki
    
	This is accomplished via the Office 365 recipes from rtrouton-recipes.
	
    These in turn, utilise the fwlink's found on macadmins.software</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.Microsoft Word 365</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>Microsoft Word 365</string>
        <key>PRODUCTID</key>
        <string>525134</string>
        <key>DOWNLOADURL</key>
        <string>https://go.microsoft.com/fwlink/?linkid=%PRODUCTID%</string>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>MINIMUM_OS_VERSION</key>
        <string>10.15.0</string>
        <key>pkginfo</key>
        <dict>
            <key>blocking_applications</key>
            <array>
                <string>Microsoft Auto Update</string>
                <string>Microsoft Error Reporting</string>
                <string>Microsoft Word</string>
            </array>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>The Word you want. State-of-the-art editing, reviewing, and sharing tools make creating and polishing documents easy.</string>
            <key>display_name</key>
            <string>Microsoft Word</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
            <key>unattended_uninstall</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>1.0.0</string>
    <key>ParentRecipe</key>
    <string>com.github.rtrouton.pkg.microsoftword365</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>MunkiPkginfoMerger</string>
            <key>Arguments</key>
            <dict>
                <key>additional_pkginfo</key>
                <dict>
                    <key>minimum_os_version</key>
                    <string>%MINIMUM_OS_VERSION%</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%pkg_path%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>

Microsoft Word 2019/Microsoft Word 2019.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>This recipe downloads and imports the full installer pkg for Microsoft Word 2019 into Munki
    
	This is accomplished via the Office 365 recipes from rtrouton-recipes.
	
    These in turn, utilise the fwlink's found on macadmins.software
    
    These can have a volume license applied using appropriate pkg downloadable from Microsofts VLSC</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.Microsoft Word 2019</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>Microsoft Word 2019</string>
        <key>PRODUCTID</key>
        <string>525134</string>
        <key>DOWNLOADURL</key>
        <string>https://go.microsoft.com/fwlink/?linkid=%PRODUCTID%</string>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>MINIMUM_OS_VERSION</key>
        <string>10.14.0</string>
        <key>pkginfo</key>
        <dict>
            <key>blocking_applications</key>
            <array>
                <string>Microsoft Auto Update</string>
                <string>Microsoft Error Reporting</string>
                <string>Microsoft Word</string>
            </array>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>The Word you want. State-of-the-art editing, reviewing, and sharing tools make creating and polishing documents easy.</string>
            <key>display_name</key>
            <string>Microsoft Word</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
            <key>unattended_uninstall</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>1.0.0</string>
    <key>ParentRecipe</key>
    <string>com.github.rtrouton.pkg.microsoftword365</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>MunkiPkginfoMerger</string>
            <key>Arguments</key>
            <dict>
                <key>additional_pkginfo</key>
                <dict>
                    <key>minimum_os_version</key>
                    <string>%MINIMUM_OS_VERSION%</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%pkg_path%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>

Microsoft Word 2016 Standalone/Microsoft Word 2016 Standalone.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>This recipe downloads and imports the full installer pkg for Microsoft Word 2016 Standalone into Munki
    
	This is accomplished via the Office 365 recipes from rtrouton-recipes.
	
    These in turn, utilise the fwlink's found on macadmins.software
    
    These can have a volume license applied using appropriate pkg downloadable from Microsofts VLSC</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.Microsoft Word 2016 Standalone</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>Microsoft Word 2016 Standalone</string>
        <key>PRODUCTID</key>
        <string>871748</string>
        <key>DOWNLOADURL</key>
        <string>https://go.microsoft.com/fwlink/?linkid=%PRODUCTID%</string>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>MINIMUM_OS_VERSION</key>
        <string>10.10.0</string>
        <key>pkginfo</key>
        <dict>
            <key>blocking_applications</key>
            <array>
                <string>Microsoft Auto Update</string>
                <string>Microsoft Error Reporting</string>
                <string>Microsoft Word</string>
            </array>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>The Word you want. State-of-the-art editing, reviewing, and sharing tools make creating and polishing documents easy.</string>
            <key>display_name</key>
            <string>Microsoft Word</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
            <key>unattended_uninstall</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>1.0.0</string>
    <key>ParentRecipe</key>
    <string>com.github.rtrouton.pkg.microsoftword365</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>MunkiPkginfoMerger</string>
            <key>Arguments</key>
            <dict>
                <key>additional_pkginfo</key>
                <dict>
                    <key>minimum_os_version</key>
                    <string>%MINIMUM_OS_VERSION%</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%pkg_path%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>

Microsoft PowerPoint 365/Microsoft PowerPoint 365.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>This recipe downloads and imports the full installer pkg for Microsoft PowerPoint 365 into Munki
    
	This is accomplished via the Office 365 recipes from rtrouton-recipes.
	
    These in turn, utilise the fwlink's found on macadmins.software</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.Microsoft PowerPoint 365</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>Microsoft PowerPoint 365</string>
        <key>PRODUCTID</key>
        <string>525136</string>
        <key>DOWNLOADURL</key>
        <string>https://go.microsoft.com/fwlink/?linkid=%PRODUCTID%</string>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>MINIMUM_OS_VERSION</key>
        <string>10.15.0</string>
        <key>pkginfo</key>
        <dict>
            <key>blocking_applications</key>
            <array>
                <string>Microsoft Auto Update</string>
                <string>Microsoft Error Reporting</string>
                <string>Microsoft PowerPoint</string>
            </array>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>Communicate with confidence. PowerPoint for Mac makes it easy to create, collaborate and effectively present your ideas.</string>
            <key>display_name</key>
            <string>Microsoft PowerPoint</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
            <key>unattended_uninstall</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>1.0.0</string>
    <key>ParentRecipe</key>
    <string>com.github.rtrouton.pkg.microsoftpowerpoint365</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>MunkiPkginfoMerger</string>
            <key>Arguments</key>
            <dict>
                <key>additional_pkginfo</key>
                <dict>
                    <key>minimum_os_version</key>
                    <string>%MINIMUM_OS_VERSION%</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%pkg_path%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>

Microsoft PowerPoint 2019/Microsoft PowerPoint 2019.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>This recipe downloads and imports the full installer pkg for Microsoft PowerPoint 2019 into Munki
    
	This is accomplished via the Office 365 recipes from rtrouton-recipes.
	
    These in turn, utilise the fwlink's found on macadmins.software
    
    These can have a volume license applied using appropriate pkg downloadable from Microsofts VLSC</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.Microsoft PowerPoint 2019</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>Microsoft PowerPoint 2019</string>
        <key>PRODUCTID</key>
        <string>525136</string>
        <key>DOWNLOADURL</key>
        <string>https://go.microsoft.com/fwlink/?linkid=%PRODUCTID%</string>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>MINIMUM_OS_VERSION</key>
        <string>10.14.0</string>
        <key>pkginfo</key>
        <dict>
        	<key>blocking_applications</key>
            <array>
                <string>Microsoft Auto Update</string>
                <string>Microsoft Error Reporting</string>
                <string>Microsoft PowerPoint</string>
            </array>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>Communicate with confidence. PowerPoint for Mac makes it easy to create, collaborate and effectively present your ideas.</string>
            <key>display_name</key>
            <string>Microsoft PowerPoint</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
            <key>unattended_uninstall</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>1.0.0</string>
    <key>ParentRecipe</key>
    <string>com.github.rtrouton.pkg.microsoftpowerpoint365</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>MunkiPkginfoMerger</string>
            <key>Arguments</key>
            <dict>
                <key>additional_pkginfo</key>
                <dict>
                    <key>minimum_os_version</key>
                    <string>%MINIMUM_OS_VERSION%</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%pkg_path%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>

Microsoft PowerPoint 2016 Standalone/Microsoft PowerPoint 2016 Standalone.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>This recipe downloads and imports the full installer pkg for Microsoft PowerPoint 2016 Standalone into Munki
    
	This is accomplished via the Office 365 recipes from rtrouton-recipes.
	
    These in turn, utilise the fwlink's found on macadmins.software
    
    These can have a volume license applied using appropriate pkg downloadable from Microsofts VLSC</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.Microsoft PowerPoint 2016 Standalone</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>Microsoft PowerPoint 2016 Standalone</string>
        <key>PRODUCTID</key>
        <string>871751</string>
        <key>DOWNLOADURL</key>
        <string>https://go.microsoft.com/fwlink/?linkid=%PRODUCTID%</string>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>MINIMUM_OS_VERSION</key>
        <string>10.10.0</string>
        <key>pkginfo</key>
        <dict>
            <key>blocking_applications</key>
            <array>
                <string>Microsoft Auto Update</string>
                <string>Microsoft Error Reporting</string>
                <string>Microsoft PowerPoint</string>
            </array>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>Communicate with confidence. PowerPoint for Mac makes it easy to create, collaborate and effectively present your ideas.</string>
            <key>display_name</key>
            <string>Microsoft PowerPoint</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
            <key>unattended_uninstall</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>1.0.0</string>
    <key>ParentRecipe</key>
    <string>com.github.rtrouton.pkg.microsoftpowerpoint365</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>MunkiPkginfoMerger</string>
            <key>Arguments</key>
            <dict>
                <key>additional_pkginfo</key>
                <dict>
                    <key>minimum_os_version</key>
                    <string>%MINIMUM_OS_VERSION%</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%pkg_path%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>

Microsoft Outlook 365/Microsoft Outlook 365.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>This recipe downloads and imports the full installer pkg for Microsoft Outlook 365 into Munki
    
	This is accomplished via the Office 365 recipes from rtrouton-recipes.
	
    These in turn, utilise the fwlink's found on macadmins.software</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.Microsoft Outlook 365</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>Microsoft Outlook 365</string>
        <key>PRODUCTID</key>
        <string>525137</string>
        <key>DOWNLOADURL</key>
        <string>https://go.microsoft.com/fwlink/?linkid=%PRODUCTID%</string>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>MINIMUM_OS_VERSION</key>
        <string>10.15.0</string>
        <key>pkginfo</key>
        <dict>
            <key>blocking_applications</key>
            <array>
                <string>Microsoft Auto Update</string>
                <string>Microsoft Error Reporting</string>
                <string>Microsoft Outlook</string>
            </array>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>Get a clear view of your email, calendars, contacts and even the weather to connect with others more effectively. Designed for Mac, Outlook efficiently keeps track of your digital life.</string>
            <key>display_name</key>
            <string>Microsoft Outlook</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
            <key>unattended_uninstall</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>1.0.0</string>
    <key>ParentRecipe</key>
    <string>com.github.rtrouton.pkg.microsoftoutlook365</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>MunkiPkginfoMerger</string>
            <key>Arguments</key>
            <dict>
                <key>additional_pkginfo</key>
                <dict>
                    <key>minimum_os_version</key>
                    <string>%MINIMUM_OS_VERSION%</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%pkg_path%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>

Microsoft Outlook 2019/Microsoft Outlook 2019.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>This recipe downloads and imports the full installer pkg for Microsoft Outlook 2019 into Munki
    
	This is accomplished via the Office 365 recipes from rtrouton-recipes.
	
    These in turn, utilise the fwlink's found on macadmins.software
    
    These can have a volume license applied using appropriate pkg downloadable from Microsofts VLSC</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.Microsoft Outlook 2019</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>Microsoft Outlook 2019</string>
        <key>PRODUCTID</key>
        <string>525137</string>
        <key>DOWNLOADURL</key>
        <string>https://go.microsoft.com/fwlink/?linkid=%PRODUCTID%</string>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>MINIMUM_OS_VERSION</key>
        <string>10.14.0</string>
        <key>pkginfo</key>
        <dict>
            <key>blocking_applications</key>
            <array>
                <string>Microsoft Auto Update</string>
                <string>Microsoft Error Reporting</string>
                <string>Microsoft Outlook</string>
            </array>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>Get a clear view of your email, calendars, contacts and even the weather to connect with others more effectively. Designed for Mac, Outlook efficiently keeps track of your digital life.</string>
            <key>display_name</key>
            <string>Microsoft Outlook</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
            <key>unattended_uninstall</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>1.0.0</string>
    <key>ParentRecipe</key>
    <string>com.github.rtrouton.pkg.microsoftoutlook365</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>MunkiPkginfoMerger</string>
            <key>Arguments</key>
            <dict>
                <key>additional_pkginfo</key>
                <dict>
                    <key>minimum_os_version</key>
                    <string>%MINIMUM_OS_VERSION%</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%pkg_path%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>

Microsoft Outlook 2016 Standalone/Microsoft Outlook 2016 Standalone.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>This recipe downloads and imports the full installer pkg for Microsoft Outlook 2016 Standalone into Munki
    
	This is accomplished via the Office 365 recipes from rtrouton-recipes.
	
    These in turn, utilise the fwlink's found on macadmins.software
    
    These can have a volume license applied using appropriate pkg downloadable from Microsofts VLSC</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.Microsoft Outlook 2016 Standalone</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>Microsoft Outlook 2016 Standalone</string>
        <key>PRODUCTID</key>
        <string>871753</string>
        <key>DOWNLOADURL</key>
        <string>https://go.microsoft.com/fwlink/?linkid=%PRODUCTID%</string>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>MINIMUM_OS_VERSION</key>
        <string>10.10.0</string>
        <key>pkginfo</key>
        <dict>
            <key>blocking_applications</key>
            <array>
                <string>Microsoft Auto Update</string>
                <string>Microsoft Error Reporting</string>
                <string>Microsoft Outlook</string>
            </array>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>Get a clear view of your email, calendars, contacts and even the weather to connect with others more effectively. Designed for Mac, Outlook efficiently keeps track of your digital life.</string>
            <key>display_name</key>
            <string>Microsoft Outlook</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
            <key>unattended_uninstall</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>1.0.0</string>
    <key>ParentRecipe</key>
    <string>com.github.rtrouton.pkg.microsoftoutlook365</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>MunkiPkginfoMerger</string>
            <key>Arguments</key>
            <dict>
                <key>additional_pkginfo</key>
                <dict>
                    <key>minimum_os_version</key>
                    <string>%MINIMUM_OS_VERSION%</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%pkg_path%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>

Microsoft OneNote 365/Microsoft OneNote 365.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>This recipe downloads and imports the full installer pkg for Microsoft OneNote 365 into Munki
    
	This is accomplished via the Office 365 recipes from rtrouton-recipes.
	
    These in turn, utilise the fwlink's found on macadmins.software</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.Microsoft OneNote 365</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>Microsoft OneNote 365</string>
        <key>PRODUCTID</key>
        <string>820886</string>
        <key>DOWNLOADURL</key>
        <string>https://go.microsoft.com/fwlink/?linkid=%PRODUCTID%</string>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>MINIMUM_OS_VERSION</key>
        <string>10.15.0</string>
        <key>pkginfo</key>
        <dict>
            <key>blocking_applications</key>
            <array>
                <string>Microsoft Auto Update</string>
                <string>Microsoft Error Reporting</string>
                <string>Microsoft OneNote</string>
            </array>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>Your world, organized. Get organized in notebooks you can divide into sections and pages. With easy navigation and search, you’ll always find your notes right where you left them.</string>
            <key>display_name</key>
            <string>Microsoft OneNote</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
            <key>unattended_uninstall</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>1.0.0</string>
    <key>ParentRecipe</key>
    <string>com.github.rtrouton.pkg.microsoftonenote365</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>MunkiPkginfoMerger</string>
            <key>Arguments</key>
            <dict>
                <key>additional_pkginfo</key>
                <dict>
                    <key>minimum_os_version</key>
                    <string>%MINIMUM_OS_VERSION%</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%pkg_path%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>

Microsoft Excel 365/Microsoft Excel 365.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>This recipe downloads and imports the full installer pkg for Microsoft Excel 365 into Munki
    
	This is accomplished via the Office 365 recipes from rtrouton-recipes.
	
    These in turn, utilise the fwlink's found on macadmins.software</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.Microsoft Excel 365</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>Microsoft Excel 365</string>
        <key>PRODUCTID</key>
        <string>525135</string>
        <key>DOWNLOADURL</key>
        <string>https://go.microsoft.com/fwlink/?linkid=%PRODUCTID%</string>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>MINIMUM_OS_VERSION</key>
        <string>10.15.0</string>
        <key>pkginfo</key>
        <dict>
            <key>blocking_applications</key>
            <array>
                <string>Microsoft Auto Update</string>
                <string>Microsoft Error Reporting</string>
                <string>Microsoft Excel</string>
            </array>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>See your data in new, intuitive ways. Powerful charts, graphs, and keyboard shortcuts turn columns of numbers into valuable information, so you can work easier.</string>
            <key>display_name</key>
            <string>Microsoft Excel</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
            <key>unattended_uninstall</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>1.0.0</string>
    <key>ParentRecipe</key>
    <string>com.github.rtrouton.pkg.microsoftexcel365</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>MunkiPkginfoMerger</string>
            <key>Arguments</key>
            <dict>
                <key>additional_pkginfo</key>
                <dict>
                    <key>minimum_os_version</key>
                    <string>%MINIMUM_OS_VERSION%</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%pkg_path%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>

Microsoft Excel 2019/Microsoft Excel 2019.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>This recipe downloads and imports the full installer pkg for Microsoft Excel 2019 into Munki
    
	This is accomplished via the Office 365 recipes from rtrouton-recipes.
	
    These in turn, utilise the fwlink's found on macadmins.software
    
    These can have a volume license applied using appropriate pkg downloadable from Microsofts VLSC</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.Microsoft Excel 2019</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>Microsoft Excel 2019</string>
        <key>PRODUCTID</key>
        <string>525135</string>
        <key>DOWNLOADURL</key>
        <string>https://go.microsoft.com/fwlink/?linkid=%PRODUCTID%</string>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>MINIMUM_OS_VERSION</key>
        <string>10.14.0</string>
        <key>pkginfo</key>
        <dict>
            <key>blocking_applications</key>
            <array>
                <string>Microsoft Auto Update</string>
                <string>Microsoft Error Reporting</string>
                <string>Microsoft Excel</string>
            </array>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>See your data in new, intuitive ways. Powerful charts, graphs, and keyboard shortcuts turn columns of numbers into valuable information, so you can work easier.</string>
            <key>display_name</key>
            <string>Microsoft Excel</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
            <key>unattended_uninstall</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>1.0.0</string>
    <key>ParentRecipe</key>
    <string>com.github.rtrouton.pkg.microsoftexcel365</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>MunkiPkginfoMerger</string>
            <key>Arguments</key>
            <dict>
                <key>additional_pkginfo</key>
                <dict>
                    <key>minimum_os_version</key>
                    <string>%MINIMUM_OS_VERSION%</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%pkg_path%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>

Microsoft Excel 2016 Standalone/Microsoft Excel 2016 Standalone.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>This recipe downloads and imports the full installer pkg for Microsoft Excel 2016 Standalone into Munki
    
	This is accomplished via the Office 365 recipes from rtrouton-recipes.
	
    These in turn, utilise the fwlink's found on macadmins.software
    
    These can have a volume license applied using appropriate pkg downloadable from Microsofts VLSC</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.Microsoft Excel 2016 Standalone</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>Microsoft Excel 2016 Standalone</string>
        <key>PRODUCTID</key>
        <string>871750</string>
        <key>DOWNLOADURL</key>
        <string>https://go.microsoft.com/fwlink/?linkid=%PRODUCTID%</string>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>MINIMUM_OS_VERSION</key>
        <string>10.10.0</string>
        <key>pkginfo</key>
        <dict>
            <key>blocking_applications</key>
            <array>
                <string>Microsoft Auto Update</string>
                <string>Microsoft Error Reporting</string>
                <string>Microsoft Excel</string>
            </array>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>Communicate with confidence. Excel for Mac makes it easy to create, collaborate and effectively present your ideas.</string>
            <key>display_name</key>
            <string>Microsoft Excel</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
            <key>unattended_uninstall</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>1.0.0</string>
    <key>ParentRecipe</key>
    <string>com.github.rtrouton.pkg.microsoftexcel365</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>MunkiPkginfoMerger</string>
            <key>Arguments</key>
            <dict>
                <key>additional_pkginfo</key>
                <dict>
                    <key>minimum_os_version</key>
                    <string>%MINIMUM_OS_VERSION%</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%pkg_path%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>

Microsoft Defender/Microsoft Defender.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of Microsoft Defender and imports it into Munki.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.MicrosoftDefender</string>
    <key>Input</key>
    <dict>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>NAME</key>
        <string>MicrosoftDefender</string>
        <key>pkginfo</key>
        <dict>
            <key>blocking_applications</key>
            <array>
                <string>Microsoft Auto Update</string>
                <string>Microsoft Defender</string>
            </array>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>Microsoft Defender Advanced Threat Protection is a platform designed to help enterprise networks prevent, detect, investigate, and respond to advanced threats.</string>
            <key>developer</key>
            <string>Microsoft</string>
            <key>display_name</key>
            <string>Microsoft Defender</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
            <key>unattended_uninstall</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>1.0.0</string>
    <key>ParentRecipe</key>
    <string>com.github.rtrouton.pkg.microsoftdefender</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>FlatPkgUnpacker</string>
            <key>Arguments</key>
            <dict>
                <key>flat_pkg_path</key>
                <string>%pkg_path%</string>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/unpack</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PkgRootCreator</string>
            <key>Arguments</key>
            <dict>
                <key>pkgroot</key>
                <string>%RECIPE_CACHE_DIR%/pkgroot</string>
                <key>pkgdirs</key>
                <dict>
                    <key>Applications</key>
                    <string>0755</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PkgPayloadUnpacker</string>
            <key>Arguments</key>
            <dict>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/pkgroot/Applications</string>
                <key>pkg_payload_path</key>
                <string>%RECIPE_CACHE_DIR%/unpack/wdav-pkg.pkg/Payload</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiInstallsItemsCreator</string>
            <key>Arguments</key>
            <dict>
                <key>faux_root</key>
                <string>%RECIPE_CACHE_DIR%/pkgroot</string>
                <key>installs_item_paths</key>
                <array>
                    <string>/Applications/Microsoft Defender.app</string>
                </array>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiPkginfoMerger</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%pkg_path%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PathDeleter</string>
            <key>Arguments</key>
            <dict>
                <key>path_list</key>
                <array>
                    <string>%RECIPE_CACHE_DIR%/Microsoft_Defender_%version%.pkg</string>
                    <string>%RECIPE_CACHE_DIR%/pkgroot</string>
                    <string>%RECIPE_CACHE_DIR%/unpack</string>
                </array>
            </dict>
        </dict>
    </array>
</dict>
</plist>

Microsoft Defender ATP/Microsoft Defender ATP.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of Microsoft Defender ATP and imports it into Munki.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.MicrosoftDefenderATP</string>
    <key>Input</key>
    <dict>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>NAME</key>
        <string>Microsoft Defender ATP</string>
        <key>pkginfo</key>
        <dict>
            <key>blocking_applications</key>
            <array>
                <string>Microsoft Auto Update</string>
                <string>Microsoft Defender ATP</string>
            </array>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>Microsoft Defender Advanced Threat Protection is a platform designed to help enterprise networks prevent, detect, investigate, and respond to advanced threats.</string>
            <key>developer</key>
            <string>Microsoft</string>
            <key>display_name</key>
            <string>Microsoft Defender ATP</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
            <key>unattended_uninstall</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>1.0.0</string>
    <key>ParentRecipe</key>
    <string>com.github.rtrouton.pkg.microsoftdefenderatp</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>FlatPkgUnpacker</string>
            <key>Arguments</key>
            <dict>
                <key>flat_pkg_path</key>
                <string>%pkg_path%</string>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/unpack</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PkgRootCreator</string>
            <key>Arguments</key>
            <dict>
                <key>pkgroot</key>
                <string>%RECIPE_CACHE_DIR%/pkgroot</string>
                <key>pkgdirs</key>
                <dict>
                    <key>Applications</key>
                    <string>0755</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PkgPayloadUnpacker</string>
            <key>Arguments</key>
            <dict>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/pkgroot/Applications</string>
                <key>pkg_payload_path</key>
                <string>%RECIPE_CACHE_DIR%/unpack/wdav-pkg.pkg/Payload</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiInstallsItemsCreator</string>
            <key>Arguments</key>
            <dict>
                <key>faux_root</key>
                <string>%RECIPE_CACHE_DIR%/pkgroot</string>
                <key>installs_item_paths</key>
                <array>
                    <string>/Applications/Microsoft Defender ATP.app</string>
                </array>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiPkginfoMerger</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%pkg_path%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PathDeleter</string>
            <key>Arguments</key>
            <dict>
                <key>path_list</key>
                <array>
                    <string>%RECIPE_CACHE_DIR%/Microsoft_Defender_ATP_%version%.pkg</string>
                    <string>%RECIPE_CACHE_DIR%/pkgroot</string>
                    <string>%RECIPE_CACHE_DIR%/unpack</string>
                </array>
            </dict>
        </dict>
    </array>
</dict>
</plist>
Microsoft Azure Storage Explorer/Microsoft Azure Storage Explorer.pkg.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
    <dict>
        <key>Description</key>
        <string>Downloads the latest version of Microsoft Azure Storage Explorer and creates a package.</string>
        <key>Identifier</key>
        <string>com.github.dataJAR-recipes.pkg.MicrosoftAzureStorageExplorer</string>
        <key>MinimumVersion</key>
        <string>1.0.0</string>
        <key>Input</key>
        <dict>
            <key>NAME</key>
            <string>Microsoft Azure Storage Explorer</string>
        </dict>
        <key>ParentRecipe</key>
        <string>com.github.dataJAR-recipes.download.MicrosoftAzureStorageExplorer</string>
        <key>Process</key>
        <array>
            <dict>
                <key>Processor</key>
                <string>AppPkgCreator</string>
                <key>Arguments</key>
                <dict>
                    <key>app_path</key>
                    <string>%RECIPE_CACHE_DIR%/Applications/%NAME%.app</string>
                </dict>
            </dict>
            <dict>
                <key>Processor</key>
                <string>PathDeleter</string>
                <key>Arguments</key>
                <dict>
                    <key>path_list</key>
                    <array>
                        <string>%RECIPE_CACHE_DIR%/Applications</string>
                        <string>%RECIPE_CACHE_DIR%/Payload</string>
                    </array>
                </dict>
            </dict>
        </array>
    </dict>
</plist>

Microsoft Azure Storage Explorer/Microsoft Azure Storage Explorer.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of Microsoft Azure Storage Explorer and imports into Munki.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.MicrosoftAzureStorageExplorer</string>
    <key>Input</key>
    <dict>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>NAME</key>
        <string>Microsoft Azure Storage Explorer</string>
        <key>pkginfo</key>
        <dict>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>Upload, download, and manage Azure blobs, files, queues, and tables, as well as Azure Cosmos DB and Azure Data Lake Storage entities. Easily access virtual machine disks, and work with either Azure Resource Manager or classic storage accounts. Manage and configure cross-origin resource sharing rules.</string>
            <key>display_name</key>
            <string>MicrosoftAzureStorageExplorer</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
            <key>unattended_uninstall</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.MicrosoftAzureStorageExplorer</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>Versioner</string>
            <key>Arguments</key>
            <dict>
                 <key>input_plist_path</key>
                 <string>%RECIPE_CACHE_DIR%/Applications/Microsoft Azure Storage Explorer.app/Contents/Info.plist</string>
                 <key>plist_version_key</key>
                 <string>CFBundleVersion</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiPkginfoMerger</string>
            <key>Arguments</key>
            <dict>
                 <key>additional_pkginfo</key>
                 <dict>
                      <key>version</key>
                      <string>%version%</string>
                 </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiInstallsItemsCreator</string>
            <key>Arguments</key>
            <dict>
                 <key>faux_root</key>
                 <string>%RECIPE_CACHE_DIR%/</string>
                 <key>installs_item_paths</key>
                 <array>
                      <string>/Applications/Microsoft Azure Storage Explorer.app</string>
                 </array>
                <key>version_comparison_key</key>
                <string>CFBundleVersion</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiPkginfoMerger</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>DmgCreator</string>
            <key>Arguments</key>
            <dict>
                <key>dmg_path</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%.dmg</string>
                <key>dmg_root</key>
                <string>%RECIPE_CACHE_DIR%/Applications</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%dmg_path%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PathDeleter</string>
            <key>Arguments</key>
            <dict>
                <key>path_list</key>
                <array>
                    <string>%RECIPE_CACHE_DIR%/Applications</string>
                </array>
            </dict>
        </dict>
    </array>
</dict>
</plist>

Microsoft Azure Storage Explorer/Microsoft Azure Storage Explorer.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
    <dict>
        <key>Description</key>
        <string>Downloads the latest version of Microsoft Azure Storage Explorer.</string>
        <key>Identifier</key>
        <string>com.github.dataJAR-recipes.download.MicrosoftAzureStorageExplorer</string>
        <key>MinimumVersion</key>
        <string>1.0.0</string>
        <key>Input</key>
        <dict>
            <key>NAME</key>
            <string>Microsoft Azure Storage Explorer</string>
            <key>PRODUCTID</key>
            <string>708342</string>
            <key>DOWNLOADURL</key>
            <string>https://go.microsoft.com/fwlink/?linkid=%PRODUCTID%</string>
        </dict>
        <key>Process</key>
        <array>
            <dict>
                <key>Processor</key>
                <string>URLDownloader</string>
                <key>Arguments</key>
                <dict>
                    <key>url</key>
                    <string>%DOWNLOADURL%</string>
                    <key>filename</key>
                    <string>%NAME%.zip</string>
                </dict>
            </dict>
            <dict>
                <key>Processor</key>
                <string>EndOfCheckPhase</string>
            </dict>
            <dict>
                <key>Processor</key>
                <string>Unarchiver</string>
                <key>Arguments</key>
                <dict>
                    <key>archive_path</key>
                    <string>%pathname%</string>
                    <key>destination_path</key>
                    <string>%RECIPE_CACHE_DIR%/Applications</string>
                    <key>purge_destination</key>
                    <true />
                    <key>archive_format</key>
                    <string>zip</string>
                </dict>
            </dict>
            <dict>
                <key>Processor</key>
                <string>CodeSignatureVerifier</string>
                <key>Arguments</key>
                <dict>
                    <key>input_path</key>
                    <string>%RECIPE_CACHE_DIR%/Applications/Microsoft Azure Storage Explorer.app</string>
                    <key>requirement</key>
                    <string>identifier "com.microsoft.StorageExplorer" and anchor apple generic and 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] = UBF8T346G9</string>
                </dict>
            </dict>
        </array>
    </dict>
</plist>
Microsoft Advertising Editor/MicrosoftAdvertisingEditor.pkg.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads latest Microsoft Advertising Editor disk image..</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.pkg.MicrosoftAdvertisingEditor</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>MicrosoftAdvertisingEditor</string>
        <key>PKGID</key>
        <string>com.microsoft.microsoftadvertisingeditor</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.2.0</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.MicrosoftAdvertisingEditor</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>PkgRootCreator</string>
            <key>Arguments</key>
            <dict>
                <key>pkgdirs</key>
                <dict>
                    <key>Applications</key>
                    <string>0775</string>
                </dict>
                <key>pkgroot</key>
                <string>%RECIPE_CACHE_DIR%/pkg_root</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>Copier</string>
            <key>Arguments</key>
            <dict>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/pkg_root/Applications/Microsoft Advertising Editor.app</string>
                <key>source_path</key>
                <string>%pathname%/Microsoft Advertising Editor.app</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>AppDmgVersioner</string>
            <key>Arguments</key>
            <dict>
                <key>dmg_path</key>
                <string>%pathname%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PkgCreator</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_request</key>
                <dict>
                    <key>chown</key>
                    <array>
                        <dict>
                            <key>group</key>
                            <string>admin</string>
                            <key>path</key>
                            <string>Applications</string>
                            <key>user</key>
                            <string>root</string>
                        </dict>
                    </array>
                    <key>id</key>
                    <string>%PKGID%</string>
                    <key>pkgdir</key>
                    <string>%RECIPE_CACHE_DIR%</string>
                    <key>pkgname</key>
                    <string>%NAME%-%version%</string>
                    <key>pkgroot</key>
                    <string>%RECIPE_CACHE_DIR%/pkg_root</string>
                    <key>version</key>
                    <string>%version%</string>
                </dict>
            </dict>
        </dict>
    </array>
</dict>
</plist>
Microsoft Advertising Editor/MicrosoftAdvertisingEditor.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads latest Google Ads Editor disk image, builds an installation package, and imports it into Munki.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.MicrosoftAdvertisingEditor</string>
    <key>Input</key>
    <dict>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/microsoft</string>
        <key>NAME</key>
        <string>MicrosoftAdvertisingEditor</string>
        <key>pkginfo</key>
        <dict>
            <key>blocking_applications</key>
            <array>
                <string>Microsoft Advertising Editor</string>
            </array>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>category</key>
            <string>Productivity</string>
            <key>description</key>
            <string>Save time and improve the performance of your search marketing campaigns. When you download Editor for Windows or Mac, you'll get an intuitive and simple desktop application that streamlines your PPC campaign management - online or offline.</string>
            <key>developer</key>
            <string>Microsoft</string>
            <key>display_name</key>
            <string>Microsoft Advertising Editor</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
            <key>unattended_uninstall</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.2.0</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.MicrosoftAdvertisingEditor</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%pathname%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
                <key>version_comparison_key</key>
                <string>CFBundleVersion</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>
Microsoft Advertising Editor/MicrosoftAdvertisingEditor.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads latest Microsoft Advertising Editor disk image.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.MicrosoftAdvertisingEditor</string>
    <key>Input</key>
    <dict>
        <key>DOWNLOAD_URL</key>
        <string>https://msbingadseditor.blob.core.windows.net/production-mac/c/MicrosoftAdvertisingEditor.dmg</string>
        <key>NAME</key>
        <string>MicrosoftAdvertisingEditor</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.2.0</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>URLDownloader</string>
            <key>Arguments</key>
            <dict>
                <key>filename</key>
                <string>%NAME%.dmg</string>
                <key>url</key>
                <string>%DOWNLOAD_URL%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
            <key>Arguments</key>
            <dict>
                <key>input_path</key>
                <string>%pathname%/Microsoft Advertising Editor.app</string>
                <key>requirement</key>
                <string>identifier "Microsoft.AdvertisingDesktop.BingAdsEditor" and anchor apple generic and 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] = UBF8T346G9</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>

Meshmixer/Meshmixer.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Imports the latest version of the Meshmixer software into Munki.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.Meshmixer</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>Meshmixer</string>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>pkginfo</key>
        <dict>
             <key>catalogs</key>
             <array>
                    <string>testing</string>
             </array>
             <key>description</key>
             <string>Meshmixer is state-of-the-art software for working with triangle meshes.</string>
             <key>developer</key>
              <string>Autodesk Inc</string>
             <key>display_name</key>
             <string>Meshmixer</string>
             <key>name</key>
             <string>%NAME%</string>
             <key>unattended_install</key>
             <true/>
             <key>unattended_uninstall</key>
             <true/>
        </dict>
    </dict>
    <key>ParentRecipe</key>
    <string>com.github.hansen-m.download.Meshmixer</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>FlatPkgUnpacker</string>
            <key>Arguments</key>
            <dict>
                 <key>destination_path</key>
                 <string>%RECIPE_CACHE_DIR%/unpack</string>
                 <key>flat_pkg_path</key>
                 <string>%pathname%</string>
                 <key>purge_destination</key>
                 <true/>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PkgPayloadUnpacker</string>
            <key>Arguments</key>
            <dict>
                 <key>destination_path</key>
                 <string>%RECIPE_CACHE_DIR%/Applications/</string>
                 <key>pkg_payload_path</key>
                 <string>%RECIPE_CACHE_DIR%/unpack/com.meshmixer.meshmixer09.pkg/Payload</string>
                 <key>purge_destination</key>
                 <true/>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>Versioner</string>
            <key>Arguments</key>
            <dict>
                 <key>input_plist_path</key>
                 <string>%RECIPE_CACHE_DIR%/Applications/Meshmixer.app/Contents/Info.plist</string>
                 <key>plist_version_key</key>
                 <string>CFBundleShortVersionString</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiPkginfoMerger</string>
            <key>Arguments</key>
            <dict>
                 <key>additional_pkginfo</key>
                 <dict>
                      <key>version</key>
                      <string>%version%</string>
                 </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiInstallsItemsCreator</string>
            <key>Arguments</key>
            <dict>
                 <key>faux_root</key>
                 <string>%RECIPE_CACHE_DIR%/</string>
                 <key>installs_item_paths</key>
                 <array>
                      <string>/Applications/Meshmixer.app</string>
                 </array>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiPkginfoMerger</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                 <key>pkg_path</key>
                 <string>%pathname%</string>
                 <key>repo_subdirectory</key>
                 <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PathDeleter</string>
            <key>Arguments</key>
            <dict>
                <key>path_list</key>
                <array>
                    <string>%RECIPE_CACHE_DIR%/Applications</string>
                    <string>%RECIPE_CACHE_DIR%/unpack</string>
                </array>
            </dict>
        </dict>
    </array>
</dict>
</plist>
MediaMaster Pro/MediaMaster Pro.pkg.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of the MediaMaster Pro and extracts the pkg and version.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.pkg.MediaMaster Pro</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>MediaMasterPro</string>
    </dict>
	<key>MinimumVersion</key>
	<string>0.6.1</string>
	<key>ParentRecipe</key>
	<string>com.github.dataJAR-recipes.download.MediaMaster Pro</string>
    <key>Process</key>
    <array>
        <dict>
			<key>Arguments</key>
			<dict>
				<key>destination_path</key>
				<string>%RECIPE_CACHE_DIR%/installer_unpack/</string>
				<key>flat_pkg_path</key>
				<string>%pathname%/*.pkg</string>
				<key>purge_destination</key>
				<string>true</string>
			</dict>
			<key>Processor</key>
			<string>FlatPkgUnpacker</string>
		</dict>
		<dict>
			<key>Arguments</key>
			<dict>
				<key>destination_path</key>
				<string>%RECIPE_CACHE_DIR%/installer_payload/</string>
				<key>pkg_payload_path</key>
				<string>%RECIPE_CACHE_DIR%/installer_unpack/application.pkg/Payload</string>
				<key>purge_destination</key>
				<string>true</string>
			</dict>
			<key>Processor</key>
			<string>PkgPayloadUnpacker</string>
		</dict>
		<dict>
			<key>Arguments</key>
			<dict>
				<key>input_plist_path</key>
				<string>%RECIPE_CACHE_DIR%/installer_payload/MediaMaster.app/Contents/Info.plist</string>
				<key>plist_version_key</key>
				<string>CFBundleShortVersionString</string>
			</dict>
			<key>Processor</key>
			<string>Versioner</string>
		</dict>       
        <dict>
            <key>Arguments</key>
            <dict>
                <key>source_pkg</key>
                <string>%pathname%/*.pkg</string>
            	<key>pkg_path</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%-%version%.pkg</string>
            </dict>
            <key>Processor</key>
            <string>PkgCopier</string>
        </dict>
        <dict>
            <key>Arguments</key>
            <dict>
                <key>path_list</key>
                <array>
                <string>%RECIPE_CACHE_DIR%/installer_payload/</string>
                <string>%RECIPE_CACHE_DIR%/installer_unpack/</string>                              
                </array>
            </dict>
            <key>Processor</key>
            <string>PathDeleter</string>
        </dict>
    </array>
</dict>
</plist>
MediaMaster Pro/MediaMaster Pro.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of MediaMaster Pro and imports it into Munki.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.MediaMaster Pro</string>
    <key>Input</key>
    <dict>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>NAME</key>
        <string>MediaMasterPro</string>
        <key>pkginfo</key>
        <dict>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>Market-leading solution for real-time media playback and video mapping turns that any powerful computer into a full-fledged professional media server capable of running video shows in sync on multiple servers, featuring up to 36 layers. All controlled from any lighting desk.</string>
            <key>developer</key>
            <string>ArKaos Pro</string>
            <key>display_name</key>
            <string>MediaMaster Pro</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
            <key>unattended_uninstall</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>1.0.0</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.MediaMaster Pro</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>FlatPkgUnpacker</string>
            <key>Arguments</key>
            <dict>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/unpack/</string>
                <key>flat_pkg_path</key>
                <string>%pathname%/ArKaos_MediaMaster*.pkg</string>
                <key>purge_destination</key>
                <true/>
            </dict>
        </dict>

        <dict>
            <key>Processor</key>
            <string>PkgPayloadUnpacker</string>
            <key>Arguments</key>
            <dict>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/pkgroot/Applications/</string>
                <key>pkg_payload_path</key>
                <string>%RECIPE_CACHE_DIR%/unpack/application.pkg/Payload</string>
                <key>purge_destination</key>
                <true/>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>FileFinder</string>
            <key>Arguments</key>
            <dict>
                <key>pattern</key>
                <string>%RECIPE_CACHE_DIR%/pkgroot/Applications/MediaMaster.app</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PlistReader</string>
            <key>Arguments</key>
            <dict>
                <key>info_path</key>
                <string>%found_filename%/Contents/Info.plist</string>
                <key>plist_keys</key>
                <dict>
                    <key>CFBundleShortVersionString</key>
                    <string>version</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>Copier</string>
            <key>Arguments</key>
            <dict>
                <key>source_path</key>
                <string>%RECIPE_CACHE_DIR%/pkgroot/Applications/</string>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/pkgroot/Applications/ArKaos MediaMaster %version%/</string>
                <key>overwrite</key>
                <true/>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiPkginfoMerger</string>
            <key>Arguments</key>
            <dict>
                <key>additional_pkginfo</key>
                <dict>
                    <key>version</key>
                    <string>%version%</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiInstallsItemsCreator</string>
            <key>Arguments</key>
            <dict>
                <key>faux_root</key>
                <string>%RECIPE_CACHE_DIR%/pkgroot</string>
                <key>installs_item_paths</key>
                <array>
                    <string>/Applications/ArKaos MediaMaster %version%/MediaMaster.app</string>
                </array>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiPkginfoMerger</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PkgCopier</string>
            <key>Arguments</key>
            <dict>
                <key>source_pkg</key>
                <string>%pathname%/*.pkg</string>
                <key>pkg_path</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%-%version%.pkg</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%pathname%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PathDeleter</string>
            <key>Arguments</key>
            <dict>
                <key>path_list</key>
                <array>
                <string>%RECIPE_CACHE_DIR%/pkgroot/</string>
                <string>%RECIPE_CACHE_DIR%/unpack/</string>                              
                </array>
            </dict>
        </dict>
    </array>
</dict>
</plist>

MediaMaster Pro/MediaMaster Pro.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads latest version of MediaMaster Pro.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.MediaMaster Pro</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>MediaMasterPro</string>
        <key>DOWNLOAD_URL</key>
        <string>https://pro.arkaos.com/downloads/mediamaster_mac.php</string>        
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>DeprecationWarning</string>
            <key>Arguments</key>
            <dict>
                <key>warning_message</key>
                <string>With the release of MediaMaster Pro, these recipes has been deprecated. MediaMaster Pro 5 recipes can still be found at: https://github.com/autopkg/dataJAR-recipes/tree/master/MediaMaster%20Pro%205, and MediaMaster Pro 6 recipes found at: https://github.com/autopkg/dataJAR-recipes/tree/master/MediaMaster%20Pro%206.</string>
             </dict>
        </dict>
        <dict>   
            <key>Processor</key>   
            <string>StopProcessingIf</string>   
            <key>Arguments</key>   
            <dict>   
                <key>predicate</key>   
                <string>TRUEPREDICATE</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>URLDownloader</string>
            <key>Arguments</key>
            <dict>
                <key>filename</key>
                <string>%NAME%.dmg</string>
                <key>url</key>
                <string>%DOWNLOAD_URL%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
            <key>Arguments</key>
            <dict>
                <key>input_path</key>
                <string>%pathname%/ArKaos_MediaMaster*.pkg</string>
                <key>expected_authority_names</key>
                <array>
                    <string>Developer ID Installer: ArKaos SA (SKE5HH5VKW)</string>
                    <string>Developer ID Certification Authority</string>
                    <string>Apple Root CA</string>
                </array>            
            </dict>
        </dict>
    </array>
</dict>
</plist>
MediaMaster Pro 6/MediaMaster Pro 6.pkg.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of MediaMaster Pro 6 and creates a PKG.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.pkg.MediaMaster Pro 6</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>MediaMasterPro6</string>
    </dict>
    <key>MinimumVersion</key>
    <string>1.0.0</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.MediaMaster Pro 6</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>FileFinder</string>
            <key>Arguments</key>
            <dict>
                <key>pattern</key>
                <string>%pathname%/ArKaos_MediaMaster_6.*/</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PkgRootCreator</string>
            <key>Arguments</key>
            <dict>
                <key>pkgroot</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%</string>
                <key>pkgdirs</key>
                <dict>
                    <key>Applications</key>
                    <string>0775</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>Copier</string>
            <key>Arguments</key>
            <dict>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%/Applications/%dmg_found_filename%</string>
                <key>overwrite</key>
                <true/>
                <key>source_path</key>
                <string>%pathname%/ArKaos_MediaMaster_6.*</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PlistReader</string>
            <key>Arguments</key>
            <dict>
                <key>info_path</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%/Applications/%dmg_found_filename%MediaMaster.app/Contents/Info.plist</string>
                <key>plist_keys</key>
                <dict>
                    <key>CFBundleShortVersionString</key>
                    <string>version</string>
                    <key>CFBundleIdentifier</key>
                    <string>bundleid</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>com.github.grahampugh.recipes.commonprocessors/ChangeModeOwner</string>
            <key>Arguments</key>
            <dict>
                <key>mode</key>
                <string>755</string>
                <key>resource_path</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%/Applications/</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PkgCreator</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_request</key>
                <dict>
                    <key>chown</key>
                    <array>
                        <dict>
                            <key>path</key>
                            <string>Applications</string>
                            <key>user</key>
                            <string>root</string>
                            <key>group</key>
                            <string>admin</string>
                        </dict>
                    </array>
                    <key>id</key>
                    <string>%bundleid%</string>
                    <key>options</key>
                    <string>purge_ds_store</string>
                    <key>pkgdir</key>
                    <string>%RECIPE_CACHE_DIR%</string>
                    <key>pkgname</key>
                    <string>%NAME%-%version%</string>
                    <key>pkgroot</key>
                    <string>%pkgroot%</string>
                    <key>version</key>
                    <string>%version%</string>
                </dict>
            </dict>
        </dict>
    </array>
</dict>
</plist>
MediaMaster Pro 6/MediaMaster Pro 6.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of MediaMaster Pro 6 and imports it into Munki.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.MediaMaster Pro 6</string>
    <key>Input</key>
    <dict>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>NAME</key>
        <string>MediaMasterPro6</string>
        <key>pkginfo</key>
        <dict>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>Combining maximum functionality with simplicity of operation, ArKaos MediaMaster Pro 6.0 retains the user-friendly and broad functionality that has become the trademark of the ArKaos product range.</string>
            <key>developer</key>
            <string>ArKaos Pro</string>
            <key>display_name</key>
            <string>MediaMaster Pro 6</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
            <key>unattended_uninstall</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>1.0.0</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.pkg.MediaMaster Pro 6</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>FileFinder</string>
            <key>Arguments</key>
            <dict>
                <key>pattern</key>
                <string>%pathname%/ArKaos_MediaMaster_6.*/</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>Copier</string>
            <key>Arguments</key>
            <dict>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%/Applications/%dmg_found_filename%</string>
                <key>overwrite</key>
                <true/>
                <key>source_path</key>
                <string>%pathname%/ArKaos_MediaMaster_6.*</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiInstallsItemsCreator</string>
            <key>Arguments</key>
            <dict>
                <key>faux_root</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%</string>
                <key>version_comparison_key</key>
                <string>CFBundleShortVersionString</string>
                <key>installs_item_paths</key>
                <array>
                    <string>/Applications/%dmg_found_filename%MediaMaster.app</string>
                </array>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiPkginfoMerger</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PlistReader</string>
            <key>Arguments</key>
            <dict>
                <key>info_path</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%/Applications/%dmg_found_filename%MediaMaster.app/Contents/Info.plist</string>
                <key>plist_keys</key>
                <dict>
                    <key>CFBundleShortVersionString</key>
                    <string>version</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiPkginfoMerger</string>
            <key>Arguments</key>
            <dict>
                <key>additional_pkginfo</key>
                <dict>
                    <key>version</key>
                    <string>%version%</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%pkg_path%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PathDeleter</string>
            <key>Arguments</key>
            <dict>
                <key>path_list</key>
                <array>
                    <string>%RECIPE_CACHE_DIR%/%NAME%</string>
                </array>
            </dict>
        </dict>
    </array>
</dict>
</plist>
MediaMaster Pro 6/MediaMaster Pro 6.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>Description</key>
	<string>Downloads latest version of MediaMaster Pro 6.</string>
	<key>Identifier</key>
	<string>com.github.dataJAR-recipes.download.MediaMaster Pro 6</string>
	<key>Input</key>
	<dict>
		<key>NAME</key>
		<string>MediaMasterPro6</string>
	</dict>
	<key>MinimumVersion</key>
	<string>0.6.1</string>
	<key>Process</key>
	<array>
        <dict>
            <key>Processor</key>
            <string>DeprecationWarning</string>
            <key>Arguments</key>
            <dict>
                <key>warning_message</key>
                <string>Download is now behind a form, as such this recipe no longer works.</string>
             </dict>
        </dict>
        <dict>   
            <key>Processor</key>   
            <string>StopProcessingIf</string>   
            <key>Arguments</key>   
            <dict>   
                <key>predicate</key>   
                <string>TRUEPREDICATE</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>URLTextSearcher</string>
            <key>Arguments</key>
            <dict>
                <key>re_pattern</key>
                <string>/downloads/mediamaster_mac.*?\.php</string>
                <key>result_output_var_name</key>
                <string>match</string>
                <key>url</key>
                <string>https://pro.arkaos.com/software/mediamaster-pro/download</string>
            </dict>
        </dict>
		<dict>
			<key>Processor</key>
			<string>URLDownloader</string>
			<key>Arguments</key>
			<dict>
				<key>CHECK_FILESIZE_ONLY</key>
				<true/>
				<key>filename</key>
				<string>%NAME%.dmg</string>
				<key>url</key>
				<string>https://pro.arkaos.com%match%</string>
			</dict>
		</dict>
		<dict>
			<key>Processor</key>
			<string>EndOfCheckPhase</string>
		</dict>
		<dict>
			<key>Processor</key>
			<string>CodeSignatureVerifier</string>
			<key>Arguments</key>
			<dict>
                <key>input_path</key>
                <string>%pathname%/ArKaos_MediaMaster_6.*/MediaMaster.app</string>
                <key>requirement</key>
                <string>identifier "com.ArKaos.MediaMaster6" and anchor apple generic and 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] = SKE5HH5VKW</string>
			</dict>
		</dict>
    </array>
</dict>
</plist>
MediaMaster Pro 5/MediaMaster Pro 5.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of MediaMaster Pro 5 and imports it into Munki.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.MediaMaster Pro 5</string>
    <key>Input</key>
    <dict>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>NAME</key>
        <string>MediaMasterPro5</string>
        <key>pkginfo</key>
        <dict>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>Market-leading solution for real-time media playback and video mapping turns that any powerful computer into a full-fledged professional media server capable of running video shows in sync on multiple servers, featuring up to 36 layers. All controlled from any lighting desk.</string>
            <key>developer</key>
            <string>ArKaos Pro</string>
            <key>display_name</key>
            <string>MediaMaster Pro</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
            <key>unattended_uninstall</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>1.0.0</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.MediaMaster Pro 5</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>FlatPkgUnpacker</string>
            <key>Arguments</key>
            <dict>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/unpack/</string>
                <key>flat_pkg_path</key>
                <string>%pathname%/ArKaos_MediaMaster*.pkg</string>
                <key>purge_destination</key>
                <true/>
            </dict>
        </dict>

        <dict>
            <key>Processor</key>
            <string>PkgPayloadUnpacker</string>
            <key>Arguments</key>
            <dict>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/pkgroot/Applications/</string>
                <key>pkg_payload_path</key>
                <string>%RECIPE_CACHE_DIR%/unpack/application.pkg/Payload</string>
                <key>purge_destination</key>
                <true/>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>FileFinder</string>
            <key>Arguments</key>
            <dict>
                <key>pattern</key>
                <string>%RECIPE_CACHE_DIR%/pkgroot/Applications/MediaMaster.app</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PlistReader</string>
            <key>Arguments</key>
            <dict>
                <key>info_path</key>
                <string>%found_filename%/Contents/Info.plist</string>
                <key>plist_keys</key>
                <dict>
                    <key>CFBundleShortVersionString</key>
                    <string>version</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>Copier</string>
            <key>Arguments</key>
            <dict>
                <key>source_path</key>
                <string>%RECIPE_CACHE_DIR%/pkgroot/Applications/</string>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/pkgroot/Applications/ArKaos MediaMaster %version%/</string>
                <key>overwrite</key>
                <true/>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiPkginfoMerger</string>
            <key>Arguments</key>
            <dict>
                <key>additional_pkginfo</key>
                <dict>
                    <key>version</key>
                    <string>%version%</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiInstallsItemsCreator</string>
            <key>Arguments</key>
            <dict>
                <key>faux_root</key>
                <string>%RECIPE_CACHE_DIR%/pkgroot</string>
                <key>installs_item_paths</key>
                <array>
                    <string>/Applications/ArKaos MediaMaster %version%/MediaMaster.app</string>
                </array>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiPkginfoMerger</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PkgCopier</string>
            <key>Arguments</key>
            <dict>
                <key>source_pkg</key>
                <string>%pathname%/*.pkg</string>
                <key>pkg_path</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%-%version%.pkg</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%pathname%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PathDeleter</string>
            <key>Arguments</key>
            <dict>
                <key>path_list</key>
                <array>
                <string>%RECIPE_CACHE_DIR%/pkgroot/</string>
                <string>%RECIPE_CACHE_DIR%/unpack/</string>
                </array>
            </dict>
        </dict>
    </array>
</dict>
</plist>
MediaMaster Pro 5/MediaMaster Pro 5.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads latest version of MediaMaster Pro 5.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.MediaMaster Pro 5</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>MediaMasterPro5</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>URLTextSearcher</string>
            <key>Arguments</key>
            <dict>
                <key>re_pattern</key>
                <string>https://cdn\.inmusicbrands\.com/arkaos/downloads/ArKaos_MediaMaster.*?\.dmg</string>
                <key>result_output_var_name</key>
                <string>url</string>
                <key>url</key>
                <string>https://support.arkaos.com/index.php/kb/article/117-Last-official-MediaMaster-5-version-download-link</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>URLDownloader</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
            <key>Arguments</key>
            <dict>
                <key>input_path</key>
                <string>%pathname%/ArKaos_MediaMaster*.pkg</string>
                <key>expected_authority_names</key>
                <array>
                    <string>Developer ID Installer: ArKaos SA (SKE5HH5VKW)</string>
                    <string>Developer ID Certification Authority</string>
                    <string>Apple Root CA</string>
                </array>
            </dict>
        </dict>
    </array>
</dict>
</plist>
MediaHuman YouTube Downloader-Trial/MediaHumanYouTubeDownloader-Trial.png METASEP

MediaHuman YouTube Downloader-Trial/MediaHuman YouTube Downloader-Trial.pkg.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of MediaHuman YouTube Downloader-Trial and creates a versioned PKG.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.pkg.MediaHuman YouTube Downloader-Trial</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>MediaHuman YouTube Downloader-Trial</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.MediaHuman YouTube Downloader-Trial</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>PkgRootCreator</string>
            <key>Arguments</key>
            <dict>
                <key>pkgroot</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%</string>
                <key>pkgdirs</key>
                <dict>
                    <key>Applications</key>
                    <string>0775</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>Copier</string>
            <key>Arguments</key>
            <dict>
                <key>source_path</key>
                <string>%pathname%/MediaHuman YouTube Downloader-Trial.app</string>
                <key>destination_path</key>
                <string>%pkgroot%/Applications/MediaHuman YouTube Downloader-Trial.app</string>
                <key>overwrite</key>
                <true/>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PlistReader</string>
            <key>Arguments</key>
            <dict>
                <key>info_path</key>
                <string>%destination_path%</string>
                <key>plist_keys</key>
                <dict>
                    <key>CFBundleIdentifier</key>
                    <string>bundleid</string>
                    <key>CFBundleShortVersionString</key>
                    <string>version</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PkgCreator</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_request</key>
                <dict>
                    <key>pkgname</key>
                    <string>%NAME%-%version%</string>
                    <key>chown</key>
                    <array>
                        <dict>
                            <key>path</key>
                            <string>Applications</string>
                            <key>user</key>
                            <string>root</string>
                            <key>group</key>
                            <string>admin</string>
                        </dict>
                    </array>
                    <key>id</key>
                    <string>%bundleid%</string>
                    <key>options</key>
                    <string>purge_ds_store</string>
                    <key>pkgdir</key>
                    <string>%RECIPE_CACHE_DIR%</string>
                    <key>pkgroot</key>
                    <string>%pkgroot%</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PathDeleter</string>
            <key>Arguments</key>
            <dict>
                <key>path_list</key>
                <array>
                    <string>%pkgroot%</string>                      
                </array>
            </dict>
        </dict>
    </array>
</dict>
</plist>

MediaHuman YouTube Downloader-Trial/MediaHuman YouTube Downloader-Trial.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of MediaHuman YouTube Downloader-Trial and imports it into Munki.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.MediaHuman YouTube Downloader-Trial</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>MediaHuman YouTube Downloader-Trial</string>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>pkginfo</key>
        <dict>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>There are so many interesting things to be found on YouTube, but you can't download the videos or save them as audio files by default. That's why we developed YouTube Downloader. This app will help you to accomplish video downloads quickly and without hangups. Using our program you can simply download an entire YouTube playlist or channel at once and watch it whenever and wherever you want.</string>
            <key>developer</key>
            <string>MediaHuman</string>
            <key>display_name</key>
            <string>MediaHuman YouTube Downloader-Trial</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
            <key>unattended_uninstall</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.MediaHuman YouTube Downloader-Trial</string>
    <key>Process</key>
    <array>
        <dict>  
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%pathname%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>

MediaHuman YouTube Downloader-Trial/MediaHuman YouTube Downloader-Trial.jss.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the current release version of MediaHuman YouTube Downloader-Trial and then uploads to the JSS</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.jss.MediaHuman YouTube Downloader-Trial</string>
    <key>Input</key>
    <dict>
        <key>CATEGORY</key>
        <string>Applications</string>
        <key>GROUP_NAME</key>
        <string>%NAME%-update-smart</string>
        <key>GROUP_TEMPLATE</key>
        <string>SmartGroupTemplate.xml</string>
        <key>NAME</key>
        <string>MediaHuman YouTube Downloader-Trial</string>
        <key>POLICY_CATEGORY</key>
        <string>Testing</string>
        <key>POLICY_TEMPLATE</key>
        <string>PolicyTemplate.xml</string>
        <key>SELF_SERVICE_DESCRIPTION</key>
        <string>There are so many interesting things to be found on YouTube, but you can't download the videos or save them as audio files by default. That's why we developed YouTube Downloader. This app will help you to accomplish video downloads quickly and without hangups. Using our program you can simply download an entire YouTube playlist or channel at once and watch it whenever and wherever you want.</string>
        <key>SELF_SERVICE_ICON</key>
        <string>MediaHumanYouTubeDownloader.png</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.pkg.MediaHuman YouTube Downloader-Trial</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>JSSImporter</string>
            <key>Arguments</key>
            <dict>
                <key>category</key>
                <string>%CATEGORY%</string>
                <key>groups</key>
                <array>
                    <dict>
                        <key>name</key>
                        <string>%GROUP_NAME%</string>
                        <key>smart</key>
                        <true/>
                        <key>template_path</key>
                        <string>%GROUP_TEMPLATE%</string>
                    </dict>
                </array>
                <key>pkg_path</key>
                <string>%pkg_path%</string>
                <key>policy_category</key>
                <string>%POLICY_CATEGORY%</string>
                <key>policy_template</key>
                <string>%POLICY_TEMPLATE%</string>
                <key>prod_name</key>
                <string>MediaHuman YouTube Downloader-Trial</string>
                <key>self_service_description</key>
                <string>%SELF_SERVICE_DESCRIPTION%</string>
                <key>self_service_icon</key>
                <string>%SELF_SERVICE_ICON%</string>
                <key>version</key>
                <string>%version%</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>
MediaHuman YouTube Downloader-Trial/MediaHuman YouTube Downloader-Trial.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads latest version of MediaHuman YouTube Downloader-Trial.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.MediaHuman YouTube Downloader-Trial</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>MediaHuman YouTube Downloader-Trial</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>URLDownloader</string>
            <key>Arguments</key>
            <dict>
                <key>filename</key>
                <string>%NAME%.dmg</string>
                <key>url</key>
                <string>https://www.mediahuman.net/download/YouTubeDownloader.dmg</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
            <key>Arguments</key>
            <dict>
                <key>input_path</key>
                <string>%pathname%/MediaHuman YouTube Downloader.app</string>
                <key>requirement</key>
                <string>identifier "com.mediahuman.YouTube Downloader" and anchor apple generic and 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] = "3EULEE7KQ5"</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>

MediaHuman Audio Converter/MediaHuman Audio Converter.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of MediaHuman Audio Converter and imports it into Munki.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.MediaHuman Audio Converter</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>MediaHuman Audio Converter</string>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>pkginfo</key>
        <dict>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>MediaHuman Audio Converter is a freeware application for Mac OS X and Windows. It can help you to convert your music absolutely free to WMA, MP3, AAC, WAV, FLAC, OGG, AIFF, Apple Lossless format and bunch of others.</string>
            <key>developer</key>
            <string>MediaHuman</string>
            <key>display_name</key>
            <string>MediaHuman Audio Converter</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
            <key>unattended_uninstall</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>ParentRecipe</key>
    <string>com.github.moofit-recipes.download.AudioConverter</string>
    <key>Process</key>
    <array>
        <dict>  
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%pathname%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>

Max 8/Max 8.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest release of Max 8 and imports into Munki</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.Max 8</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>Max 8</string>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>pkginfo</key>
        <dict>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>Max is an infinitely flexible place to create interactive media software. With in-depth tools for audio, graphics, interaction, and communication, Max is an environment to explore and develop your own ideas.</string>
            <key>display_name</key>
            <string>Max</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.4.1</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.Max 8</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%pathname%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
        </dict>
    </array>
</dict>
</plist>

Max 8/Max 8.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest release of Max 8.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.Max 8</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>Max 8</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.4.1</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>URLTextSearcher</string>
            <key>Arguments</key>
            <dict>
                <key>url</key>
                <string>https://cycling74.com/thanks-for-downloading-max/?os=mac</string>
                <key>re_pattern</key>
                <string>(?P&lt;url&gt;https://\w*-maxmspjitter.s3.amazonaws.com/Max8\S.*.dmg)</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>URLDownloader</string>
            <key>Arguments</key>
            <dict>
                <key>filename</key>
                <string>%NAME%.dmg</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
            <key>Arguments</key>
            <dict>
                <key>input_path</key>
                <string>%pathname%/Max.app</string>
                <key>requirement</key>
                <string>identifier "com.cycling74.Max" and anchor apple generic and 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] = GBXXCFCVW5</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>

Marvel/Marvel.pkg.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of Marvel and creates a package.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.pkg.Marvel</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>Marvel</string>
    </dict>
    <key>MinimumVersion</key>
    <string>1.0.0</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.Marvel</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>Versioner</string>
            <key>Arguments</key>
            <dict>
                <key>input_plist_path</key>
                <string>%RECIPE_CACHE_DIR%/Applications/Marvel.app/Contents/Info.plist</string>
                <key>plist_version_key</key>
                <string>CFBundleShortVersionString</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>AppPkgCreator</string>
            <key>Arguments</key>
            <dict>
                <key>app_path</key>
                <string>%RECIPE_CACHE_DIR%/Applications/Marvel.app</string>
                <key>pkg_path</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%-%version%.pkg</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PathDeleter</string>
            <key>Arguments</key>
            <dict>
                <key>path_list</key>
                <array>
                    <string>%RECIPE_CACHE_DIR%/Applications</string>
                </array>
            </dict>
        </dict>
    </array>
</dict>
</plist>
Marvel/Marvel.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of Marvel and imports it into Munki.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.Marvel</string>
    <key>Input</key>
    <dict>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>NAME</key>
        <string>Marvel</string>
        <key>pkginfo</key>
        <dict>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>The collaborative design platform. Wireframe, prototype, user test, design and inspect designs in one place, for free! Or create an integration with our API.</string>
            <key>developer</key>
            <string>Marvel</string>
            <key>display_name</key>
            <string>Marvel</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
            <key>unattended_uninstall</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>1.0.0</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.Marvel</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>MunkiInstallsItemsCreator</string>
            <key>Arguments</key>
            <dict>
                <key>faux_root</key>
                <string>%RECIPE_CACHE_DIR%</string>
                <key>installs_item_paths</key>
                <array>
                    <string>/Applications/Marvel.app</string>
                </array>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiPkginfoMerger</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>DmgCreator</string>
            <key>Arguments</key>
            <dict>
                <key>dmg_path</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%.dmg</string>
                <key>dmg_root</key>
                <string>%destination_path%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%dmg_path%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PathDeleter</string>
            <key>Arguments</key>
            <dict>
                <key>path_list</key>
                <array>
                    <string>%RECIPE_CACHE_DIR%/Applications</string>
                </array>
            </dict>
        </dict>
    </array>
</dict>
</plist>
Marvel/Marvel.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of Marvel.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.Marvel</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>Marvel</string>
        <key>SPARKLE_FEED_URL</key>
        <string>https://storage.googleapis.com/sketch-plugin/app.xml</string>
    </dict>
    <key>MinimumVersion</key>
    <string>1.0.0</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Arguments</key>
            <dict>
                <key>appcast_url</key>
                <string>%SPARKLE_FEED_URL%</string>
            </dict>
            <key>Processor</key>
            <string>SparkleUpdateInfoProvider</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>URLDownloader</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
        <dict>
          <key>Processor</key>
            <string>Unarchiver</string>
            <key>Arguments</key>
            <dict>
                <key>archive_path</key>
                <string>%pathname%</string>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/Applications</string>
                <key>purge_destination</key>
                <true/>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
            <key>Arguments</key>
            <dict>
                <key>input_path</key>
                <string>%RECIPE_CACHE_DIR%/Applications/Marvel.app</string>
                <key>requirement</key>
                <string>anchor apple generic and identifier "com.marvelprototyping.marvelmacos" 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] = "7C95EP5VB7")</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>

Malwarebytes Breach Remediation-Command Line Interface/Malwarebytes Breach Remediation-Command Line Interface.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads latest version of Malwarebytes Breach Remediation-Command Line Interface PKG, and imports into Munki.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.Malwarebytes Breach Remediation-Command Line Interface</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>Malwarebytes Breach Remediation-Command Line Interface</string>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>pkginfo</key>
        <dict>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>Malwarebytes Breach Remediation is designed to allow business users to detect and remove malware from endpoints. It is built upon the power of our Malwarebytes Anti-Malware anti-malware client.

Implementation in a portable form provides increased flexibility for IT staff to quickly and easily deploy the client, detect and remediate threats, gather activity logs, and continue with their daily tasks – all with a minimal investment in time and resources.</string>
            <key>developer</key>
            <string>Malwarebytes</string>
            <key>display_name</key>
            <string>Malwarebytes Breach Remediation</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
            <key>unattended_uninstall</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
	<key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.Malwarebytes Breach Remediation-Command Line Interface</string>
    <key>Process</key>
    <array>
    	<dict>
    		<key>Processor</key>
			<string>MunkiImporter</string>
			<key>Arguments</key>
			<dict>
				<key>pkg_path</key>
				<string>%found_filename%</string>
				<key>repo_subdirectory</key>
				<string>%MUNKI_REPO_SUBDIR%</string>
			</dict>
		</dict>
		<dict>
            <key>Processor</key>
            <string>PathDeleter</string>
            <key>Arguments</key>
            <dict>
                <key>path_list</key>
                <array>
                    <string>%RECIPE_CACHE_DIR%/unzip/</string>                                 
                </array>
            </dict>
        </dict> 
    </array>
</dict>
</plist>

Malwarebytes Breach Remediation-Command Line Interface/Malwarebytes Breach Remediation-Command Line Interface.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads latest version of Malwarebytes Breach Remediation-Command Line Interface PKG.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.Malwarebytes Breach Remediation-Command Line Interface</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>Malwarebytes Breach Remediation-Command Line Interface</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>URLDownloader</string>
            <key>Arguments</key>
            <dict>
                <key>filename</key>
                <string>%NAME%.zip</string>
                <key>url</key>
                <string>https://downloads.malwarebytes.com/file/mbbrmac</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>Unarchiver</string>
            <key>Arguments</key>
            <dict>
                <key>archive_path</key>
                <string>%pathname%</string>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/unzip/</string>
                <key>purge_destination</key>
                <true/>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>FileFinder</string>
            <key>Arguments</key>
            <dict>
                <key>pattern</key>
                <string>%destination_path%Malwarebytes_Breach_Remediation_*/Malwarebytes_Breach_Remediation_*/Mac/Command Line Interface/mbbr-mac.pkg</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>FlatPkgUnpacker</string>
            <key>Arguments</key>
            <dict>
                <key>flat_pkg_path</key>
                <string>%found_filename%</string>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/unpack/</string>
                <key>skip_payload</key>
                <true/>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>com.facebook.autopkg.shared/PackageInfoVersioner</string>
            <key>Arguments</key>
            <dict>
                <key>package_info_path</key>
                <string>%RECIPE_CACHE_DIR%/unpack/PackageInfo</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
            <key>Arguments</key>
            <dict>
                <key>input_path</key>
                <string>%found_filename%</string>
                <key>expected_authority_names</key>
                <array>
                    <string>Developer ID Installer: Malwarebytes Corporation (GVZRY6KDKR)</string>
                    <string>Developer ID Certification Authority</string>
                    <string>Apple Root CA</string>
                </array>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PathDeleter</string>
            <key>Arguments</key>
            <dict>
                <key>path_list</key>
                <array>
                    <string>%RECIPE_CACHE_DIR%/unpack/</string>                                 
                </array>
            </dict>
        </dict> 
    </array>
</dict>
</plist>
Malwarebytes 3/Malwarebytes 3.png METASEP

Malwarebytes 3/Malwarebytes 3.pkg.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of Malwarebytes 3 and appends version number to the pkg</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.pkg.Malwarebytes 3</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>Malwarebytes</string>
    </dict>
	<key>MinimumVersion</key>
	<string>0.6.1</string>
	<key>ParentRecipe</key>
	<string>com.github.dataJAR-recipes.download.Malwarebytes 3</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Arguments</key>
            <dict>
                <key>source_pkg</key>
                <string>%pathname%</string>
                <key>pkg_path</key>
                <string>%RECIPE_CACHE_DIR%/downloads/installer-pkg/%NAME%-%version%.pkg</string>
            </dict>
            <key>Processor</key>
            <string>PkgCopier</string>
        </dict>
        <dict>
            <key>Arguments</key>
            <dict>
                <key>path_list</key>
                <array>
                <string>%RECIPE_CACHE_DIR%/installer_payload/</string>
                <string>%RECIPE_CACHE_DIR%/installer_unpack/</string>                              
                </array>
            </dict>
            <key>Processor</key>
            <string>PathDeleter</string>
        </dict> 
    </array>
</dict>
</plist>

Malwarebytes 3/Malwarebytes 3.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>Description</key>
	<string>Downloads the latest version of Malwarebytes 3 and imports it into Munki.</string>
	<key>Identifier</key>
	<string>com.github.dataJAR-recipes.munki.Malwarebytes 3</string>
	<key>Input</key>
	<dict>
		<key>MUNKI_REPO_SUBDIR</key>
		<string>apps/%NAME%</string>
		<key>NAME</key>
		<string>Malwarebytes</string>
		<key>pkginfo</key>
		<dict>
			<key>catalogs</key>
			<array>
				<string>testing</string>
			</array>
			<key>description</key>
			<string>Proven Malwarebytes technology crushes the growing threat of Mac malware.
So you are protected and your machine keeps running silky smooth.
Finally, cybersecurity smart enough for the Mac.</string>
			<key>developer</key>
			<string>Malwarebytes</string>
			<key>display_name</key>
			<string>Malwarebytes</string>
			<key>name</key>
			<string>%NAME%</string>
			<key>unattended_install</key>
			<true/>
		</dict>
	</dict>
	<key>MinimumVersion</key>
	<string>0.6.1</string>
	<key>ParentRecipe</key>
	<string>com.github.dataJAR-recipes.download.Malwarebytes 3</string>
	<key>Process</key>
	<array>
		<dict>
			<key>Arguments</key>
			<dict>
				<key>faux_root</key>
                <string>%RECIPE_CACHE_DIR%/installer_payload/</string>
				<key>installs_item_paths</key>
				<array>
					<string>/Applications/Malwarebytes.app</string>
					<string>/Library/Extensions/com.malwarebytes.mbam.rtprotection.kext</string>
				</array>
			</dict>
			<key>Processor</key>
			<string>MunkiInstallsItemsCreator</string>
		</dict>
		<dict>
			<key>Arguments</key>
			<dict>
				<key>additional_pkginfo</key>
				<dict>
					<key>version</key>
					<string>%version%</string>
				</dict>
			</dict>
			<key>Processor</key>
			<string>MunkiPkginfoMerger</string>
		</dict>
        <dict>
			<key>Arguments</key>
			<dict>
				<key>destination_path</key>
				<string>%RECIPE_CACHE_DIR%/uninstaller_unpack/</string>
				<key>flat_pkg_path</key>
				<string>%RECIPE_CACHE_DIR%/installer_payload/Library/Application Support/Malwarebytes/MBAM/Engine.bundle/Contents/Resources/Remove_Malwarebytes.pkg</string>
				<key>purge_destination</key>
				<string>true</string>
			</dict>
			<key>Processor</key>
			<string>FlatPkgUnpacker</string>
		</dict>
		<dict>
			<key>Processor</key>
			<string>FileFinder</string>
			<key>Arguments</key>
			<dict>
				<key>pattern</key>
				<string>%RECIPE_CACHE_DIR%/uninstaller_unpack/Uninstaller.pkg/Scripts/postinstall</string>
			</dict>
		</dict>
		<dict>
			<key>Arguments</key>
			<dict>
				<key>additional_makepkginfo_options</key>
				<array>
					<string>--uninstall_script=%found_filename%</string>
				</array>
				<key>pkg_path</key>
				<string>%RECIPE_CACHE_DIR%/downloads/installer-pkg/Malwarebytes.pkg</string>
				<key>repo_subdirectory</key>
				<string>%MUNKI_REPO_SUBDIR%</string>
				<key>version_comparison_key</key>
				<string>CFBundleVersion</string>
			</dict>
			<key>Processor</key>
			<string>MunkiImporter</string>
		</dict>
		<dict>
            <key>Arguments</key>
            <dict>
                <key>path_list</key>
                <array>
                	<string>%RECIPE_CACHE_DIR%/installer_payload/</string>
                	<string>%RECIPE_CACHE_DIR%/installer_unpack/</string>
                	<string>%RECIPE_CACHE_DIR%/uninstaller_unpack/</string>                                    
                </array>
            </dict>
            <key>Processor</key>
            <string>PathDeleter</string>
        </dict> 
	</array>
</dict>
</plist>

Malwarebytes 3/Malwarebytes 3.jss.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>Description</key>
	<string>Downloads the current release version of Malwarebytes 3 then uploads to the JSS.</string>
	<key>Identifier</key>
	<string>com.github.dataJAR-recipes.jss.Malwarebytes 3</string>
	<key>Input</key>
	<dict>
		<key>CATEGORY</key>
		<string>Productivity</string>
		<key>GROUP_NAME</key>
		<string>%NAME%-update-smart</string>
		<key>GROUP_TEMPLATE</key>
		<string>Malwarebytes 3-SmartGroupTemplate.xml</string>
		<key>NAME</key>
		<string>Malwarebytes</string>
		<key>POLICY_CATEGORY</key>
		<string>Testing</string>
		<key>POLICY_TEMPLATE</key>
		<string>PolicyTemplate.xml</string>
		<key>SELF_SERVICE_DESCRIPTION</key>
        <string>Proven Malwarebytes technology crushes the growing threat of Mac malware.
So you are protected and your machine keeps running silky smooth.
Finally, cybersecurity smart enough for the Mac.</string>
		<key>SELF_SERVICE_ICON</key>
		<string>Malwarebytes 3.png</string>
	</dict>
	<key>MinimumVersion</key>
	<string>0.6.1</string>
	<key>ParentRecipe</key>
	<string>com.github.dataJAR-recipes.pkg.Malwarebytes 3</string>
	<key>Process</key>
	<array>
		<dict>
			<key>Arguments</key>
			<dict>
				<key>category</key>
				<string>%CATEGORY%</string>
				<key>extension_attributes</key>
				<array>
					<dict>
						<key>ext_attribute_path</key>
						<string>Malwarebytes 3-ExtensionAttribute.xml</string>
					</dict>
				</array>
				<key>groups</key>
				<array>
					<dict>
						<key>name</key>
						<string>%GROUP_NAME%</string>
						<key>smart</key>
						<true/>
						<key>template_path</key>
						<string>%GROUP_TEMPLATE%</string>
					</dict>
				</array>
				<key>policy_category</key>
				<string>%POLICY_CATEGORY%</string>
				<key>policy_template</key>
				<string>%POLICY_TEMPLATE%</string>
				<key>prod_name</key>
				<string>%NAME%</string>
				<key>self_service_description</key>
				<string>%SELF_SERVICE_DESCRIPTION%</string>
				<key>self_service_icon</key>
				<string>%SELF_SERVICE_ICON%</string>
			</dict>
			<key>Processor</key>
			<string>JSSImporter</string>
		</dict>
	</array>
</dict>
</plist>

Malwarebytes 3/Malwarebytes 3.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Download recipe for the latest version of Malwarebytes 3.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.Malwarebytes 3</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>Malwarebytes</string>
    </dict>
    <key>MinimumVersion</key>
    <string>1.0.3</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>DeprecationWarning</string>
            <key>Arguments</key>
            <dict>
                <key>warning_message</key>
                <string>The v3 url (https://downloads.malwarebytes.com/file/mb3-mac) now downloads v4, as such these recipes are not needed and can be replaced with: https://github.com/autopkg/homebysix-recipes/tree/master/Malwarebytes.</string>
            </dict>
        </dict>
        <dict>   
            <key>Processor</key>   
            <string>StopProcessingIf</string>   
            <key>Arguments</key>   
            <dict>   
                <key>predicate</key>   
                <string>TRUEPREDICATE</string>
            </dict>
        </dict>
        <dict>
        	<key>Arguments</key>
			<dict>
				<key>url</key>
				<string>https://downloads.malwarebytes.com/file/mb3-mac</string>
				<key>filename</key>
    			<string>Malwarebytes.pkg</string>
    			<key>download_dir</key>
    			<string>%RECIPE_CACHE_DIR%/downloads/installer-pkg</string>
			</dict>
            <key>Processor</key>
            <string>URLDownloader</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
        <dict>
            <key>Arguments</key>
            <dict>
                <key>input_path</key>
                <string>%pathname%</string>
                <key>expected_authority_names</key>
                <array>
                    <string>Developer ID Installer: Malwarebytes Corporation (GVZRY6KDKR)</string>
                    <string>Developer ID Certification Authority</string>
                    <string>Apple Root CA</string>
                </array>
            </dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
        </dict>
        <dict>
			<key>Arguments</key>
			<dict>
				<key>destination_path</key>
				<string>%RECIPE_CACHE_DIR%/installer_unpack/</string>
				<key>flat_pkg_path</key>
				<string>%pathname%</string>
				<key>purge_destination</key>
				<string>true</string>
			</dict>
			<key>Processor</key>
			<string>FlatPkgUnpacker</string>
		</dict>
		<dict>
			<key>Arguments</key>
			<dict>
				<key>destination_path</key>
				<string>%RECIPE_CACHE_DIR%/installer_payload/</string>
				<key>pkg_payload_path</key>
				<string>%RECIPE_CACHE_DIR%/installer_unpack/MBAM.pkg/Payload</string>
				<key>purge_destination</key>
				<string>true</string>
			</dict>
			<key>Processor</key>
			<string>PkgPayloadUnpacker</string>
		</dict>
		<dict>
			<key>Arguments</key>
			<dict>
				<key>input_plist_path</key>
				<string>%RECIPE_CACHE_DIR%/installer_payload/Applications/Malwarebytes.app/Contents/Info.plist</string>
				<key>plist_version_key</key>
				<string>CFBundleVersion</string>
			</dict>
			<key>Processor</key>
			<string>Versioner</string>
		</dict>       
    </array>
</dict>
</plist>

Malwarebytes 3/Malwarebytes 3-SmartGroupTemplate.xml METASEP
<computer_group>
	<name>%group_name%</name>
	<is_smart>true</is_smart>
	<criteria>
		<criterion>
			<name>MalwarebytesVersion</name>
			<priority>0</priority>
			<and_or>and</and_or>
			<search_type>is not</search_type>
			<value>%VERSION%</value>
		<opening_paren>true</opening_paren>
        <closing_paren>false</closing_paren>
		</criterion>
		<criterion>
			<name>MalwarebytesVersion</name>
			<priority>1</priority>
			<and_or>and</and_or>
			<search_type>is not</search_type>
			<value></value>
	    <opening_paren>false</opening_paren>
        <closing_paren>true</closing_paren>
		</criterion>
		<criterion>
			<name>Computer Group</name>
			<priority>2</priority>
			<and_or>and</and_or>
			<search_type>member of</search_type>
			<value>Testing</value>
		</criterion>
	</criteria>
</computer_group>

Malwarebytes 3/Malwarebytes 3-ExtensionAttribute.xml METASEP
<computer_extension_attribute>
	<name>MalwarebytesVersion</name>
	<description>Returns the CFBundleVersion of Malwarebytes if installed, as this is incremented &amp; not CFBundleShortVersionString.</description>
	<data_type>String</data_type>
	<input_type>
		<type>script</type>
		<platform>Mac</platform>
		<script>#!/bin/bash
MalwarebytesVersion=""
if [ -f /Applications/Malwarebytes.app/Contents/Info.plist ]
	then
		MalwarebytesVersion=$(/usr/bin/defaults read /Applications/Malwarebytes.app/Contents/Info.plist CFBundleVersion)
fi

/bin/echo "&lt;result&gt;$MalwarebytesVersion&lt;/result&gt;"

exit 0</script>
	</input_type>
	<inventory_display>Extension Attributes</inventory_display>
	<recon_display>Extension Attributes</recon_display>
</computer_extension_attribute>

MakerBotPrint/MakerBotPrint.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Download the latest version of MakerBot Print and imports it into Munki.</string>
    <key>Comment</key>
    <string>Originally sourced from https://github.com/autopkg/joshua-d-miller-recipes/tree/master/MakerBot</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.autopkg.munki.MakerBotPrint</string>
    <key>Input</key>
    <dict>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/MakerBotPrint</string>
        <key>NAME</key>
        <string>MakerBotPrint</string>
        <key>DOWNLOAD_URL</key>
        <string>https://s3.amazonaws.com/downloads-makerbot-com/installer/release/MakerBotPrintInstaller.pkg</string>
        <key>pkginfo</key>
        <dict>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>category</key>
            <string>Mathematics</string>
            <key>developer</key>
            <string>MakerBot Industries, LLC</string>
            <key>display_name</key>
            <string>MakerBot</string>
            <key>description</key>
            <string>A complete, free 3D printing solution for discovering, managing, and sharing your 3D prints.
            </string>
            <key>name</key>
            <string>%NAME%</string>
            <key>display_name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.3.0</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.MakerBotPrint</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>FlatPkgUnpacker</string>
            <key>Arguments</key>
            <dict>
                <key>flat_pkg_path</key>
                <string>%pathname%</string>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/unpack</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PkgPayloadUnpacker</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_payload_path</key>
                <string>%RECIPE_CACHE_DIR%/unpack/MakerBotPrint.pkg/Payload</string>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/pkgroot/Applications</string>
                <key>purge_destination</key>
                <true/>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiInstallsItemsCreator</string>
            <key>Arguments</key>
            <dict>
                <key>faux_root</key>
                <string>%RECIPE_CACHE_DIR%/pkgroot/</string>
                <key>installs_item_paths</key>
                <array>
                    <string>/Applications/MakerBot Print.app</string>
                </array>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiPkginfoMerger</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PlistReader</string>
            <key>Arguments</key>
            <dict>
                <key>info_path</key>
                <string>%RECIPE_CACHE_DIR%/pkgroot/Applications/MakerBot Print.app/Contents/Info.plist</string>
                <key>plist_keys</key>
                <dict>
                    <key>CFBundleShortVersionString</key>
                    <string>version</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiPkginfoMerger</string>
            <key>Arguments</key>
            <dict>
                <key>additional_pkginfo</key>
                <dict>
                    <key>version</key>
                    <string>%version%</string>
                </dict>
            </dict>
        </dict>
        <dict>  
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%pathname%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PathDeleter</string>
            <key>Arguments</key>
            <dict>
                <key>path_list</key>
                <array>
                    <string>%RECIPE_CACHE_DIR%/pkgroot/</string>  
                    <string>%RECIPE_CACHE_DIR%/unpack/</string>                      
                </array>
            </dict>
        </dict>
    </array>
</dict>
</plist>

MakerBotPrint/MakerBotPrint.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest verison of MakerBot Print</string>
    <key>Comment</key>
    <string>Originally sourced from https://github.com/autopkg/joshua-d-miller-recipes/tree/master/MakerBot</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.MakerBotPrint</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>MakerBotPrint</string>
        <key>DOWNLOAD_URL</key>
        <string>https://s3.amazonaws.com/downloads-makerbot-com/installer/release/MakerBotPrintInstaller.pkg</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.3.1</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>URLDownloader</string>
            <key>Arguments</key>
            <dict>
                <key>url</key>
                <string>%DOWNLOAD_URL%</string>
                <key>filename</key>
                <string>%NAME%.pkg</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
            <key>Arguments</key>
            <dict>
                <key>input_path</key>
                <string>%pathname%</string>
                <key>expected_authority_names</key>
                <array>
                    <string>Developer ID Installer: MakerBot Industries LLC (R6W34495S7)</string>
                    <string>Developer ID Certification Authority</string>
                    <string>Apple Root CA</string>
                </array>
            </dict>
        </dict>
    </array>
</dict>
</plist>

MakeHuman/MakeHuman.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of MakeHuman and imports it into Munki.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.MakeHuman</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>MakeHuman</string>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>pkginfo</key>
        <dict>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>MakeHuman is an open source (AGPL3) tool designed to simplify the creation of virtual humans using a Graphical User Interface, also commonly referred to as a GUI. This is a specialized branch of the more general subject of 3D modelling. The MakeHuman Team is focused on this specific branch of the broader subject in order to achieve the best possible level of quality and ease of use in that area. The ultimate goal is to be able to quickly produce a wide array of realistic virtual humans with only a few clicks of the mouse and be able to render or export them for use in other projects.</string>
            <key>developer</key>
            <string>MakeHuman</string>
            <key>display_name</key>
            <string>MakeHuman</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
            <key>unattended_uninstall</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.MakeHuman</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>Unarchiver</string>
            <key>Arguments</key>
            <dict>
                <key>archive_path</key>
                <string>%pathname%</string>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%/Applications/</string>
                <key>purge_destination</key>
                <true/>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiInstallsItemsCreator</string>
            <key>Arguments</key>
            <dict>
                <key>faux_root</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%/</string>
                <key>installs_item_paths</key>
                <array>
                    <string>/Applications/MakeHuman.app/Contents/MacOS/MakeHuman</string>
                </array>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiPkginfoMerger</string>
        </dict>
		<dict>
			<key>Processor</key>
			<string>URLTextSearcher</string>
			<key>Arguments</key>
			<dict>
				<key>re_pattern</key>
				<string>__version__ = \"(.*?)\"</string>
				<key>result_output_var_name</key>
				<string>version</string>
				<key>url</key>
				<string>file:////%RECIPE_CACHE_DIR%/%NAME%/Applications/MakeHuman.app/Contents/Resources/makehuman.py</string>
			</dict>
		</dict>
        <dict>
            <key>Processor</key>
            <string>MunkiPkginfoMerger</string>
            <key>Arguments</key>
            <dict>
                <key>additional_pkginfo</key>
                <dict>
                    <key>version</key>
                    <string>%version%</string>
                    <key>installcheck_script</key>
                    <string>#!/usr/local/munki/munki-python
# pylint: disable = invalid-name

'''
Copyright (c) 2021, dataJAR Ltd.  All rights reserved.
     Redistribution and use in source and binary forms, with or without
     modification, are permitted provided that the following conditions are met:
             * Redistributions of source code must retain the above copyright
               notice, this list of conditions and the following disclaimer.
             * Redistributions in binary form must reproduce the above copyright
               notice, this list of conditions and the following disclaimer in the
               documentation and/or other materials provided with the distribution.
             * Neither data JAR Ltd nor the names of its contributors may be used to
               endorse or promote products derived from this software without specific
               prior written permission.
     THIS SOFTWARE IS PROVIDED BY DATA JAR LTD 'AS IS' AND ANY
     EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
     WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
     DISCLAIMED. IN NO EVENT SHALL DATA JAR LTD BE LIABLE FOR ANY
     DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
     (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
     ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
     (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
     SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
SUPPORT FOR THIS PROGRAM
    This program is distributed 'as is' by DATA JAR LTD.
    For more information or support, please utilise the following resources:
            http://www.datajar.co.uk

DESCRIPTION

See docstring in main()

'''

from distutils.version import LooseVersion
import os
import sys


def main():
    '''
        Get MakeHuman version (if installed)

        Exit 1 if MakeHuman is installed and newer than what we have in Munki

        Based on:
        https://github.com/autopkg/andrewzirkel-recipes/blob/master/LightspeedRelaySmartAgent/LightspeedRelaySmartAgent.munki.recipe#L46
    '''

    makehuman_py = '/Applications/MakeHuman.app/Contents/Resources/makehuman.py'
    munki_version = '%version%'

    # If the binary exists
    if os.path.isfile(makehuman_py):
        # Get app version, from: makehuman.py
        # raise if we error
        try:
            with open(makehuman_py, encoding='utf-8') as py_file:
                for py_line in py_file:
                    if py_line.startswith('__version__'):
                        installed_ver = py_line.split('"')[1]
        except (OSError, IOError):
            print("Encountered an error when trying to get the MakeHuman app version...")
            sys.exit(0)

    # Raise if app is missing
    else:
        print("Cannot access makehuman.py at: {}, proceeding with install...".format(makehuman_py))
        sys.exit(0)

    if LooseVersion(installed_ver) &lt; LooseVersion(munki_version):
        print("Version of MakeHuman.app than the munki version, proceeding with install...")
        sys.exit(0)

    print("Version of MakeHuman binary same or newer than the munki version, skipping...")
    sys.exit(1)

if __name__ == '__main__':
    main()

</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>DmgCreator</string>
            <key>Arguments</key>
            <dict>
                <key>dmg_root</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%/Applications</string>
                <key>dmg_path</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%.dmg</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%dmg_path%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PathDeleter</string>
            <key>Arguments</key>
            <dict>
                <key>path_list</key>
                <array>
                    <string>%RECIPE_CACHE_DIR%/%NAME%/</string>
                </array>
            </dict>
        </dict>
    </array>
</dict>
</plist>
MakeHuman/MakeHuman.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads latest version of MakeHuman.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.MakeHuman</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>MakeHuman</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>URLTextSearcher</string>
            <key>Arguments</key>
            <dict>
                <key>url</key>
                <string>http://download.tuxfamily.org/makehuman/releases/</string>
                <key>re_pattern</key>
                <string>\"(makehuman-community-.*-macos\.zip)\"</string>
                <key>result_output_var_name</key>
                <string>match</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>URLDownloader</string>
            <key>Arguments</key>
            <dict>
                <key>url</key>
                <string>http://download.tuxfamily.org/makehuman/releases/%match%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
    </array>
</dict>
</plist>
MagicaVoxel/MagicaVoxel.pkg.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of MagicaVoxel and creates a package.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.pkg.MagicaVoxel</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>MagicaVoxel</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.MagicaVoxel</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>PlistReader</string>
            <key>Arguments</key>
            <dict>
                <key>info_path</key>
                <string>%pkgroot%/Applications/MagicaVoxel/MagicaVoxel.app/Contents/Info.plist</string>
                <key>plist_keys</key>
                <dict>
                    <key>CFBundleShortVersionString</key>
                    <string>version</string>
                    <key>CFBundleIdentifier</key>
                    <string>bundleid</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PkgCreator</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_request</key>
                <dict>
                    <key>chown</key>
                    <array>
                        <dict>
                            <key>group</key>
                            <string>admin</string>
                            <key>path</key>
                            <string>Applications</string>
                            <key>user</key>
                            <string>root</string>
                        </dict>
                    </array>
                    <key>id</key>
                    <string>%bundleid%</string>
                    <key>options</key>
                    <string>purge_ds_store</string>
                    <key>pkgname</key>
                    <string>%NAME%-%version%</string>
                    <key>pkgroot</key>
                    <string>%RECIPE_CACHE_DIR%/%NAME%</string>
                    <key>version</key>
                    <string>%version%</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PathDeleter</string>
            <key>Arguments</key>
            <dict>
                <key>path_list</key>
                <array>
                    <string>%pkgroot%</string>
                </array>
            </dict>
        </dict>
    </array>
</dict>
</plist>

MagicaVoxel/MagicaVoxel.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of MagicaVoxel and imports it into Munki.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.MagicaVoxel</string>
    <key>Input</key>
    <dict>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>NAME</key>
        <string>MagicaVoxel</string>
        <key>pkginfo</key>
        <dict>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>A free lightweight GPU-based voxel art editor and interactive path tracing renderer.</string>
            <key>developer</key>
            <string>ephtracy</string>
            <key>display_name</key>
            <string>MagicaVoxel</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.pkg.MagicaVoxel</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%pkg_path%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>
MagicaVoxel/MagicaVoxel.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of MagicaVoxel.
Set PRERELEASE to a non-empty string to download prereleases, either
via Input in an override or via the -k option,
i.e.: `-k PRERELEASE=yes`</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.MagicaVoxel</string>
    <key>Input</key>
    <dict>
        <key>PRERELEASE</key>
        <string>yes</string>
        <key>NAME</key>
        <string>MagicaVoxel</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>Process</key>
    <array>
        <dict>
        	<key>Processor</key>
            <string>GitHubReleasesInfoProvider</string>
            <key>Arguments</key>
            <dict>
                <key>github_repo</key>
                <string>ephtracy/ephtracy.github.io</string>
                <key>include_prereleases</key>
                <string>%PRERELEASE%</string>
                <key>asset_regex</key>
                <string>[\S]+\-10.1[\d].*.zip</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>URLDownloader</string>
            <key>Arguments</key>
            <dict>
                <key>filename</key>
                <string>%NAME%-%version%.zip</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>Unarchiver</string>
            <key>Arguments</key>
            <dict>
                <key>archive_path</key>
                <string>%pathname%</string>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/unzip</string>
                <key>purge_destination</key>
                <true/>
                <key>archive_format</key>
                <string>zip</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PkgRootCreator</string>
            <key>Arguments</key>
            <dict>
                <key>pkgroot</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%</string>
                <key>pkgdirs</key>
                <dict>
                    <key>Applications</key>
                    <string>0775</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>Copier</string>
            <key>Arguments</key>
            <dict>
                <key>destination_path</key>
                <string>%pkgroot%/Applications/MagicaVoxel/</string>
                <key>source_path</key>
                <string>%RECIPE_CACHE_DIR%/unzip/MagicaVoxel-*</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PathDeleter</string>
            <key>Arguments</key>
            <dict>
                <key>path_list</key>
                <array>
                    <string>%RECIPE_CACHE_DIR%/unzip/</string>
                </array>
            </dict>
        </dict>
    </array>
</dict>
</plist>
MacTeX Ghostscript/MacTeX Ghostscript.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of MacTeX Ghostscript and imports it into Munki.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.MacTeX Ghostscript</string>
    <key>Input</key>
    <dict>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>NAME</key>
        <string>MacTeXGhostscript</string>
        <key>pkginfo</key>
        <dict>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>Ghostscript an interpreter for the PostScript language and for PDF.</string>
            <key>developer</key>
            <string>Artifex Software, Inc</string>
            <key>display_name</key>
            <string>MacTeX Ghostscript</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
            <key>unattended_uninstall</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.MacTeX Ghostscript</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>FlatPkgUnpacker</string>
            <key>Arguments</key>
            <dict>
                <key>flat_pkg_path</key>
                <string>%pathname%</string>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/unpack</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>com.github.homebysix.VersionSplitter/VersionSplitter</string>
            <key>Arguments</key>
            <dict>
                <key>version</key>
                <string>%match%</string>
                <key>index</key>
                <integer>1</integer>
                <key>split_on</key>
                <string>-</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PkgPayloadUnpacker</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_payload_path</key>
                <string>%RECIPE_CACHE_DIR%/unpack/Ghostscript-%version%-Start.pkg/Payload</string>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%</string>
                <key>purge_destination</key>
                <true/>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>GhostscriptVersioner</string>
            <key>Arguments</key>
            <dict>
                <key>binary_path</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%/usr/local/bin/gs-noX11</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiPkginfoMerger</string>
            <key>Arguments</key>
            <dict>
                <key>additional_pkginfo</key>
                <dict>
                    <key>installcheck_script</key>
                    <string>#!/usr/local/munki/munki-python
# pylint: disable = invalid-name

'''
Copyright (c) 2021, databinary Ltd.  All rights reserved.
     Redistribution and use in source and binary forms, with or without
     modification, are permitted provided that the following conditions are met:
             * Redistributions of source code must retain the above copyright
               notice, this list of conditions and the following disclaimer.
             * Redistributions in binary form must reproduce the above copyright
               notice, this list of conditions and the following disclaimer in the
               documentation and/or other materials provided with the distribution.
             * Neither data binary Ltd nor the names of its contributors may be used to
               endorse or promote products derived from this software without specific
               prior written permission.
     THIS SOFTWARE IS PROVIDED BY DATA binary LTD 'AS IS' AND ANY
     EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
     WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
     DISCLAIMED. IN NO EVENT SHALL DATA binary LTD BE LIABLE FOR ANY
     DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
     (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
     ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
     (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
     SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
SUPPORT FOR THIS PROGRAM
    This program is distributed 'as is' by DATA binary LTD.
    For more information or support, please utilise the following resources:
            http://www.datajar.co.uk

DESCRIPTION

See docstring in main()

'''


from distutils.version import LooseVersion
import os
import subprocess
import sys


def main():
    '''
        Returns the the version from the Ghostscript binary

        Exit 1 if Ghostscript is installed and newer than what we have in Munki.

    '''

    binary_path = '/usr/local/bin/gs-noX11'
    munki_version = '%version%'
    binary_version = None

    # If binary exists
    if os.path.isfile(binary_path):
        # Get binary version, from: https://www.ghostscript.com/doc/9.54.0/Use.htm#Help_command
        # raise if we error
        try:
            binary_version = subprocess.check_output([binary_path, '-v']
                                                    ).split()[2].decode('utf-8')
        except subprocess.CalledProcessError:
            print("Encountered an error when ascertaining Ghostscript version, "
                  "proceeding with install...")
            sys.exit(0)
    # If binary is missing
    else:
        print("Cannot find {}, proceeding with install...".format(binary_path))
        sys.exit(0)

    # Check binary_version against munki_version
    if LooseVersion(binary_version) &lt; LooseVersion(munki_version):
        print("Older version of Ghostscript,  proceeding with install...")
        sys.exit(0)
    print("Version of Ghostscript same or newer than the munki version, skipping...")
    sys.exit(1)


if __name__ == '__main__':
    main()
</string>
                    <key>version</key>
                    <string>%version%</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%pathname%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PathDeleter</string>
            <key>Arguments</key>
            <dict>
                <key>path_list</key>
                <array>
                    <string>%RECIPE_CACHE_DIR%/%NAME%/</string>
                    <string>%RECIPE_CACHE_DIR%/unpack/</string>
                </array>
            </dict>
        </dict>
    </array>
</dict>
</plist>
MacTeX Ghostscript/MacTeX Ghostscript.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Download recipe for the latest version of MacTeX Ghostscript.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.MacTeX Ghostscript</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>MacTeXGhostscript</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>Process</key>
    <array>
		<dict>
			<key>Processor</key>
			<string>URLTextSearcher</string>
			<key>Arguments</key>
			<dict>
				<key>url</key>
				<string>https://pages.uoregon.edu/koch/</string>
				<key>re_pattern</key>
				<string>Ghostscript-+[0-9]+\.+[0-9]+\-Full.pkg</string>
			</dict>
		</dict>
        <dict>
        	<key>Arguments</key>
			<dict>
				<key>url</key>
				<string>%url%%match%</string>
			</dict>
            <key>Processor</key>
            <string>URLDownloader</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
            <key>Arguments</key>
            <dict>
                <key>expected_authority_names</key>
                <array>
                    <string>Developer ID Installer: Richard Koch (RBGCY5RJWM)</string>
                    <string>Developer ID Certification Authority</string>
                    <string>Apple Root CA</string>
                </array>
                <key>input_path</key>
                <string>%pathname%</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>
MPEG Streamclip/MPEGStreamclip.png METASEP

MPEG Streamclip/MPEG Streamclip.pkg.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>Description</key>
	<string>Downloads the latest version of MPEG Streamclip and creates a package.</string>
	<key>Identifier</key>
	<string>com.github.dataJAR-recipes.pkg.MPEG Streamclip</string>
	<key>Input</key>
	<dict>
		<key>NAME</key>
		<string>MPEG Streamclip</string>
	</dict>
	<key>MinimumVersion</key>
	<string>0.6.1</string>
	<key>ParentRecipe</key>
	<string>com.github.dataJAR-recipes.download.MPEG Streamclip</string>
	<key>Process</key>
	<array>
		<dict>
			<key>Arguments</key>
			<dict>
				<key>pkgdirs</key>
				<dict>
					<key>Applications</key>
					<string>0775</string>
				</dict>
				<key>pkgroot</key>
				<string>%RECIPE_CACHE_DIR%/%NAME%</string>
			</dict>
			<key>Processor</key>
			<string>PkgRootCreator</string>
		</dict>
		<dict>
			<key>Arguments</key>
			<dict>
				<key>destination_path</key>
				<string>%pkgroot%/Applications/MPEG Streamclip.app</string>
				<key>source_path</key>
				<string>%RECIPE_CACHE_DIR%/downloads/%NAME%.dmg/MPEG Streamclip.app</string>
			</dict>
			<key>Processor</key>
			<string>Copier</string>
		</dict>
		<dict>
			<key>Arguments</key>
			<dict>
				<key>input_plist_path</key>
				<string>%RECIPE_CACHE_DIR%/downloads/%NAME%.dmg/MPEG Streamclip.app/Contents/Info.plist</string>
				<key>plist_version_key</key>
				<string>CFBundleVersion</string>
			</dict>
			<key>Processor</key>
			<string>Versioner</string>
		</dict>
		<dict>
			<key>Arguments</key>
			<dict>
				<key>pkg_request</key>
				<dict>
					<key>chown</key>
					<array>
						<dict>
							<key>group</key>
							<string>admin</string>
							<key>path</key>
							<string>Applications</string>
							<key>user</key>
							<string>root</string>
						</dict>
					</array>
					<key>id</key>
					<string>it.alfanet.squared5.MPEGStreamclip</string>
					<key>options</key>
					<string>purge_ds_store</string>
					<key>pkgname</key>
					<string>%NAME%-%version%</string>
					<key>pkgroot</key>
					<string>%RECIPE_CACHE_DIR%/%NAME%</string>
					<key>version</key>
					<string>%version%</string>
				</dict>
			</dict>
			<key>Processor</key>
			<string>PkgCreator</string>
		</dict>
	</array>
</dict>
</plist>

MPEG Streamclip/MPEG Streamclip.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of MPEG Streamclip and imports it into Munki.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.MPEG Streamclip</string>
    <key>Input</key>
    <dict>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>NAME</key>
        <string>MPEG Streamclip</string>
        <key>pkginfo</key>
        <dict>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>MPEG Streamclip is a powerful high-quality video converter, player, editor for MPEG, QuickTime, transport streams, iPod. And now it is a DivX editor and encoding machine, and even a stream and YouTube downloader.</string>
            <key>developer</key>
            <string>Squared 5 srl</string>
            <key>display_name</key>
            <string>MPEG Streamclip</string>
            <key>maximum_os_version</key>
            <string>10.14.6</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.MPEG Streamclip</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%RECIPE_CACHE_DIR%/downloads/%NAME%.dmg</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
                <key>version_comparison_key</key>
                <string>CFBundleVersion</string>
            </dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
        </dict>
    </array>
</dict>
</plist>

MPEG Streamclip/MPEG Streamclip.jss.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>Description</key>
	<string>Downloads the current release version of MPEG Streamclip and then uploads to the JSS</string>
	<key>Identifier</key>
	<string>com.github.dataJAR-recipes.jss.MPEG Streamclip</string>
	<key>Input</key>
	<dict>
		<key>CATEGORY</key>
		<string>Productivity</string>
		<key>GROUP_NAME</key>
		<string>%NAME%-update-smart</string>
		<key>GROUP_TEMPLATE</key>
		<string>SmartGroupTemplate.xml</string>
		<key>NAME</key>
		<string>MPEG Streamclip</string>
		<key>POLICY_CATEGORY</key>
		<string>Testing</string>
		<key>POLICY_TEMPLATE</key>
		<string>PolicyTemplate.xml</string>
		<key>SELF_SERVICE_DESCRIPTION</key>
		<string>MPEG Streamclip is a powerful high-quality video converter, player, editor for MPEG, QuickTime, transport streams, iPod. And now it is a DivX editor and encoding machine, and even a stream and YouTube downloader.</string>
		<key>SELF_SERVICE_ICON</key>
		<string>MPEGStreamclip.png</string>
	</dict>
	<key>MinimumVersion</key>
	<string>0.2.0</string>
	<key>ParentRecipe</key>
	<string>com.github.dataJAR-recipes.pkg.MPEG Streamclip</string>
	<key>Process</key>
	<array>
		<dict>
			<key>Arguments</key>
			<dict>
				<key>category</key>
				<string>%CATEGORY%</string>
				<key>groups</key>
				<array>
					<dict>
						<key>name</key>
						<string>%GROUP_NAME%</string>
						<key>smart</key>
						<true/>
						<key>template_path</key>
						<string>%GROUP_TEMPLATE%</string>
					</dict>
				</array>
				<key>policy_category</key>
				<string>%POLICY_CATEGORY%</string>
				<key>policy_template</key>
				<string>%POLICY_TEMPLATE%</string>
				<key>prod_name</key>
				<string>%NAME%</string>
				<key>self_service_description</key>
				<string>%SELF_SERVICE_DESCRIPTION%</string>
				<key>self_service_icon</key>
				<string>%SELF_SERVICE_ICON%</string>
			</dict>
			<key>Processor</key>
			<string>JSSImporter</string>
		</dict>
	</array>
</dict>
</plist>

MPEG Streamclip/MPEG Streamclip.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>Description</key>
	<string>Downloads the current release version of MPEG Streamclip.</string>
	<key>Identifier</key>
	<string>com.github.dataJAR-recipes.download.MPEG Streamclip</string>
	<key>Input</key>
	<dict>
		<key>NAME</key>
		<string>MPEGStreamclip</string>
	</dict>
	<key>MinimumVersion</key>
	<string>0.6.1</string>
	<key>Process</key>
	<array>
		<dict>
			<key>Processor</key>
			<string>URLTextSearcher</string>
			<key>Arguments</key>
			<dict>
				<key>url</key>
				<string>http://www.squared5.com/svideo/mpeg-streamclip-mac.html</string>
				<key>re_pattern</key>
				<string>(http://www.alfanet.it/squared5/MPEG_Streamclip_+[0-9a-z\.]+\.[0-9a-z\.]+\.[0-9a-z\.]+\.dmg)</string>
				<key>result_output_var_name</key>
				<string>url</string>
			</dict>
		</dict>
		<dict>
			<key>Processor</key>
			<string>URLDownloader</string>
			<key>Arguments</key>
            <dict>
                <key>filename</key>
                <string>%NAME%.dmg</string>
            </dict>
		</dict>
		<dict>
			<key>Processor</key>
			<string>EndOfCheckPhase</string>
		</dict>
	</array>
</dict>
</plist>

Lynx/Lynx.png METASEP

Lynx/Lynx.pkg.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of Lynx and creates a versioned PKG.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.pkg.Lynx</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>Lynx</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.Lynx</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>PkgCopier</string>
            <key>Arguments</key>
            <dict>
                <key>source_pkg</key>
                <string>%pathname%/Lynx.pkg</string>
                <key>pkg_path</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%-%version%.pkg</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>

Lynx/Lynx.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of Lynx and imports it into Munki.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.Lynx</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>Lynx</string>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>pkginfo</key>
        <dict>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>Lynx 6 annotation and lesson planning software enables students to interact with content and collaborate in the classroom. Using Lynx 6, teachers can create imaginative lessons with content from a variety of sources. The newly designed user interface makes Lynx 6 easy to use, and the upgraded back-end changes gives a faster, smoother, simpler experience.</string>
            <key>display_name</key>
            <string>Lynx</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
            <key>unattended_uninstall</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.Lynx</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>FlatPkgUnpacker</string>
            <key>Arguments</key>
            <dict>
                <key>flat_pkg_path</key>
                <string>%pathname%/Lynx.pkg</string>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/unpack</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PkgPayloadUnpacker</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_payload_path</key>
                <string>%RECIPE_CACHE_DIR%/unpack/Lynx.pkg/Payload</string>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/pkgroot/Applications</string>
                <key>purge_destination</key>
                <true/>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiInstallsItemsCreator</string>
            <key>Arguments</key>
            <dict>
                <key>faux_root</key>
                <string>%RECIPE_CACHE_DIR%/pkgroot/</string>
                <key>installs_item_paths</key>
                <array>
                    <string>/Applications/Lynx.app</string>
                </array>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiPkginfoMerger</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PlistReader</string>
            <key>Arguments</key>
            <dict>
                <key>info_path</key>
                <string>%RECIPE_CACHE_DIR%/pkgroot/Applications/Lynx.app/Contents/Info.plist</string>
                <key>plist_keys</key>
                <dict>
                    <key>CFBundleShortVersionString</key>
                    <string>version</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiPkginfoMerger</string>
            <key>Arguments</key>
            <dict>
                <key>additional_pkginfo</key>
                <dict>
                    <key>version</key>
                    <string>%version%</string>
                </dict>
            </dict>
        </dict>
        <dict>  
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%pathname%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PathDeleter</string>
            <key>Arguments</key>
            <dict>
                <key>path_list</key>
                <array>
                    <string>%RECIPE_CACHE_DIR%/pkgroot/</string>  
                    <string>%RECIPE_CACHE_DIR%/unpack/</string>                      
                </array>
            </dict>
        </dict>
    </array>
</dict>
</plist>

Lynx/Lynx.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads latest version of Lynx.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.Lynx</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>Lynx</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>URLDownloader</string>
            <key>Arguments</key>
            <dict>
                <key>filename</key>
                <string>%NAME%.dmg</string>
                <key>url</key>
                <string>https://download.saharasupport.com/lynx/production/macx/Lynx-install.dmg</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
            <key>Arguments</key>
            <dict>
                <key>expected_authority_names</key>
                <array>
                    <string>Developer ID Installer: Elmstone Systems Limited (3NACYS6VX8)</string>
                    <string>Developer ID Certification Authority</string>
                    <string>Apple Root CA</string>
                </array>
                <key>input_path</key>
                <string>%pathname%/Lynx.pkg</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>
Luxafor/Luxafor.png METASEP

Luxafor/Luxafor.pkg.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of Luxafor and creates a package.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.pkg.Luxafor</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>Luxafor</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.Luxafor</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>PlistReader</string>
            <key>Arguments</key>
            <dict>
                <key>info_path</key>
                <string>%destination_path%/Luxafor.app</string>
                <key>plist_keys</key>
                <dict>
                    <key>CFBundleIdentifier</key>
                    <string>bundleid</string>
                    <key>CFBundleShortVersionString</key>
                    <string>version</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PkgCreator</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_request</key>
                <dict>
                    <key>pkgname</key>
                    <string>%NAME%-%version%</string>
                    <key>chown</key>
                    <array>
                        <dict>
                            <key>path</key>
                            <string>Applications</string>
                            <key>user</key>
                            <string>root</string>
                            <key>group</key>
                            <string>admin</string>
                        </dict>
                    </array>
                    <key>id</key>
                    <string>%bundleid%</string>
                    <key>options</key>
                    <string>purge_ds_store</string>
                    <key>pkgdir</key>
                    <string>%RECIPE_CACHE_DIR%</string>
                    <key>pkgroot</key>
                    <string>%pkgroot%</string>
                </dict>
            </dict>
        </dict>
    </array>
</dict>
</plist>

Luxafor/Luxafor.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of Luxafor and imports into Munki.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.Luxafor</string>
    <key>Input</key>
    <dict>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>NAME</key>
        <string>Luxafor</string>
        <key>pkginfo</key>
        <dict>
            <key>blocking_applications</key>
            <array>
                <string>Luxafor</string>
            </array>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>Luxafor is a series of productivity tools that makes it easy to stay focused on tasks at hand. Notify your co-workers when you're immersed in work and can't be bothered, achieve concentration by cancelling out disturbing noises.</string>
            <key>display_name</key>
            <string>Luxafor</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>postinstall_script</key>
            <string>#!/bin/bash
# Delete 2.app bundle
if [ -d /Applications/Luxafor\ 2.app ]
then
    /bin/rm -rf /Applications/Luxafor\ 2.app
fi</string>
            <key>unattended_install</key>
            <true/>
            <key>unattended_uninstall</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.2.0</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.Luxafor</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>DmgCreator</string>
            <key>Arguments</key>
            <dict>
                <key>dmg_root</key>
                <string>%pkgroot%/Applications/</string>
                <key>dmg_path</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%.dmg</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%dmg_path%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PathDeleter</string>
            <key>Arguments</key>
            <dict>
                <key>path_list</key>
                <array>
                    <string>%pkgroot%</string>
                </array>
            </dict>
        </dict>
    </array>
</dict>
</plist>

Luxafor/Luxafor.jss.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of Luxafor and then uploads to the JSS</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.jss.Luxafor</string>
    <key>Input</key>
    <dict>
        <key>CATEGORY</key>
        <string>Applications</string>
        <key>GROUP_NAME</key>
        <string>%NAME%-update-smart</string>
        <key>GROUP_TEMPLATE</key>
        <string>SmartGroupTemplate.xml</string>
        <key>NAME</key>
        <string>Luxafor</string>
        <key>POLICY_CATEGORY</key>
        <string>Testing</string>
        <key>POLICY_TEMPLATE</key>
        <string>PolicyTemplate.xml</string>
        <key>SELF_SERVICE_DESCRIPTION</key>
        <string>Luxafor is a series of productivity tools that makes it easy to stay focused on tasks at hand. Notify your co-workers when you're immersed in work and can't be bothered, achieve concentration by cancelling out disturbing noises.</string>
        <key>SELF_SERVICE_ICON</key>
        <string>Luxafor.png</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.2.0</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.pkg.Luxafor</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>JSSImporter</string>
            <key>Arguments</key>
            <dict>
                <key>category</key>
                <string>%CATEGORY%</string>
                <key>groups</key>
                <array>
                    <dict>
                        <key>name</key>
                        <string>%GROUP_NAME%</string>
                        <key>smart</key>
                        <true/>
                        <key>template_path</key>
                        <string>%GROUP_TEMPLATE%</string>
                    </dict>
                </array>
                <key>policy_category</key>
                <string>%POLICY_CATEGORY%</string>
                <key>policy_template</key>
                <string>%POLICY_TEMPLATE%</string>
                <key>prod_name</key>
                <string>Luxafor</string>
                <key>self_service_description</key>
                <string>%SELF_SERVICE_DESCRIPTION%</string>
                <key>self_service_icon</key>
                <string>%SELF_SERVICE_ICON%</string>
                <key>version</key>
                <string>%version%</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>
Luxafor/Luxafor.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Download recipe for Luxafor.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.Luxafor</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>Luxafor</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.2.0</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>DeprecationWarning</string>
            <key>Arguments</key>
            <dict>
                <key>warning_message</key>
                <string>With the release of v2, Luxafor is now available via the AppStore only: https://apps.apple.com/app/id1559879690. As such, this recipe no longer works.</string>
            </dict>
        </dict>
        <dict>   
            <key>Processor</key>   
            <string>StopProcessingIf</string>   
            <key>Arguments</key>   
            <dict>   
                <key>predicate</key>   
                <string>TRUEPREDICATE</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>URLTextSearcher</string>
            <key>Arguments</key>
            <dict>
                <key>url</key>
                <string>https://luxafor.co.uk/download</string>
                <key>re_pattern</key>
                <string>https://luxafor\.com/uploads/luxafor_mac_v.*\.zip</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>URLDownloader</string>
            <key>Arguments</key>
            <dict>
                <key>url</key>
                <string>%match%</string>
                <key>filename</key>
                <string>%NAME%.zip</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PkgRootCreator</string>
            <key>Arguments</key>
            <dict>
                <key>pkgroot</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%</string>
                <key>pkgdirs</key>
                <dict>
                    <key>Applications</key>
                    <string>0775</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>Unarchiver</string>
            <key>Arguments</key>
            <dict>
                <key>archive_path</key>
                <string>%RECIPE_CACHE_DIR%/downloads/%NAME%.zip</string>
                <key>destination_path</key>
                <string>%pkgroot%/Applications/</string>
                <key>purge_destination</key>
                <true/>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
            <key>Arguments</key>
            <dict>
                <key>input_path</key>
                <string>%destination_path%/Luxafor.app</string>
                <key>requirement</key>
                <string>anchor apple generic and identifier "com.ideabits.Luxafor" 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] = UB463X3CTK)</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>

Loom/Loom.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>    
	<key>Description</key>
    <string>Downloads the latest Loom disk image and imports it into munki.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.Loom</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>Loom</string>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/Loom</string>
        <key>pkginfo</key>
        <dict>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>Say it with video! Loom is the most effective way to get your message across, no matter where you work.</string>
            <key>display_name</key>
            <string>Loom</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>1.0</string>
    <key>ParentRecipe</key>
    <string>com.github.nstrauss.download.Loom</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%pathname%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
        </dict>
    </array>
</dict>
</plist>
Logitech Presentation/Logitech Presentation.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of Logitech Presentation and imports it into Munki.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.Logitech Presentation</string>
    <key>Input</key>
    <dict>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>NAME</key>
        <string>LogitechPresentation</string>
        <key>pkginfo</key>
        <dict>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>The Logitech Presentation software sets the stage before your presentation begins. Manage your time, toggle pointer mode, and customize actions within a user-friendly interface.</string>
            <key>developer</key>
            <string>Logitech</string>
            <key>display_name</key>
            <string>Logitech Presentation</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
            <key>unattended_uninstall</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>ParentRecipe</key>
    <string>com.github.grahampugh.recipes.pkg.LogitechPresentation</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>MunkiInstallsItemsCreator</string>
            <key>Arguments</key>
            <dict>
                <key>faux_root</key>
                <string>%pkgroot%</string>
                <key>installs_item_paths</key>
                <array>
                    <string>/Library/Application Support/Logitech.localized/Logitech Presentation.localized/Logitech Presentation.app</string>
                </array>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiPkginfoMerger</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%pkg_path%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PathDeleter</string>
            <key>Arguments</key>
            <dict>
                <key>path_list</key>
                <array>
                    <string>%RECIPE_CACHE_DIR%/pkgroot</string>
                    <string>%RECIPE_CACHE_DIR%/Scripts</string>
                </array>
            </dict>
        </dict>
    </array>
</dict>
</plist>
LogMeIn Rescue Technician Console/LogMeIn Rescue Technician Console.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of LogMeIn Rescue Technician Console and imports into Munki.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.LogMeInRescueTechnicianConsole</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>LogMeIn Rescue Technician Console</string>
        <key>DOWNLOAD_URL</key>
        <string>https://secure.logmeinrescue.com/Files/TechConsoleMAC/LogMeInRescueTechnicianConsoleMAC.dmg</string>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>        
        <key>pkginfo</key>
        <dict>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>LogMeIn Rescue Technician Console application for macOS.</string>
            <key>display_name</key>
            <string>%NAME%</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
            <key>unattended_uninstall</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>1.0.0</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.LogMeInRescueTechnicianConsole</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>Versioner</string>
            <key>Arguments</key>
            <dict>
                <key>input_plist_path</key>
                <string>%pathname%/LogMeIn-Rescue.app/Contents/Info.plist</string>
                <key>plist_version_key</key>
                <string>CFBundleVersion</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiPkginfoMerger</string>
            <key>Arguments</key>
            <dict>
                <key>additional_pkginfo</key>
                <dict>
                    <key>version</key>
                    <string>%version%</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%pathname%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
                <key>version_comparison_key</key>
                <string>CFBundleVersion</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>

LogMeIn Rescue Technician Console/LogMeIn Rescue Technician Console.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of LogMeIn Rescue Technician Console.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.LogMeInRescueTechnicianConsole</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>LogMeIn Rescue Technician Console</string>
        <key>DOWNLOAD_URL</key>
        <string>https://secure.logmeinrescue.com/Files/TechConsoleMAC/LogMeInRescueTechnicianConsoleMAC.dmg</string>
    </dict>
    <key>MinimumVersion</key>
    <string>1.0.0</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>URLDownloader</string>
            <key>Arguments</key>
            <dict>
                <key>url</key>
                <string>%DOWNLOAD_URL%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>          
            <key>Arguments</key>
            <dict>
                <key>input_path</key>
                <string>%pathname%/*.app</string>
                <key>requirement</key>
                <string>anchor apple generic and certificate leaf[field.1.2.840.113635.100.6.1.9] /* exists */ or anchor apple generic and 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] = GFNFVT632V</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>

LogMeIn Installer/LogMeIn.png METASEP

LogMeIn Installer/LogMeIn Installer.pkg.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of LogMeIn Installer and creates a package
    
    NOTE: This installs "/Applications/LogMeIn Installer *.app", postinstall a script will be needed that follows the below:
    
    https://www.jamf.com/jamf-nation/discussions/16802/deploying-logmein-via-casper</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.pkg.LogMeIn Installer</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>LogMeIn Installer</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.LogMeIn Installer</string>
    <key>Process</key>
    <array>
		<dict>
            <key>Processor</key>
            <string>FileFinder</string>
            <key>Arguments</key>
            <dict>
                <key>pattern</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%/Applications/LogMeIn Installer *.app</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PkgRootCreator</string>
            <key>Arguments</key>
            <dict>
                <key>pkgroot</key>
                <string>%RECIPE_CACHE_DIR%/application_payload/</string>
                <key>pkgdirs</key>
                <dict/>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PkgPayloadUnpacker</string>
            <key>Arguments</key>
            <dict>
                <key>destination_path</key>
                <string>%pkgroot%</string>
                <key>pkg_payload_path</key>
                <string>%found_filename%/Contents/Resources/archive.pax.gz</string>
                <key>purge_destination</key>
                <string>true</string>
            </dict>
        </dict>
		<dict>
			<key>Processor</key>
			<string>Versioner</string>
			<key>Arguments</key>
			<dict>
				<key>input_plist_path</key>
				<string>%pkgroot%/Applications/Toolkit.app/Contents/Info.plist</string>
			</dict>
		</dict>
        <dict>
            <key>Processor</key>
            <string>PkgCreator</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_request</key>
                <dict>
                    <key>chown</key>
                    <array>
                        <dict>
                            <key>group</key>
                            <string>admin</string>
                            <key>path</key>
                            <string>Applications</string>
                            <key>user</key>
                            <string>root</string>
                        </dict>
                    </array>
                    <key>id</key>
                    <string>com.logmein.LogMeInInstaller</string>
                    <key>options</key>
                    <string>purge_ds_store</string>
                    <key>pkgname</key>
                    <string>%NAME%-%version%</string>
                    <key>pkgroot</key>
                    <string>%RECIPE_CACHE_DIR%/%NAME%</string>
                    <key>version</key>
                    <string>%version%</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PathDeleter</string>
            <key>Arguments</key>
            <dict>
                <key>path_list</key>
                <array>
                    <string>%RECIPE_CACHE_DIR%/application_payload</string> 
                    <string>%RECIPE_CACHE_DIR%/%NAME%</string>                              
                </array>
            </dict>
        </dict> 
    </array>
</dict>
</plist>

LogMeIn Installer/LogMeIn Installer.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the current release version of LogMeIn Installer and imports into Munki
    
    NOTE: This installs "/Applications/LogMeIn Installer *.app", postinstall a script will be needed that follows the below:
    
    https://www.jamf.com/jamf-nation/discussions/16802/deploying-logmein-via-casper</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.LogMeIn Installer</string>
    <key>Input</key>
    <dict>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>NAME</key>
        <string>LogMeIn Installer</string>
        <key>pkginfo</key>
        <dict>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>category</key>
            <string>Utilities</string>
            <key>developer</key>
            <string>LogMeIn Installer</string>
            <key>description</key>
            <string>The #1 most reliable remote access tool.</string>
            <key>display_name</key>
            <string>LogMeIn Installer</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.3.1</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.LogMeIn Installer</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>PkgRootCreator</string>
            <key>Arguments</key>
            <dict>
                <key>pkgroot</key>
                <string>%RECIPE_CACHE_DIR%/application_payload/</string>
                <key>pkgdirs</key>
                <dict/>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>FileFinder</string>
            <key>Arguments</key>
            <dict>
                <key>pattern</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%/Applications/LogMeIn Installer *.app</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PkgPayloadUnpacker</string>
            <key>Arguments</key>
            <dict>
                <key>destination_path</key>
                <string>%pkgroot%</string>
                <key>pkg_payload_path</key>
                <string>%found_filename%/Contents/Resources/archive.pax.gz</string>
                <key>purge_destination</key>
                <string>true</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiInstallsItemsCreator</string>
            <key>Arguments</key>
            <dict>
                <key>faux_root</key>
                <string>%RECIPE_CACHE_DIR%/application_payload/</string>
                <key>installs_item_paths</key>
                <array>
                    <string>/Applications/Toolkit.app</string>
                </array>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiPkginfoMerger</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>DmgCreator</string>
            <key>Arguments</key>
            <dict>
                <key>dmg_path</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%.dmg</string>
                <key>dmg_root</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%/Applications</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%dmg_path%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PathDeleter</string>
            <key>Arguments</key>
            <dict>
                <key>path_list</key>
                <array>
                    <string>%RECIPE_CACHE_DIR%/application_payload</string> 
                    <string>%RECIPE_CACHE_DIR%/%NAME%</string>                              
                </array>
            </dict>
        </dict> 
    </array>
</dict>
</plist>
LogMeIn Installer/LogMeIn Installer.jss.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the current release version of LogMeIn Installer and then uploads to the JSS.
    
    NOTE: This installs "/Applications/LogMeIn Installer *.app", postinstall a script will be needed that follows the below:
    
    https://www.jamf.com/jamf-nation/discussions/16802/deploying-logmein-via-casper</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.jss.LogMeIn Installer</string>
    <key>Input</key>
    <dict>
        <key>CATEGORY</key>
        <string>Utilities</string>
        <key>GROUP_NAME</key>
        <string>%NAME%-update-smart</string>
        <key>GROUP_TEMPLATE</key>
        <string>SmartGroupTemplate.xml</string>
        <key>NAME</key>
        <string>LogMeIn Installer</string>
        <key>POLICY_CATEGORY</key>
        <string>Testing</string>
        <key>POLICY_TEMPLATE</key>
        <string>PolicyTemplate.xml</string>
        <key>SELF_SERVICE_DESCRIPTION</key>
        <string>The #1 most reliable remote access tool.</string>
        <key>SELF_SERVICE_ICON</key>
        <string>LogMeIn.png</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.pkg.LogMeIn Installer</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>JSSImporter</string>
            <key>Arguments</key>
            <dict>
                <key>category</key>
                <string>%CATEGORY%</string>
                <key>groups</key>
                <array>
                    <dict>
                        <key>name</key>
                        <string>%GROUP_NAME%</string>
                        <key>smart</key>
                        <true/>
                        <key>template_path</key>
                        <string>%GROUP_TEMPLATE%</string>
                    </dict>
                </array>
                <key>policy_category</key>
                <string>%POLICY_CATEGORY%</string>
                <key>policy_template</key>
                <string>%POLICY_TEMPLATE%</string>
                <key>prod_name</key>
                <string>Toolkit</string>
                <key>self_service_description</key>
                <string>%SELF_SERVICE_DESCRIPTION%</string>
                <key>self_service_icon</key>
                <string>%SELF_SERVICE_ICON%</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>

LogMeIn Installer/LogMeIn Installer.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Download recipe for the latest version of LogMeIn Installer.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.LogMeIn Installer</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>LogMeIn Installer</string>
        <key>DOWNLOAD_URL</key>
        <string>https://secure.logmein.com/LogMeInInstallerMac.zip</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.2.0</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>URLDownloader</string>
            <key>Arguments</key>
            <dict>
                <key>url</key>
                <string>%DOWNLOAD_URL%</string>
                <key>filename</key>
                <string>%NAME%.zip</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>Unarchiver</string>
            <key>Arguments</key>
            <dict>
                <key>archive_path</key>
                <string>%pathname%</string>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%/Applications</string>
                <key>purge_destination</key>
                <true/>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
            <key>Arguments</key>
            <dict>
                <key>input_path</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%/Applications/LogMeIn Installer *.app</string>
                <key>requirement</key>
                <string>anchor apple generic and (certificate leaf[field.1.2.840.113635.100.6.1.9] /* exists */ or anchor apple generic) and 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] = GFNFVT632V and identifier "com.logmein.LogMeInInstaller"</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>

Little Snitch 5/Little Snitch 5.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
    <dict>
        <key>Description</key>
        <string>Downloads the latest version of Little Snitch 5 and imports into Munki</string>
        <key>Identifier</key>
        <string>com.github.dataJAR-recipes.munki.Little Snitch 5</string>
        <key>Input</key>
        <dict>
            <key>MUNKI_REPO_SUBDIR</key>
            <string>apps/%NAME%</string>
            <key>NAME</key>
            <string>Little Snitch 5</string>
            <key>pkginfo</key>
            <dict>
                <key>catalogs</key>
                <array>
                    <string>testing</string>
                </array>
                <key>description</key>
                <string>Little Snitch is a host-based application firewall for macOS.</string>
                <key>developer</key>
                <string>Objective Development</string>
                <key>display_name</key>
                <string>Little Snitch 5</string>
                <key>name</key>
                <string>%NAME%</string>
                <key>unattended_install</key>
                <true></true>
                <key>unattended_uninstall</key>
                <true></true>
            </dict>
        </dict>
        <key>MinimumVersion</key>
        <string>0.5.0</string>
        <key>ParentRecipe</key>
        <string>com.github.smithjw.download.LittleSnitch5</string>
        <key>Process</key>
        <array>
            <dict>
                <key>Arguments</key>
                <dict>
                    <key>pkg_path</key>
                    <string>%pathname%</string>
                    <key>repo_subdirectory</key>
                    <string>%MUNKI_REPO_SUBDIR%</string>
                </dict>
                <key>Processor</key>
                <string>MunkiImporter</string>
            </dict>
        </array>
    </dict>
</plist>
Lightwright/Lightwright6.png METASEP

Lightwright/LightWright.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the current release version of Lightwright 6 and imports it into Munki.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.lightwright</string>
      <key>Input</key>
    <dict>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>NAME</key>
        <string>Lightwright</string>
        <key>pkginfo</key>
        <dict>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
			<key>developer</key>
			<string>John McKernon Software</string>
            <key>description</key>
            <string>Lightwright is a proprietary software that manages theatrical lighting data and paperwork.</string>
            <key>display_name</key>
            <string>Lightwright</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.3.1</string>
    <key>ParentRecipe</key>
	<string>com.github.jazzace.download.lightwright</string>
    <key>Process</key>
	<array>
		<dict>
			<key>Arguments</key>
			<dict>
				<key>pkg_path</key>
				<string>%pathname%</string>
				<key>repo_subdirectory</key>
				<string>%MUNKI_REPO_SUBDIR%</string>
				<key>version_comparison_key</key>
				<string>CFBundleShortVersionString</string>
			</dict>
			<key>Processor</key>
			<string>MunkiImporter</string>
		</dict>
    </array>
</dict>
</plist>
Lifesize/Lifesize.png METASEP

Lifesize/Lifesize.pkg.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest Lifesize disk image and  builds a package.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.pkg.Lifesize</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>Lifesize</string>
    </dict>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.Lifesize</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>AppDmgVersioner</string>
            <key>Arguments</key>
            <dict>
                <key>dmg_path</key>
                <string>%pathname%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PkgRootCreator</string>
            <key>Arguments</key>
            <dict>
                <key>pkgroot</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%</string>
                <key>pkgdirs</key>
                <dict>
                    <key>Applications</key>
                    <string>0775</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>Copier</string>
            <key>Arguments</key>
            <dict>
                <key>source_path</key>
                <string>%pathname%/%app_name%</string>
                <key>destination_path</key>
                <string>%pkgroot%/Applications/%app_name%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PkgCreator</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_request</key>
                <dict>
                    <key>pkgname</key>
                    <string>%NAME%-%version%</string>
                    <key>version</key>
                    <string>%version%</string>
                    <key>id</key>
                    <string>%bundleid%</string>
                    <key>options</key>
                    <string>purge_ds_store</string>
                    <key>chown</key>
                    <array>
                        <dict>
                            <key>path</key>
                            <string>Applications</string>
                            <key>user</key>
                            <string>root</string>
                            <key>group</key>
                            <string>admin</string>
                        </dict>
                    </array>
                </dict>
            </dict>
        </dict>
    </array>
</dict>
</plist>

Lifesize/Lifesize.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest Lifesize disk image and imports into Munki.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.Lifesize</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>Lifesize</string>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>pkginfo</key>
        <dict>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
           	<key>category</key>
			<string>Applications</string>
			<key>developer</key>
			<string>Lifesize</string>
            <key>description</key>
            <string>Work smarter with award-winning video conferencing that goes everywhere you do.</string>
            <key>display_name</key>
            <string>Lifesize</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.2.0</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.Lifesize</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%pathname%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
        </dict>
    </array>
</dict>
</plist>

Lifesize/Lifesize.jss.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>Description</key>
	<string>Downloads the latest Lifesize disk image and then uploads to the JSS.</string>
	<key>Identifier</key>
	<string>com.github.dataJAR-recipes.jss.Lifesize</string>
	<key>Input</key>
	<dict>
		<key>CATEGORY</key>
		<string>Productivity</string>
		<key>GROUP_NAME</key>
		<string>%NAME%-update-smart</string>
		<key>GROUP_TEMPLATE</key>
		<string>Lifesize-SmartGroupTemplate.xml</string>
		<key>NAME</key>
		<string>Lifesize</string>
		<key>POLICY_CATEGORY</key>
		<string>Testing</string>
		<key>POLICY_TEMPLATE</key>
		<string>PolicyTemplate.xml</string>
		<key>SELF_SERVICE_DESCRIPTION</key>
		<string>Work smarter with award-winning video conferencing that goes everywhere you do.</string>
		<key>SELF_SERVICE_ICON</key>
		<string>Lifesize.png</string>
	</dict>
	<key>MinimumVersion</key>
	<string>0.6.1</string>
	<key>ParentRecipe</key>
	<string>com.github.dataJAR-recipes.pkg.Lifesize</string>
	<key>Process</key>
	<array>
		<dict>
			<key>Arguments</key>
			<dict>
				<key>category</key>
				<string>%CATEGORY%</string>
				<key>extension_attributes</key>
				<array>
					<dict>
						<key>ext_attribute_path</key>
						<string>Lifesize-CFBundleVersionExtensionAttribute.xml</string>
					</dict>
				</array>
				<key>groups</key>
				<array>
					<dict>
						<key>name</key>
						<string>%GROUP_NAME%</string>
						<key>smart</key>
						<true/>
						<key>template_path</key>
						<string>%GROUP_TEMPLATE%</string>
					</dict>
				</array>
				<key>policy_category</key>
				<string>%POLICY_CATEGORY%</string>
				<key>policy_template</key>
				<string>%POLICY_TEMPLATE%</string>
				<key>prod_name</key>
				<string>%NAME%</string>
				<key>self_service_description</key>
				<string>%SELF_SERVICE_DESCRIPTION%</string>
				<key>self_service_icon</key>
				<string>%SELF_SERVICE_ICON%</string>
			</dict>
			<key>Processor</key>
			<string>JSSImporter</string>
		</dict>
	</array>
</dict>
</plist>

Lifesize/Lifesize.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Download recipe for Lifesize.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.Lifesize</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>Lifesize</string>
        <key>USER_AGENT</key>
        <string>Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/603.3.8 (KHTML, like Gecko) Version/10.1.2 Safari/603.3.8</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.2.0</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>URLDownloader</string>
            <key>Arguments</key>
            <dict>
                <key>url</key>
                <string>https://download.lifesizecloud.com/download</string>
                <key>result_output_var_name</key>
                <string>url</string>
                <key>request_headers</key>
                <dict>
                    <key>user-agent</key>
                    <string>%USER_AGENT%</string>
                </dict>
                <key>filename</key>
                <string>%NAME%.dmg</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
            <key>Arguments</key>
            <dict>
                <key>input_path</key>
                <string>%pathname%/Lifesize.app</string>
                <key>requirement</key>
                <string>identifier "com.lifesize.cloud" and anchor apple generic and 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] = L57M4NT7Y7</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>
Lifesize/Lifesize-SmartGroupTemplate.xml METASEP
<computer_group>
	<name>%group_name%</name>
	<is_smart>true</is_smart>
	<criteria>
		<criterion>
			<name>Application Title</name>
			<priority>0</priority>
			<and_or>and</and_or>
			<search_type>is</search_type>
			<value>%JSS_INVENTORY_NAME%</value>
		</criterion>
		<criterion>
			<name>LifesizeVersion</name>
			<priority>1</priority>
			<and_or>and</and_or>
			<search_type>is not</search_type>
			<value>%VERSION%</value>
		</criterion>
		<criterion>
			<name>Computer Group</name>
			<priority>2</priority>
			<and_or>and</and_or>
			<search_type>member of</search_type>
			<value>Testing</value>
		</criterion>
	</criteria>
</computer_group>

Lifesize/Lifesize-CFBundleVersionExtensionAttribute.xml METASEP
<computer_extension_attribute>
	<name>LifesizeVersion</name>
	<description />
	<data_type>String</data_type>
	<input_type>
		<type>script</type>
		<platform>Mac</platform>
		<script>#!/bin/assh
CFBundleVersion=""
if [ -f "/Applications/Lifesize.app/Contents/Info.plist" ]; then
    CFBundleVersion=$(defaults read "/Applications/Lifesize.app/Contents/Info.plist" CFBundleVersion)
fi
echo "&lt;result&gt;$CFBundleVersion&lt;/result&gt;"
exit 0
        </script>
	</input_type>
	<inventory_display>Extension Attributes</inventory_display>
	<recon_display>Extension Attributes</recon_display>
</computer_extension_attribute>

Ladibug/Ladibug.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of Ladibug and imports into Munki</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.Ladibug</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>Ladibug</string>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>pkginfo</key>
        <dict>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>Driver software for Lumens document cameras.</string>
            <key>display_name</key>
            <string>Ladibug</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
            <key>unattended_uninstall</key>
            <true/>
            <key>uninstall_method</key>
            <string>uninstall_script</string>
            <key>uninstall_script</key>
            <string>#!/usr/bin/env bash
# Contents of uninstall.bash found within the Ladbibug Uninstaller.app

# Stop plugin service
sudo launchctl remove tw.com.lumens.DocumentCamera

# Preferences
rm -f ~/Library/Preferences/tw.com.Lumens.WirelessDC2.plist
rm -f ~/Library/Preferences/tw.com.Lumens.WirelessDC1.plist
rm -f ~/Library/Preferences/tw.com.lumens.Ladibug.plist
rm -f ~/Library/Preferences/tw.com.lumens.LumensDocumentCameraDC122.plist

# Application
rm -rf /Applications/Ladibug.app

# Plugin
rm -rf /Library/CoreMediaIO/Plug-Ins/DAL/LumensDocumentCamera.plugin
rm -rf /Library/LaunchDaemons/tw.com.lumens.DocumentCamera.plist

# QuickTime
ls -d /Library/QuickTime/Lumens*.component | xargs rm -rf

# Driver
ls -d /System/Library/Extensions/Lumens*.kext | xargs rm -rf
ls -d /Library/Extensions/Lumens*.kext | xargs rm -rf

# Receipts
ls /var/db/receipts/tw.com.lumens.pkgs* | xargs rm -rf

# Receipts (Legacy packages)
ls /var/db/receipts/tw.com.lumens.ladibug* | xargs rm -rf

# Receipts (Generated before osx 10.6)
rm -rf /Library/Receipts/lumenswirelessdc2.pkg
rm -rf ~/Library/Receipts/lumenswirelessdc2.pkg

rm -rf /Library/Receipts/lumensdocumentcameradc170.pkg
rm -rf ~/Library/Receipts/lumensdocumentcameradc170.pkg

rm -rf /Library/Receipts/lumensdocumentcameradc122.pkg
rm -rf ~/Library/Receipts/lumensdocumentcameradc122.pkg

rm -rf /Library/Receipts/lumenswirelessdc1.pkg
rm -rf ~/Library/Receipts/lumenswirelessdc1.pkg

rm -rf /Library/Receipts/lumensdocumentcamera.pkg
rm -rf ~/Library/Receipts/lumensdocumentcamera.pkg

rm -rf /Library/Receipts/lumensdigitizer.pkg
rm -rf ~/Library/Receipts/lumensdigitizer.pkg

rm -rf /Library/Receipts/lumensdc260msdc.pkg
rm -rf ~/Library/Receipts/lumensdc260msdc.pkg

rm -rf /Library/Receipts/lumensaudiodriver.pkg
rm -rf ~/Library/Receipts/lumensaudiodriver.pkg

rm -rf /Library/Receipts/ladibug.pkg
rm -rf ~/Library/Receipts/ladibug.pkg

rm -rf /Library/Receipts/ladibug20Preflight.pkg
rm -rf ~/Library/Receipts/ladibug20Preflight.pkg

# For macOS 10.15 above
# Clear permissions if available
sudo tccutil reset All tw.com.lumens.Ladibug || true</string>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.5.0</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.Ladibug</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>FlatPkgUnpacker</string>
            <key>Arguments</key>
            <dict>
                <key>flat_pkg_path</key>
                <string>%found_filename%</string>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/unpack</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PkgRootCreator</string>
            <key>Arguments</key>
            <dict>
                <key>pkgroot</key>
                <string>%RECIPE_CACHE_DIR%/pkgroot/</string>
                <key>pkgdirs</key>
                <dict>
                    <key>Applications</key>
                    <string>0755</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PkgPayloadUnpacker</string>
            <key>Arguments</key>
            <dict>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/pkgroot</string>
                <key>pkg_payload_path</key>
                <string>%RECIPE_CACHE_DIR%/unpack/Ladibug.pkg/Payload</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiInstallsItemsCreator</string>
            <key>Arguments</key>
            <dict>
                <key>faux_root</key>
                <string>%RECIPE_CACHE_DIR%/pkgroot</string>
                <key>installs_item_paths</key>
                <array>
                    <string>/Applications/Ladibug.app</string>
                </array>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiPkginfoMerger</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%input_path%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PathDeleter</string>
            <key>Arguments</key>
            <dict>
                <key>path_list</key>
                <array>
                    <string>%RECIPE_CACHE_DIR%/pkgroot</string>
                    <string>%RECIPE_CACHE_DIR%/unpack</string>
                    <string>%RECIPE_CACHE_DIR%/unzip</string>
                </array>
            </dict>
        </dict>
    </array>
</dict>
</plist>
Ladibug/Ladibug.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of Ladibug</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.Ladibug</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>Ladibug</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.5.0</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>URLTextSearcher</string>
            <key>Arguments</key>
            <dict>
                <key>re_pattern</key>
                <string>\/Download\/Ladibug-MAC-\S*\.zip</string>
                <key>result_output_var_name</key>
                <string>match</string>
                <key>url</key>
                <string>https://www.mylumens.com/en/Downloads_Search?id=1&amp;keyword=ladibug&amp;keyword2=mac</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>URLDownloader</string>
            <key>Arguments</key>
            <dict>
                <key>url</key>
                <string>https://www.mylumens.com%match%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>Unarchiver</string>
            <key>Arguments</key>
            <dict>
                <key>archive_path</key>
                <string>%pathname%</string>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/unzip</string>
                <key>purge_destination</key>
                <true></true>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>FileFinder</string>
            <key>Arguments</key>
            <dict>
                <key>pattern</key>
                <string>%RECIPE_CACHE_DIR%/unzip/*/*.pkg</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
            <key>Arguments</key>
            <dict>
                <key>input_path</key>
                <string>%found_filename%</string>
                <key>expected_authority_names</key>
                <array>
                    <string>Developer ID Installer: Lumens Digital Optics Inc. (4V93XH96HM)</string>
                    <string>Developer ID Certification Authority</string>
                    <string>Apple Root CA</string>
                </array>
            </dict>
        </dict>
    </array>
</dict>
</plist>
Labels and Addresses/Labels and Addresses.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>Description</key>
	<string>Downloads the latest version of Labels and Addresses and imports it into Munki.</string>
	<key>Identifier</key>
	<string>com.github.dataJAR-recipes.munki.LabelsandAddresses</string>
	<key>Input</key>
	<dict>
		<key>MUNKI_REPO_SUBDIR</key>
		<string>apps/%NAME%</string>
		<key>NAME</key>
		<string>LabelsandAddresses</string>
		<key>pkginfo</key>
		<dict>
			<key>catalogs</key>
			<array>
				<string>testing</string>
			</array>
			<key>description</key>
			<string>Labels and Addresses is a home and office tool for designing and printing envelopes, postcards and diverse labels, such as address, shipping, file folder and barcode labels. The program can automatically take addresses from a list and insert them while printing for mass mailings.</string>
			<key>developer</key>
			<string>Belight Software</string>
			<key>display_name</key>
			<string>Labels and Addresses</string>
			<key>maximum_os_version</key>
			<string>10.14.6</string>
			<key>name</key>
			<string>%NAME%</string>
			<key>unattended_install</key>
			<true/>
			<key>unattended_uninstall</key>
			<true/>
		</dict>
	</dict>
	<key>MinimumVersion</key>
	<string>1.0.0</string>
	<key>ParentRecipe</key>
	<string>com.github.neilmartin83.download.LabelsandAddresses</string>
	<key>Process</key>
	<array>
		<dict>
			<key>Arguments</key>
			<dict>
				<key>pkg_path</key>
				<string>%pathname%</string>
				<key>repo_subdirectory</key>
				<string>%MUNKI_REPO_SUBDIR%</string>
			</dict>
			<key>Processor</key>
			<string>MunkiImporter</string>
		</dict>
	</array>
</dict>
</plist>

LXFree/LXFree.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of LXFree and imports it into Munki.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.LXFree</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>LXFree</string>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>pkginfo</key>
        <dict>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>LXFree is an application for drawing light plots and generating paperwork. LXFree combines drawing a light plot with editing information associated with graphic objects in the drawing. LXFree produces reports by linking the graphics, attached data, and additional databases related to the properties of these objects.</string>
            <key>developer</key>
            <string>Claude Heintz Design</string>
            <key>display_name</key>
            <string>LXFree</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.LXFree</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Arguments</key>
            <dict>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/unpack/</string>
                <key>flat_pkg_path</key>
                <string>%pathname%/Install LXFree.pkg</string>
                <key>purge_destination</key>
                <string>true</string>
            </dict>
            <key>Processor</key>
            <string>FlatPkgUnpacker</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PkgPayloadUnpacker</string>
            <key>Arguments</key>
            <dict>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/pkgroot/</string>
                <key>pkg_payload_path</key>
                <string>%RECIPE_CACHE_DIR%/unpack/lxfree.pkg/Payload</string>
                <key>purge_destination</key>
                <string>true</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiInstallsItemsCreator</string>
            <key>Arguments</key>
            <dict>
                <key>faux_root</key>
                <string>%RECIPE_CACHE_DIR%/pkgroot/</string>
                <key>installs_item_paths</key>
                <array>
                    <string>/Applications/LXFree.app</string>
                </array>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiPkginfoMerger</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PlistReader</string>
            <key>Arguments</key>
            <dict>
                <key>info_path</key>
                <string>%RECIPE_CACHE_DIR%/pkgroot/Applications/LXFree.app/Contents/Info.plist</string>
                <key>plist_keys</key>
                <dict>
                    <key>CFBundleShortVersionString</key>
                    <string>version</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiPkginfoMerger</string>
            <key>Arguments</key>
            <dict>
                <key>additional_pkginfo</key>
                <dict>
                    <key>version</key>
                    <string>%version%</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PkgCopier</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%.pkg</string>
                <key>source_pkg</key>
                <string>%pathname%/Install LXFree.pkg</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%pkg_path%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PathDeleter</string>
            <key>Arguments</key>
            <dict>
                <key>path_list</key>
                <array>
                    <string>%RECIPE_CACHE_DIR%/pkgroot</string>
                    <string>%RECIPE_CACHE_DIR%/unpack</string>
                </array>
            </dict>
        </dict>
    </array>
</dict>
</plist>

LXFree/LXFree.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads latest LXFree installer in a disk image. </string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.LXFree</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>LXFree</string>
        <key>DOWNLOAD_URL</key>
        <string>https://www.claudeheintzdesign.com/downloads/lxfree_install.dmg</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.0</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>URLDownloader</string>
            <key>Arguments</key>
            <dict>
                <key>url</key>
                <string>%DOWNLOAD_URL%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
            <key>Arguments</key>
            <dict>
                <key>input_path</key>
                <string>%pathname%/Install LXFree.pkg</string>
                <key>expected_authority_names</key>
                <array>
                    <string>Developer ID Installer: Claude Heintz Design (T95243XU48)</string>
                    <string>Developer ID Certification Authority</string>
                    <string>Apple Root CA</string>
                </array>
            </dict>
        </dict>
    </array>
</dict>
</plist>


LEGO MINDSTORMS Education EV3/LEGO MINDSTORMS Education EV3.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of LEGO MINDSTORMS Education EV3 and imports it into Munki.
    
    Based on: https://github.com/autopkg/aysiu-recipes/blob/master/LegoMindstorms/LegoMindstorms.munki.recipe</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.LEGO MINDSTORMS Education EV3</string>
    <key>Input</key>
    <dict>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>NAME</key>
        <string>LEGO MINDSTORMS Education EV3</string>
        <key>pkginfo</key>
        <dict>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>The Lego Mindstorms series of kits contain software and hardware to create customizable, programmable robots. They include an intelligent brick computer that controls the system, a set of modular sensors and motors, and Lego parts from the Technic line to create the mechanical systems.</string>
            <key>display_name</key>
            <string>LEGO MINDSTORMS Education EV3</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>developer</key>
            <string>LEGO</string>
            <key>category</key>
            <string>Development</string>
            <key>unattended_install</key>
            <true/>
        </dict>
    </dict>
    <key>ParentRecipe</key>
    <string>com.github.sebtomasi.download.LegoMindstormsEducation</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>FlatPkgUnpacker</string>
            <key>Arguments</key>
			<dict>
				<key>flat_pkg_path</key>
				<string>%pathname%/LEGO MINDSTORMS Education EV3.pkg</string>
				<key>destination_path</key>
				<string>%RECIPE_CACHE_DIR%/pkg_unpack</string>
				<key>purge_destination</key>
				<true/>
			</dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PkgRootCreator</string>
            <key>Arguments</key>
                <dict>
                <key>pkgroot</key>
                <string>%RECIPE_CACHE_DIR%/application_payload/Applications</string>
                <key>pkgdirs</key>
                <dict/>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PkgPayloadUnpacker</string>
            <key>Arguments</key>
			<dict>
				<key>pkg_payload_path</key>
				<string>%RECIPE_CACHE_DIR%/pkg_unpack/EV3_EDU_Core.pkg/Payload</string>
				<key>destination_path</key>
				<string>%RECIPE_CACHE_DIR%/application_payload/Applications</string>
				<key>purge_destination</key>
				<true/>
			</dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiInstallsItemsCreator</string>
            <key>Comment</key>
            <string>LEGO Mindstorms' receipts lead to an install loop, so there has to be an installs array, but the .app bundle version seems to always be 1, so we're going to make an installs array out of the executable.</string>
            <key>Arguments</key>
            <dict>
                <key>faux_root</key>
                <string>%RECIPE_CACHE_DIR%/application_payload</string>
                <key>installs_item_paths</key>
                <array>
                    <string>/Applications/LEGO MINDSTORMS Education EV3.app/Contents/MacOS/MindstormsEV3</string>
                </array>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiPkginfoMerger</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
                <dict>
                    <key>pkg_path</key>
                    <string>%pathname%</string>
                    <key>repo_subdirectory</key>
                    <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>
LAPS for macOS/LAPS for macOS.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of LAPS for macOS and imports it into Munki.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.LAPSformacOS</string>
    <key>Input</key>
    <dict>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>NAME</key>
        <string>LAPSformacOS</string>
        <key>pkginfo</key>
        <dict>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>A macOS Application for retrieving LAPS AD Passwords.</string>
            <key>developer</key>
            <string>Penn State University</string>
            <key>display_name</key>
            <string>LAPS for macOS</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
            <key>unattended_uninstall</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>1.0.0</string>
    <key>ParentRecipe</key>
    <string>com.github.neilmartin83.download.LAPSformacOS</string>
    <key>Process</key>
    <array>
       <dict>     
            <key>Processor</key>
            <string>PkgRootCreator</string>
            <key>Arguments</key>
            <dict>
                <key>pkgroot</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%</string>
                <key>pkgdirs</key>
                <dict>
                    <key>Applications</key>
                    <string>0775</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>Unarchiver</string>
            <key>Arguments</key>
            <dict>
                <key>destination_path</key>
                <string>%pkgroot%/Applications</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiInstallsItemsCreator</string>
            <key>Arguments</key>
            <dict>
                <key>faux_root</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%</string>
                <key>version_comparison_key</key>
                <string>CFBundleShortVersionString</string>
                <key>installs_item_paths</key>
                <array>
                    <string>/Applications/LAPS for macOS.app</string>
                </array>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiPkginfoMerger</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>Versioner</string>
            <key>Arguments</key>
            <dict>
                <key>input_plist_path</key>
                <string>%pkgroot%/Applications/LAPS for macOS.app/Contents/Info.plist</string>
                <key>plist_version_key</key>
                <string>CFBundleShortVersionString</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiPkginfoMerger</string>
            <key>Arguments</key>
            <dict>
                <key>additional_pkginfo</key>
                <dict>
                    <key>version</key>
                    <string>%version%</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>DmgCreator</string>
            <key>Arguments</key>
            <dict>
                <key>dmg_root</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%/Applications</string>
                <key>dmg_path</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%.dmg</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%dmg_path%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>

Krita/Krita.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of krita and imports it into Munki.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.krita</string>
      <key>Input</key>
    <dict>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>NAME</key>
        <string>krita</string>
        <key>pkginfo</key>
        <dict>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
			<key>developer</key>
			<string>Krita Foundation</string>
            <key>description</key>
            <string>krita is a professional FREE and open source painting program.</string>
            <key>display_name</key>
            <string>krita</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.3.1</string>
    <key>ParentRecipe</key>
	<string>com.github.dataJAR-recipes.download.krita</string>
    <key>Process</key>
	<array>
		<dict>
			<key>Arguments</key>
			<dict>
				<key>pkg_path</key>
				<string>%RECIPE_CACHE_DIR%/downloads/%NAME%.dmg</string>
				<key>repo_subdirectory</key>
				<string>%MUNKI_REPO_SUBDIR%</string>
				<key>version_comparison_key</key>
				<string>CFBundleShortVersionString</string>
			</dict>
			<key>Processor</key>
			<string>MunkiImporter</string>
		</dict>
    </array>
</dict>
</plist>
Krita/Krita.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of krita.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.krita</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>krita</string>
        <key>DOWNLOAD_URL</key>
        <string>https://krita.org/en/download/krita-desktop/</string>
        <key>USER_AGENT</key>
        <string>Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_3) AppleWebKit/536.28.10 (KHTML, like Gecko) Version/6.0.3 Safari/536.28.10</string>
    </dict>
    <key>MinimumVersion</key>
    <string>1.0.0</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>URLTextSearcher</string>
            <key>Arguments</key>
            <dict>
                <key>url</key>
                <string>%DOWNLOAD_URL%</string>
                <key>re_pattern</key>
                <string>https://download.kde.org/stable/krita/\d.*\S.*/krita-\d.*\.dmg</string>
                <key>request_headers</key>
                <dict>
                    <key>user-agent</key>
                    <string>%USER_AGENT%</string>
                </dict>
                <key>result_output_var_name</key>
                <string>url</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>URLDownloader</string>
            <key>Arguments</key>
            <dict>
                <key>filename</key>
                <string>%NAME%.dmg</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
            <key>Arguments</key>
            <dict>
                <key>input_path</key>
                <string>%RECIPE_CACHE_DIR%/downloads/%NAME%.dmg/krita.app</string>
                <key>requirement</key>
                <string>identifier "org.krita" and anchor apple generic and 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] = "5433B4KXM8"</string>
                <key>strict_verification</key>
                <true />
            </dict>
        </dict>
    </array>
</dict>
</plist>

Krisp/Krisp.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
    <dict>
        <key>Description</key>
        <string>Downloads the latest version of krisp and imports into Munki</string>
        <key>Identifier</key>
        <string>com.github.dataJAR-recipes.munki.krisp</string>
        <key>Input</key>
        <dict>
            <key>MUNKI_REPO_SUBDIR</key>
            <string>apps/%NAME%</string>
            <key>NAME</key>
            <string>krisp</string>
            <key>pkginfo</key>
            <dict>
                <key>catalogs</key>
                <array>
                    <string>testing</string>
                </array>
                <key>description</key>
                <string>Mute background noise in any communication app.</string>
                <key>developer</key>
                <string>Krisp Technologies</string>
                <key>display_name</key>
                <string>krisp</string>
                <key>name</key>
                <string>%NAME%</string>
                <key>preinstall_script</key>
                <string>#!/bin/bash
            # as per the updated installation pkg allowing this, set trigger file to have it skip launching on post install
            /usr/bin/touch /private/tmp/do_not_launch_Krisp</string>
                <key>unattended_install</key>
                <true></true>
                <key>unattended_uninstall</key>
                <true></true>
            </dict>
        </dict>
        <key>MinimumVersion</key>
        <string>0.5.0</string>
        <key>ParentRecipe</key>
        <string>com.github.dataJAR-recipes.download.krisp</string>
        <key>Process</key>
        <array>
            <dict>
                <key>Processor</key>
                <string>FlatPkgUnpacker</string>
                <key>Arguments</key>
                <dict>
                    <key>destination_path</key>
                    <string>%RECIPE_CACHE_DIR%/installer_unpack/</string>
                    <key>flat_pkg_path</key>
                    <string>%pathname%</string>
                    <key>purge_destination</key>
                    <string>true</string>
                </dict>
            </dict>
            <dict>
                <key>Processor</key>
                <string>PkgPayloadUnpacker</string>
                <key>Arguments</key>
                <dict>
                    <key>destination_path</key>
                    <string>%RECIPE_CACHE_DIR%/app_unpack/</string>
                    <key>pkg_payload_path</key>
                    <string>%RECIPE_CACHE_DIR%/installer_unpack/Audio.pkg/Payload</string>
                    <key>purge_destination</key>
                    <string>true</string>
                </dict>
            </dict>
            <dict>
                <key>Processor</key>
                <string>MunkiInstallsItemsCreator</string>
                <key>Arguments</key>
                <dict>
                    <key>faux_root</key>
                    <string>%RECIPE_CACHE_DIR%/app_unpack</string>
                    <key>installs_item_paths</key>
                    <array>
                        <string>/Applications/krisp.app</string>
                    </array>
                </dict>
            </dict>
            <dict>
                <key>Processor</key>
                <string>MunkiPkginfoMerger</string>
            </dict>
            <dict>
                <key>Processor</key>
                <string>Versioner</string>
                <key>Arguments</key>
                <dict>
                    <key>input_plist_path</key>
                    <string>%RECIPE_CACHE_DIR%/app_unpack/Applications/krisp.app/Contents/Info.plist</string>
                    <key>plist_version_key</key>
                    <string>CFBundleShortVersionString</string>
                </dict>
            </dict>
            <dict>
                <key>Processor</key>
                <string>MunkiPkginfoMerger</string>
                <key>Arguments</key>
                <dict>
                    <key>additional_pkginfo</key>
                    <dict>
                        <key>version</key>
                        <string>%version%</string>
                    </dict>
                </dict>
            </dict>
            <dict>
                <key>Processor</key>
                <string>MunkiImporter</string>
                <key>Arguments</key>
                <dict>
                    <key>pkg_path</key>
                    <string>%pathname%</string>
                    <key>repo_subdirectory</key>
                    <string>%MUNKI_REPO_SUBDIR%</string>
                </dict>
            </dict>
            <dict>
                <key>Processor</key>
                <string>PathDeleter</string>
                <key>Arguments</key>
                <dict>
                    <key>path_list</key>
                    <array>
                        <string>%RECIPE_CACHE_DIR%/installer_unpack/</string>
                        <string>%RECIPE_CACHE_DIR%/app_unpack/</string>
                    </array>
                </dict>
            </dict>
        </array>
    </dict>
</plist>

Krisp/Krisp.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
    <dict>
        <key>Description</key>
        <string>Downloads the latest version of krisp</string>
        <key>Identifier</key>
        <string>com.github.dataJAR-recipes.download.krisp</string>
        <key>Input</key>
        <dict>
            <key>NAME</key>
            <string>krisp</string>
        </dict>
        <key>MinimumVersion</key>
        <string>0.5.0</string>
        <key>Process</key>
        <array>
            <dict>
                <key>Processor</key>
                <string>URLDownloader</string>
                <key>Arguments</key>
                <dict>
                    <key>filename</key>
                    <string>%NAME%.pkg</string>
                    <key>url</key>
                    <string>https://download.krisp.ai/mac?btn=downloadMac_AccountFooter</string>
                </dict>
            </dict>
            <dict>
                <key>Processor</key>
                <string>CodeSignatureVerifier</string>
                <key>Arguments</key>
                <dict>
                    <key>input_path</key>
                    <string>%pathname%</string>
                    <key>expected_authority_names</key>
                    <array>
                        <string>Developer ID Installer: Krisp Technologies, Inc. (U5R26XM5Z2)</string>
                        <string>Developer ID Certification Authority</string>
                        <string>Apple Root CA</string>
                    </array>
                </dict>
            </dict>
        </array>
    </dict>
</plist>
Komodo IDE/Komodo IDE.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads and imports Komodo IDE into Munki.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.KomodoIDE</string>
    <key>Input</key>
    <dict>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/activestate</string>
        <key>NAME</key>
        <string>KomodoIDE</string>
        <key>pkginfo</key>
        <dict>
            <key>catalogs</key>
            <array>
                <string>development-activestate-KomodoIDE</string>
            </array>
            <key>description</key>
            <string>Cross-Platform IDE for all your major languages, including Python, PHP, Go, Perl, Tcl, Ruby, NodeJS, HTML, CSS, JavaScript and more.</string>
            <key>display_name</key>
            <string>Komodo IDE</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.3.0</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.KomodoIDE</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>Versioner</string>
            <key>Arguments</key>
            <dict>
                <key>input_plist_path</key>
                <string>%pathname%/Komodo IDE %MAJOR_VERSION%.app/Contents/Info.plist</string>
                <key>plist_version_key</key>
                <string>CFBundleVersion</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiPkginfoMerger</string>
            <key>Arguments</key>
            <dict>
                <key>additional_pkginfo</key>
                <dict>
                    <key>version</key>
                    <string>%version%</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%pathname%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
                <key>version_comparison_key</key>
                <string>CFBundleVersion</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>
Komodo IDE/Komodo IDE.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the major release version of Komodo IDE, as per the MAJOR_VERSION variable</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.KomodoIDE</string>
    <key>Input</key>
    <dict>
        <key>MAJOR_VERSION</key>
        <string>12</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.2.9</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Arguments</key>
            <dict>
                <key>re_pattern</key>
                <string>https://downloads\.activestate\.com/Komodo/releases/%MAJOR_VERSION%.*/Komodo-IDE-%MAJOR_VERSION%.*.dmg</string>
                <key>result_output_var_name</key>
                <string>url</string>
                <key>url</key>
                <string>https://www.activestate.com/products/komodo-ide/download-ide/</string>
            </dict>
            <key>Processor</key>
            <string>URLTextSearcher</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>URLDownloader</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
            <key>Arguments</key>
            <dict>
                <key>input_path</key>
                <string>%pathname%/Komodo IDE %MAJOR_VERSION%.app</string>
                <key>requirement</key>
                <string>identifier "com.activestate.KomodoIDE" and anchor apple generic and 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] = "6L3MMJ36R9"</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>
Kiwi for Gmail/Kiwi for Gmail.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest trial version of Kiwi for Gmail and imports into Munki.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.Kiwi for Gmail</string>
    <key>Input</key>
    <dict>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>NAME</key>
        <string>KiwiforGmail</string>
        <key>pkginfo</key>
        <dict> 
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>A desktop application made to save your time spent in and out of Google by remembering what you had up, where you had it and just how you left it!</string>
            <key>display_name</key>
            <string>Kiwi for Gmail</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
            <key>unattended_uninstall</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.Kiwi for Gmail</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%pathname%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>
Kiwi for Gmail/Kiwi for Gmail.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Download recipe for the latest trial version of Kiwi for Gmail.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.Kiwi for Gmail</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>KiwiforGmail</string>
        <key>DOWNLOAD_URL</key>
        <string>https://downloads.kiwiforgmail.com/kiwi/release/consumer/Kiwi+for+Gmail+Setup.dmg</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>URLDownloader</string>
            <key>Arguments</key>
            <dict>
                <key>url</key>
                <string>%DOWNLOAD_URL%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
            <key>Arguments</key>
            <dict>
                <key>input_path</key>
                <string>%pathname%/Kiwi for Gmail.app</string>
                <key>requirement</key>
                <string>identifier "com.zive.kiwi" and anchor apple generic and 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] = ND86S98S6P</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>
Kiwi for G Suite/KiwiforGSuite.png METASEP

Kiwi for G Suite/Kiwi for G Suite.pkg.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of Kiwi for G Suite and creates a flat PKG.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.pkg.Kiwi for G Suite</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>KiwiforGSuite</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.Kiwi for G Suite</string>
    <key>Process</key>
    <array>
		<dict>
 			<key>Arguments</key>
 				<dict>
 					<key>destination_path</key>
 					<string>%RECIPE_CACHE_DIR%/installer_unpack</string>
 					<key>flat_pkg_path</key>
 					<string>%pathname%</string>
 					<key>purge_destination</key>
 					<true />
 				</dict>
 			<key>Processor</key>
 			<string>FlatPkgUnpacker</string>
 		</dict>
		<dict>
 			<key>Arguments</key>
 			<dict>
 				<key>destination_path</key>
 				<string>%RECIPE_CACHE_DIR%/installer_payload</string>
 				<key>pkg_payload_path</key>
 				<string>%RECIPE_CACHE_DIR%/installer_unpack/Payload</string>
 				<key>purge_destination</key>
 				<true />
 			</dict>
 			<key>Processor</key>
 			<string>PkgPayloadUnpacker</string>
 		</dict>
 		<dict>
 			<key>Arguments</key>
 			<dict>
 				<key>input_plist_path</key>
 				<string>%RECIPE_CACHE_DIR%/installer_payload/Applications/Kiwi for G Suite.app/Contents/Info.plist</string>
 				<key>plist_version_key</key>
 				<string>CFBundleShortVersionString</string>
 			</dict>
 			<key>Processor</key>
 			<string>Versioner</string>
 		</dict> 		
		<dict>
            <key>Processor</key>
            <string>PkgCopier</string>
            <key>Arguments</key>
            <dict>
                <key>source_pkg</key>
                <string>%pathname%</string>
                <key>pkg_path</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%-%version%.pkg</string>
            </dict>
        </dict>
		<dict>
 			<key>Arguments</key>
 			<dict>
 				<key>path_list</key>
 				<array>
 					<string>%RECIPE_CACHE_DIR%/installer_payload/</string>
 					<string>%RECIPE_CACHE_DIR%/installer_unpack/</string>
 				</array>
 			</dict>
 			<key>Processor</key>
 			<string>PathDeleter</string>
 		</dict>
    </array>
</dict>
</plist>

Kiwi for G Suite/Kiwi for G Suite.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest trial version of Kiwi for G Suite and imports into Munki.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.Kiwi for G Suite</string>
    <key>Input</key>
    <dict>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>NAME</key>
        <string>KiwiforGSuite</string>
        <key>pkginfo</key>
        <dict> 
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>A better way for enterprises to use Gmail and G Suite.</string>
            <key>display_name</key>
            <string>Kiwi for G Suite</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
            <key>unattended_uninstall</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.pkg.Kiwi for G Suite</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>MunkiPkginfoMerger</string>
            <key>Arguments</key>
            <dict>
                <key>additional_pkginfo</key>
                <dict>
                    <key>version</key>
                    <string>%version%</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%-%version%.pkg</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>
Kiwi for G Suite/Kiwi for G Suite.jss.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the current release version of Kiwi for G Suite and then uploads to the JSS</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.jss.Kiwi for G Suite</string>
    <key>Input</key>
    <dict>
        <key>CATEGORY</key>
        <string>Applications</string>
        <key>GROUP_NAME</key>
        <string>%NAME%-update-smart</string>
        <key>GROUP_TEMPLATE</key>
        <string>SmartGroupTemplate.xml</string>
        <key>NAME</key>
        <string>KiwiforGSuite</string>
        <key>POLICY_CATEGORY</key>
        <string>Testing</string>
        <key>POLICY_TEMPLATE</key>
        <string>PolicyTemplate.xml</string>
        <key>SELF_SERVICE_DESCRIPTION</key>
        <string>A better way for enterprises to use Gmail and G Suite.</string>
        <key>SELF_SERVICE_ICON</key>
        <string>KiwiforGSuite.png</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.pkg.Kiwi for G Suite</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>JSSImporter</string>
            <key>Arguments</key>
            <dict>
                <key>category</key>
                <string>%CATEGORY%</string>
                <key>groups</key>
                <array>
                    <dict>
                        <key>name</key>
                        <string>%GROUP_NAME%</string>
                        <key>smart</key>
                        <true/>
                        <key>template_path</key>
                        <string>%GROUP_TEMPLATE%</string>
                    </dict>
                </array>
                <key>policy_category</key>
                <string>%POLICY_CATEGORY%</string>
                <key>policy_template</key>
                <string>%POLICY_TEMPLATE%</string>
                <key>prod_name</key>
                <string>Kiwi for G Suite</string>
                <key>self_service_description</key>
                <string>%SELF_SERVICE_DESCRIPTION%</string>
                <key>self_service_icon</key>
                <string>%SELF_SERVICE_ICON%</string>
                <key>version</key>
                <string>%version%</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>

Kiwi for G Suite/Kiwi for G Suite.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Download recipe for the latest trial version of Kiwi for G Suite.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.Kiwi for G Suite</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>KiwiforGSuite</string>
        <key>DOWNLOAD_URL</key>
        <string>https://kiwiforgsuite.s3.amazonaws.com/mac/release/Kiwi+for+G+Suite.pkg</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>DeprecationWarning</string>
            <key>Arguments</key>
            <dict>
                <key>warning_message</key>
                <string>As per: https://kiwiforgmail.zendesk.com/hc/en-us/articles/360050366172-Kiwi-for-Gmail-and-Kiwi-for-G-Suite-3-0-Changes-from-2-0, Kiwi for G Suite is now Kiwi for Gmail.</string>
            </dict>
        </dict>
        <dict>   
            <key>Processor</key>   
            <string>StopProcessingIf</string>   
            <key>Arguments</key>   
            <dict>   
                <key>predicate</key>   
                <string>TRUEPREDICATE</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>URLDownloader</string>
            <key>Arguments</key>
            <dict>
                <key>url</key>
                <string>%DOWNLOAD_URL%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
            <key>Arguments</key>
            <dict>
                <key>input_path</key>
                <string>%pathname%</string>
        		<key>expected_authority_names</key>
        		<array>
            		<string>Developer ID Installer: Zive, Inc. (ND86S98S6P)</string>
            		<string>Developer ID Certification Authority</string>
            		<string>Apple Root CA</string>
        		</array>
            </dict>
        </dict>
    </array>
</dict>
</plist>

Kinoni EpocCam Drivers/Kinoni EpocCam Drivers.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of Kinoni EpocCam Drivers and imports into Munki.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.Kinoni EpocCam Drivers</string>
    <key>Input</key>
    <dict>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>NAME</key>
        <string>KinoniEpocCamDrivers</string>
        <key>pkginfo</key>
        <dict>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>Turn your phone into a webcam for free! Requires companion iOS App</string>
            <key>display_name</key>
            <string>Kinoni EpocCam Drivers</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
            <key>unattended_uninstall</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.2.0</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.Kinoni EpocCam Drivers</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%pathname%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>
Kinoni EpocCam Drivers/Kinoni EpocCam Drivers.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Download recipe for Kinoni EpocCam Drivers.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.Kinoni EpocCam Drivers</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>KinoniEpocCamDrivers</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.2.0</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>URLTextSearcher</string>
            <key>Arguments</key>
            <dict>
                <key>re_pattern</key>
                <string>\"fileURL\":\"(https:\/\/edge\.elgato\.com\/egc\/macos\/epoccam\/EpocCam_Installer_\S*\.pkg)</string>
                <key>result_output_var_name</key>
                <string>url</string>
                <key>url</key>
                <string>https://www.elgato.com/sites/default/files/downloads.json</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>URLDownloader</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
            <key>Arguments</key>
            <dict>
                <key>input_path</key>
                <string>%pathname%</string>
                <key>expected_authority_names</key>
                <array>
                    <string>Developer ID Installer: Corsair Memory, Inc. (Y93VXCB8Q5)</string>
                    <string>Developer ID Certification Authority</string>
                    <string>Apple Root CA</string>
                </array>
            </dict>
        </dict>
    </array>
</dict>
</plist>
KeyStore Explorer/KeyStoreExplorer.png METASEP

KeyStore Explorer/KeyStore Explorer.pkg.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>Description</key>
	<string>Downloads the latest version of KeyStore Explorer and creates a package.</string>
	<key>Identifier</key>
	<string>com.github.dataJAR-recipes.pkg.KeyStore Explorer</string>
	<key>Input</key>
	<dict>
		<key>NAME</key>
		<string>KeyStoreExplorer</string>
	</dict>
	<key>MinimumVersion</key>
	<string>0.6.1</string>
	<key>ParentRecipe</key>
	<string>com.github.dataJAR-recipes.download.KeyStore Explorer</string>
	<key>Process</key>
	<array>
		<dict>
			<key>Processor</key>
			<string>AppPkgCreator</string>
		</dict>
	</array>
</dict>
</plist>

KeyStore Explorer/KeyStore Explorer.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of KeyStore Explorer and imports it into Munki.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.KeyStore Explorer</string>
    <key>Input</key>
    <dict>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>NAME</key>
        <string>KeyStore Explorer</string>
        <key>pkginfo</key>
        <dict>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>KeyStore Explorer is a free, open source GUI replacement for the Java command-line utilities keytool, jarsigner and jadtool. KeyStore Explorer presents their functionality, and more, via an intuitive graphical user interface.</string>
            <key>developer</key>
            <string>Kaikramer</string>
            <key>display_name</key>
            <string>KeyStore Explorer</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.KeyStore Explorer</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%RECIPE_CACHE_DIR%/downloads/%filename%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
        </dict>
    </array>
</dict>
</plist>
KeyStore Explorer/KeyStore Explorer.jss.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the current release version of KeyStore Explorer and then uploads to the JSS</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.jss.KeyStore Explorer</string>
    <key>Input</key>
    <dict>
        <key>CATEGORY</key>
        <string>Productivity</string>
        <key>GROUP_NAME</key>
        <string>%NAME%-update-smart</string>
        <key>GROUP_TEMPLATE</key>
        <string>SmartGroupTemplate.xml</string>
        <key>NAME</key>
        <string>KeyStore Explorer</string>
        <key>POLICY_CATEGORY</key>
        <string>Testing</string>
        <key>POLICY_TEMPLATE</key>
        <string>PolicyTemplate.xml</string>
        <key>SELF_SERVICE_DESCRIPTION</key>
        <string>KeyStore Explorer is a free, open source GUI replacement for the Java command-line utilities keytool, jarsigner and jadtool. KeyStore Explorer presents their functionality, and more, via an intuitive graphical user interface.</string>
        <key>SELF_SERVICE_ICON</key>
        <string>KeyStoreExplorer.png</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.2.0</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.pkg.KeyStore Explorer</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Arguments</key>
            <dict>
                <key>category</key>
                <string>%CATEGORY%</string>
                <key>groups</key>
                <array>
                    <dict>
                        <key>name</key>
                        <string>%GROUP_NAME%</string>
                        <key>smart</key>
                        <true/>
                        <key>template_path</key>
                        <string>%GROUP_TEMPLATE%</string>
                    </dict>
                </array>
                <key>policy_category</key>
                <string>%POLICY_CATEGORY%</string>
                <key>policy_template</key>
                <string>%POLICY_TEMPLATE%</string>
                <key>prod_name</key>
                <string>%NAME%</string>
                <key>self_service_description</key>
                <string>%SELF_SERVICE_DESCRIPTION%</string>
                <key>self_service_icon</key>
                <string>%SELF_SERVICE_ICON%</string>
            </dict>
            <key>Processor</key>
            <string>JSSImporter</string>
        </dict>
    </array>
</dict>
</plist>
KeyStore Explorer/KeyStore Explorer.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of KeyStore Explorer.
Set PRERELEASE to a non-empty string to download prereleases, either
via Input in an override or via the -k option,
i.e.: `-k PRERELEASE=yes`</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.KeyStore Explorer</string>
    <key>Input</key>
    <dict>
        <key>PRERELEASE</key>
        <string></string>
        <key>NAME</key>
        <string>KeyStoreExplorer</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Arguments</key>
            <dict>
                <key>github_repo</key>
                <string>kaikramer/keystore-explorer</string>
                <key>include_prereleases</key>
                <string>%PRERELEASE%</string>
                <key>asset_regex</key>
                <string>[\S]+\.dmg</string>
            </dict>
            <key>Processor</key>
            <string>GitHubReleasesInfoProvider</string>
        </dict>
        <dict>
            <key>Arguments</key>
            <dict>
                <key>filename</key>
                <string>%NAME%-%version%.dmg</string>
            </dict>
            <key>Processor</key>
            <string>URLDownloader</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
        <dict>
            <key>Arguments</key>
            <dict>
                <key>input_path</key>
                <string>%RECIPE_CACHE_DIR%/downloads/%filename%/KeyStore Explorer.app</string>
                <key>requirement</key>
                <string>identifier "org.kse.keystore-explorer" and anchor apple generic and 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] = BKXPBP395L</string>
            </dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
        </dict>
    </array>
</dict>
</plist>
KeeWeb/KeeWeb.png METASEP

KeeWeb/KeeWeb.pkg.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>Description</key>
	<string>Downloads the latest version of KeeWeb and creates a package.</string>
	<key>Identifier</key>
	<string>com.github.dataJAR-recipes.pkg.KeeWeb</string>
	<key>Input</key>
	<dict>
		<key>BUNDLE_ID</key>
		<string>net.antelle.keeweb</string>
		<key>NAME</key>
		<string>KeeWeb</string>
	</dict>
	<key>MinimumVersion</key>
	<string>0.6.1</string>
	<key>ParentRecipe</key>
	<string>com.github.dataJAR-recipes.download.KeeWeb</string>
	<key>Process</key>
	<array>
		<dict>
			<key>Arguments</key>
			<dict>
				<key>pkgdirs</key>
				<dict>
					<key>Applications</key>
					<string>0775</string>
				</dict>
				<key>pkgroot</key>
				<string>%RECIPE_CACHE_DIR%/%NAME%</string>
			</dict>
			<key>Processor</key>
			<string>PkgRootCreator</string>
		</dict>
		<dict>
			<key>Arguments</key>
			<dict>
				<key>destination_path</key>
				<string>%pkgroot%/Applications/KeeWeb.app</string>
				<key>source_path</key>
				<string>%RECIPE_CACHE_DIR%/downloads/%filename%/KeeWeb.app</string>
			</dict>
			<key>Processor</key>
			<string>Copier</string>
		</dict>
		<dict>
			<key>Arguments</key>
			<dict>
				<key>pkg_request</key>
				<dict>
					<key>chown</key>
					<array>
						<dict>
							<key>group</key>
							<string>admin</string>
							<key>path</key>
							<string>Applications</string>
							<key>user</key>
							<string>root</string>
						</dict>
					</array>
					<key>id</key>
					<string>%BUNDLE_ID%</string>
					<key>options</key>
					<string>purge_ds_store</string>
					<key>pkgname</key>
					<string>%NAME%-%version%</string>
					<key>pkgroot</key>
					<string>%RECIPE_CACHE_DIR%/%NAME%</string>
					<key>version</key>
					<string>%version%</string>
				</dict>
			</dict>
			<key>Processor</key>
			<string>PkgCreator</string>
		</dict>
	</array>
</dict>
</plist>

KeeWeb/KeeWeb.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>Description</key>
	<string>Downloads the latest version of KeeWeb and imports it into Munki.</string>
	<key>Identifier</key>
	<string>com.github.dataJAR-recipes.munki.KeeWeb</string>
	<key>Input</key>
	<dict>
		<key>MUNKI_REPO_SUBDIR</key>
		<string>apps/%NAME%</string>
		<key>NAME</key>
		<string>KeeWeb</string>
		<key>pkginfo</key>
		<dict>
			<key>catalogs</key>
			<array>
				<string>testing</string>
			</array>
			<key>description</key>
			<string>Free cross-platform password manager compatible with KeePass.</string>
			<key>developer</key>
			<string>Kaikramer</string>
			<key>display_name</key>
			<string>KeeWeb</string>
			<key>name</key>
			<string>%NAME%</string>
			<key>unattended_install</key>
			<true/>
		</dict>
	</dict>
	<key>MinimumVersion</key>
	<string>0.6.1</string>
	<key>ParentRecipe</key>
	<string>com.github.dataJAR-recipes.download.KeeWeb</string>
	<key>Process</key>
	<array>
		<dict>
			<key>Arguments</key>
			<dict>
				<key>pkg_path</key>
				<string>%RECIPE_CACHE_DIR%/downloads/%filename%</string>
				<key>repo_subdirectory</key>
				<string>%MUNKI_REPO_SUBDIR%</string>
			</dict>
			<key>Processor</key>
			<string>MunkiImporter</string>
		</dict>
	</array>
</dict>
</plist>

KeeWeb/KeeWeb.jss.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>Description</key>
	<string>Downloads the current release version of KeeWeb and then uploads to the JSS</string>
	<key>Identifier</key>
	<string>com.github.dataJAR-recipes.jss.KeeWeb</string>
	<key>Input</key>
	<dict>
		<key>CATEGORY</key>
		<string>Productivity</string>
		<key>GROUP_NAME</key>
		<string>%NAME%-update-smart</string>
		<key>GROUP_TEMPLATE</key>
		<string>SmartGroupTemplate.xml</string>
		<key>NAME</key>
		<string>KeeWeb</string>
		<key>POLICY_CATEGORY</key>
		<string>Testing</string>
		<key>POLICY_TEMPLATE</key>
		<string>PolicyTemplate.xml</string>
		<key>SELF_SERVICE_DESCRIPTION</key>
		<string>Free cross-platform password manager compatible with KeePass.</string>
		<key>SELF_SERVICE_ICON</key>
		<string>KeeWeb.png</string>
	</dict>
	<key>MinimumVersion</key>
	<string>0.2.0</string>
	<key>ParentRecipe</key>
	<string>com.github.dataJAR-recipes.pkg.KeeWeb</string>
	<key>Process</key>
	<array>
		<dict>
			<key>Arguments</key>
			<dict>
				<key>category</key>
				<string>%CATEGORY%</string>
				<key>groups</key>
				<array>
					<dict>
						<key>name</key>
						<string>%GROUP_NAME%</string>
						<key>smart</key>
						<true/>
						<key>template_path</key>
						<string>%GROUP_TEMPLATE%</string>
					</dict>
				</array>
				<key>policy_category</key>
				<string>%POLICY_CATEGORY%</string>
				<key>policy_template</key>
				<string>%POLICY_TEMPLATE%</string>
				<key>prod_name</key>
				<string>%NAME%</string>
				<key>self_service_description</key>
				<string>%SELF_SERVICE_DESCRIPTION%</string>
				<key>self_service_icon</key>
				<string>%SELF_SERVICE_ICON%</string>
			</dict>
			<key>Processor</key>
			<string>JSSImporter</string>
		</dict>
	</array>
</dict>
</plist>

KeeWeb/KeeWeb.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>Description</key>
	<string>Downloads the latest version of KeeWeb.
Set PRERELEASE to a non-empty string to download prereleases, either
via Input in an override or via the -k option,
i.e.: `-k PRERELEASE=yes`</string>
	<key>Identifier</key>
	<string>com.github.dataJAR-recipes.download.KeeWeb</string>
	<key>Input</key>
	<dict>
	    <key>PRERELEASE</key>
        <string></string>
		<key>NAME</key>
		<string>KeeWeb</string>
	</dict>
	<key>MinimumVersion</key>
	<string>0.6.1</string>
	<key>Process</key>
	<array>
		<dict>
			<key>Processor</key>
			<string>GitHubReleasesInfoProvider</string>
			<key>Arguments</key>
			<dict>
				<key>asset_regex</key>
				<string>.*\.mac\.x64\.dmg</string>
				<key>github_repo</key>
				<string>keeweb/keeweb</string>
				<key>include_prereleases</key>
				<string>%PRERELEASE%</string>
			</dict>
		</dict>
		<dict>
			<key>Arguments</key>
			<dict>
				<key>filename</key>
				<string>%NAME%-%version%.dmg</string>
			</dict>
			<key>Processor</key>
			<string>URLDownloader</string>
		</dict>
		<dict>
			<key>Processor</key>
			<string>EndOfCheckPhase</string>
		</dict>
		<dict>
			<key>Arguments</key>
			<dict>
				<key>input_path</key>
				<string>%RECIPE_CACHE_DIR%/downloads/%filename%/KeeWeb.app</string>
				<key>requirement</key>
				<string>identifier "net.antelle.keeweb" and anchor apple generic and 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] = "3LE7JZ657W"</string>
			</dict>
			<key>Processor</key>
			<string>CodeSignatureVerifier</string>
		</dict>
	</array>
</dict>
</plist>

KeePassXC/KeePassXC.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
	<dict>
		<key>Description</key>
		<string>Downloads the latest stable KeePassXC and imports it in into Munki.</string>
		<key>Identifier</key>
		<string>com.github.dataJAR-recipes.munki.KeePassXC</string>
		<key>Input</key>
		<dict>
			<key>MUNKI_REPO_SUBDIR</key>
			<string>apps/KeePassXC</string>
			<key>MUNKI_CATEGORY</key>
			<string>Utilities</string>
			<key>NAME</key>
			<string>KeePassXC</string>
			<key>pkginfo</key>
			<dict>
				<key>catalogs</key>
				<array>
					<string>testing</string>
				</array>
				<key>category</key>
				<string>%MUNKI_CATEGORY%</string>
				<key>description</key>
				<string>KeePassXC can store your passwords safely and auto-type them into your everyday websites and applications.

				This is the latest stable version of KeePassXC</string>
				<key>developer</key>
				<string>%NAME%</string>
				<key>display_name</key>
				<string>%NAME%</string>
				<key>name</key>
				<string>%NAME%</string>
				<key>unattended_install</key>
				<true/>
			</dict>
		</dict>
		<key>MinimumVersion</key>
		<string>1.0.4</string>
		<key>ParentRecipe</key>
		<string>com.github.dataJAR-recipes.download.KeePassXC</string>
		<key>Process</key>
		<array>
			<dict>
				<key>Arguments</key>
				<dict>
					<key>additional_pkginfo</key>
					<dict>
						<key>items_to_copy</key>
						<array>
							<dict>
								<key>destination_path</key>
								<string>/Applications</string>
								<key>source_item</key>
								<string>KeePassXC.app</string>
							</dict>
						</array>
						<key>version</key>
						<string>%version%</string>
					</dict>
				</dict>
				<key>Processor</key>
				<string>MunkiPkginfoMerger</string>
			</dict>
			<dict>
				<key>Arguments</key>
				<dict>
					<key>pkg_path</key>
					<string>%pathname%</string>
					<key>repo_subdirectory</key>
					<string>%MUNKI_REPO_SUBDIR%</string>
				</dict>
				<key>Processor</key>
				<string>MunkiImporter</string>
			</dict>
		</array>
	</dict>
</plist>

KeePassXC/KeePassXC.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
	<dict>
		<key>Description</key>
		<string>Downloads the latest stable KeePassXC.</string>
		<key>Identifier</key>
		<string>com.github.dataJAR-recipes.download.KeePassXC</string>
		<key>Input</key>
		<dict>
			<key>NAME</key>
			<string>KeePassXC</string>
			<key>PRERELEASE</key>
        	<string></string>
		</dict>
		<key>MinimumVersion</key>
		<string>1.0.4</string>
		<key>Process</key>
		<array>
			<dict>
				<key>Arguments</key>
				<dict>
					<key>github_repo</key>
					<string>keepassxreboot/keepassxc</string>
					<key>include_prereleases</key>
					<string>%PRERELEASE%</string>
					<key>asset_regex</key>
					<string>KeePassXC-[0-9].[0-9].[0-9]-x86_64.dmg</string>
				</dict>
				<key>Processor</key>
				<string>GitHubReleasesInfoProvider</string>
			</dict>
			<dict>
				<key>Processor</key>
				<string>URLDownloader</string>
				<key>Arguments</key>
				<dict>
					<key>filename</key>
					<string>%NAME%-%version%.dmg</string>
				</dict>
			</dict>
		<dict>
			<key>Processor</key>
			<string>CodeSignatureVerifier</string>
			<key>Arguments</key>
			<dict>
				<key>input_path</key>
				<string>%pathname%/KeePassXC.app</string>
				<key>requirement</key>
				<string>identifier "org.keepassxc.keepassxc" and anchor apple generic and 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] = G2S7P7J672</string>
			</dict>
		</dict>
			<dict>
				<key>Processor</key>
				<string>EndOfCheckPhase</string>
			</dict>
		</array>
	</dict>
</plist>
Kaspersky Network Agent/Kaspersky Network Agent.pkg.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of Kaspersky Network Agent and creates a package.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.pkg.Kaspersky Network Agent</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>KasperskyNetworkAgent</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.Kaspersky Network Agent</string>
    <key>Process</key>
    <array>
		<dict>
            <key>Processor</key>
            <string>PkgCopier</string>
            <key>Arguments</key>
            <dict>
                <key>source_pkg</key>
                <string>%input_path%</string>
                <key>pkg_path</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%.pkg</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>
Kaspersky Network Agent/Kaspersky Network Agent.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of Kaspersky Network Agent and imports into Munki</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.Kaspersky Network Agent</string>
    <key>Input</key>
    <dict>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>NAME</key>
        <string>KasperskyNetworkAgent</string>
        <key>pkginfo</key>
        <dict>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>Network Agent facilitates interaction between the Administration Server and Kaspersky products installed on workstations and servers.</string>
            <key>display_name</key>
            <string>Kaspersky Network Agent</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>installcheck_script</key>
            <string>#!/bin/bash
#
# This agent will be updated from the server, so we just want to see if not installed before proceeding
#

if [ ! -f "/Library/Application Support/Kaspersky Lab/klnagent/Binaries/klnagent" ]
then
    /bin/echo "klnagent not found, proceeding..."
    exit 0
else
    /bin/echo "klnagent found, skipping..."
    exit 1
fi</string>
            <key>preinstall_script</key>
            <string>#!/bin/bash
#
# A config.ini file is needed
#

configFolder="/tmp/klnagent/config.ini"
configPath="${configFolder}config.ini"

/bin/mkdir -p "/tmp/klnagent/"

/bin/echo "KLNAGENT_SERVER= -IP ADDRESS OR FQDN-" &gt; "${configPath}" # REQUIRED, Change -IP ADDRESS OR FQDN- as needed

# Additional arguments can be made passed as per: https://support.kaspersky.co.uk/12332#block3
# For additions, see the below example. This will append to the file:
# /bin/echo "KLNAGENT_PORT= 14000" &gt;&gt; "${configPath}"</string>
            <key>unattended_install</key>
            <true/>
            <key>unattended_uninstall</key>
            <true/>
            <key>uninstall_method</key>
            <string>uninstall_script</string>
            <key>uninstall_script</key>
            <string>#!/bin/bash
#
# Run the local uninstaller, if found
#

if [ ! -f "‘/Library/Application Support/Kaspersky Lab/klnagent/Binaries/UninstallScript’" ]
then
    /bin/echo "UninstallScript found, proceeding..."
    "/Library/Application Support/Kaspersky Lab/klnagent/Binaries/UninstallScript"
else
    /bin/echo "UninstallScript found, erroring..."
    exit 1
fi</string>

        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.2.0</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.pkg.Kaspersky Network Agent</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%pkg_path%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PathDeleter</string>
            <key>Arguments</key>
            <dict>
                <key>path_list</key>
                <array>
                    <string>%RECIPE_CACHE_DIR%/unzip</string>
                </array>
            </dict>
        </dict>
    </array>
</dict>
</plist>
Kaspersky Network Agent/Kaspersky Network Agent.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Download recipe for Kaspersky Network Agent.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.Kaspersky Network Agent</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>KasperskyNetworkAgent</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.2.0</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>DeprecationWarning</string>
            <key>Arguments</key>
            <dict>
                <key>warning_message</key>
                <string>This recipe no longer works, and as such has been deprecated. The product seems to have had 3 major updates since this recipe was written, and cannot find a way to download the latest release at the time or writing this.</string>
             </dict>
        </dict>
        <dict>   
            <key>Processor</key>   
            <string>StopProcessingIf</string>   
            <key>Arguments</key>   
            <dict>   
                <key>predicate</key>   
                <string>TRUEPREDICATE</string>
            </dict>
        </dict>
        <dict>
            <key>Arguments</key>
            <dict>
                <key>curl_opts</key>
                <array>
                    <string>--data-binary</string>
                    <string>[{"codename":"kesmac10","typename":"Build","TypeExtension":"Network agent","site":"https://www.kaspersky.com"}]</string>
                </array>
                <key>re_pattern</key>
                <string>https:\/\/products\.s\.kaspersky-labs\.com\/workstations\/kesmac10\/\S*\/multilanguage-INT-\S*klnagentmac1\S*\.zip</string>
                <key>result_output_var_name</key>
                <string>match</string>
                <key>url</key>
                <string>https://api-router.kaspersky-labs.com/downloads/search</string>
            </dict>
            <key>Processor</key>
            <string>URLTextSearcher</string>
        </dict>
        <dict>
            <key>Arguments</key>
            <dict>
                <key>curl_opts</key>
                <array/>
                <key>filename</key>
                <string>%NAME%.zip</string>
                <key>url</key>
                <string>%match%</string>
            </dict>
            <key>Processor</key>
            <string>URLDownloader</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
        <dict>
            <key>Arguments</key>
            <dict>
                <key>archive_path</key>
                <string>%RECIPE_CACHE_DIR%/downloads/%NAME%.zip</string>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/unzip</string>
                <key>purge_destination</key>
                <true/>
            </dict>
            <key>Processor</key>
            <string>Unarchiver</string>
        </dict>
        <dict>
            <key>Arguments</key>
            <dict>
                <key>expected_authority_names</key>
                <array>
                    <string>Developer ID Installer: Kaspersky Lab UK Limited (2Y8XE5CQ94)</string>
                    <string>Developer ID Certification Authority</string>
                    <string>Apple Root CA</string>
                </array>
                <key>input_path</key>
                <string>%destination_path%/klnagentmac.dmg/Kaspersky Network Agent.pkg</string>
            </dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
        </dict>
    </array>
</dict>
</plist>

JumpCloud Agent/JumpCloudAgent.png METASEP

JumpCloud Agent/JumpCloudAgent-SmartGroupTemplate.xml METASEP
<computer_group>
	<name>%group_name%</name>
	<is_smart>true</is_smart>
	<criteria>
		<criterion>
			<name>JumpCloud Agent Version</name>
			<priority>0</priority>
			<and_or>and</and_or>
			<search_type>is not</search_type>
			<value>%VERSION%</value>
            <opening_paren>true</opening_paren>
            <closing_paren>false</closing_paren>
		</criterion>
		<criterion>
			<name>JumpCloud Agent Version</name>
			<priority>1</priority>
			<and_or>or</and_or>
			<search_type>is not</search_type>
			<value>Not Installed</value>
            <opening_paren>false</opening_paren>
            <closing_paren>true</closing_paren>
		</criterion>
		<criterion>
			<name>Computer Group</name>
			<priority>2</priority>
			<and_or>and</and_or>
			<search_type>member of</search_type>
			<value>Testing</value>
		</criterion>
	</criteria>
</computer_group>

JumpCloud Agent/JumpCloudAgent-ExtensionAttribute.xml METASEP
<computer_extension_attribute>
  <name>JumpCloud Agent Version</name>
  <description>Returns the version number of the JumpCloud Agent installed, if not returns "Not Installed"</description>
  <dataType>string</dataType>
  <input_type>
		<type>script</type>
		<platform>Mac</platform>
		<script>#!/bin/bash

if [ -e "/opt/jc/version.txt" ]
then
	JumpCloudVersion=$(/bin/cat /opt/jc/version.txt)
else
	JumpCloudVersion="Not Installed"
fi

echo "&lt;result&gt;$JumpCloudVersion&lt;/result&gt;"
</script>
	</input_type>
	<inventory_display>Extension Attributes</inventory_display>
	<recon_display>Extension Attributes</recon_display>
</computer_extension_attribute>

JumpCloud Agent/JumpCloud Agent.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the current release version of the JumpCloud Agent and then uploads to munki.
    
    NOTE: The bootstrap.json file should be deployed to /opt/jc/agentBootstrap.json before
    installing this PKG, else you'll be prompted for the connect_key. 
    Amend the preinstall_script for this.
    
    See: https://support.jumpcloud.com/customer/portal/articles/2389320-agent-deployment-via-command-line
    </string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.JumpCloud Agent</string>
    <key>Input</key>
    <dict>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>NAME</key>
        <string>JumpCloud Agent</string>
        <key>pkginfo</key>
        <dict>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>A fully managed directory to rule your infrastructure whether on-premise or in the cloud. JumpCloud is your central source to authenticate, authorize, and manage employees, their devices and IT applications.</string>
            <key>developer</key>
            <string>JumpCloud</string>
            <key>display_name</key>
            <string>JumpCloud Agent</string>
            <key>minimum_os_version</key>
            <string>10.11</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>preinstall_script</key>
            <string>#!/bin/sh
#
# Adapted from:https://support.JumpCloud.com/customer/portal/articles/2389320-agent-deployment-via-command-line
#

connectKey=

if [ -z "${connectKey}" ]
then
    /bin/echo "No connect key defined... exiting..."
    exit 1
else
    /bin/mkdir -p /opt/jc
    /bin/cat &lt;&lt;-EOF &gt; /opt/jc/agentBootstrap.json
    {
    "publicKickstartUrl": "https://kickstart.jumpcloud.com:443",
    "privateKickstartUrl": "https://private-kickstart.jumpcloud.com:443",
    "connectKey": "${connectKey}"
    }
    EOF
fi</string>
            <key>uninstall_script</key>
            <string>#!/bin/bash
# Script downloaded from: https://support.jumpcloud.com/customer/portal/articles/2426853--all-oses-how-to-uninstall-the-jumpcloud-agent

if [[ $(id -u) -ne 0 ]]; then
    echo "Must run as root!"
    exit 1
fi

AGENT_UNINSTALL_SCRIPT="/opt/jc/bin/removeAgent"

if [[ -f $AGENT_UNINSTALL_SCRIPT ]]; then
    chmod 0700 $AGENT_UNINSTALL_SCRIPT
    $AGENT_UNINSTALL_SCRIPT
    exit $?
fi

launchctl remove com.jumpcloud.darwin-agent
rm /Library/LaunchDaemons/com.jumpcloud.darwin-agent.plist

sw_vers -productVersion | cut -d'.' -f1-2  | grep '^10.9$' &amp;> /dev/null
if [[ $? -ne 0 ]]; then
    security authorizationdb read system.login.console | \
        sed 's# &lt;string>jumpcloud-loginwindow:invoke &lt;/string>#&lt;string>loginwindow:login&lt;/string>;#' | \
        security authorizationdb write system.login.console
fi

rm -rf /Library/Security/SecurityAgentPlugins/jumpcloud-loginwindow.bundle
rm -rf /opt/jc

# if the service account is present, delete it:
if (id -u _jumpcloudserviceaccount > /dev/null 2>&amp;1); then
    dscl . -delete /Users/_jumpcloudserviceaccount
fi

# uninstall the tray-app
# first unload the app for all console users (logged in on UI)
for uid in $(ps -axo uid,args | grep -i "[l]oginwindow.app" | awk '{ print $1 }')
do
    if launchctl asuser "$uid" launchctl list 'com.jumpcloud.jcagent-tray' &amp;> /dev/null; then
        launchctl bootout gui/"$uid" '/Library/LaunchAgents/com.jumpcloud.jcagent-tray.plist'
    fi
done
# then delete the app plist and app folder
rm /Library/LaunchAgents/com.jumpcloud.jcagent-tray.plist
rm -rf /Applications/Jumpcloud.app</string>
            <key>uninstall_method</key>
            <string>uninstall_script</string>
            <key>unattended_install</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.JumpCloud Agent</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>FlatPkgUnpacker</string>
            <key>Arguments</key>
            <dict>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/unpack/</string>
                <key>flat_pkg_path</key>
                <string>%pathname%</string>
                <key>purge_destination</key>
                <string>true</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PkgPayloadUnpacker</string>
            <key>Arguments</key>
            <dict>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/payload/</string>
                <key>pkg_payload_path</key>
                <string>%RECIPE_CACHE_DIR%/unpack/agent.pkg/Payload</string>
                <key>purge_destination</key>
                <string>true</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiInstallsItemsCreator</string>
            <key>Arguments</key>
            <dict>
                <key>faux_root</key>
                <string>%RECIPE_CACHE_DIR%/payload/</string>
                <key>installs_item_paths</key>
                <array>
                    <string>/Applications/Jumpcloud.app</string>
                </array>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiPkginfoMerger</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>Versioner</string>
            <key>Arguments</key>
            <dict>
                <key>input_plist_path</key>
                <string>%RECIPE_CACHE_DIR%/payload/Applications/Jumpcloud.app/Contents/Info.plist</string>
                <key>plist_version_key</key>
                <string>CFBundleShortVersionString</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiPkginfoMerger</string>
            <key>Arguments</key>
            <dict>
                <key>additional_pkginfo</key>
                <dict>
                    <key>version</key>
                    <string>%version%</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%pathname%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
                <key>version_comparison_key</key>
                <string>CFBundleShortVersionString</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PathDeleter</string>
            <key>Arguments</key>
            <dict>
                <key>path_list</key>
                <array>
                    <string>%RECIPE_CACHE_DIR%/payload</string>
                    <string>%RECIPE_CACHE_DIR%/unpack</string>
                </array>
            </dict>
        </dict>
    </array>
</dict>
</plist>
JumpCloud Agent/JumpCloud Agent.jss.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>Description</key>
	<string>Downloads the current release version of the JumpCloud Agent and then uploads to the JSS.
	
	NOTE: The bootstrap.json file should be deployed to /opt/jc/agentBootstrap.json before
	installing this PKG, else you'll be prompted for the connect_key.
	
	See: https://support.jumpcloud.com/customer/portal/articles/2389320-agent-deployment-via-command-line
	</string>
	<key>Identifier</key>
	<string>com.github.dataJAR-recipes.jss.JumpCloud Agent</string>
	<key>Input</key>
	<dict>
		<key>CATEGORY</key>
		<string>Utilities</string>
		<key>GROUP_NAME</key>
		<string>%NAME%-update-smart</string>
		<key>GROUP_TEMPLATE</key>
		<string>JumpCloudAgent-SmartGroupTemplate.xml</string>
		<key>NAME</key>
		<string>JumpCloud Agent</string>
		<key>POLICY_CATEGORY</key>
		<string>Testing</string>
		<key>POLICY_TEMPLATE</key>
		<string>PolicyTemplate.xml</string>
		<key>SELF_SERVICE_DESCRIPTION</key>
		<string>A fully managed directory to rule your infrastructure whether on-premise or in the cloud. JumpCloud is your central source to authenticate, authorize, and manage employees, their devices and IT applications.</string>
        <key>SELF_SERVICE_ICON</key>
		<string>JumpCloud.png</string>
	</dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>ParentRecipe</key>
	<string>com.github.dataJAR-recipes.download.JumpCloud Agent</string>
    <key>Process</key>
    <array>
		<dict>
			<key>Processor</key>
			<string>com.github.dataJAR-recipes.Shared Processors/DistributionPkgInfo</string>
			<key>Arguments</key>
			<dict>
				<key>pkg_path</key>
				<string>%pathname%</string>
			</dict>
		</dict>
		<dict>
			<key>Processor</key>
			<string>FileMover</string>
			<key>Arguments</key>
			<dict>
				<key>source</key>
				<string>%pathname%</string>
				<key>target</key>
				<string>%RECIPE_CACHE_DIR%/%NAME%-%version%.pkg</string>
			</dict>
		</dict>
		<dict>
			<key>Arguments</key>
			<dict>
				<key>category</key>
				<string>%CATEGORY%</string>
				<key>extension_attributes</key>
				<array>
					<dict>
						<key>ext_attribute_path</key>
						<string>JumpCloudAgent-ExtensionAttribute.xml</string>
					</dict>
				</array>
				<key>groups</key>
				<array>
					<dict>
						<key>name</key>
						<string>%GROUP_NAME%</string>
						<key>smart</key>
						<true/>
						<key>template_path</key>
						<string>%GROUP_TEMPLATE%</string>
					</dict>
				</array>
				<key>pkg_path</key>
				<string>%target%</string>
				<key>policy_category</key>
				<string>%POLICY_CATEGORY%</string>
				<key>policy_template</key>
				<string>%POLICY_TEMPLATE%</string>
				<key>prod_name</key>
				<string>%NAME%</string>
				<key>self_service_description</key>
				<string>%SELF_SERVICE_DESCRIPTION%</string>
				<key>self_service_icon</key>
				<string>%SELF_SERVICE_ICON%</string>
			</dict>
			<key>Processor</key>
			<string>JSSImporter</string>
		</dict>
    </array>
</dict>
</plist>

JumpCloud Agent/JumpCloud Agent.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Download recipe for the latest version of JumpCloud.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.JumpCloud Agent</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>JumpCloud</string>
    </dict>
    <key>MinimumVersion</key>
    <string>1.0.3</string>
    <key>Process</key>
    <array>
        <dict>
        	<key>Arguments</key>
			<dict>
				<key>url</key>
				<string>https://s3.amazonaws.com/jumpcloud-windows-agent/production/jumpcloud-agent.pkg</string>
			</dict>
            <key>Processor</key>
            <string>URLDownloader</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
        <dict>
            <key>Arguments</key>
            <dict>
                <key>input_path</key>
                <string>%pathname%</string>
                <key>expected_authority_names</key>
                <array>
                    <string>Developer ID Installer: JUMPCLOUD INC. (N985MXSH85)</string>
                    <string>Developer ID Certification Authority</string>
                    <string>Apple Root CA</string>
                </array>
            </dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
        </dict>
    </array>
</dict>
</plist>

Jump Desktop Connect/Jump Desktop Connect.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest trial version of Jump Desktop Connect and imports into Munki.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.Jump Desktop Connect</string>
    <key>Input</key>
    <dict>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>NAME</key>
        <string>JumpDesktopConnect</string>
        <key>pkginfo</key>
        <dict> 
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>Jump Desktop Connect is a secure and reliable remote desktop app that lets you connect to any computer, anywhere in the world.</string>
            <key>display_name</key>
            <string>Jump Desktop Connect</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
            <key>unattended_uninstall</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.Jump Desktop Connect</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>PkgRootCreator</string>
            <key>Arguments</key>
            <dict>
                <key>pkgroot</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%</string>
                <key>pkgdirs</key>
                <dict>
                    <key>Applications</key>
                    <string>0775</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>FlatPkgUnpacker</string>
            <key>Arguments</key>
            <dict>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/pkg_unpack</string>
                <key>flat_pkg_path</key>
                <string>%pkg_path%</string>
                <key>purge_destination</key>
                <string>true</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PkgPayloadUnpacker</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_payload_path</key>
                <string>%destination_path%/Jump_Desktop_Connect.pkg/Payload</string>
                <key>destination_path</key>
                <string>%pkgroot%</string>
                <key>purge_destination</key>
                <string>true</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>Versioner</string>
            <key>Arguments</key>
            <dict>
                <key>input_plist_path</key>
                <string>%destination_path%/Applications/Jump Desktop Connect.app/Contents/Info.plist</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiInstallsItemsCreator</string>
            <key>Arguments</key>
            <dict>
                <key>faux_root</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%</string>
                <key>installs_item_paths</key>
                <array>
                    <string>/Applications/Jump Desktop Connect.app</string>
                </array>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiPkginfoMerger</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiPkginfoMerger</string>
            <key>Arguments</key>
            <dict>
                <key>additional_pkginfo</key>
                <dict>
                    <key>version</key>
                    <string>%version%</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%pkg_path%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PathDeleter</string>
            <key>Arguments</key>
            <dict>
                <key>path_list</key>
                <array>
                    <string>%RECIPE_CACHE_DIR%/%NAME%</string>
                    <string>%RECIPE_CACHE_DIR%/pkg_unpack</string>                       
                </array>
            </dict>
        </dict>
    </array>
</dict>
</plist>
Jump Desktop Connect/Jump Desktop Connect.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Download recipe for the latest trial version of Jump Desktop Connect.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.Jump Desktop Connect</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>JumpDesktopConnect</string>
        <key>SPARKLE_FEED_URL</key>
        <string>https://s3.amazonaws.com/jumpdesktop.com/downloads/connect/connect-mac.xml</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>SparkleUpdateInfoProvider</string>
            <key>Arguments</key>
            <dict>
                <key>appcast_url</key>
                <string>%SPARKLE_FEED_URL%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>URLDownloader</string>
            <key>Arguments</key>
            <dict>
                <key>filename</key>
                <string>%NAME%-%version%.dmg</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
        <dict>
            <key>Processor</key>
        	<string>PkgCopier</string>
			<key>Arguments</key>
			<dict>
				<key>source_pkg</key>
				<string>%pathname%/.jdc.sparkle_guided.pkg</string>
				<key>pkg_path</key>
				<string>%RECIPE_CACHE_DIR%/%NAME%.pkg</string>
			</dict>
    	</dict>
    	<dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
            <key>Arguments</key>
            <dict>
                <key>input_path</key>
                <string>%pkg_path%</string>
                <key>expected_authority_names</key>
                <array>
                    <string>Developer ID Installer: PhaseFive Systems (2HCKV38EEC)</string>
                    <string>Developer ID Certification Authority</string>
                    <string>Apple Root CA</string>
                </array>
            </dict>
        </dict>
    </array>
</dict>
</plist>

Jamf Switcher/JamfSwitcher.png METASEP

Jamf Switcher/Jamf Switcher.pkg.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of Jamf Switcher and creates a package.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.pkg.JamfSwitcher</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>JamfSwitcher</string>
    </dict>
    <key>MinimumVersion</key>
    <string>1.0.0</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.JamfSwitcher</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>AppPkgCreator</string>
            <key>Arguments</key>
            <dict>
                <key>app_path</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%/Jamf Switcher.app</string>
                <key>pkg_path</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%-%version%.pkg</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PathDeleter</string>
            <key>Arguments</key>
            <dict>
                <key>path_list</key>
                <array>
                    <string>%RECIPE_CACHE_DIR%/%NAME%</string>
                </array>
            </dict>
        </dict>
    </array>
</dict>
</plist>

Jamf Switcher/Jamf Switcher.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of Jamf Switcher and imports it into Munki.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.JamfSwitcher</string>
    <key>Input</key>
    <dict>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>NAME</key>
        <string>JamfSwitcher</string>
        <key>pkginfo</key>
        <dict>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>Jamf Switcher is an app which points either Jamf Pro applications or your browser to a particular Jamf deployment and is configured by Self Service Bookmarks</string>
            <key>developer</key>
            <string>Data JAR Ltd</string>
            <key>display_name</key>
            <string>Jamf Switcher</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
            <key>unattended_uninstall</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>1.0.0</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.JamfSwitcher</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>DmgCreator</string>
            <key>Arguments</key>
            <dict>
                <key>dmg_path</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%.dmg</string>
                <key>dmg_root</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%/</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%dmg_path%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PathDeleter</string>
            <key>Arguments</key>
            <dict>
                <key>path_list</key>
                <array>
                    <string>%RECIPE_CACHE_DIR%/%NAME%</string>
                </array>
            </dict>
        </dict>
    </array>
</dict>
</plist>

Jamf Switcher/Jamf Switcher.jss.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>Description</key>
	<string>Downloads the latest version of Jamf Switcher and imports it into your JSS.</string>
	<key>Identifier</key>
	<string>com.github.dataJAR-recipes.jss.JamfSwitcher</string>
	<key>Input</key>
	<dict>
		<key>CATEGORY</key>
		<string>Productivity</string>
		<key>GROUP_NAME</key>
		<string>%NAME%-update-smart</string>
		<key>GROUP_TEMPLATE</key>
		<string>SmartGroupTemplate.xml</string>
		<key>NAME</key>
		<string>JamfSwitcher</string>
		<key>POLICY_CATEGORY</key>
		<string>Testing</string>
		<key>POLICY_TEMPLATE</key>
		<string>PolicyTemplate.xml</string>
		<key>SELF_SERVICE_DESCRIPTION</key>
		<string>Jamf Switcher is an app which points either Jamf Pro applications or your browser to a particular Jamf deployment and is configured by Self Service Bookmarks</string>
		<key>SELF_SERVICE_ICON</key>
		<string>%NAME%.png</string>
	</dict>
	<key>MinimumVersion</key>
	<string>1.0.0</string>
	<key>ParentRecipe</key>
	<string>com.github.dataJAR-recipes.pkg.JamfSwitcher</string>
	<key>Process</key>
	<array>
		<dict>
			<key>Arguments</key>
			<dict>
				<key>category</key>
				<string>%CATEGORY%</string>
				<key>groups</key>
				<array>
					<dict>
						<key>name</key>
						<string>%GROUP_NAME%</string>
						<key>smart</key>
						<true/>
						<key>template_path</key>
						<string>%GROUP_TEMPLATE%</string>
					</dict>
				</array>
				<key>policy_category</key>
				<string>%POLICY_CATEGORY%</string>
				<key>policy_template</key>
				<string>%POLICY_TEMPLATE%</string>
				<key>prod_name</key>
				<string>Jamf Switcher</string>
				<key>self_service_description</key>
				<string>%SELF_SERVICE_DESCRIPTION%</string>
				<key>self_service_icon</key>
				<string>%SELF_SERVICE_ICON%</string>
				<key>version</key>
				<string>%version%</string>
			</dict>
			<key>Processor</key>
			<string>JSSImporter</string>
		</dict>
	</array>
</dict>
</plist>

Jamf Switcher/Jamf Switcher.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of Jamf Switcher.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.JamfSwitcher</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>JamfSwitcher</string>
        <key>SPARKLE_FEED_URL</key>
        <string>https://raw.githubusercontent.com/dataJAR/Jamf-Switcher/appcast/appcast.xml</string>
    </dict>
    <key>MinimumVersion</key>
    <string>1.0.0</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Arguments</key>
            <dict>
                <key>appcast_url</key>
                <string>%SPARKLE_FEED_URL%</string>
            </dict>
            <key>Processor</key>
            <string>SparkleUpdateInfoProvider</string>
        </dict>
        <dict>
            <key>Arguments</key>
            <dict>
                <key>filename</key>
                <string>%NAME%.zip</string>
            </dict>
            <key>Processor</key>
            <string>URLDownloader</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
        <dict>
            <key>Arguments</key>
            <dict>
                <key>archive_path</key>
                <string>%pathname%</string>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%</string>
                <key>purge_destination</key>
                <true/>
            </dict>
            <key>Processor</key>
            <string>Unarchiver</string>
        </dict>
        <dict>
            <key>Arguments</key>
            <dict>
                <key>input_path</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%/Jamf Switcher.app</string>
                <key>requirement</key>
                <string>anchor apple generic and identifier "uk.co.dataJAR.JamfSwitcher" 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] = "82K2XFN8L6")</string>
            </dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
        </dict>
    </array>
</dict>
</plist>

Jamf Connect Verify/Jamf Connect Verify.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
    <dict>
        <key>Description</key>
        <string>Downloads the latest release of Jamf Connect Verify and imports it in into Munki.</string>
        <key>Identifier</key>
        <string>com.github.dataJAR-recipes.munki.Jamf Connect Verify</string>
        <key>Input</key>
        <dict>
            <key>MUNKI_REPO_SUBDIR</key>
            <string>apps/Jamf Connect Verify</string>
            <key>MUNKI_CATEGORY</key>
            <string>Utilities</string>
            <key>NAME</key>
            <string>Jamf Connect Verify</string>
            <key>pkginfo</key>
            <dict>
                <key>blocking_applications</key>
                <array>
                    <string>Jamf Connect Verify</string>
                </array>
                <key>catalogs</key>
                <array>
                    <string>testing</string>
                </array>
                <key>category</key>
                <string>%MUNKI_CATEGORY%</string>
                <key>description</key>
                <string>Jamf Connect Verify is a menu bar application that allows for continuous password validation between network and local accounts. Validation can occur in the background, avoiding user engagement, or with user interaction.</string>
                <key>developer</key>
                <string>%NAME%</string>
                <key>display_name</key>
                <string>%NAME%</string>
                <key>name</key>
                <string>%NAME%</string>
                <key>unattended_install</key>
                <true/>
            </dict>
        </dict>
        <key>MinimumVersion</key>
        <string>1.1</string>
        <key>Process</key>
        <array>
            <dict>
                <key>Arguments</key>
                <dict>
                    <key>warning_message</key>
                    <string>This recipe has been deprecated following the release of Jamf Connect 2.0</string>
                </dict>
                <key>Processor</key>
                <string>DeprecationWarning</string>
            </dict>
            <dict>   
                <key>Processor</key>   
                <string>StopProcessingIf</string>   
                <key>Arguments</key>   
                <dict>   
                    <key>predicate</key>   
                    <string>TRUEPREDICATE</string>
                </dict>
            </dict>
        </array>
    </dict>
</plist>

Jamf Connect Sync/Jamf Connect Sync.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
    <dict>
        <key>Description</key>
        <string>Downloads the latest release of Jamf Connect Sync and imports it in into Munki.</string>
        <key>Identifier</key>
        <string>com.github.dataJAR-recipes.munki.Jamf Connect Sync</string>
        <key>Input</key>
        <dict>
            <key>MUNKI_REPO_SUBDIR</key>
            <string>apps/Jamf Connect Sync</string>
            <key>MUNKI_CATEGORY</key>
            <string>Utilities</string>
            <key>NAME</key>
            <string>Jamf Connect Sync</string>
            <key>pkginfo</key>
            <dict>
                <key>blocking_applications</key>
                <array>
                    <string>Jamf Connect Sync</string>
                </array>
                <key>catalogs</key>
                <array>
                    <string>testing</string>
                </array>
                <key>category</key>
                <string>%MUNKI_CATEGORY%</string>
                <key>description</key>
                <string>Jamf Connect Sync (formerly NoMAD Pro) is a menu bar application that helps manage your Okta password. With Jamf Connect Sync, you can sign in to your Okta account and synchronize your Okta password with your local account.</string>
                <key>developer</key>
                <string>%NAME%</string>
                <key>display_name</key>
                <string>%NAME%</string>
                <key>name</key>
                <string>%NAME%</string>
                <key>unattended_install</key>
                <true/>
            </dict>
        </dict>
        <key>MinimumVersion</key>
        <string>1.1</string>
        <key>Process</key>
        <array>
            <dict>
                <key>Arguments</key>
                <dict>
                    <key>warning_message</key>
                    <string>This recipe has been deprecated following the release of Jamf Connect 2.0</string>
                </dict>
                <key>Processor</key>
                <string>DeprecationWarning</string>
            </dict>
            <dict>   
                <key>Processor</key>   
                <string>StopProcessingIf</string>   
                <key>Arguments</key>   
                <dict>   
                    <key>predicate</key>   
                    <string>TRUEPREDICATE</string>
                </dict>
            </dict>
        </array>
    </dict>
</plist>

Jamf Connect Login/Jamf Connect Login.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
    <dict>
        <key>Description</key>
        <string>Downloads the latest release of Jamf Connect Login and imports it in into Munki.</string>
        <key>Identifier</key>
        <string>com.github.dataJAR-recipes.munki.Jamf Connect Login</string>
        <key>Input</key>
        <dict>
            <key>MUNKI_REPO_SUBDIR</key>
            <string>apps/Jamf Connect Login</string>
            <key>MUNKI_CATEGORY</key>
            <string>Utilities</string>
            <key>NAME</key>
            <string>Jamf Connect Login</string>
            <key>pkginfo</key>
            <dict>
                <key>catalogs</key>
                <array>
                    <string>testing</string>
                </array>
                <key>category</key>
                <string>%MUNKI_CATEGORY%</string>
                <key>description</key>
                <string>Jamf Connect Login (formerly NoMAD Login+) is an application that allows you to manage authentication with the macOS loginwindow process.</string>
                <key>developer</key>
                <string>%NAME%</string>
                <key>display_name</key>
                <string>%NAME%</string>
                <key>name</key>
                <string>%NAME%</string>
                <key>unattended_install</key>
                <true/>
            </dict>
        </dict>
        <key>MinimumVersion</key>
        <string>1.1</string>
        <key>Process</key>
        <array>
            <dict>
                <key>Arguments</key>
                <dict>
                    <key>warning_message</key>
                    <string>This recipe has been deprecated following the release of Jamf Connect 2.0</string>
                </dict>
                <key>Processor</key>
                <string>DeprecationWarning</string>
            </dict>
            <dict>   
                <key>Processor</key>   
                <string>StopProcessingIf</string>   
                <key>Arguments</key>   
                <dict>   
                    <key>predicate</key>   
                    <string>TRUEPREDICATE</string>
                </dict>
            </dict>
        </array>
    </dict>
</plist>

Jamf Connect Login/Jamf Connect Login Okta.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
    <dict>
        <key>Description</key>
        <string>Downloads the latest release of Jamf Connect Login for Okta and imports it in into Munki.
        
The name "okta" needs to be present in the PKG name, this is case insensitive.

https://docs.jamf.com/jamf-connect/1.18.0/administrator-guide/Deploying_Jamf_Connect_Login.html
</string>
        <key>Identifier</key>
        <string>com.github.dataJAR-recipes.munki.Jamf Connect Login Okta</string>
        <key>Input</key>
        <dict>
            <key>MUNKI_REPO_SUBDIR</key>
            <string>apps/Jamf Connect Login Okta</string>
            <key>MUNKI_CATEGORY</key>
            <string>Utilities</string>
            <key>NAME</key>
            <string>Jamf Connect Login Okta</string>
            <key>pkginfo</key>
            <dict>
                <key>catalogs</key>
                <array>
                    <string>testing</string>
                </array>
                <key>category</key>
                <string>%MUNKI_CATEGORY%</string>
                <key>description</key>
                <string>Jamf Connect Login (formerly NoMAD Login+) is an application that allows you to manage authentication with the macOS loginwindow process.</string>
                <key>developer</key>
                <string>%NAME%</string>
                <key>display_name</key>
                <string>%NAME%</string>
                <key>name</key>
                <string>%NAME%</string>
                <key>unattended_install</key>
                <true/>
            </dict>
        </dict>
        <key>MinimumVersion</key>
        <string>1.1</string>
        <key>Process</key>
        <array>
            <dict>
                <key>Arguments</key>
                <dict>
                    <key>warning_message</key>
                    <string>This recipe has been deprecated following the release of Jamf Connect 2.0</string>
                </dict>
                <key>Processor</key>
                <string>DeprecationWarning</string>
            </dict>
            <dict>   
                <key>Processor</key>   
                <string>StopProcessingIf</string>   
                <key>Arguments</key>   
                <dict>   
                    <key>predicate</key>   
                    <string>TRUEPREDICATE</string>
                </dict>
            </dict>
        </array>
    </dict>
</plist>

Jamf Connect Configuration/Jamf Connect Configuration.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
    <dict>
        <key>Description</key>
        <string>Downloads the latest release of Jamf Connect Configuration and imports it in into Munki.</string>
        <key>Identifier</key>
        <string>com.github.dataJAR-recipes.munki.Jamf Connect Configuration</string>
        <key>Input</key>
        <dict>
            <key>MUNKI_REPO_SUBDIR</key>
            <string>apps/Jamf Connect Configuration</string>
            <key>MUNKI_CATEGORY</key>
            <string>Utilities</string>
            <key>NAME</key>
            <string>Jamf Connect Configuration</string>
            <key>pkginfo</key>
            <dict>
                <key>blocking_applications</key>
                <array>
                    <string>Jamf Connect Configuration</string>
                </array>
                <key>catalogs</key>
                <array>
                    <string>testing</string>
                </array>
                <key>category</key>
                <string>%MUNKI_CATEGORY%</string>
                <key>description</key>
                <string>Jamf Connect Configuration is an app that allows administrators to automatically configure and create computer configuration profiles for Jamf Connect apps.</string>
                <key>developer</key>
                <string>%NAME%</string>
                <key>display_name</key>
                <string>%NAME%</string>
                <key>name</key>
                <string>%NAME%</string>
                <key>unattended_install</key>
                <true/>
            </dict>
        </dict>
        <key>MinimumVersion</key>
        <string>1.0.4</string>
        <key>ParentRecipe</key>
        <string>com.github.yohan460-recipes.download.JamfConnect</string>
        <key>Process</key>
        <array>
        <dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
            <key>Arguments</key>
            <dict>
                <key>input_path</key>
                <string>%pathname%/* Configuration.app</string>
                <key>requirement</key>
                <string>anchor apple generic and identifier "com.jamf.connect.configuration" 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] = "483DWKW443")</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>Copier</string>
            <key>Arguments</key>
            <dict>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/Applications/Jamf Connect Configuration.app</string>
                <key>source_path</key>
                <string>%pathname%/* Configuration.app</string>
                <key>overwrite</key>
                <true/>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiInstallsItemsCreator</string>
            <key>Arguments</key>
            <dict>
                <key>faux_root</key>
                <string>%RECIPE_CACHE_DIR%</string>
                <key>installs_item_paths</key>
                <array>
                    <string>/Applications/Jamf Connect Configuration.app</string>
                </array>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiPkginfoMerger</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>DmgCreator</string>
            <key>Arguments</key>
            <dict>
                <key>dmg_path</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%.dmg</string>
                <key>dmg_root</key>
                <string>%destination_path%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%dmg_path%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PathDeleter</string>
            <key>Arguments</key>
            <dict>
                <key>path_list</key>
                <array>
                    <string>%RECIPE_CACHE_DIR%/Applications</string>
                </array>
            </dict>
        </dict>
    </array>
</dict>
</plist>
Jamf Connect 2/Jamf Connect 2.pkg.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of Jamf Connect 2 and extracts its package</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.pkg.Jamf Connect 2</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>Jamf Connect</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.5.0</string>
    <key>ParentRecipe</key>
    <string>com.github.yohan460-recipes.download.JamfConnect</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Arguments</key>
            <dict>
                <key>input_path</key>
                <string>%pathname%/JamfConnect.pkg</string>
                <key>expected_authority_names</key>
                <array>
                    <string>Developer ID Installer: JAMF Software (483DWKW443)</string>
                    <string>Developer ID Certification Authority</string>
                    <string>Apple Root CA</string>
                </array>
            </dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
        </dict>
        <dict>
            <key>Arguments</key>
            <dict>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/unpack</string>
                <key>flat_pkg_path</key>
                <string>%pathname%/JamfConnect.pkg</string>
                <key>purge_destination</key>
                <true/>
            </dict>
            <key>Processor</key>
            <string>FlatPkgUnpacker</string>
        </dict>
        <dict>
            <key>Arguments</key>
            <dict>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/payload</string>
                <key>pkg_payload_path</key>
                <string>%RECIPE_CACHE_DIR%/unpack/JamfConnect.pkg/Payload</string>
                <key>purge_destination</key>
                <true/>
            </dict>
            <key>Processor</key>
            <string>PkgPayloadUnpacker</string>
        </dict>
        <dict>
            <key>Arguments</key>
            <dict>
                <key>info_path</key>
                <string>%RECIPE_CACHE_DIR%/payload/Applications/Jamf Connect.app/Contents/Info.plist</string>
                <key>plist_keys</key>
                <dict>
                    <key>CFBundleShortVersionString</key>
                    <string>version</string>
                    <key>LSMinimumSystemVersion</key>
                    <string>min_os_version</string>
                </dict>
            </dict>
            <key>Processor</key>
            <string>PlistReader</string>
        </dict>
        <dict>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%-%version%.pkg</string>
                <key>source_pkg</key>
                <string>%pathname%/JamfConnect.pkg</string>
            </dict>
            <key>Processor</key>
            <string>PkgCopier</string>
        </dict>
        <dict>
            <key>Arguments</key>
            <dict>
                <key>path_list</key>
                <array>
                    <string>%RECIPE_CACHE_DIR%/unpack</string>
                    <string>%RECIPE_CACHE_DIR%/payload</string>
                </array>
            </dict>
            <key>Processor</key>
            <string>PathDeleter</string>
        </dict>
    </array>
</dict>
</plist>

Jamf Connect 2/Jamf Connect 2.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of Jamf Connect 2 and imports into Munki</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.Jamf Connect 2</string>
    <key>Input</key>
    <dict>
        <key>MUNKI_CATEGORY</key>
        <string>Utilities</string>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/Jamf Connect</string>
        <key>NAME</key>
        <string>Jamf Connect</string>
        <key>pkginfo</key>
        <dict>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>category</key>
            <string>%MUNKI_CATEGORY%</string>
            <key>description</key>
            <string>Jamf Connect is a collection of apps allowing for simple provisioning of local user accounts and password synchronization from a cloud identity provider (IdP) during an Apple provisioning workflow. This includes multi-factor authentication (MFA).</string>
            <key>developer</key>
            <string>Jamf</string>
            <key>display_name</key>
            <string>%NAME%</string>
            <key>minimum_os_version</key>
            <string>10.14.4</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>preuninstall_script</key>
            <string>#!/bin/bash
#
# Taken from: https://docs.jamf.com/jamf-connect/2.6.0/documentation/Uninstalling_Jamf_Connect.html
#

if [ -f /usr/local/bin/authchanger ]
then
    /bin/echo "Resetting the authentication database..."
    /usr/local/bin/authchanger -reset
    /bin/echo "Deleting /usr/local/bin/authchanger..."
    /bin/rm /usr/local/bin/authchanger
fi

if [ -f /usr/local/lib/pam/pam_saml.so.2 ]
then
    /bin/echo "Deleting /usr/local/lib/pam/pam_saml.so.2..."
    /bin/rm /usr/local/lib/pam/pam_saml.so.2
fi

if [ -f /Library/Security/SecurityAgentPlugins/JamfConnectLogin.bundle ]
then
    /bin/echo "Deleting /Library/Security/SecurityAgentPlugins/JamfConnectLogin.bundle..."
    /bin/rm -r /Library/Security/SecurityAgentPlugins/JamfConnectLogin.bundle
fi</string>
            <key>unattended_install</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.5.0</string>
    <key>ParentRecipe</key>
    <string>com.github.yohan460-recipes.download.JamfConnect</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
            <key>Arguments</key>
            <dict>
                <key>input_path</key>
                <string>%pathname%/JamfConnect.pkg</string>
                <key>expected_authority_names</key>
                <array>
                    <string>Developer ID Installer: JAMF Software (483DWKW443)</string>
                    <string>Developer ID Certification Authority</string>
                    <string>Apple Root CA</string>
                </array>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>FlatPkgUnpacker</string>
            <key>Arguments</key>
            <dict>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/unpack</string>
                <key>flat_pkg_path</key>
                <string>%pathname%/JamfConnect.pkg</string>
                <key>purge_destination</key>
                <true/>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PkgPayloadUnpacker</string>
            <key>Arguments</key>
            <dict>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/payload</string>
                <key>pkg_payload_path</key>
                <string>%RECIPE_CACHE_DIR%/unpack/JamfConnect.pkg/Payload</string>
                <key>purge_destination</key>
                <true/>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiInstallsItemsCreator</string>
            <key>Arguments</key>
            <dict>
                <key>faux_root</key>
                <string>%RECIPE_CACHE_DIR%/payload/</string>
                <key>installs_item_paths</key>
                <array>
                    <string>/Applications/Jamf Connect.app</string>
                </array>
            </dict>
        </dict>
       <dict>
            <key>Processor</key>
            <string>MunkiPkginfoMerger</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PlistReader</string>
            <key>Arguments</key>
            <dict>
                <key>info_path</key>
                <string>%RECIPE_CACHE_DIR%/payload/Applications/Jamf Connect.app/Contents/Info.plist</string>
                <key>plist_keys</key>
                <dict>
                    <key>CFBundleShortVersionString</key>
                    <string>version</string>
                    <key>LSMinimumSystemVersion</key>
                    <string>min_os_version</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PkgCopier</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%.pkg</string>
                <key>source_pkg</key>
                <string>%pathname%/JamfConnect.pkg</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiPkginfoMerger</string>
            <key>Arguments</key>
            <dict>
                <key>additional_pkginfo</key>
                <dict>
                    <key>minimum_os_version</key>
                    <string>%min_os_version%</string>
                    <key>version</key>
                    <string>%version%</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%pkg_path%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PathDeleter</string>
            <key>Arguments</key>
            <dict>
                <key>path_list</key>
                <array>
                    <string>%RECIPE_CACHE_DIR%/unpack</string>
                    <string>%RECIPE_CACHE_DIR%/payload</string>
                </array>
            </dict>
        </dict>
    </array>
</dict>
</plist>

Jamf Connect 2 LaunchAgent/Jamf Connect 2 LaunchAgent.pkg.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of Jamf Connect 2 LaunchAgent and extracts its package</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.pkg.Jamf Connect 2 LaunchAgent</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>Jamf Connect LaunchAgent</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.5.0</string>
    <key>ParentRecipe</key>
    <string>com.github.yohan460-recipes.download.JamfConnect</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Arguments</key>
            <dict>
                <key>input_path</key>
                <string>%pathname%/Resources/JamfConnectLaunchAgent.pkg</string>
                <key>expected_authority_names</key>
                <array>
                    <string>Developer ID Installer: JAMF Software (483DWKW443)</string>
                    <string>Developer ID Certification Authority</string>
                    <string>Apple Root CA</string>
                </array>
            </dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
        </dict>
        <dict>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%.pkg</string>
                <key>source_pkg</key>
                <string>%pathname%/Resources/JamfConnectLaunchAgent.pkg</string>
            </dict>
            <key>Processor</key>
            <string>PkgCopier</string>
        </dict>
    </array>
</dict>
</plist>

Jamf Connect 2 LaunchAgent/Jamf Connect 2 LaunchAgent.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of Jamf Connect 2 LaunchAgent and imports into Munki</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.Jamf Connect 2 LaunchAgent</string>
    <key>Input</key>
    <dict>
        <key>MUNKI_CATEGORY</key>
        <string>Utilities</string>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/Jamf Connect LaunchAgent</string>
        <key>NAME</key>
        <string>Jamf Connect LaunchAgent</string>
        <key>pkginfo</key>
        <dict>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>category</key>
            <string>%MUNKI_CATEGORY%</string>
            <key>description</key>
            <string>LaunchAgent for Jamf Connect 2 to ensure it launches at user login and stays active.</string>
            <key>developer</key>
            <string>Jamf</string>
            <key>display_name</key>
            <string>%NAME%</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.5.0</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.pkg.Jamf Connect 2 LaunchAgent</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%pkg_path%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
        </dict>
    </array>
</dict>
</plist>

JPEGmini-Trial/JPEGmini.png METASEP

JPEGmini-Trial/JPEGmini-Trial.pkg.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>Description</key>
	<string>Downloads the latest trial version of JPEGmini and creates a package.</string>
	<key>Identifier</key>
	<string>com.github.dataJAR-recipes.pkg.JPEGmini-Trial</string>
	<key>Input</key>
	<dict>
		<key>NAME</key>
		<string>JPEGmini-Trial</string>
	</dict>
	<key>MinimumVersion</key>
	<string>0.6.1</string>
	<key>ParentRecipe</key>
	<string>com.github.dataJAR-recipes.download.JPEGmini-Trial</string>
	<key>Process</key>
	<array>
	    <dict>
            <key>Processor</key>
            <string>PlistReader</string>
            <key>Arguments</key>
            <dict>
                <key>info_path</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%/Applications/JPEGmini.app</string>
                <key>plist_keys</key>
                <dict>
                    <key>CFBundleVersion</key>
                    <string>version</string>
                    <key>CFBundleIdentifier</key>
                    <string>bundleid</string>
                </dict>
            </dict>
        </dict>
		<dict>
			<key>Arguments</key>
			<dict>
				<key>pkg_request</key>
				<dict>
					<key>chown</key>
					<array>
						<dict>
							<key>group</key>
							<string>admin</string>
							<key>path</key>
							<string>Applications</string>
							<key>user</key>
							<string>root</string>
						</dict>
					</array>
					<key>id</key>
					<string>%bundleid%</string>
					<key>options</key>
					<string>purge_ds_store</string>
					<key>pkgname</key>
					<string>%NAME%-%version%</string>
					<key>pkgroot</key>
					<string>%RECIPE_CACHE_DIR%/%NAME%</string>
					<key>version</key>
					<string>%version%</string>
				</dict>
			</dict>
			<key>Processor</key>
			<string>PkgCreator</string>
		</dict>
	</array>
</dict>
</plist>

JPEGmini-Trial/JPEGmini-Trial.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest trial version of JPEGmini and imports it into Munki.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.JPEGmini-Trial</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>JPEGmini-Trial</string>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>pkginfo</key>
        <dict>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>With JPEGmini for Mac you can reduce the file size of your photos by up to 5x, while keeping their original quality and JPEG format.</string>
            <key>developer</key>
			<string>Beamr Imaging Ltd</string>
            <key>display_name</key>
            <string>JPEGmini</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
        </dict>
		<key>pkginfo_keys_to_copy_from_sparkle_feed</key>
		<array>
			<string>minimum_os_version</string>
		</array>  
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.JPEGmini-Trial</string>
    <key>Process</key>
    <array>
		<dict>
			<key>Arguments</key>
			<dict>
				<key>dmg_path</key>
				<string>%RECIPE_CACHE_DIR%/%NAME%.dmg</string>
				<key>dmg_root</key>
				<string>%RECIPE_CACHE_DIR%/%NAME%/Applications/JPEGmini.app</string>
			</dict>
			<key>Processor</key>
			<string>DmgCreator</string>
		</dict>
		<dict>
            <key>Arguments</key>
            <dict>
                <key>additional_pkginfo</key>
                <dict>
                    <key>version</key>
                    <string>%version%</string>
                </dict>
            </dict>
            <key>Processor</key>
            <string>MunkiPkginfoMerger</string>
        </dict>
		<dict>
			<key>Arguments</key>
			<dict>
				<key>pkg_path</key>
				<string>%dmg_path%</string>
				<key>repo_subdirectory</key>
				<string>%MUNKI_REPO_SUBDIR%</string>
				<key>version_comparison_key</key>
                <string>CFBundleVersion</string>
			</dict>
			<key>Processor</key>
			<string>MunkiImporter</string>
		</dict>
    </array>
</dict>
</plist>

JPEGmini-Trial/JPEGmini-Trial.jss.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>Description</key>
	<string>Downloads the current release version of JPEGmini and builds a package. Then, uploads to the JSS.</string>
	<key>Identifier</key>
	<string>com.github.dataJAR-recipes.jss.JPEGmini-Trial</string>
	<key>Input</key>
	<dict>
		<key>CATEGORY</key>
		<string>Productivity</string>
		<key>GROUP_NAME</key>
		<string>%NAME%-update-smart</string>
		<key>GROUP_TEMPLATE</key>
		<string>JPEGmini-SmartGroupTemplate.xml</string>
		<key>NAME</key>
		<string>JPEGmini-Trial</string>
		<key>POLICY_CATEGORY</key>
		<string>Testing</string>
		<key>POLICY_TEMPLATE</key>
		<string>PolicyTemplate.xml</string>
		<key>SELF_SERVICE_DESCRIPTION</key>
        <string>With JPEGmini for Mac you can reduce the file size of your photos by up to 5x, while keeping their original quality and JPEG format.</string>
        <key>SELF_SERVICE_ICON</key>
		<string>JPEGmini.png</string>
	</dict>
	<key>MinimumVersion</key>
	<string>0.6.1</string>
	<key>ParentRecipe</key>
	<string>com.github.dataJAR-recipes.pkg.JPEGmini-Trial</string>
	<key>Process</key>
	<array>
		<dict>
			<key>Arguments</key>
			<dict>
				<key>category</key>
				<string>%CATEGORY%</string>
				<key>extension_attributes</key>
				<array>
					<dict>
						<key>ext_attribute_path</key>
						<string>JPEGmini-ExtensionAttribute.xml</string>
					</dict>
				</array>
				<key>groups</key>
				<array>
					<dict>
						<key>name</key>
						<string>%GROUP_NAME%</string>
						<key>smart</key>
						<true/>
						<key>template_path</key>
						<string>%GROUP_TEMPLATE%</string>
					</dict>
				</array>
				<key>policy_category</key>
				<string>%POLICY_CATEGORY%</string>
				<key>policy_template</key>
				<string>%POLICY_TEMPLATE%</string>
				<key>prod_name</key>
				<string>%NAME%</string>
				<key>self_service_description</key>
				<string>%SELF_SERVICE_DESCRIPTION%</string>
				<key>self_service_icon</key>
				<string>%SELF_SERVICE_ICON%</string>
			</dict>
			<key>Processor</key>
			<string>JSSImporter</string>
		</dict>
	</array>
</dict>
</plist>

JPEGmini-Trial/JPEGmini-Trial.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads latest trial version of JPEGmini.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.JPEGmini-Trial</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>JPEGmini-Trial</string>
        <key>SPARKLE_FEED_URL</key>
        <string>http://mac.jpegmini.com/autoupdate/JPEGmini-appcast.xml</string>
    </dict>
    <key>MinimumVersion</key>
    <string>1.1</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>DeprecationWarning</string>
            <key>Arguments</key>
            <dict>
                <key>warning_message</key>
                <string>JPEGmini only comes in the Pro variety now, please use: https://github.com/autopkg/dataJAR-recipes/tree/master/JPEGmini%20Pro-Trial</string>
            </dict>
        </dict>
        <dict>   
            <key>Processor</key>   
            <string>StopProcessingIf</string>   
            <key>Arguments</key>   
            <dict>   
                <key>predicate</key>   
                <string>TRUEPREDICATE</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>

JPEGmini-Trial/JPEGmini-SmartGroupTemplate.xml METASEP
<computer_group>
	<name>%group_name%</name>
	<is_smart>true</is_smart>
	<criteria>
		<criterion>
			<name>JPEGminiVersion</name>
			<priority>0</priority>
			<and_or>and</and_or>
			<search_type>is not</search_type>
			<value>%VERSION%</value>
		</criterion>
		<criterion>
			<name>JPEGminiVersion</name>
			<priority>1</priority>
			<and_or>and</and_or>
			<search_type>is not</search_type>
			<value></value>
		</criterion>
		<criterion>
			<name>Computer Group</name>
			<priority>2</priority>
			<and_or>and</and_or>
			<search_type>member of</search_type>
			<value>Testing</value>
		</criterion>
	</criteria>
</computer_group>

JPEGmini-Trial/JPEGmini-ExtensionAttribute.xml METASEP
<computer_extension_attribute>
	<name>JPEGminiVersion</name>
	<description>Returns the CFBundleVersion of JPEGmini if installed, as this is incremented &amp; not CFBundleShortVersionString.</description>
	<data_type>String</data_type>
	<input_type>
		<type>script</type>
		<platform>Mac</platform>
		<script>#!/bin/bash
JPEGminiVersion=""
if [ -f /Applications/JPEGmini.app/Contents/Info.plist ]
	then
		JPEGminiVersion=$(/usr/bin/defaults read /Applications/JPEGmini.app/Contents/Info.plist CFBundleVersion)
fi

/bin/echo "&lt;result&gt;$JPEGminiVersion&lt;/result&gt;"

exit 0</script>
	</input_type>
	<inventory_display>Extension Attributes</inventory_display>
	<recon_display>Extension Attributes</recon_display>
</computer_extension_attribute>

JPEGmini Pro-Trial/JPEGminiPro.png METASEP

JPEGmini Pro-Trial/JPEGmini Pro-Trial.pkg.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>Description</key>
	<string>Downloads the latest trial version of JPEGmini Pro and creates a package.</string>
	<key>Identifier</key>
	<string>com.github.dataJAR-recipes.pkg.JPEGmini Pro-Trial</string>
	<key>Input</key>
	<dict>
		<key>NAME</key>
		<string>JPEGmini Pro-Trial</string>
	</dict>
	<key>MinimumVersion</key>
	<string>0.6.1</string>
	<key>ParentRecipe</key>
	<string>com.github.dataJAR-recipes.download.JPEGmini Pro-Trial</string>
	<key>Process</key>
	<array>
	    <dict>
            <key>Processor</key>
            <string>PlistReader</string>
            <key>Arguments</key>
            <dict>
                <key>info_path</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%/Applications/JPEGmini Pro.app</string>
                <key>plist_keys</key>
                <dict>
                    <key>CFBundleVersion</key>
                    <string>version</string>
                    <key>CFBundleIdentifier</key>
                    <string>bundleid</string>
                </dict>
            </dict>
        </dict>
		<dict>
			<key>Arguments</key>
			<dict>
				<key>pkg_request</key>
				<dict>
					<key>chown</key>
					<array>
						<dict>
							<key>group</key>
							<string>admin</string>
							<key>path</key>
							<string>Applications</string>
							<key>user</key>
							<string>root</string>
						</dict>
					</array>
					<key>id</key>
					<string>%bundleid%</string>
					<key>options</key>
					<string>purge_ds_store</string>
					<key>pkgname</key>
					<string>%NAME%-%version%</string>
					<key>pkgroot</key>
					<string>%RECIPE_CACHE_DIR%/%NAME%</string>
					<key>version</key>
					<string>%version%</string>
				</dict>
			</dict>
			<key>Processor</key>
			<string>PkgCreator</string>
		</dict>
	</array>
</dict>
</plist>

JPEGmini Pro-Trial/JPEGmini Pro-Trial.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest trial version of JPEGmini Pro and imports it into Munki.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.JPEGmini Pro-Trial</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>JPEGmini Pro-Trial</string>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>pkginfo</key>
        <dict>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>JPEGmini Pro. The Photo Optimization Tool. Trusted by Thousands of Image Perfectionists. Get the smallest file size without compromising quality or changing your workflow.</string>
            <key>developer</key>
            <string>Beamr Imaging Ltd</string>
            <key>display_name</key>
            <string>JPEGmini Pro</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
        </dict>
        <key>pkginfo_keys_to_copy_from_sparkle_feed</key>
        <array>
            <string>minimum_os_version</string>
        </array>  
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.JPEGmini Pro-Trial</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>DmgCreator</string>
            <key>Arguments</key>
            <dict>
                <key>dmg_path</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%.dmg</string>
                <key>dmg_root</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%/Applications/JPEGmini Pro.app</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiPkginfoMerger</string>
            <key>Arguments</key>
            <dict>
                <key>additional_pkginfo</key>
                <dict>
                    <key>version</key>
                    <string>%version%</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%dmg_path%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
                <key>version_comparison_key</key>
                <string>CFBundleVersion</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PathDeleter</string>
            <key>Arguments</key>
            <dict>
                <key>path_list</key>
                <array>
                    <string>%RECIPE_CACHE_DIR%/%NAME%/</string>
                </array>
            </dict>
        </dict>
    </array>
</dict>
</plist>

JPEGmini Pro-Trial/JPEGmini Pro-Trial.jss.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>Description</key>
	<string>Downloads the current release version of JPEGmini Pro and builds a package. Then, uploads to the JSS.</string>
	<key>Identifier</key>
	<string>com.github.dataJAR-recipes.jss.JPEGmini Pro-Trial</string>
	<key>Input</key>
	<dict>
		<key>CATEGORY</key>
		<string>Productivity</string>
		<key>GROUP_NAME</key>
		<string>%NAME%-update-smart</string>
		<key>GROUP_TEMPLATE</key>
		<string>JPEGmini Pro-SmartGroupTemplate.xml</string>
		<key>NAME</key>
		<string>JPEGmini Pro-Trial</string>
		<key>POLICY_CATEGORY</key>
		<string>Testing</string>
		<key>POLICY_TEMPLATE</key>
		<string>PolicyTemplate.xml</string>
		<key>SELF_SERVICE_DESCRIPTION</key>
        <string>JPEGmini Pro. The Photo Optimization Tool. Trusted by Thousands of Image Perfectionists. Get the smallest file size without compromising quality or changing your workflow.</string>
        <key>SELF_SERVICE_ICON</key>
		<string>JPEGminiPro.png</string>
	</dict>
	<key>MinimumVersion</key>
	<string>0.6.1</string>
	<key>ParentRecipe</key>
	<string>com.github.dataJAR-recipes.pkg.JPEGmini Pro-Trial</string>
	<key>Process</key>
	<array>
		<dict>
			<key>Arguments</key>
			<dict>
				<key>category</key>
				<string>%CATEGORY%</string>
				<key>extension_attributes</key>
				<array>
					<dict>
						<key>ext_attribute_path</key>
						<string>JPEGmini Pro-ExtensionAttribute.xml</string>
					</dict>
				</array>
				<key>groups</key>
				<array>
					<dict>
						<key>name</key>
						<string>%GROUP_NAME%</string>
						<key>smart</key>
						<true/>
						<key>template_path</key>
						<string>%GROUP_TEMPLATE%</string>
					</dict>
				</array>
				<key>policy_category</key>
				<string>%POLICY_CATEGORY%</string>
				<key>policy_template</key>
				<string>%POLICY_TEMPLATE%</string>
				<key>prod_name</key>
				<string>%NAME%</string>
				<key>self_service_description</key>
				<string>%SELF_SERVICE_DESCRIPTION%</string>
				<key>self_service_icon</key>
				<string>%SELF_SERVICE_ICON%</string>
			</dict>
			<key>Processor</key>
			<string>JSSImporter</string>
		</dict>
	</array>
</dict>
</plist>

JPEGmini Pro-Trial/JPEGmini Pro-Trial.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads latest trial version of JPEGmini.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.JPEGmini Pro-Trial</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>JPEGmini Pro-Trial</string>
        <key>SPARKLE_FEED_URL</key>
        <string>https://mac.jpegmini.com/autoupdate/jpegmini-pro-appcast.xml</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>SparkleUpdateInfoProvider</string>
            <key>Arguments</key>
            <dict>
                <key>appcast_url</key>
                <string>%SPARKLE_FEED_URL%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>URLDownloader</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>Unarchiver</string>
            <key>Arguments</key>
            <dict>
                <key>archive_path</key>
                <string>%pathname%</string>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%/Applications</string>
                <key>purge_destination</key>
                <true/>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
            <key>Arguments</key>
            <dict>
                <key>input_path</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%/Applications/JPEGmini Pro.app</string>
                <key>requirement</key>
                <string>anchor apple generic and identifier "com.icvt.JPEGmini-Pro-retail" 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] = "526XTHF5SL")</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>Versioner</string>
            <key>Arguments</key>
            <dict>
                <key>input_plist_path</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%/Applications/JPEGmini Pro.app/Contents/Info.plist</string>
                <key>plist_version_key</key>
                <string>CFBundleVersion</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>

JPEGmini Pro-Trial/JPEGmini Pro-SmartGroupTemplate.xml METASEP
<computer_group>
	<name>%group_name%</name>
	<is_smart>true</is_smart>
	<criteria>
		<criterion>
			<name>JPEGminiProVersion</name>
			<priority>0</priority>
			<and_or>and</and_or>
			<search_type>is not</search_type>
			<value>%VERSION%</value>
		</criterion>
		<criterion>
			<name>JPEGminiProVersion</name>
			<priority>1</priority>
			<and_or>and</and_or>
			<search_type>is not</search_type>
			<value></value>
		</criterion>
		<criterion>
			<name>Computer Group</name>
			<priority>2</priority>
			<and_or>and</and_or>
			<search_type>member of</search_type>
			<value>Testing</value>
		</criterion>
	</criteria>
</computer_group>

JPEGmini Pro-Trial/JPEGmini Pro-ExtensionAttribute.xml METASEP
<computer_extension_attribute>
	<name>JPEGminiProVersion</name>
	<description>Returns the CFBundleVersion of JPEGmini Pro if installed, as this is incremented &amp; not CFBundleShortVersionString.</description>
	<data_type>String</data_type>
	<input_type>
		<type>script</type>
		<platform>Mac</platform>
		<script>#!/bin/bash
JPEGminiProVersion=""
if [ -f /Applications/JPEGmini Pro.app/Contents/Info.plist ]
	then
		JPEGminiProVersion=$(/usr/bin/defaults read /Applications/JPEGmini Pro.app/Contents/Info.plist CFBundleVersion)
fi

/bin/echo "&lt;result&gt;$JPEGminiProVersion&lt;/result&gt;"

exit 0</script>
	</input_type>
	<inventory_display>Extension Attributes</inventory_display>
	<recon_display>Extension Attributes</recon_display>
</computer_extension_attribute>

JDiskReport/JDiskReport.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of JDiskReport and imports into Munki.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.JDiskReport</string>
    <key>Input</key>
    <dict>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>NAME</key>
        <string>JDiskReport</string>
        <key>pkginfo</key>
        <dict>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>JDiskReport enables you to understand how much space the files and directories consume on your disk drives, and it helps you find obsolete files and folders.</string>
            <key>display_name</key>
            <string>JDiskReport</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>requires</key>
            <array>
                <string>OracleJava8</string>
            </array>
            <key>unattended_install</key>
            <true/>
            <key>unattended_uninstall</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.2.0</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.JDiskReport</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>Unarchiver</string>
            <key>Arguments</key>
            <dict>
                <key>archive_path</key>
                <string>%pathname%</string>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/unzip/</string>
                <key>purge_destination</key>
                <true/>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>FileFinder</string>
            <key>Arguments</key>
            <dict>
                <key>pattern</key>
                <string>%RECIPE_CACHE_DIR%/unzip/*/*.app</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PkgRootCreator</string>
            <key>Arguments</key>
            <dict>
                <key>pkgdirs</key>
                <dict>
                    <key>Applications</key>
                    <string>0775</string>
                </dict>
                <key>pkgroot</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>Copier</string>
            <key>Arguments</key>
            <dict>
                <key>destination_path</key>
                <string>%pkgroot%/Applications/JDiskReport.app</string>
                <key>overwrite</key>
                <true/>
                <key>source_path</key>
                <string>%found_filename%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiInstallsItemsCreator</string>
            <key>Arguments</key>
            <dict>
                <key>faux_root</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%/</string>
                <key>installs_item_paths</key>
                <array>
                    <string>/Applications/JDiskReport.app</string>
                </array>
                <key>version_comparison_key</key>
                <string>CFBundleShortVersionString</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiPkginfoMerger</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PlistReader</string>
            <key>Arguments</key>
            <dict>
                <key>info_path</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%/Applications/JDiskReport.app/Contents/Info.plist</string>
                <key>plist_keys</key>
                <dict>
                    <key>CFBundleShortVersionString</key>
                    <string>version</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiPkginfoMerger</string>
            <key>Arguments</key>
            <dict>
                <key>additional_pkginfo</key>
                <dict>
                    <key>version</key>
                    <string>%version%</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>DmgCreator</string>
            <key>Arguments</key>
            <dict>
                <key>dmg_path</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%.dmg</string>
                <key>dmg_root</key>
                <string>%found_filename%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%dmg_path%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PathDeleter</string>
            <key>Arguments</key>
            <dict>
                <key>path_list</key>
                <array>
                    <string>%RECIPE_CACHE_DIR%/%NAME%</string>
                    <string>%RECIPE_CACHE_DIR%/unzip</string>
                </array>
            </dict>
        </dict>
    </array>
</dict>
</plist>
JDiskReport/JDiskReport.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Download the latest version of JDiskReport.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.JDiskReport</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>FlashPrint</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.2.0</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>URLTextSearcher</string>
            <key>Arguments</key>
            <dict>
                <key>re_pattern</key>
                <string>Windows 32-bit installer&lt;/a&gt;, &lt;a href=\"(http://www\.jgoodies\.com/download/jdiskreport/jdiskreport-.*?-mac\.zip)\"&gt;Mac OS X</string>
                <key>result_output_var_name</key>
                <string>url</string>
                <key>url</key>
                <string>https://www.jgoodies.com/downloads/jdiskreport/</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>URLDownloader</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
    </array>
</dict>
</plist>
Isadora 3/Isadora 3.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Imports the latest version of the Isadora 3 software into Munki.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.Isadora 3</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>Isadora</string>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/troikatronix</string>
        <key>pkginfo</key>
            <dict>
                <key>catalogs</key>
                <array>
                     <string>testing</string>
                </array>
                <key>description</key>
                <string>Isadora is a proprietary graphic programming environment, with emphasis on real-time manipulation of digital video.</string>
                <key>developer</key>
                 <string>TroikaTronix</string>
                <key>display_name</key>
                <string>Isadora</string>
                <key>name</key>
                <string>%NAME%</string>
                <key>unattended_install</key>
                <true/>
                <key>unattended_uninstall</key>
                <true/>
            </dict>
        </dict>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.Isadora 3</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>FlatPkgUnpacker</string>
            <key>Arguments</key>
            <dict>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/unpack</string>
                <key>flat_pkg_path</key>
                <string>%pathname%/Isadora Installer.pkg</string>
                <key>purge_destination</key>
                <true/>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PkgPayloadUnpacker</string>
            <key>Arguments</key>
            <dict>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/Applications/Isadora 3</string>
                <key>pkg_payload_path</key>
                <string>%RECIPE_CACHE_DIR%/unpack/isadora-fat-std.pkg/Payload</string>
                <key>purge_destination</key>
                <true/>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiInstallsItemsCreator</string>
            <key>Arguments</key>
            <dict>
                <key>faux_root</key>
                <string>%RECIPE_CACHE_DIR%/</string>
                <key>installs_item_paths</key>
                <array>
                    <string>/Applications/Isadora 3/Isadora.app</string>
                </array>
                <key>version_comparison_key</key>
                <string>CFBundleVersion</string>
            </dict>
        </dict>
       <dict>
            <key>Processor</key>
            <string>MunkiPkginfoMerger</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PkgCopier</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%.pkg</string>
                <key>source_pkg</key>
                <string>%pathname%/Isadora Installer.pkg</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%pkg_path%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PathDeleter</string>
            <key>Arguments</key>
            <dict>
                <key>path_list</key>
                <array>
                    <string>%RECIPE_CACHE_DIR%/Applications</string>
                    <string>%RECIPE_CACHE_DIR%/unpack</string>
                </array>
            </dict>
        </dict>
    </array>
</dict>
</plist>
Isadora 3/Isadora 3.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of Isadora 3.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.Isadora 3</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>Isadora3</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.2.0</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>URLTextSearcher</string>
            <key>Arguments</key>
            <dict>
                  <key>re_pattern</key>
                  <string>/files/isadoramac-3.*-std\.dmg</string>
                  <key>result_output_var_name</key>
                  <string>match</string>
                  <key>url</key>
                  <string>https://troikatronix.com/get-it/</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>URLDownloader</string>
            <key>Arguments</key>
            <dict>
                <key>filename</key>
                <string>%NAME%.dmg</string>
                <key>url</key>
                <string>https://troikatronix.com/%match%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
            <key>Arguments</key>
            <dict>
                <key>input_path</key>
                <string>%pathname%/Isadora Installer.pkg</string>
                <key>expected_authority_names</key>
                <array>
                    <string>Developer ID Installer: Mark Coniglio (Q5V96MD6S6)</string>
                    <string>Developer ID Certification Authority</string>
                    <string>Apple Root CA</string>
                </array>
            </dict>
        </dict>
    </array>
</dict>
</plist>
IntelliJ-IDEA-CE/IntelliJ-IDEA-CE.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the current release version of Intellij IDEA and imports into Munki. Taken from bnpl-recipes repo</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.intellijideace</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>IntelliJ IDEA Community Edition</string>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/intellij</string>
        <key>pkginfo</key>
        <dict>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>category</key>
            <string>Developer Tools</string>
            <key>description</key>
            <string>Every aspect of IntelliJ IDEA is specifically designed to maximize developer productivity.

Together, powerful static code analysis and ergonomic design make development not only productive but also an enjoyable experience.</string>
            <key>developer</key>
            <string>JetBrains</string>
            <key>display_name</key>
            <string>IntelliJ IDEA Community Edition</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
            <key>unattended_uninstall</key>
            <true/>
            <key>uninstallable</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.4.3</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.intellijideace</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Arguments</key>
            <dict>
                <key>munkiimport_appname</key>
                <string>IntelliJ IDEA CE.app</string>
                <key>pkg_path</key>
                <string>%pathname%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
        </dict>
    </array>
</dict>
</plist>
IntelliJ-IDEA-CE/IntelliJ-IDEA-CE.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the current release version of IntelliJ IDEA Community Edition. Taken from bnpl-recipes repo</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.intellijideace</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>IntelliJ IDEA Community Edition</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.2.0</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>com.github.mosen.munki.IDEA-IU/JetbrainsURLProvider</string>
            <key>Arguments</key>
            <dict>
                <key>product_code</key>
                <string>IIC</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>URLDownloader</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>AppDmgVersioner</string>
            <key>Arguments</key>
            <dict>
                <key>dmg_path</key>
                <string>%pathname%</string>
            </dict>
        </dict>
        <dict>
	   		<key>Processor</key>
	    	<string>CodeSignatureVerifier</string>
	    	<key>Arguments</key>
	    	<dict>
	        	<key>input_path</key>
	        	<string>%pathname%/IntelliJ IDEA CE.app</string>
	        	<key>requirement</key>
	        	<string>identifier "com.jetbrains.intellij.ce" and anchor apple generic and 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] = "2ZEFAR8TH3"</string>
	    	</dict>
	    </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
    </array>
</dict>
</plist>

Insta360/Insta360Studio2021.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of insta360 studio 2021 and imports it into Munki.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.insta360studio2021</string>
      <key>Input</key>
    <dict>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>NAME</key>
        <string>Insta360Studio2021</string>
        <key>pkginfo</key>
        <dict>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
			<key>developer</key>
			<string>Insta360</string>
            <key>description</key>
            <string>Insta360 Studio 2021 allows users to edit videos and photos shot on ONE X, EVO and GO. It contains the Insta360 Plugin for Adobe Premiere Pro..</string>
            <key>display_name</key>
            <string>Insta360 Studio 2021</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.3.1</string>
    <key>ParentRecipe</key>
	<string>com.github.dataJAR-recipes.download.insta360studio2021</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>FlatPkgUnpacker</string>
            <key>Arguments</key>
            <dict>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/unpack</string>
                <key>flat_pkg_path</key>
                <string>%pathname%</string>
                <key>purge_destination</key>
                <true/>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PkgRootCreator</string>
            <key>Arguments</key>
            <dict>
                <key>pkgdirs</key>
                <dict>
                    <key>Applications</key>
                    <string>0755</string>
                </dict>
                <key>pkgroot</key>
                <string>%RECIPE_CACHE_DIR%/pkgroot</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PkgPayloadUnpacker</string>
            <key>Arguments</key>
            <dict>
                <key>destination_path</key>
                <string>%pkgroot%/Applications</string>
                <key>pkg_payload_path</key>
                <string>%RECIPE_CACHE_DIR%/unpack/Insta360_Studio_2021.pkg/Payload</string>
                <key>purge_destination</key>
                <true/>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiInstallsItemsCreator</string>
            <key>Arguments</key>
            <dict>
                <key>faux_root</key>
                <string>%pkgroot%</string>
                <key>version_comparison_key</key>
                <string>CFBundleShortVersionString</string>
                <key>installs_item_paths</key>
                <array>
                    <string>/Applications/Insta360 Studio 2021.app</string>
                </array>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiPkginfoMerger</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>Versioner</string>
            <key>Arguments</key>
            <dict>
                <key>input_plist_path</key>
                <string>%pkgroot%/Applications/Insta360 Studio 2021.app/Contents/Info.plist</string>
                <key>plist_version_key</key>
                <string>CFBundleShortVersionString</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiPkginfoMerger</string>
            <key>Arguments</key>
            <dict>
                <key>additional_pkginfo</key>
                <dict>
                    <key>version</key>
                    <string>%version%</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%pathname%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PathDeleter</string>
            <key>Arguments</key>
            <dict>
                <key>path_list</key>
                <array>
                    <string>%RECIPE_CACHE_DIR%/pkgroot/</string>
                    <string>%RECIPE_CACHE_DIR%/unpack/</string>
                </array>
            </dict>
        </dict>
    </array>
</dict>
</plist>
Insta360/Insta360Studio2021.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the Insta360 Studio 2021 application.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.insta360studio2021</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>insta360studio2021</string>
        <key>DOWNLOAD_URL</key>
        <string>https://openapi.insta360.com/app/v1/common/upgrade/studiox_mac</string>
        <key>USER_AGENT</key>
        <string>Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Safari/605.1.15</string>
    </dict>
    <key>MinimumVersion</key>
    <string>2.1</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>URLTextSearcher</string>
            <key>Arguments</key>
            <dict>
                <key>url</key>
                <string>%DOWNLOAD_URL%</string>
                <key>re_pattern</key>
                <string>(https://res\.insta360\.com/static/.*/Insta360_Studio_2021_.*\.pkg)</string>
                <key>request_headers</key>
                <dict>
                    <key>user-agent</key>
                    <string>%USER_AGENT%</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>URLDownloader</string>
            <key>Arguments</key>
            <dict>
                <key>url</key>
                <string>%match%</string>
                <key>request_headers</key>
                <dict>
                	<key>user-agent</key>
                    <string>%USER_AGENT%</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
            <key>Arguments</key>
            <dict>
                <key>input_path</key>
                <string>%pathname%</string>
                <key>expected_authority_names</key>
                <array>
                    <string>Developer ID Installer: Shenzhen Arashi Vision Co., Ltd. (UBX9CH9GDX)</string>
                    <string>Developer ID Certification Authority</string>
                    <string>Apple Root CA</string>
                </array>
            </dict>
        </dict>
    </array>
</dict>
</plist>

Insta360/Insta360Studio2020.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of insta360 studio 2020 and imports it into Munki.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.insta360studio2020</string>
      <key>Input</key>
    <dict>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>NAME</key>
        <string>Insta360Studio2020</string>
        <key>pkginfo</key>
        <dict>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
			<key>developer</key>
			<string>Insta360</string>
            <key>description</key>
            <string>Insta360 Studio 2020 allows users to edit videos and photos shot on ONE X, EVO and GO. It contains the Insta360 Plugin for Adobe Premiere Pro..</string>
            <key>display_name</key>
            <string>Insta360 Studio 2020</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.3.1</string>
    <key>ParentRecipe</key>
	<string>com.github.dataJAR-recipes.download.insta360studio2020</string>
    <key>Process</key>
	<array>
        <dict>
            <key>Processor</key>
            <string>DeprecationWarning</string>
            <key>Arguments</key>
            <dict>
                <key>warning_message</key>
                <string>The vender has replaced this App with their 2021 version. See the 2021 recipes https://github.com/autopkg/dataJAR-recipes/blob/master/Insta360/Insta360Studio2021.munki.recipe. Please remove this from your list of recipes.</string>
             </dict>
        </dict>
		<dict>
			<key>Arguments</key>
				<dict>
					<key>destination_path</key>
					<string>%RECIPE_CACHE_DIR%/installer_unpack</string>
					<key>flat_pkg_path</key>
					<string>%pathname%</string>
					<key>purge_destination</key>
					<true />
				</dict>
			<key>Processor</key>
			<string>FlatPkgUnpacker</string>
		</dict>
		<dict>
			<key>Arguments</key>
			<dict>
				<key>destination_path</key>
				<string>%RECIPE_CACHE_DIR%/installer_payload</string>
				<key>pkg_payload_path</key>
				<string>%RECIPE_CACHE_DIR%/installer_unpack/Insta360_Studio_2020.pkg/Payload</string>
				<key>purge_destination</key>
				<true />
			</dict>
			<key>Processor</key>
			<string>PkgPayloadUnpacker</string>
		</dict>
		<dict>
			<key>Arguments</key>
			<dict>
				<key>input_plist_path</key>
				<string>%RECIPE_CACHE_DIR%/installer_payload/Applications/Insta360 Studio 2020.app/Contents/Info.plist</string>
				<key>plist_version_key</key>
				<string>CFBundleShortVersionString</string>
			</dict>
			<key>Processor</key>
			<string>Versioner</string>
		</dict>
        <dict>
            <key>Processor</key>
            <string>MunkiPkginfoMerger</string>
            <key>Arguments</key>
            <dict>
                <key>additional_pkginfo</key>
                <dict>
                    <key>version</key>
                    <string>%version%</string>
                </dict>
            </dict>
        </dict>
		<dict>
			<key>Arguments</key>
			<dict>
				<key>source_pkg</key>
				<string>%pathname%</string>
				<key>pkg_path</key>
				<string>%RECIPE_CACHE_DIR%/%NAME%-%version%.pkg</string>
			</dict>
			<key>Processor</key>
			<string>PkgCopier</string>
		</dict>
		<dict>
			<key>Arguments</key>
			<dict>
				<key>path_list</key>
				<array>
					<string>%RECIPE_CACHE_DIR%/installer_payload/</string>
					<string>%RECIPE_CACHE_DIR%/installer_unpack/</string>
				</array>
			</dict>
			<key>Processor</key>
			<string>PathDeleter</string>
		</dict>
		<dict>
			<key>Arguments</key>
			<dict>
				<key>pkg_path</key>
				<string>%pkg_path%</string>
				<key>repo_subdirectory</key>
				<string>%MUNKI_REPO_SUBDIR%</string>
                <key>version_comparison_key</key>
                <string>CFBundleShortVersionString</string>
			</dict>
			<key>Processor</key>
			<string>MunkiImporter</string>
		</dict>
    </array>
</dict>
</plist>
Insta360/Insta360Studio2020.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the Insta360 Studio 2020 application.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.insta360studio2020</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>insta360studio2020</string>
        <key>DOWNLOAD_URL</key>
        <string>https://openapi.insta360.com/app/v1/common/upgrade/studiox_mac</string>
        <key>USER_AGENT</key>
        <string>Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Safari/605.1.15</string>
    </dict>
    <key>MinimumVersion</key>
    <string>2.1</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>DeprecationWarning</string>
            <key>Arguments</key>
            <dict>
                <key>warning_message</key>
                <string>The vender has replaced this App with their 2021 version. See the 2021 recipes https://github.com/autopkg/dataJAR-recipes/blob/master/Insta360/Insta360Studio2021.download.recipe. Please remove this from your list of recipes.</string>
             </dict>
        </dict>
        <dict>
 			<key>Processor</key>
			<string>URLTextSearcher</string>
			<key>Arguments</key>
			<dict>
				<key>url</key>
				<string>%DOWNLOAD_URL%</string>
				<key>re_pattern</key>
				<string>(https://res.insta360.com/static/assets/storage/[\S]+/[\S]+/Insta360_Studio_[\S]+pkg)</string>
                <key>request_headers</key>
                <dict>
                        <key>user-agent</key>
                        <string>%USER_AGENT%</string>
                </dict>
			</dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>URLDownloader</string>
            <key>Arguments</key>
            <dict>
                <key>url</key>
                <string>%match%</string>
                <key>request_headers</key>
                <dict>
                        <key>user-agent</key>
                        <string>%USER_AGENT%</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
		<dict>
			<key>Processor</key>
			<string>CodeSignatureVerifier</string>
			<key>Arguments</key>
			<dict>
				<key>input_path</key>
				<string>%pathname%</string>
                <key>expected_authority_names</key>
                <array>
                    <string>Developer ID Installer: Shenzhen Arashi Vision Co., Ltd. (UBX9CH9GDX)</string>
                    <string>Developer ID Certification Authority</string>
                    <string>Apple Root CA</string>
                </array>
			</dict>
		</dict>
    </array>
</dict>
</plist>

Insta360/Insta360Studio2019.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of insta360 studio 2019 and imports it into Munki.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.insta360studio2019</string>
      <key>Input</key>
    <dict>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>NAME</key>
        <string>Insta360Studio2019</string>
        <key>pkginfo</key>
        <dict>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
			<key>developer</key>
			<string>Insta360</string>
            <key>description</key>
            <string>Insta360 Studio 2019 allows users to edit videos and photos shot on ONE X, EVO and GO. It contains the Insta360 Plugin for Adobe Premiere Pro..</string>
            <key>display_name</key>
            <string>Insta360 Studio 2019</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>1.1</string>
    <key>ParentRecipe</key>
	<string>com.github.dataJAR-recipes.download.insta360studio2019</string>
    <key>Process</key>
	<array>
        <dict>
            <key>Processor</key>
            <string>DeprecationWarning</string>
            <key>Arguments</key>
            <dict>
                <key>warning_message</key>
                <string>The vender has replaced this App with their 2020 version. See the 2020 recipes https://github.com/autopkg/dataJAR-recipes/blob/master/Insta360/Insta360Studio2020.munki.recipe. Please remove this from your list of recipes.</string>
             </dict>
         </dict>
		<dict>
			<key>Arguments</key>
			<dict>
				<key>pkg_path</key>
				<string>%RECIPE_CACHE_DIR%/downloads/%NAME%.pkg</string>
				<key>repo_subdirectory</key>
				<string>%MUNKI_REPO_SUBDIR%</string>
				<key>version_comparison_key</key>
				<string>CFBundleShortVersionString</string>
			</dict>
			<key>Processor</key>
			<string>MunkiImporter</string>
		</dict>
    </array>
</dict>
</plist>
Insta360/Insta360Studio2019.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the Insta360 Studio 2019 application.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.insta360studio2019</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>insta360studio2019</string>
        <key>DOWNLOAD_URL</key>
        <string>https://openapi.insta360.com/app/v1/common/upgrade/studiox_mac</string>
        <key>USER_AGENT</key>
        <string>Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Safari/605.1.15</string>
    </dict>
    <key>MinimumVersion</key>
    <string>1.1</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>DeprecationWarning</string>
            <key>Arguments</key>
            <dict>
                <key>warning_message</key>
                <string>The vender has replaced this App with their 2020 version. See the 2020 recipes https://github.com/autopkg/dataJAR-recipes/blob/master/Insta360/Insta360Studio2020.download.recipe. Please remove this from your list of recipes.</string>
             </dict>
         </dict>
        <dict>
 			<key>Processor</key>
			<string>URLTextSearcher</string>
			<key>Arguments</key>
			<dict>
				<key>url</key>
				<string>%DOWNLOAD_URL%</string>
				<key>re_pattern</key>
				<string>(2019_[\S]+\.pkg)</string>
                <key>request_headers</key>
                <dict>
                        <key>user-agent</key>
                        <string>%USER_AGENT%</string>
                </dict>
			</dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>URLDownloader</string>
            <key>Arguments</key>
            <dict>
                <key>url</key>
                <string>https://static.insta360.com/software/Studio/Mac/Insta360%20Studio%20%match%</string>
                <key>filename</key>
                <string>Insta360Studio2019.pkg</string>
                <key>request_headers</key>
                <dict>
                        <key>user-agent</key>
                        <string>%USER_AGENT%</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
		<dict>
			<key>Processor</key>
			<string>CodeSignatureVerifier</string>
			<key>Arguments</key>
			<dict>
				<key>input_path</key>
				<string>%pathname%</string>
                <key>expected_authority_names</key>
                <array>
                    <string>Developer ID Installer: Shenzhen Arashi Vision Co., Ltd. (UBX9CH9GDX)</string>
                    <string>Developer ID Certification Authority</string>
                    <string>Apple Root CA</string>
                </array>
			</dict>
		</dict>
    </array>
</dict>
</plist>

Insomnia/Insomnia.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest release of Insomnia and imports into Munki</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.Insomnia</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>Insomnia</string>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>pkginfo</key>
        <dict>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>Explore REST and GraphQL APIs.</string>
            <key>display_name</key>
            <string>Insomnia </string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.4.1</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.Insomnia</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%pathname%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>

Insomnia/Insomnia.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest release of Insomnia.
Set PRERELEASE to a non-empty string to download prereleases, either
via Input in an override or via the -k option,
i.e.: `-k PRERELEASE=yes`</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.Insomnia</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>Insomnia</string>
        <key>PRERELEASE</key>
        <string></string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.4.1</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>GitHubReleasesInfoProvider</string>
            <key>Arguments</key>
            <dict>
                <key>asset_regex</key>
                <string>.*\.dmg</string>
                <key>github_repo</key>
                <string>Kong/insomnia</string>
                <key>include_prereleases</key>
                <string>%PRERELEASE%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>URLDownloader</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
            <key>Arguments</key>
            <dict>
                <key>input_path</key>
                <string>%pathname%/Insomnia.app</string>
                <key>requirement</key>
                <string>identifier "com.insomnia.app" and anchor apple generic and 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] = FX44YY62GV</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>

Insomnia Designer/Insomnia Designer.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest release of Insomnia Designer and imports into Munki</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.Insomnia Designer</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>InsomniaDesigner</string>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>pkginfo</key>
        <dict>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>Collaborative API Design Editor.</string>
            <key>display_name</key>
            <string>Insomnia Designer</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.4.1</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.Insomnia Designer</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%pathname%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>

Insomnia Designer/Insomnia Designer.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest release of Insomnia Designer.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.Insomnia Designer</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>InsomniaDesigner</string>
        <key>DOWNLOAD_URL</key>
        <string>https://updates.insomnia.rest/downloads/mac/latest?app=com.insomnia.designer&amp;ref=</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.4.1</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>DeprecationWarning</string>
            <key>Arguments</key>
            <dict>
                <key>warning_message</key>
                <string>From: https://insomnia.rest/changelog, "Following the Insomnia 2021.1 release there will no longer be an Insomnia Core or Insomnia Designer, only Insomnia." 
Insomnia recipes can be found at: https://github.com/autopkg/dataJAR-recipes/tree/master/Insomnia.</string>
            </dict>
        </dict>
        <dict>   
            <key>Processor</key>   
            <string>StopProcessingIf</string>   
            <key>Arguments</key>   
            <dict>   
                <key>predicate</key>   
                <string>TRUEPREDICATE</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>URLDownloader</string>
            <key>Arguments</key>
            <dict>
                <key>filename</key>
                <string>%NAME%.dmg</string>
                <key>url</key>
                <string>%DOWNLOAD_URL%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
            <key>Arguments</key>
            <dict>
                <key>input_path</key>
                <string>%pathname%/Insomnia Designer.app</string>
                <key>requirement</key>
                <string>identifier "com.insomnia.designer" and anchor apple generic and 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] = FX44YY62GV</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>

Insomnia Core/Insomnia Core.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest release of Insomnia Core and imports into Munki</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.Insomnia Core</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>InsomniaCore</string>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>pkginfo</key>
        <dict>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>Explore REST and GraphQL APIs.</string>
            <key>display_name</key>
            <string>Insomnia Core</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.4.1</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.Insomnia Core</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%pathname%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>

Insomnia Core/Insomnia Core.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest release of Insomnia Core.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.Insomnia Core</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>InsomniaCore</string>
        <key>DOWNLOAD_URL</key>
        <string>https://updates.insomnia.rest/downloads/mac/latest?app=com.insomnia.app&amp;ref=</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.4.1</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>DeprecationWarning</string>
            <key>Arguments</key>
            <dict>
                <key>warning_message</key>
                <string>From: https://insomnia.rest/changelog, "Following the Insomnia 2021.1 release there will no longer be an Insomnia Core or Insomnia Designer, only Insomnia." 
Insomnia recipes can be found at: https://github.com/autopkg/dataJAR-recipes/tree/master/Insomnia.</string>
            </dict>
        </dict>
        <dict>   
            <key>Processor</key>   
            <string>StopProcessingIf</string>   
            <key>Arguments</key>   
            <dict>   
                <key>predicate</key>   
                <string>TRUEPREDICATE</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>URLDownloader</string>
            <key>Arguments</key>
            <dict>
                <key>filename</key>
                <string>%NAME%.dmg</string>
                <key>url</key>
                <string>%DOWNLOAD_URL%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
            <key>Arguments</key>
            <dict>
                <key>input_path</key>
                <string>%pathname%/Insomnia.app</string>
                <key>requirement</key>
                <string>identifier "com.insomnia.app" and anchor apple generic and 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] = FX44YY62GV</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>

Inquisit 6 Lab/Inquisit 6 Lab.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>Description</key>
	<string>Downloads the current release version of Inquisit 6 Lab and imports into munki.</string>
	<key>Identifier</key>
	<string>com.github.dataJAR-recipes.munki.Inquisit 6 Lab</string>
	<key>Input</key>
	<dict>
		<key>MUNKI_REPO_SUBDIR</key>
		<string>apps/%NAME%</string>
		<key>NAME</key>
		<string>Inquisit6Lab</string>
		<key>pkginfo</key>
		<dict>
			<key>catalogs</key>
			<array>
				<string>testing</string>
			</array>
			<key>category</key>
			<string>Development</string>
			<key>description</key>
			<string>Inquisit 6 Lab is a powerful tool for designing and administering rich psychological tests and experiments on dedicated computers, whether in the lab, the clinic, or out in the field. Use any of the tests in the Millisecond Test Library, customize them, or program your own.</string>
			<key>developer</key>
			<string>Millisecond Software</string>
			<key>display_name</key>
			<string>Inquisit 6 Lab</string>
			<key>name</key>
			<string>%NAME%</string>
			<key>unattended_install</key>
			<true/>
			<key>uninstall_method</key>
			<string>uninstall_script</string>
            <key>uninstall_script</key>
            <string>#!/bin/bash
# Unload kexts
/sbin/kextunload -q -b com.millisecond.driver.InquisitParallelPort

# Delete app bundle
if [ -d /Applications/Inquisit\ 6.app ]
then
	/bin/rm -rf /Applications/Inquisit\ 6.app
fi

# Delete Library kext
if [ -d /Library/Extensions/InquisitParallelPort.kext ]
then
	/bin/rm -rf /Library/Extensions/InquisitParallelPort.kext
fi

# Delete System kext
if [ -d /System/Library/Extensions/InquisitParallelPort.kext ]
then
	/bin/rm -rf /System/Library/Extensions/InquisitParallelPort.kext
fi</string>
		</dict>
	</dict>
  	<key>MinimumVersion</key>
	<string>1.0.0</string>
	<key>ParentRecipe</key>
	<string>com.github.dataJAR-recipes.download.Inquisit 6 Lab</string>
	<key>Process</key>
	<array>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%pathname%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>
Inquisit 6 Lab/Inquisit 6 Lab.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Download recipe for the latest version of Inquisit 6 Lab.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.Inquisit 6 Lab</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>Inquisit6Lab</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.2.0</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>URLTextSearcher</string>
            <key>Arguments</key>
            <dict>
                <key>re_pattern</key>
                <string>(https://inquisit.millisecond.com/6/(\S+)/mac/Inquisit_(\S+).pkg)</string>
                <key>result_output_var_name</key>
                <string>url</string>
                <key>url</key>
                <string>https://www.millisecond.com/download/</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>URLDownloader</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
            <key>Arguments</key>
            <dict>
                <key>input_path</key>
                <string>%pathname%</string>
                <key>expected_authority_names</key>
                <array>
                    <string>Developer ID Installer: Millisecond Software, LLC (J9JYE5M476)</string>
                    <string>Developer ID Certification Authority</string>
                    <string>Apple Root CA</string>
                </array>
            </dict>
        </dict>
    </array>
</dict>
</plist>
Inquisit 5 Lab/Inquisit 5 Lab.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the current release version of Inquisit 5 Lab and imports into munki.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.Inquisit 5 Lab</string>
    <key>Input</key>
    <dict>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>NAME</key>
        <string>Inquisit5Lab</string>
        <key>pkginfo</key>
        <dict>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>category</key>
            <string>Development</string>
            <key>description</key>
            <string>Inquisit 5 Lab is a powerful tool for designing and administering rich psychological tests and experiments on dedicated computers, whether in the lab, the clinic, or out in the field. Use any of the tests in the Millisecond Test Library, customize them, or program your own.</string>
            <key>developer</key>
            <string>Millisecond Software</string>
            <key>display_name</key>
            <string>Inquisit 5 Lab</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
            <key>uninstall_method</key>
            <string>uninstall_script</string>
            <key>uninstall_script</key>
            <string>#!/bin/bash
# Unload kexts
/sbin/kextunload -q -b com.millisecond.driver.InquisitParallelPort

# Delete app bundle
if [ -d /Applications/Inquisit\ 5.app ]
then
    /bin/rm -rf /Applications/Inquisit\ 5.app
fi

# Delete Library kext
if [ -d /Library/Extensions/InquisitParallelPort.kext ]
then
    /bin/rm -rf /Library/Extensions/InquisitParallelPort.kext
fi

# Delete System kext
if [ -d /System/Library/Extensions/InquisitParallelPort.kext ]
then
    /bin/rm -rf /System/Library/Extensions/InquisitParallelPort.kext
fi</string>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>1.0.0</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.Inquisit 5 Lab</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%pathname%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>
Inquisit 5 Lab/Inquisit 5 Lab.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Download recipe for the latest version of Inquisit 5 Lab.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.Inquisit 5 Lab</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>Inquisit5Lab</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.2.0</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>URLTextSearcher</string>
            <key>Arguments</key>
            <dict>
                <key>re_pattern</key>
                <string>(https://inquisit.millisecond.com/5/(\S+)/mac/Inquisit_(\S+).pkg)</string>
                <key>result_output_var_name</key>
                <string>url</string>
                <key>url</key>
                <string>https://www.millisecond.com/download/</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>URLDownloader</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>FlatPkgUnpacker</string>
            <key>Arguments</key>
            <dict>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/unpack</string>
                <key>flat_pkg_path</key>
                <string>%pathname%</string>
                <key>purge_destination</key>
                <true/>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PkgPayloadUnpacker</string>
            <key>Arguments</key>
            <dict>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%</string>
                <key>pkg_payload_path</key>
                <string>%RECIPE_CACHE_DIR%/unpack/Inquisit.pkg/Payload</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
            <key>Arguments</key>
            <dict>
                <key>input_path</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%/Applications/Inquisit 5.app</string>
                <key>requirement</key>
                <string>anchor apple generic and identifier "com.millisecond.Inquisit-5" 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] = J9JYE5M476)</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PathDeleter</string>
            <key>Arguments</key>
            <dict>
            <key>path_list</key>
            <array>
                <string>%RECIPE_CACHE_DIR%/%NAME%</string>
                <string>%RECIPE_CACHE_DIR%/unpack</string>
            </array>
            </dict>
        </dict>
    </array>
</dict>
</plist>
Inquisit 4 Lab/Inquisit 4 Lab.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the current release version of Inquisit 4 Lab and imports into munki.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.Inquisit 4 Lab</string>
    <key>Input</key>
    <dict>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>NAME</key>
        <string>Inquisit4Lab</string>
        <key>pkginfo</key>
        <dict>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>category</key>
            <string>Development</string>
            <key>description</key>
            <string>Inquisit 4 Lab Lab is a powerful tool for designing, testing, debugging, demonstrating, and administering psychological tests and experiments. Inquisit 4 Lab Lab is capable of collecting rich behavioral data from a wide variety of measures used in the fields of cognitive neuroscience, cognitive, social, and personality psychology, consumer behavior, behavioral economics, and neuropsychology. Inquisit Lab is designed to be run on dedicated computers within research labs, classrooms, kiosks, and on mobile laptops taken out into the field.</string>
            <key>developer</key>
            <string>Millisecond Software</string>
            <key>display_name</key>
            <string>Inquisit 4 Lab</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
            <key>uninstall_method</key>
            <string>uninstall_script</string>
            <key>uninstall_script</key>
            <string>#!/bin/bash
# Unload kexts
/sbin/kextunload -q -b com.millisecond.driver.InquisitParallelPort

# Delete app bundle
if [ -d /Applications/Inquisit.app ]
then
    /bin/rm -rf /Applications/Inquisit.app
fi

# Delete Library kext
if [ -d /Library/Extensions/InquisitParallelPort.kext ]
then
    /bin/rm -rf /Library/Extensions/InquisitParallelPort.kext
fi

# Delete System kext
if [ -d /System/Library/Extensions/InquisitParallelPort.kext ]
then
    /bin/rm -rf /System/Library/Extensions/InquisitParallelPort.kext
fi</string>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>1.0.0</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.Inquisit 4 Lab</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%pathname%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>
Inquisit 4 Lab/Inquisit 4 Lab.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Download recipe for the latest version of Inquisit 4 Lab.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.Inquisit 4 Lab</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>Inquisit4Lab</string>
    </dict>
    <key>MinimumVersion</key>
    <string>1.1</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>URLTextSearcher</string>
            <key>Arguments</key>
            <dict>
                <key>re_pattern</key>
                <string>https://inquisit\.millisecond\.com/4/.*?/mac/Inquisit_.*?\.pkg</string>
                <key>result_output_var_name</key>
                <string>url</string>
                <key>url</key>
                <string>https://www.millisecond.com/download/archives.aspx</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>URLDownloader</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
            <key>Arguments</key>
            <dict>
                <key>input_path</key>
                <string>%pathname%</string>
                <key>expected_authority_names</key>
                <array>
                    <string>Developer ID Installer: Millisecond Software, LLC</string>
                    <string>Developer ID Certification Authority</string>
                    <string>Apple Root CA</string>
                </array>
            </dict>
        </dict>
    </array>
</dict>
</plist>

ISL Light Client/ISL Light Client.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>Comment</key>
	<string>The .apps icon is located within the disk image, and as such will be missing.</string>
	<key>Description</key>
	<string>Downloads the latest version of ISL Light Client and imports into Munki.</string>
	<key>Identifier</key>
	<string>com.github.dataJAR-recipes.munki.ISL Light Client</string>
	<key>Input</key>
	<dict>
		<key>NAME</key>
		<string>ISL Light Client</string>
		<key>MUNKI_REPO_SUBDIR</key>
		<string>apps/%NAME%</string>
		<key>pkginfo</key>
		<dict>
			<key>catalogs</key>
			<array>
				<string>testing</string>
			</array>
			<key>description</key>
			<string>Get ISL Light Client. Download the app, enter the session code and share your screen with the remote operator to get your tech issues fixed.</string>
			<key>display_name</key>
			<string>%NAME%</string>
			<key>name</key>
			<string>%NAME%</string>
			<key>unattended_install</key>
			<true></true>
			<key>unattended_uninstall</key>
			<true></true>
		</dict>
	</dict>
	<key>MinimumVersion</key>
	<string>1.0.0</string>
	<key>ParentRecipe</key>
	<string>com.github.dataJAR-recipes.download.ISL Light Client</string>
	<key>Process</key>
	<array>
		<dict>
			<key>Processor</key>
			<string>Versioner</string>
			<key>Arguments</key>
			<dict>
				<key>input_plist_path</key>
				<string>%pathname%/ISL Light Client.app/Contents/Info.plist</string>
				<key>plist_version_key</key>
				<string>CFBundleShortVersionString</string>
			</dict>
		</dict>
		<dict>
			<key>Processor</key>
			<string>MunkiPkginfoMerger</string>
			<key>Arguments</key>
			<dict>
				<key>additional_pkginfo</key>
				<dict>
					<key>version</key>
					<string>%version%</string>
				</dict>
			</dict>
		</dict>
		<dict>
			<key>Processor</key>
			<string>MunkiImporter</string>
			<key>Arguments</key>
			<dict>
				<key>pkg_path</key>
				<string>%pathname%</string>
				<key>repo_subdirectory</key>
				<string>%MUNKI_REPO_SUBDIR%</string>
				<key>version_comparison_key</key>
				<string>CFBundleShortVersionString</string>
			</dict>
		</dict>
	</array>
</dict>
</plist>
ISL Light Client/ISL Light Client.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of ISL Light Client</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.ISL Light Client</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>ISL Light Client</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.5.0</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>URLTextSearcher</string>
            <key>Arguments</key>
            <dict>
                <key>re_pattern</key>
                <string>users\/programs\/download\/isl_light_client_\S*\.program\/ISL_Light_Client\S*\.dmg</string>
                <key>result_output_var_name</key>
                <string>match</string>
                <key>url</key>
                <string>https://islonline.net/users/programs?name=ISL+Light+Client</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>URLDownloader</string>
            <key>Arguments</key>
            <dict>
                <key>filename</key>
                <string>%NAME%.dmg</string>
                <key>url</key>
                <string>https://islonline.net/%match%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
            <key>Arguments</key>
            <dict>
                <key>input_path</key>
                <string>%pathname%/ISL Light Client.app</string>
                <key>requirement</key>
                <string>(anchor apple generic and certificate leaf[field.1.2.840.113635.100.6.1.9] /* exists */ or anchor apple generic and 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] = GP5P6H7RRF) and identifier "com.islonline.isllight.isllight"</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>
Hype 4-Trial/Hype 4-Trial.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest trial version of Hype 4-Trial and imports into Munki.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.Hype 4-Trial</string>
    <key>Input</key>
    <dict>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>NAME</key>
        <string>Hype4</string>
        <key>pkginfo</key>
        <dict> 
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>Create beautiful HTML5 web content. Interactive web content and animations made with Tumult Hype work on desktops, smartphones and iPads. No coding required.</string>
            <key>display_name</key>
            <string>Hype 4</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
            <key>unattended_uninstall</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.Hype 4-Trial</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>DmgCreator</string>
            <key>Arguments</key>
            <dict>
                <key>dmg_root</key>
                <string>%destination_path%</string>
                <key>dmg_path</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%.dmg</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%dmg_path%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PathDeleter</string>
            <key>Arguments</key>
            <dict>
                <key>path_list</key>
                <array>
                    <string>%RECIPE_CACHE_DIR%/%NAME%</string>                          
                </array>
            </dict>
        </dict>
    </array>
</dict>
</plist>
Hype 4-Trial/Hype 4-Trial.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Download recipe for the latest trial version of Hype 4-Trial.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.Hype 4-Trial</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>Hype4</string>
        <key>SPARKLE_FEED_URL</key>
        <string>https://tumult.com/hype/appcast_hype4.xml</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>SparkleUpdateInfoProvider</string>
            <key>Arguments</key>
            <dict>
                <key>appcast_url</key>
                <string>%SPARKLE_FEED_URL%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>URLDownloader</string>
            <key>Arguments</key>
            <dict>
                <key>filename</key>
                <string>%NAME%-%version%.zip</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PkgRootCreator</string>
            <key>Arguments</key>
            <dict>
                <key>pkgroot</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%</string>
                <key>pkgdirs</key>
                <dict>
                    <key>Applications</key>
                    <string>0775</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>Unarchiver</string>
            <key>Arguments</key>
            <dict>
                <key>archive_path</key>
                <string>%pathname%</string>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%/Applications</string>
                <key>purge_destination</key>
                <true/>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
            <key>Arguments</key>
            <dict>
                <key>input_path</key>
                <string>%destination_path%/Hype4.app</string>
                <key>requirement</key>
                <string>anchor apple generic and identifier "com.tumult.Hype4" 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] = "8J356DM772")</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>

Hype 3-Trial/Hype 3-Trial.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest trial version of Hype 3-Trial and imports into Munki.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.Hype 3-Trial</string>
    <key>Input</key>
    <dict>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>NAME</key>
        <string>Hype3</string>
        <key>pkginfo</key>
        <dict> 
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>Create beautiful HTML5 web content. Interactive web content and animations made with Tumult Hype work on desktops, smartphones and iPads. No coding required.</string>
            <key>display_name</key>
            <string>Hype 3</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
            <key>unattended_uninstall</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.Hype 3-Trial</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>DmgCreator</string>
            <key>Arguments</key>
            <dict>
                <key>dmg_root</key>
                <string>%destination_path%</string>
                <key>dmg_path</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%.dmg</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%dmg_path%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PathDeleter</string>
            <key>Arguments</key>
            <dict>
                <key>path_list</key>
                <array>
                    <string>%RECIPE_CACHE_DIR%/%NAME%</string>                          
                </array>
            </dict>
        </dict>
    </array>
</dict>
</plist>
Hype 3-Trial/Hype 3-Trial.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Download recipe for the latest trial version of Hype 3-Trial.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.Hype 3-Trial</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>Hype3</string>
        <key>SPARKLE_FEED_URL</key>
        <string>https://tumult.com/hype/appcast_hype3.xml</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>SparkleUpdateInfoProvider</string>
            <key>Arguments</key>
            <dict>
                <key>appcast_url</key>
                <string>%SPARKLE_FEED_URL%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>URLDownloader</string>
            <key>Arguments</key>
            <dict>
                <key>filename</key>
                <string>%NAME%-%version%.zip</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PkgRootCreator</string>
            <key>Arguments</key>
            <dict>
                <key>pkgroot</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%</string>
                <key>pkgdirs</key>
                <dict>
                    <key>Applications</key>
                    <string>0775</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>Unarchiver</string>
            <key>Arguments</key>
            <dict>
                <key>archive_path</key>
                <string>%pathname%</string>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%/Applications</string>
                <key>purge_destination</key>
                <true/>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
            <key>Arguments</key>
            <dict>
                <key>input_path</key>
                <string>%destination_path%/Hype2.app</string>
                <key>requirement</key>
                <string>anchor apple generic and identifier "com.tumult.Hype2" 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] = "8J356DM772")</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>

Hunchly/Hunchly.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of Hunchly and imports into Munki.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.Hunchly</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>Hunchly</string>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>pkginfo</key>
        <dict>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>Hunchly automatically collects, documents, and annotates every web page you visit.</string>
            <key>display_name</key>
            <string>Hunchly</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>requires</key>
            <array>
                <string>GoogleChrome</string>
            </array>
            <key>unattended_install</key>
            <true/>
            <key>unattended_uninstall</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.2.0</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.Hunchly</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>FlatPkgUnpacker</string>
            <key>Arguments</key>
            <dict>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/unpack</string>
                <key>flat_pkg_path</key>
                <string>%pathname%</string>
                <key>purge_destination</key>
                <true/>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PkgPayloadUnpacker</string>
            <key>Arguments</key>
            <dict>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%/Applications/</string>
                <key>pkg_payload_path</key>
                <string>%RECIPE_CACHE_DIR%/unpack/Hunchly.pkg/Payload</string>
                <key>purge_destination</key>
                <true/>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiInstallsItemsCreator</string>
            <key>Arguments</key>
            <dict>
                <key>faux_root</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%</string>
                <key>installs_item_paths</key>
                <array>
                    <string>/Applications/Hunchly2.app</string>
                </array>
                <key>version_comparison_key</key>
                <string>CFBundleShortVersionString</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiPkginfoMerger</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PlistReader</string>
            <key>Arguments</key>
            <dict>
                <key>info_path</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%//Applications/Hunchly2.app/Contents/Info.plist</string>
                <key>plist_keys</key>
                <dict>
                    <key>CFBundleShortVersionString</key>
                    <string>version</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiPkginfoMerger</string>
            <key>Arguments</key>
            <dict>
                <key>additional_pkginfo</key>
                <dict>
                    <key>version</key>
                    <string>%version%</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%pathname%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PathDeleter</string>
            <key>Arguments</key>
            <dict>
                <key>path_list</key>
                <array>
                    <string>%RECIPE_CACHE_DIR%/%NAME%</string>
                    <string>%RECIPE_CACHE_DIR%/unpack</string>
                </array>
            </dict>
        </dict>
    </array>
</dict>
</plist>
Hunchly/Hunchly.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads latest version of the Hunchly</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.Hunchly</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>Hunchly</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.2.0</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>URLTextSearcher</string>
            <key>Arguments</key>
            <dict>
                <key>re_pattern</key>
                <string>https://www\.hunch\.ly/installers/HunchlyInstaller\.pkg</string>
                <key>result_output_var_name</key>
                <string>url</string>
                <key>url</key>
                <string>https://www.hunch.ly/downloads</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>URLDownloader</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
            <key>Arguments</key>
            <dict>
                <key>input_path</key>
                <string>%pathname%</string>
                <key>expected_authority_names</key>
                <array>
                    <string>Developer ID Installer: Dark River Systems Inc. (979L7J7YW8)</string>
                    <string>Developer ID Certification Authority</string>
                    <string>Apple Root CA</string>
                </array>
            </dict>
        </dict>
    </array>
</dict>
</plist>
Hudl Studio 1/Hudl Studio 1.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest trial version of Hudl Studio 1 and imports into Munki.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.Hudl Studio 1</string>
    <key>Input</key>
    <dict>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>NAME</key>
        <string>HudlStudio1</string>
        <key>pkginfo</key>
        <dict> 
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>Studio opens right from Hudl Sportscode for hassle-free, two-way sharing of video and graphics packages.</string>
            <key>display_name</key>
            <string>Hudl Studio 1</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
            <key>unattended_uninstall</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.Hudl Studio 1</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%pathname%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>
Hudl Studio 1/Hudl Studio 1.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads latest Hudl Studio 1 disk image.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.Hudl Studio 1</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>HudlStudio1</string>
        <key>DOWNLOAD_URL</key>
        <string>https://www.hudl.com/downloads/elite</string>
    </dict>
    <key>MinimumVersion</key>
    <string>1.0.0</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>URLTextSearcher</string>
            <key>Arguments</key>
            <dict>
                <key>url</key>
                <string>%DOWNLOAD_URL%</string>
                <key>re_pattern</key>
                <string>https://gfx-releases\.s3-eu-west-1\.amazonaws\.com/Studio-x64-1.*\.dmg</string>
                <key>result_output_var_name</key>
                <string>url</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>URLDownloader</string>
            <key>Arguments</key>
            <dict>
                <key>filename</key>
                <string>%NAME%.dmg</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
            <key>Arguments</key>
            <dict>
                <key>input_path</key>
                <string>%pathname%/Studio.app</string>
                <key>requirement</key>
                <string>identifier "com.hudl.hudl-graphx" and anchor apple generic and 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] = "2YLQ7PASUE"</string>
                <key>strict_verification</key>
                <true/>
            </dict>
        </dict>
    </array>
</dict>
</plist>
Hudl Sportscode Gamebreaker Plus v11/Hudl Sportscode Gamebreaker Plus 11.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest trial version of Hudl Sportscode Gamebreaker Plus 11 and imports into Munki.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.Hudl Sportscode Gamebreaker Plus 11</string>
    <key>Input</key>
    <dict>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>NAME</key>
        <string>HudlSportscodeGamebreakerPlus11</string>
        <key>pkginfo</key>
        <dict> 
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>The new Hudl Sportscode Gamebreaker Plus is more powerful and more intuitive with better scripting, faster interactions and easier integrations with your custom workflow.</string>
            <key>display_name</key>
            <string>Hudl Sportscode Gamebreaker Plus 11</string>
            <key>maximum_os_version</key>
            <string>10.14.6</string>
            <key>minimum_os_version</key>
            <string>10.12.0</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
            <key>unattended_uninstall</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.Hudl Sportscode Gamebreaker Plus 11</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>DmgCreator</string>
            <key>Arguments</key>
            <dict>
                <key>dmg_path</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%.dmg</string>
                <key>dmg_root</key>
                <string>%destination_path%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%dmg_path%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PathDeleter</string>
            <key>Arguments</key>
            <dict>
                <key>path_list</key>
                <array>
                    <string>%RECIPE_CACHE_DIR%/%NAME%</string>
                </array>
            </dict>
        </dict>
    </array>
</dict>
</plist>
Hudl Sportscode Gamebreaker Plus v11/Hudl Sportscode Gamebreaker Plus 11.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads latest Hudl Sportscode Gamebreaker Plus disk image.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.Hudl Sportscode Gamebreaker Plus 11</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>HudlSportscodeGamebreakerPlus11</string>
    </dict>
    <key>MinimumVersion</key>
    <string>1.0.0</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>URLTextSearcher</string>
            <key>Arguments</key>
            <dict>
                <key>url</key>
                <string>https://www.hudl.com/elite/downloads</string>
                <key>re_pattern</key>
                <string>href="(https://static.hudl.com/craft/elite/downloads/SportsCode-Gamebreaker.dmg\?mtime=.*?)"</string>
                <key>result_output_var_name</key>
                <string>url</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>URLDownloader</string>
            <key>Arguments</key>
            <dict>
                <key>filename</key>
                <string>%NAME%.dmg</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PkgRootCreator</string>
            <key>Arguments</key>
            <dict>
                <key>pkgroot</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%</string>
                <key>pkgdirs</key>
                <dict>
                    <key>Applications</key>
                    <string>0775</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>Copier</string>
            <key>Arguments</key>
            <dict>
                <key>destination_path</key>
                <string>%pkgroot%/Applications/SportsCode Gamebreaker.app</string>
                <key>source_path</key>
                <string>%RECIPE_CACHE_DIR%/downloads/%NAME%.dmg/SportsCode Gamebreaker.app</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
            <key>Arguments</key>
            <dict>
                <key>input_path</key>
                <string>%destination_path%</string>
                <key>requirement</key>
                <string>anchor apple generic and identifier "com.vigital.Gamebreaker" 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] = "4M6T2C723P")</string>
                <key>strict_verification</key>
                <true />
            </dict>
        </dict>
    </array>
</dict>
</plist>
Hudl SportsCode 12/Hudl SportsCode 12.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest trial version of Hudl SportsCode 12 and imports into Munki.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.Hudl SportsCode 12</string>
    <key>Input</key>
    <dict>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>NAME</key>
        <string>HudlSportsCode12</string>
        <key>pkginfo</key>
        <dict> 
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>The new Hudl Sportscode is more powerful and more intuitive with better scripting, faster interactions and easier integrations with your custom workflow.</string>
            <key>display_name</key>
            <string>Hudl SportsCode 12</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
            <key>unattended_uninstall</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.Hudl SportsCode 12</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%found_filename%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PathDeleter</string>
            <key>Arguments</key>
            <dict>
                <key>path_list</key>
                <array>
                    <string>%RECIPE_CACHE_DIR%/unzip</string>
                </array>
            </dict>
        </dict>
    </array>
</dict>
</plist>
Hudl SportsCode 12/Hudl SportsCode 12.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads latest Hudl SportsCode disk image.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.Hudl SportsCode 12</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>HudlSportsCode12</string>
    </dict>
    <key>MinimumVersion</key>
    <string>1.0.0</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>URLTextSearcher</string>
            <key>Arguments</key>
            <dict>
                <key>url</key>
                <string>https://www.hudl.com/downloads/elite</string>
                <key>re_pattern</key>
                <string>href=\"(https://static\.hudl\.com/craft/elite/downloads/HudlSportscode.*12.*\.dmg.*)\"</string>
                <key>result_output_var_name</key>
                <string>url</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>URLDownloader</string>
            <key>Arguments</key>
            <dict>
                <key>filename</key>
                <string>%NAME%.zip</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>Unarchiver</string>
            <key>Arguments</key>
            <dict>
                <key>archive_path</key>
                <string>%RECIPE_CACHE_DIR%/downloads/%NAME%.zip</string>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/unzip/</string>
                <key>purge_destination</key>
                <true/>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>FileFinder</string>
            <key>Arguments</key>
            <dict>
                <key>pattern</key>
                <string>%RECIPE_CACHE_DIR%/unzip/*.dmg</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
            <key>Arguments</key>
            <dict>
                <key>input_path</key>
                <string>%found_filename%/Hudl Sportscode.app</string>
                <key>requirement</key>
                <string>anchor apple generic and identifier "com.hudl.Sportscode64" 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] = "4M6T2C723P")</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>
Hudl SportsCode 11/Hudl SportsCode 11.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads Hudl SportsCode 11 and imports into Munki.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.Hudl SportsCode 11</string>
    <key>Input</key>
    <dict>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>NAME</key>
        <string>HudlSportsCode11</string>
        <key>pkginfo</key>
        <dict> 
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>Gaining an edge on the competition requires flexible workflows that adapt to any situation</string>
            <key>display_name</key>
            <string>Hudl SportsCode 11</string>
            <key>maximum_os_version</key>
            <string>10.14.6</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
            <key>unattended_uninstall</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.Hudl SportsCode 11</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%RECIPE_CACHE_DIR%/unzip/SportsCode.dmg</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PathDeleter</string>
            <key>Arguments</key>
            <dict>
                <key>path_list</key>
                <array>
                    <string>%RECIPE_CACHE_DIR%/unzip</string>
                </array>
            </dict>
        </dict>
    </array>
</dict>
</plist>
Hudl SportsCode 11/Hudl SportsCode 11.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads Hudl SportsCode 11.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.Hudl SportsCode 11</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>HudlSportsCode11</string>
    </dict>
    <key>MinimumVersion</key>
    <string>1.0.0</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>URLTextSearcher</string>
            <key>Arguments</key>
            <dict>
                <key>url</key>
                <string>https://www.hudl.com/downloads/elite</string>
                <key>re_pattern</key>
                <string>https://static\.hudl\.com/craft/elite/downloads/SportsCode.*11.*\.dmg.zip?</string>
                <key>result_output_var_name</key>
                <string>url</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>URLDownloader</string>
            <key>Arguments</key>
            <dict>
                <key>filename</key>
                <string>%NAME%.zip</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>Unarchiver</string>
            <key>Arguments</key>
            <dict>
                <key>archive_path</key>
                <string>%RECIPE_CACHE_DIR%/downloads/%NAME%.zip</string>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/unzip/</string>
                <key>purge_destination</key>
                <true/>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>FileFinder</string>
            <key>Arguments</key>
            <dict>
                <key>pattern</key>
                <string>%RECIPE_CACHE_DIR%/unzip/*.dmg</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
            <key>Arguments</key>
            <dict>
                <key>input_path</key>
                <string>%found_filename%/Sportscode.app</string>
                <key>requirement</key>
                <string>anchor apple generic and identifier "com.vigital.SportsCode" 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] = "4M6T2C723P")</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>
Haiku/Haiku.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the current release version of Haiku and imports into Munki</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.Haiku</string>
    <key>Input</key>
    <dict>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>NAME</key>
        <string>Haiku</string>
        <key>pkginfo</key>
        <dict>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>category</key>
            <string>Productivity</string>
            <key>developer</key>
            <string>Haiku</string>
            <key>description</key>
            <string>Design UI components, powered by motion.</string>
            <key>display_name</key>
            <string>Haiku</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.3.1</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.Haiku</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>MunkiPkginfoMerger</string>
            <key>Arguments</key>
            <dict>
                <key>additional_pkginfo</key>
                <dict>
                    <key>version</key>
                    <string>%version%</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%pathname%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
                <key>version_comparison_key</key>
                <string>CFBundleVersion</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>
Haiku/Haiku.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Download recipe for the latest version of Haiku.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.Haiku</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>Haiku</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.2.0</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>GitHubReleasesInfoProvider</string>
            <key>Arguments</key>
            <dict>
                <key>github_repo</key>
                <string>HaikuTeam/animator</string>
                <key>include_prereleases</key>
                <string>%PRERELEASE%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>URLDownloader</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
            <key>Arguments</key>
            <dict>
                <key>input_path</key>
                <string>%pathname%/Haiku.app</string>
                <key>requirement</key>
                <string>identifier "com.Haiku.HaikuForDesignersAndEngineers" and anchor apple generic and 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] = "TWM39MH96F"</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>

Google Chrome Universal/Google Chrome Universal.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest Google Chrome Universal disk image and imports into Munki.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.Google Chrome Universal</string>
    <key>Input</key>
    <dict>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps</string>
        <key>NAME</key>
        <string>Google Chrome</string>
        <key>pkginfo</key>
        <dict>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>Chrome is a fast, simple, and secure web browser, built for the modern web.</string>
            <key>display_name</key>
            <string>Google Chrome Universal</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>supported_architectures</key>
            <array>
                <string>x86_64</string>
                <string>arm64</string>
            </array>
            <key>unattended_install</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.2.0</string>
    <key>ParentRecipe</key>
    <string>com.github.rtrouton.download.googlechromeuniversal</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%pathname%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
        </dict>
    </array>
</dict>
</plist>

Google Backup and Sync/Google Backup and Sync.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads latest Google Backup and Sync disk image.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.Google Backup and Sync</string>
    <key>Input</key>
    <dict>
        <key>DOWNLOAD_URL</key>
        <string>https://dl.google.com/drive/InstallBackupAndSync.dmg</string>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>NAME</key>
        <string>BackupandSync</string>
        <key>pkginfo</key>
        <dict>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>Backup and Sync is an app for Mac and PC that backs up files and photos safely in Google Drive and Google Photos, so they're no longer trapped on your computer and other devices. Just choose the folders you want to back up, and we’ll take care of the rest.</string>
            <key>display_name</key>
            <string>Google Backup and Sync</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
            <key>unattended_uninstall</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.2.0</string>
    <key>ParentRecipe</key>
    <string>com.github.nstrauss.download.BackupandSync</string>
    <key>Process</key>
    <array>
		<dict>
			<key>Processor</key>
			<string>Versioner</string>
			<key>Arguments</key>
			<dict>
				<key>input_plist_path</key>
				<string>%pathname%/Backup and Sync.app/Contents/Info.plist</string>
				<key>plist_version_key</key>
				<string>CFBundleVersion</string>
			</dict>
		</dict>
		<dict>
			<key>Processor</key>
			<string>MunkiPkginfoMerger</string>
			<key>Arguments</key>
			<dict>
				<key>additional_pkginfo</key>
				<dict>
					<key>version</key>
					<string>%version%</string>
				</dict>
			</dict>
		</dict>
		<dict>
		    <key>Processor</key>
            <string>MunkiPkginfoMerger</string>
        </dict>
        <dict>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%pathname%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
                <key>version_comparison_key</key>
                <string>CFBundleVersion</string>
            </dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
        </dict>
    </array>
</dict>
</plist>

Godot 3/Godot3.png METASEP

Godot 3/Godot 3.pkg.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of Godot 3 and creates a flat PKG.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.pkg.Godot 3</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>Godot3</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.Godot 3</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>PlistReader</string>
            <key>Arguments</key>
            <dict>
                <key>info_path</key>
                <string>%destination_path%/Godot.app</string>
                <key>plist_keys</key>
                <dict>
                    <key>CFBundleIdentifier</key>
                    <string>bundleid</string>
                    <key>CFBundleShortVersionString</key>
                    <string>version</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PkgCreator</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_request</key>
                <dict>
                    <key>pkgname</key>
                    <string>%NAME%-%version%</string>
                    <key>chown</key>
                    <array>
                        <dict>
                            <key>path</key>
                            <string>Applications</string>
                            <key>user</key>
                            <string>root</string>
                            <key>group</key>
                            <string>admin</string>
                        </dict>
                    </array>
                    <key>id</key>
                    <string>%bundleid%</string>
                    <key>options</key>
                    <string>purge_ds_store</string>
                    <key>pkgdir</key>
                    <string>%RECIPE_CACHE_DIR%</string>
                    <key>pkgroot</key>
                    <string>%pkgroot%</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PathDeleter</string>
            <key>Arguments</key>
            <dict>
                <key>path_list</key>
                <array>
                    <string>%pkgroot%</string>
                </array>
            </dict>
        </dict>
    </array>
</dict>
</plist>

Godot 3/Godot 3.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of Godot 3 and imports into Munki.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.Godot 3</string>
    <key>Input</key>
    <dict>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>NAME</key>
        <string>Godot3</string>
        <key>pkginfo</key>
        <dict> 
            <key>blocking_applications</key>
            <array>
                <string>Godot</string>
            </array>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>Godot provides a huge set of common tools, so you can just focus on making your game without reinventing the wheel.

Godot is completely free and open source under the very permissive MIT license. No strings attached, no royalties, nothing. Your game is yours, down to the last line of engine code.</string>
            <key>display_name</key>
            <string>Godot 3</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
            <key>unattended_uninstall</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.Godot 3</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>DmgCreator</string>
            <key>Arguments</key>
            <dict>
                <key>dmg_root</key>
                <string>%pkgroot%/Applications/</string>
                <key>dmg_path</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%.dmg</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%dmg_path%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PathDeleter</string>
            <key>Arguments</key>
            <dict>
                <key>path_list</key>
                <array>
                    <string>%pkgroot%</string>
                </array>
            </dict>
        </dict>
    </array>
</dict>
</plist>

Godot 3/Godot 3.jss.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>Description</key>
	<string>Downloads the current release version of Godot 3 and then uploads to the JSS</string>
	<key>Identifier</key>
	<string>com.github.dataJAR-recipes.jss.Godot 3</string>
	<key>Input</key>
	<dict>
		<key>CATEGORY</key>
		<string>Applications</string>
		<key>GROUP_NAME</key>
		<string>%NAME%-update-smart</string>
		<key>GROUP_TEMPLATE</key>
        <string>SmartGroupTemplate.xml</string>
		<key>NAME</key>
		<string>Godot3</string>
		<key>POLICY_CATEGORY</key>
		<string>Testing</string>
		<key>POLICY_TEMPLATE</key>
		<string>PolicyTemplate.xml</string>
		<key>SELF_SERVICE_DESCRIPTION</key>
        <string>Godot provides a huge set of common tools, so you can just focus on making your game without reinventing the wheel.

Godot is completely free and open source under the very permissive MIT license. No strings attached, no royalties, nothing. Your game is yours, down to the last line of engine code.</string>
        <key>SELF_SERVICE_ICON</key>
		<string>Godot3.png</string>
	</dict>
	<key>MinimumVersion</key>
	<string>0.6.1</string>
	<key>ParentRecipe</key>
	<string>com.github.dataJAR-recipes.pkg.Godot 3</string>
	<key>Process</key>
	<array>
		<dict>
			<key>Arguments</key>
			<dict>
				<key>category</key>
				<string>%CATEGORY%</string>
				<key>groups</key>
				<array>
					<dict>
						<key>name</key>
						<string>%GROUP_NAME%</string>
						<key>smart</key>
						<true/>
						<key>template_path</key>
						<string>%GROUP_TEMPLATE%</string>
					</dict>
				</array>
				<key>policy_category</key>
				<string>%POLICY_CATEGORY%</string>
				<key>policy_template</key>
				<string>%POLICY_TEMPLATE%</string>
				<key>prod_name</key>
				<string>Godot</string>
				<key>self_service_description</key>
				<string>%SELF_SERVICE_DESCRIPTION%</string>
				<key>self_service_icon</key>
				<string>%SELF_SERVICE_ICON%</string>
				<key>version</key>
				<string>%version%</string>
			</dict>
			<key>Processor</key>
			<string>JSSImporter</string>
		</dict>
	</array>
</dict>
</plist>

Godot 3/Godot 3.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Download recipe for the latest version of Godot 3.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.Godot 3</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>Godot3</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>URLTextSearcher</string>
            <key>Arguments</key>
            <dict>
                <key>url</key>
                <string>https://godotengine.org/download/osx</string>
                <key>re_pattern</key>
                <string>https://downloads\.tuxfamily\.org/godotengine/3.*/Godot_v3.*stable_osx.*.zip</string>
            </dict>
        </dict>
        <dict>
            <key>Arguments</key>
            <dict>
                <key>url</key>
                <string>%match%</string>
            </dict>
            <key>Processor</key>
            <string>URLDownloader</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PkgRootCreator</string>
            <key>Arguments</key>
            <dict>
                <key>pkgroot</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%</string>
                <key>pkgdirs</key>
                <dict>
                    <key>Applications</key>
                    <string>0775</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>Unarchiver</string>
            <key>Arguments</key>
            <dict>
                <key>archive_path</key>
                <string>%pathname%</string>
                <key>destination_path</key>
                <string>%pkgroot%/Applications/</string>
                <key>purge_destination</key>
                <true/>
            </dict>
        </dict>
    </array>
</dict>
</plist>

GoPro Quik/GoPro Quik.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of GoPro Quik and imports it into Munki.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.GoPro Quik</string>
    <key>Input</key>
    <dict>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>NAME</key>
        <string>GoProQuik</string>
        <key>pkginfo</key>
        <dict>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>Quik makes it easy to access, edit and enjoy your GoPro photos and videos. Automatically import your footage and create awesome videos synced to music in just a few clicks. And with an optional GoPro Plus subscription, it's even easier to create and share epic videos with Quik. You'll have a huge variety of soundtracks to choose from, and you can auto upload your photos and videos to the cloud to edit and enjoy on your phone anytime, anywhere.</string>
            <key>developer</key>
            <string>GoPro</string>
            <key>display_name</key>
            <string>GoPro Quik</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
            <key>unattended_uninstall</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>ParentRecipe</key>
    <string>com.github.nstrauss.download.GoProQuik</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>FlatPkgUnpacker</string>
            <key>Arguments</key>
            <dict>
                <key>flat_pkg_path</key>
                <string>%pkg_path%</string>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/GoPro_Quik-unpacked</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PkgPayloadUnpacker</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_payload_path</key>
                <string>%destination_path%/GoPro_Quik.pkg/Payload</string>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/GoPro_Quik-payload</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiInstallsItemsCreator</string>
            <key>Arguments</key>
            <dict>
                <key>faux_root</key>
                <string>%destination_path%</string>
                <key>installs_item_paths</key>
                <array>
                    <string>/Applications/GoPro Quik.app</string>
                </array>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiPkginfoMerger</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiPkginfoMerger</string>
            <key>Arguments</key>
            <dict>
                <key>additional_pkginfo</key>
                <dict>
                    <key>version</key>
                    <string>%version%</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%pkg_path%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PathDeleter</string>
            <key>Arguments</key>
            <dict>
                <key>path_list</key>
                <array>
                    <string>%RECIPE_CACHE_DIR%/GoPro_Quik-payload</string>
                    <string>%RECIPE_CACHE_DIR%/GoPro_Quik-unpacked</string>
                </array>
            </dict>
        </dict>
    </array>
</dict>
</plist>
GoPro FX Reframe plugin/GoPro FX Reframe plugin.pkg.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of GoPro FX Reframe plugin and creates a new package, as the supplied pkg's receipt is no use and the artefacts on disk do not hold valid versioning.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.pkg.GoPro FX Reframe plugin</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>GoProFXReframePlugin</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.5.0</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.GoPro FX Reframe plugin</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>com.github.homebysix.VersionSplitter/VersionSplitter</string>
            <key>Arguments</key>
            <dict>
                <key>version</key>
                <string>%url%</string>
                <key>index</key>
                <integer>4</integer>
                <key>split_on</key>
                <string>-</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>com.github.homebysix.VersionSplitter/VersionSplitter</string>
            <key>Arguments</key>
            <dict>
                <key>version</key>
                <string>%version%</string>
                <key>index</key>
                <integer>0</integer>
                <key>split_on</key>
                <string>.pkg</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>FlatPkgUnpacker</string>
            <key>Arguments</key>
            <dict>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/unpack</string>
                <key>flat_pkg_path</key>
                <string>%pathname%</string>
                <key>purge_destination</key>
                <true/>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PkgRootCreator</string>
            <key>Arguments</key>
            <dict>
                <key>pkgroot</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%</string>
                <key>pkgdirs</key>
                <dict>
                    <key>Library</key>
                    <string>0755</string>
                    <key>Library/Application Support</key>
                    <string>0755</string>
                    <key>Library/Application Support/Adobe</key>
                    <string>0755</string>
                    <key>Library/Application Support/Adobe/Common</key>
                    <string>0755</string>
                    <key>Library/Application Support/Adobe/Common/Plug-ins</key>
                    <string>0755</string>
                    <key>Library/Application Support/Adobe/Common/Plug-ins/7.0</key>
                    <string>0755</string>
                    <key>Library/Application Support/Adobe/Common/Plug-ins/7.0/MediaCore</key>
                    <string>0755</string>
                    <key>Library/Application Support/Adobe/Common/Plug-ins/7.0/MediaCore/GoPro</key>
                    <string>0755</string>
                    <key>scripts</key>
                    <string>0755</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PkgPayloadUnpacker</string>
            <key>Arguments</key>
            <dict>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%/Library/Application Support/Adobe/Common/Plug-ins/7.0/MediaCore/GoPro</string>
                <key>pkg_payload_path</key>
                <string>%RECIPE_CACHE_DIR%/unpack/Payload</string>
                <key>purge_destination</key>
                <true/>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>Copier</string>
            <key>Arguments</key>
            <dict>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%/scripts/preinstall</string>
                <key>overwrite</key>
                <true/>
                <key>source_path</key>
                <string>%RECIPE_CACHE_DIR%/unpack/Scripts/cleanold</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>com.github.jessepeterson.munki.UniversalTypeClient6/ModeChanger</string>
            <key>Arguments</key>
            <dict>
                <key>filename</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%/scripts/preinstall</string>
                <key>mode</key>
                <string>a+x</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PkgCreator</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_request</key>
                <dict>
                    <key>chown</key>
                    <array>
                        <dict>
                            <key>path</key>
                            <string>Library</string>
                            <key>user</key>
                            <string>root</string>
                            <key>group</key>
                            <string>wheel</string>
                        </dict>
                    </array>
                    <key>id</key>
                    <string>com.gopro.AfterEffects.OCFX</string>
                    <key>options</key>
                    <string>purge_ds_store</string>
                    <key>pkgdir</key>
                    <string>%RECIPE_CACHE_DIR%</string>
                    <key>pkgname</key>
                    <string>%NAME%-%version%</string>
                    <key>pkgroot</key>
                    <string>%pkgroot%</string>
                    <key>scripts</key>
                    <string>%RECIPE_CACHE_DIR%/%NAME%/scripts/</string>
                    <key>version</key>
                    <string>%version%</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PathDeleter</string>
            <key>Arguments</key>
            <dict>
                <key>path_list</key>
                <array>
                    <string>%RECIPE_CACHE_DIR%/%NAME%</string>
                    <string>%RECIPE_CACHE_DIR%/unpack</string>
                </array>
            </dict>
        </dict>
    </array>
</dict>
</plist>
GoPro FX Reframe plugin/GoPro FX Reframe plugin.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of the GoPro FX Reframe plugin and imports it into Munki.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.GoPro FX Reframe plugin</string>
    <key>Input</key>
    <dict>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>NAME</key>
        <string>GoProFXReframePlugin</string>
        <key>pkginfo</key>
        <dict>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>Get full creative control of your GoPro footage. Use the GoPro FX Reframe plugin to edit your HERO, MAX and Fusion footage in Adobe Premiere Pro and Adobe After Effects.</string>
            <key>developer</key>
            <string>GoPro, Inc</string>
            <key>display_name</key>
            <string>GoPro FX Reframe plugin</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.pkg.GoPro FX Reframe plugin</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%pkg_path%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>
GoPro FX Reframe plugin/GoPro FX Reframe plugin.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of the GoPro FX Reframe plugin.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.GoPro FX Reframe plugin</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>GoProFXReframePlugin</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>URLTextSearcher</string>
            <key>Arguments</key>
            <dict>
                <key>re_pattern</key>
                <string>https://community\.gopro\.com/html/assets/GoPro-FX-Reframe-Plugin-.*?.pkg</string>
                <key>result_output_var_name</key>
                <string>url</string>
                <key>url</key>
                <string>https://community.gopro.com/t5/en/GoPro-FX-Reframe/ta-p/412890</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>URLDownloader</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
            <key>Arguments</key>
            <dict>
                <key>input_path</key>
                <string>%pathname%</string>
                <key>expected_authority_names</key>
                <array>
                    <string>Developer ID Installer: GoPro, Inc. (5R97Y7Q7FD)</string>
                    <string>Developer ID Certification Authority</string>
                    <string>Apple Root CA</string>
                </array>
            </dict>
        </dict>
    </array>
</dict>
</plist>
Glyphs Mini 2 Trial/GlyphsMini2Trial.png METASEP

Glyphs Mini 2 Trial/Glyphs Mini 2 Trial.pkg.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>Description</key>
	<string>Downloads the latest version of Glyphs Mini 2 Trial and creates a package.</string>
	<key>Identifier</key>
	<string>com.github.dataJAR-recipes.pkg.Glyphs Mini 2 Trial</string>
	<key>Input</key>
	<dict>
		<key>BUNDLE_ID</key>
		<string>com.schriftgestaltung.GlyphsMini2</string>
		<key>NAME</key>
		<string>Glyphs Mini 2 Trial</string>
	</dict>
	<key>MinimumVersion</key>
	<string>0.6.1</string>
	<key>ParentRecipe</key>
	<string>com.github.dataJAR-recipes.download.Glyphs Mini 2 Trial</string>
	<key>Process</key>
	<array>
		<dict>
			<key>Arguments</key>
			<dict>
				<key>pkg_request</key>
				<dict>
					<key>chown</key>
					<array>
						<dict>
							<key>group</key>
							<string>admin</string>
							<key>path</key>
							<string>Applications</string>
							<key>user</key>
							<string>root</string>
						</dict>
					</array>
					<key>id</key>
					<string>%BUNDLE_ID%</string>
					<key>options</key>
					<string>purge_ds_store</string>
					<key>pkgname</key>
					<string>%NAME%-%version%</string>
					<key>pkgroot</key>
					<string>%RECIPE_CACHE_DIR%/%NAME%</string>
					<key>version</key>
					<string>%version%</string>
				</dict>
			</dict>
			<key>Processor</key>
			<string>PkgCreator</string>
		</dict>
	</array>
</dict>
</plist>

Glyphs Mini 2 Trial/Glyphs Mini 2 Trial.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the most recent version of Glyphs 2 and imports it into Munki.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.Glyphs Mini 2 Trial</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>Glyphs Mini 2 Trial</string>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>pkginfo</key>
        <dict>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>Easy, lightweight and affordable: Glyphs Mini is the slimmed down version of the Glyphs font editor.</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.2.0</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.Glyphs Mini 2 Trial</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>DmgCreator</string>
            <key>Arguments</key>
            <dict>
                <key>dmg_path</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%.dmg</string>
                <key>dmg_root</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%/Applications</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%dmg_path%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
                <key>version_comparison_key</key>
                <string>CFBundleShortVersionString</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PathDeleter</string>
            <key>Arguments</key>
            <dict>
                <key>path_list</key>
                <array>
                    <string>%RECIPE_CACHE_DIR%/%NAME%</string>
                </array>
            </dict>
        </dict>
    </array>
</dict>
</plist>

Glyphs Mini 2 Trial/Glyphs Mini 2 Trial.jss.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>Description</key>
	<string>Downloads the current release version of Glyphs Mini 2 Trial and then uploads to the JSS</string>
	<key>Identifier</key>
	<string>com.github.dataJAR-recipes.jss.Glyphs Mini 2 Trial</string>
	<key>Input</key>
	<dict>
		<key>CATEGORY</key>
		<string>Productivity</string>
		<key>GROUP_NAME</key>
		<string>%NAME%-update-smart</string>
		<key>GROUP_TEMPLATE</key>
		<string>SmartGroupTemplate.xml</string>
		<key>NAME</key>
		<string>Glyphs Mini 2 Trial</string>
		<key>POLICY_CATEGORY</key>
		<string>Testing</string>
		<key>POLICY_TEMPLATE</key>
		<string>PolicyTemplate.xml</string>
		<key>SELF_SERVICE_DESCRIPTION</key>
		<string>Easy, lightweight and affordable: Glyphs Mini is the slimmed down version of the Glyphs font editor.</string>
        <key>SELF_SERVICE_ICON</key>
		<string>GlyphsMini2Trial.png</string>
	</dict>
	<key>MinimumVersion</key>
	<string>0.2.0</string>
	<key>ParentRecipe</key>
	<string>com.github.dataJAR-recipes.pkg.Glyphs Mini 2 Trial</string>
	<key>Process</key>
	<array>
		<dict>
			<key>Arguments</key>
			<dict>
				<key>category</key>
				<string>%CATEGORY%</string>
				<key>groups</key>
				<array>
					<dict>
						<key>name</key>
						<string>%GROUP_NAME%</string>
						<key>smart</key>
						<true/>
						<key>template_path</key>
						<string>%GROUP_TEMPLATE%</string>
					</dict>
				</array>
				<key>policy_category</key>
				<string>%POLICY_CATEGORY%</string>
				<key>policy_template</key>
				<string>%POLICY_TEMPLATE%</string>
				<key>prod_name</key>
				<string>Glyphs Mini</string>
				<key>self_service_description</key>
				<string>%SELF_SERVICE_DESCRIPTION%</string>
				<key>self_service_icon</key>
				<string>%SELF_SERVICE_ICON%</string>
			</dict>
			<key>Processor</key>
			<string>JSSImporter</string>
		</dict>
	</array>
</dict>
</plist>

Glyphs Mini 2 Trial/Glyphs Mini 2 Trial.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the most recent version of Glyphs Mini 2 Trial</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.Glyphs Mini 2 Trial</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>Glyphs Mini 2 Trial</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.2.0</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>SparkleUpdateInfoProvider</string>
            <key>Arguments</key>
            <dict>
                <key>appcast_url</key>
                <string>https://updates.glyphsapp.com/appcastGlyphsMini2.xml</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>URLDownloader</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>Unarchiver</string>
            <key>Arguments</key>
            <dict>
                <key>archive_path</key>
                <string>%pathname%</string>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%/Applications</string>
                <key>purge_destination</key>
                <true/>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
            <key>Arguments</key>
            <dict>
                <key>input_path</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%/Applications/Glyphs Mini.app</string>
                <key>requirement</key>
                <string>anchor apple generic and identifier "com.schriftgestaltung.GlyphsMini2" 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] = X2L8375ZQ7)</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>Versioner</string>
            <key>Arguments</key>
            <dict>
                <key>input_plist_path</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%/Applications/Glyphs Mini.app/Contents/Info.plist</string>
                <key>plist_version_key</key>
                <string>CFBundleShortVersionString</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>

Glyphs 3/Glyphs 3.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the most recent version of Glyphs 3 and imports it into Munki.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.Glyphs 3</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>Glyphs3</string>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>pkginfo</key>
        <dict>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>The complete Mac font editor for pros and designers alike.

Create, produce and release font families, icon systems or just logos with ease and power.</string>
            <key>developer</key>
            <string>Glyphs GmbH</string>
            <key>display_name</key>
            <string>Glyphs 3</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.2.0</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.Glyphs 3</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>DmgCreator</string>
            <key>Arguments</key>
            <dict>
                <key>dmg_path</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%.dmg</string>
                <key>dmg_root</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%/Applications</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%dmg_path%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
                <key>version_comparison_key</key>
                <string>CFBundleShortVersionString</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PathDeleter</string>
            <key>Arguments</key>
            <dict>
                <key>path_list</key>
                <array>
                    <string>%RECIPE_CACHE_DIR%/%NAME%</string>
                </array>
            </dict>
        </dict>
    </array>
</dict>
</plist>

Glyphs 3/Glyphs 3.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the most recent version of Glyphs 3</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.Glyphs 3</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>Glyphs3</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.2.0</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>SparkleUpdateInfoProvider</string>
            <key>Arguments</key>
            <dict>
            <key>appcast_url</key>
                <string>https://updates.glyphsapp.com/appcast3.xml</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>URLDownloader</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>Unarchiver</string>
            <key>Arguments</key>
            <dict>
                <key>archive_path</key>
                <string>%pathname%</string>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%/Applications</string>
                <key>purge_destination</key>
                <true/>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
            <key>Arguments</key>
            <dict>
                <key>input_path</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%/Applications/Glyphs 3.app</string>
                <key>requirement</key>
                <string>anchor apple generic and identifier "com.GeorgSeifert.Glyphs3" 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] = X2L8375ZQ7)</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>

Gladinet Cloud Mac Client 9/GladinetCloudMacClient9.png METASEP

Gladinet Cloud Mac Client 9/Gladinet Cloud Mac Client 9.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the Gladinet Cloud Mac Client 9 dmg and imports into Munki</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.Gladinet Cloud Mac Client 9</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>Gladinet Cloud Mac Client 9</string>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>pkginfo</key>
        <dict>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>Gladinet Cloud Mac OS X client integrates with Mac Finder with a drive volume. Inside the drive volume, you can see the backend storage files and folders from Gladinet Cloud Enterprise.</string>
            <key>display_name</key>
            <string>Gladinet Cloud Mac Client</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
            <key>unattended_uninstall</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.Gladinet Cloud Mac Client 9</string>
    <key>Process</key>
    <array>
		<dict>
			<key>Arguments</key>
			<dict>
				<key>faux_root</key>
				<string>%RECIPE_CACHE_DIR%/application_payload</string>
				<key>installs_item_paths</key>
				<array>
					<string>/Applications/Gladinet Cloud Mac Client.app</string>
				</array>
			</dict>
			<key>Processor</key>
			<string>MunkiInstallsItemsCreator</string>
		</dict>
		<dict>
			<key>Arguments</key>
			<dict>
				<key>additional_pkginfo</key>
				<dict>
					<key>version</key>
					<string>%version%</string>
				</dict>
			</dict>
			<key>Processor</key>
			<string>MunkiPkginfoMerger</string>
		</dict>
		<dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%pkg_path%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
        </dict>
        <dict>
            <key>Arguments</key>
            <dict>
                <key>path_list</key>
                <array>
                <string>%RECIPE_CACHE_DIR%/application_payload/</string>
                <string>%RECIPE_CACHE_DIR%/unpack</string>                              
                </array>
            </dict>
            <key>Processor</key>
            <string>PathDeleter</string>
        </dict> 
    </array>
</dict>
</plist>

Gladinet Cloud Mac Client 9/Gladinet Cloud Mac Client 9.jss.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the Gladinet Cloud Mac Client 9 dmg and then uploads to the JSS</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.jss.Gladinet Cloud Mac Client 9</string>
    <key>Input</key>
    <dict>
		<key>CATEGORY</key>
		<string>Applications</string>
		<key>GROUP_NAME</key>
		<string>%NAME%-update-smart</string>
		<key>GROUP_TEMPLATE</key>
		<string>SmartGroupTemplate.xml</string>
		<key>NAME</key>
		<string>Gladinet Cloud Mac Client 9</string>
		<key>POLICY_CATEGORY</key>
		<string>Testing</string>
		<key>POLICY_TEMPLATE</key>
		<string>PolicyTemplate.xml</string>
		<key>SELF_SERVICE_DESCRIPTION</key>
		<string>Gladinet Cloud Mac OS X client integrates with Mac Finder with a drive volume. Inside the drive volume, you can see the backend storage files and folders from Gladinet Cloud Enterprise.</string>
        <key>SELF_SERVICE_ICON</key>
		<string>GladinetCloudMacClient9.png</string>
	</dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.Gladinet Cloud Mac Client 9</string>
    <key>Process</key>
    <array>
		<dict>
			<key>Processor</key>
			<string>FileMover</string>
			<key>Arguments</key>
			<dict>
				<key>source</key>
				<string>%RECIPE_CACHE_DIR%/%NAME%.pkg</string>
				<key>target</key>
				<string>%RECIPE_CACHE_DIR%/%NAME%-%version%.pkg</string>
			</dict>
		</dict>
		<dict>
			<key>Arguments</key>
			<dict>
				<key>category</key>
				<string>%CATEGORY%</string>
				<key>groups</key>
				<array>
					<dict>
						<key>name</key>
						<string>%GROUP_NAME%</string>
						<key>smart</key>
						<true/>
						<key>template_path</key>
						<string>%GROUP_TEMPLATE%</string>
					</dict>
				</array>
				<key>pkg_path</key>
				<string>%target%</string>
				<key>policy_category</key>
				<string>%POLICY_CATEGORY%</string>
				<key>policy_template</key>
				<string>%POLICY_TEMPLATE%</string>
				<key>prod_name</key>
				<string>Cloud Drive</string>
				<key>self_service_description</key>
				<string>%SELF_SERVICE_DESCRIPTION%</string>
				<key>self_service_icon</key>
				<string>%SELF_SERVICE_ICON%</string>
				<key>version</key>
				<string>%version%</string>
			</dict>
			<key>Processor</key>
			<string>JSSImporter</string>
		</dict>
        <dict>
            <key>Processor</key>
            <string>PathDeleter</string>
            <key>Arguments</key>
            <dict>
                <key>path_list</key>
                <array>
                	<string>%RECIPE_CACHE_DIR%/application_payload/</string>
                	<string>%RECIPE_CACHE_DIR%/unpack</string>                              
                </array>
            </dict>
        </dict>
    </array>
</dict>
</plist>

Gladinet Cloud Mac Client 9/Gladinet Cloud Mac Client 9.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Download recipe for Gladinet Cloud Mac Client 9</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.Gladinet Cloud Mac Client 9</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>Gladinet Cloud Mac Client 9</string>
        <key>SEARCH_URL</key>
        <string>https://www.centrestack.com/management1/releases/latestdownloads.aspx</string>
        <key>SEARCH_PATTERN</key>
        <string>[0-9a-z\.]+\/gladinet/MacClient.9_[0-9a-z\.]+\.dmg</string>
        <key>DOWNLOAD_URL</key>
        <string>https://s3.amazonaws.com/gladinetsupport</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.2.0</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>DeprecationWarning</string>
            <key>Arguments</key>
            <dict>
                <key>warning_message</key>
                <string>For Gladinet Cloud Drive Mac Client 9: https://github.com/autopkg/dataJAR-recipes/tree/master/Gladinet%20Cloud%20Mac%20Client%209, for 
                Gladinet Cloud Mac Client 12: https://github.com/autopkg/dataJAR-recipes/tree/master/Gladinet%20Cloud%20Mac%20Client%2012</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>

Gladinet Cloud Mac Client 12/Gladinet Cloud Mac Client 12.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the Gladinet Cloud Mac Client 12 dmg and imports into Munki</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.Gladinet Cloud Mac Client 12</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>Gladinet Cloud Mac Client 12</string>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>pkginfo</key>
        <dict>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>Have cloud drive volume on your Mac as if it were an external remote drive mounted locally. Move your corporate file servers to cloud file servers for easy remote file access and team collaboration.</string>
            <key>display_name</key>
            <string>Gladinet Cloud Drive Mac Client 12</string>
            <key>minimum_os_version</key>
            <string>10.13.0</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
            <key>unattended_uninstall</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.Gladinet Cloud Mac Client 12</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>PkgCopier</string>
            <key>Arguments</key>
            <dict>
                <key>source_pkg</key>
                <string>%RECIPE_CACHE_DIR%/downloads/%NAME%.dmg/CloudDrive-*.pkg</string>
                <key>pkg_path</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%.pkg</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>FlatPkgUnpacker</string>
            <key>Arguments</key>
            <dict>
                <key>flat_pkg_path</key>
                <string>%pkg_path%</string>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/unpack</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PkgRootCreator</string>
            <key>Arguments</key>
            <dict>
                <key>pkgroot</key>
                <string>%RECIPE_CACHE_DIR%/pkgroot</string>
                <key>pkgdirs</key>
                <dict/>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PkgPayloadUnpacker</string>
            <key>Arguments</key>
            <dict>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/pkgroot/</string>
                <key>pkg_payload_path</key>
                <string>%RECIPE_CACHE_DIR%/unpack/CloudDrive.pkg/Payload</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiInstallsItemsCreator</string>
            <key>Arguments</key>
            <dict>
                <key>faux_root</key>
                <string>%RECIPE_CACHE_DIR%/pkgroot</string>
                <key>installs_item_paths</key>
                <array>
                    <string>/Applications/Gladinet Cloud Mac Client.app</string>
                </array>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiPkginfoMerger</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%pkg_path%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PathDeleter</string>
            <key>Arguments</key>
            <dict>
                <key>path_list</key>
                <array>
                <string>%RECIPE_CACHE_DIR%/pkgroot/</string>
                <string>%RECIPE_CACHE_DIR%/unpack</string>
                </array>
            </dict>
        </dict>
    </array>
</dict>
</plist>
Gladinet Cloud Mac Client 12/Gladinet Cloud Mac Client 12.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Download recipe for Gladinet Cloud Mac Client 12</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.Gladinet Cloud Mac Client 12</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>Gladinet Cloud Mac Client 12</string>
        <key>SEARCH_URL</key>
        <string>https://www.centrestack.com/management1/releases/latestdownloads.aspx</string>
        <key>SEARCH_PATTERN</key>
        <string>https://s3\.amazonaws\.com/gladinetsupport/.*?/gladinet/MacClient\.9_.*?\.dmg</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.2.0</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>URLTextSearcher</string>
            <key>Arguments</key>
            <dict>
                <key>url</key>
                <string>%SEARCH_URL%</string>
                <key>re_pattern</key>
                <string>%SEARCH_PATTERN%</string>
                <key>result_output_var_name</key>
                <string>match</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>URLDownloader</string>
            <key>Arguments</key>
            <dict>
                <key>url</key>
                <string>%match%</string>
                <key>filename</key>
                <string>%NAME%.dmg</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
            <key>Arguments</key>
            <dict>
                <key>input_path</key>
                <string>%RECIPE_CACHE_DIR%/downloads/%NAME%.dmg/CloudDrive-*.pkg</string>
                <key>expected_authority_names</key>
                <array>
                    <string>Developer ID Installer: Gladinet, Inc. (CX8U2YJ96P)</string>
                    <string>Developer ID Certification Authority</string>
                    <string>Apple Root CA</string>
                </array>
            </dict>
        </dict>
    </array>
</dict>
</plist>
Gladinet Cloud Drive Mac Client 9/Gladinet Cloud Drive Mac Client 9.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the Gladinet Cloud Drive Mac Client 9 dmg and imports into Munki</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.Gladinet Cloud Drive Mac Client 9</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>Gladinet Cloud Drive Mac Client 9</string>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>pkginfo</key>
        <dict>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>Gladinet Cloud Mac OS X client integrates with Mac Finder with a drive volume. Inside the drive volume, you can see the backend storage files and folders from Gladinet Cloud Enterprise.</string>
            <key>display_name</key>
            <string>Gladinet Cloud Drive Mac Client</string>
            <key>maximum_os_version</key>
            <string>10.12.6</string>
            <key>minimum_os_version</key>
            <string>10.9.0</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
            <key>unattended_uninstall</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.Gladinet Cloud Drive Mac Client 9</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>PkgCopier</string>
            <key>Arguments</key>
            <dict>
                <key>source_pkg</key>
                <string>%RECIPE_CACHE_DIR%/downloads/%NAME%.dmg/Cloud Drive.pkg</string>
                <key>pkg_path</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%.pkg</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>FlatPkgUnpacker</string>
            <key>Arguments</key>
            <dict>
                <key>flat_pkg_path</key>
                <string>%pkg_path%</string>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/unpack</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PkgRootCreator</string>
            <key>Arguments</key>
            <dict>
                <key>pkgroot</key>
                <string>%RECIPE_CACHE_DIR%/pkgroot</string>
                <key>pkgdirs</key>
                <dict/>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PkgPayloadUnpacker</string>
            <key>Arguments</key>
            <dict>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/pkgroot/</string>
                <key>pkg_payload_path</key>
                <string>%RECIPE_CACHE_DIR%/unpack/Gladinet.pkg/Payload</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiInstallsItemsCreator</string>
            <key>Arguments</key>
            <dict>
                <key>faux_root</key>
                <string>%RECIPE_CACHE_DIR%/pkgroot</string>
                <key>installs_item_paths</key>
                <array>
                    <string>/Applications/Gladinet Cloud Mac Client.app</string>
                </array>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiPkginfoMerger</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>Versioner</string>
            <key>Arguments</key>
            <dict>
                <key>input_plist_path</key>
                <string>%RECIPE_CACHE_DIR%/pkgroot/Applications/Gladinet Cloud Mac Client.app/Contents/Info.plist</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiPkginfoMerger</string>
            <key>Arguments</key>
            <dict>
                <key>additional_pkginfo</key>
                <dict>
                    <key>version</key>
                    <string>%version%</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%pkg_path%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PathDeleter</string>
            <key>Arguments</key>
            <dict>
                <key>path_list</key>
                <array>
                <string>%RECIPE_CACHE_DIR%/pkgroot/</string>
                <string>%RECIPE_CACHE_DIR%/unpack</string>
                </array>
            </dict>
        </dict>
    </array>
</dict>
</plist>
Gladinet Cloud Drive Mac Client 9/Gladinet Cloud Drive Mac Client 9.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Download recipe for Gladinet Cloud Drive Mac Client 9</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.Gladinet Cloud Drive Mac Client 9</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>Gladinet Cloud Drive Mac Client 9</string>
        <key>SEARCH_URL</key>
        <string>https://www.centrestack.com/management1/releases/latestdownloads.aspx</string>
        <key>SEARCH_PATTERN</key>
        <string>https://s3\.amazonaws\.com/gladinetsupport/.*?/gladinet/MacClient\.8_.*?\.dmg</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.2.0</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>URLTextSearcher</string>
            <key>Arguments</key>
            <dict>
                <key>url</key>
                <string>%SEARCH_URL%</string>
                <key>re_pattern</key>
                <string>%SEARCH_PATTERN%</string>
                <key>result_output_var_name</key>
                <string>match</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>URLDownloader</string>
            <key>Arguments</key>
            <dict>
                <key>url</key>
                <string>%match%</string>
                <key>filename</key>
                <string>%NAME%.dmg</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
            <key>Arguments</key>
            <dict>
                <key>input_path</key>
                <string>%RECIPE_CACHE_DIR%/downloads/%NAME%.dmg/Cloud Drive.pkg</string>
                <key>expected_authority_names</key>
                <array>
                    <string>Developer ID Installer: Gladinet, Inc. (CX8U2YJ96P)</string>
                    <string>Developer ID Certification Authority</string>
                    <string>Apple Root CA</string>
                </array>
            </dict>
        </dict>
    </array>
</dict>
</plist>
Genymotion/Genymotion.png METASEP

Genymotion/Genymotion.pkg.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>Description</key>
	<string>Downloads the current release version of Genymotion and makes a package.</string>
	<key>Identifier</key>
	<string>com.github.dataJAR-recipes.pkg.Genymotion</string>
	<key>Input</key>
	<dict>
		<key>NAME</key>
		<string>Genymotion</string>
	</dict>
	<key>MinimumVersion</key>
	<string>0.3.1</string>
	<key>ParentRecipe</key>
	<string>com.github.erikng.download.Genymotion</string>
	<key>Process</key>
	<array>
        <dict>
			<key>Processor</key>
			<string>PkgRootCreator</string>
			<key>Arguments</key>
			<dict>
				<key>pkgroot</key>
				<string>%RECIPE_CACHE_DIR%/%NAME%-pkg</string>
				<key>pkgdirs</key>
				<dict>
					<key>Applications</key>
					<string>0775</string>
				</dict>
			</dict>
		</dict>
        <dict>
            <key>Processor</key>
            <string>Copier</string>
            <key>Arguments</key>
            <dict>
                <key>source_path</key>
                <string>%pathname%/Genymotion.app</string>
                <key>destination_path</key>
                <string>%pkgroot%/Applications/Genymotion.app</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>Copier</string>
            <key>Arguments</key>
            <dict>
                <key>source_path</key>
                <string>%pathname%/%NAME% Shell.app</string>
                <key>destination_path</key>
                <string>%pkgroot%/Applications/%NAME% Shell.app</string>
            </dict>
        </dict>
		<dict>
			<key>Processor</key>
			<string>PkgCreator</string>
			<key>Arguments</key>
			<dict>
				<key>pkg_request</key>
				<dict>
					<key>pkgname</key>
					<string>%NAME%-%genymotion_version%</string>
					<key>pkgdirs</key>
					<string>%RECIPE_CACHE_DIR%/pkgroot/Applications/</string>
					<key>version</key>
					<string>%genymotion_version%</string>
					<key>id</key>
					<string>com.genymobile.genymotion-%genymotion_version%</string>
					<key>options</key>
					<string>purge_ds_store</string>
					<key>chown</key>
					<array>
						<dict>
							<key>path</key>
							<string>Applications</string>
							<key>user</key>
							<string>root</string>
							<key>group</key>
							<string>admin</string>
						</dict>
					</array>
				</dict>
			</dict>
		</dict>
		<dict>
            <key>Processor</key>
            <string>PathDeleter</string>
            <key>Arguments</key>
            <dict>
                <key>path_list</key>
                <array>
                	<string>%RECIPE_CACHE_DIR%/%NAME%-pkg</string>
            	</array>
            </dict>
        </dict>
	</array>
</dict>
</plist>

Genymotion/Genymotion.jss.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>Description</key>
	<string>Downloads the current release version of Genymotion and builds a package. Then, uploads to the JSS.</string>
	<key>Identifier</key>
	<string>com.github.dataJAR-recipes.jss.Genymotion</string>
	<key>Input</key>
	<dict>
		<key>CATEGORY</key>
		<string>Productivity</string>
		<key>GROUP_NAME</key>
		<string>%NAME%-update-smart</string>
		<key>GROUP_TEMPLATE</key>
		<string>Genymotion-SmartGroupTemplate.xml</string>
		<key>NAME</key>
		<string>Genymotion</string>
		<key>POLICY_CATEGORY</key>
		<string>Testing</string>
		<key>POLICY_TEMPLATE</key>
		<string>PolicyTemplate.xml</string>
		<key>SELF_SERVICE_DESCRIPTION</key>
		<string>Speed up your development lifecycle with an easy, accessible, and effective testing and collaboration tool.</string>
		<key>SELF_SERVICE_ICON</key>
		<string>Genymotion.png</string>
	</dict>
	<key>MinimumVersion</key>
	<string>0.2.0</string>
	<key>ParentRecipe</key>
	<string>com.github.dataJAR-recipes.pkg.Genymotion</string>
	<key>Process</key>
	<array>
		<dict>
			<key>Arguments</key>
			<dict>
				<key>category</key>
				<string>%CATEGORY%</string>
				<key>groups</key>
				<array>
					<dict>
						<key>name</key>
						<string>%GROUP_NAME%</string>
						<key>smart</key>
						<true/>
						<key>template_path</key>
						<string>%GROUP_TEMPLATE%</string>
					</dict>
				</array>
				<key>policy_category</key>
				<string>%POLICY_CATEGORY%</string>
				<key>policy_template</key>
				<string>%POLICY_TEMPLATE%</string>
				<key>prod_name</key>
				<string>%NAME%</string>
				<key>self_service_description</key>
				<string>%SELF_SERVICE_DESCRIPTION%</string>
				<key>self_service_icon</key>
				<string>%SELF_SERVICE_ICON%</string>
				<key>version</key>
				<string>%genymotion_version%</string>
			</dict>
			<key>Processor</key>
			<string>JSSImporter</string>
		</dict>
	</array>
</dict>
</plist>

Genymotion/Genymotion-SmartGroupTemplate.xml METASEP
<computer_group>
	<name>%group_name%</name>
	<is_smart>true</is_smart>
	<criteria>
		<criterion>
			<name>Application Title</name>
			<priority>0</priority>
			<and_or>and</and_or>
			<search_type>is</search_type>
			<value>%JSS_INVENTORY_NAME%</value>
		</criterion>
		<criterion>
			<name>Packages Installed By Installer.app/SWU</name>
			<priority>0</priority>
			<and_or>and</and_or>
			<search_type>does not have</search_type>
			<value>com.genymobile.genymotion-%genymotion_version%</value>
		</criterion>
		<criterion>
			<name>Computer Group</name>
			<priority>2</priority>
			<and_or>and</and_or>
			<search_type>member of</search_type>
			<value>Testing</value>
		</criterion>
	</criteria>
</computer_group>

Geekbench 5/Geekbench 5.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of Geekbench 5 and imports it into Munki.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.Geekbench 5</string>
    <key>Input</key>
    <dict>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>NAME</key>
        <string>Geekbench 5</string>
        <key>pkginfo</key>
        <dict>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>Geekbench 5, the latest major upgrade to Primate Labs’ easy-to-use cross-platform benchmark, is now available for download. Geekbench 5 allows you to measure your system’s power more accurately than ever before.</string>
            <key>developer</key>
            <string>Primate Labs</string>
            <key>display_name</key>
            <string>Geekbench 5</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.Geekbench 5</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>DmgCreator</string>
            <key>Arguments</key>
            <dict>
                <key>dmg_path</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%.dmg</string>
                <key>dmg_root</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%dmg_path%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
                <key>version_comparison_key</key>
                <string>CFBundleShortVersionString</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PathDeleter</string>
            <key>Arguments</key>
            <dict>
                <key>path_list</key>
                <array>
                    <string>%RECIPE_CACHE_DIR%/%NAME%</string>
                </array>
            </dict>
        </dict>
    </array>
</dict>
</plist>

Geekbench 5/Geekbench 5.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of Geekbench 5.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.Geekbench 5</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>Geekbench5</string>
        <key>SPARKLE_FEED_URL</key>
        <string>https://www.primatelabs.com/appcast/geekbench5.xml</string>
    </dict>
    <key>MinimumVersion</key>
    <string>1.0.0</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>SparkleUpdateInfoProvider</string>
            <key>Arguments</key>
            <dict>
                <key>appcast_url</key>
                <string>%SPARKLE_FEED_URL%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>URLDownloader</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>Unarchiver</string>
            <key>Arguments</key>
            <dict>
                <key>archive_path</key>
                <string>%pathname%</string>
                <key>purge_destination</key>
                <true/>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
            <key>Arguments</key>
            <dict>
                <key>input_path</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%/Geekbench 5.app</string>
                <key>requirement</key>
                <string>anchor apple generic and identifier "com.primatelabs.Geekbench5" 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] = SRW94G4YYQ)</string>
                <key>strict_verification</key>
                <true />
            </dict>
        </dict>
    </array>
</dict>
</plist>

Geany/Geany.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of Geany and imports into Munki</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.Geany</string>
    <key>Input</key>
    <dict>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>NAME</key>
        <string>Geany</string>
        <key>pkginfo</key>
        <dict>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>Geany is a powerful, stable and lightweight programmer's text editor that provides tons of useful features without bogging down your workflow.</string>
            <key>developer</key>
            <string>Geany</string>
            <key>display_name</key>
            <string>Geany</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.5.0</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.Geany</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%pathname%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>

Geany/Geany.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of Geany</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.Geany</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>Geany</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.5.0</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>URLTextSearcher</string>
            <key>Arguments</key>
            <dict>
                <key>re_pattern</key>
                <string>(https:\/\/download\.geany\.org\/geany-\S*.dmg)"</string>
                <key>result_output_var_name</key>
                <string>match</string>
                <key>url</key>
                <string>https://www.geany.org/download/releases/</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>URLDownloader</string>
            <key>Arguments</key>
            <dict>
                <key>url</key>
                <string>%match%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
            <key>Arguments</key>
            <dict>
                <key>input_path</key>
                <string>%pathname%/Geany.app</string>
                <key>requirement</key>
                <string>identifier "org.geany.geany" and anchor apple generic and 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] = SJQ2ZZ5SLU</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>

Garmin VIRB Edit/Garmin VIRB Edit.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of Garmin VIRB Edit and imports it into Munki.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.Garmin VIRB Edit</string>
    <key>Input</key>
    <dict>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>NAME</key>
        <string>GarminVIRBEdit</string>
        <key>pkginfo</key>
        <dict>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>The VIRB Edit desktop app combines your VIRB video footage with GPS and other data from any VIRB action camera or a compatible Garmin device. The result is a rich, memorable, video experience that you can easily share and post online.</string>
            <key>developer</key>
            <string>Garmin Ltd</string>
            <key>display_name</key>
            <string>Garmin VIRB Edit</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
            <key>unattended_uninstall</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.Garmin VIRB Edit</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>MunkiInstallsItemsCreator</string>
            <key>Arguments</key>
            <dict>
                <key>faux_root</key>
                <string>%RECIPE_CACHE_DIR%/payload_unpack</string>
                <key>installs_item_paths</key>
                <array>
                    <string>/Applications/Garmin VIRB Edit.app</string>
                </array>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiPkginfoMerger</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiPkginfoMerger</string>
            <key>Arguments</key>
            <dict>
                <key>additional_pkginfo</key>
                <dict>
                    <key>version</key>
                    <string>%version%</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%pathname%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PathDeleter</string>
            <key>Arguments</key>
            <dict>
                <key>path_list</key>
                <array>
                    <string>%RECIPE_CACHE_DIR%/payload_unpack</string>
                    <string>%RECIPE_CACHE_DIR%/pkg_unpack</string>
                </array>
            </dict>
        </dict>
    </array>
</dict>
</plist>
Garmin VIRB Edit/Garmin VIRB Edit.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of Garmin VIRB Edit.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.Garmin VIRB Edit</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>GarminVIRBEdit</string>
	</dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>URLTextSearcher</string>
            <key>Arguments</key>
            <dict>
                <key>url</key>
                <string>https://www8.garmin.com/support/download_details.jsp?id=6593</string>
                <key>re_pattern</key>
                <string>https://download\.garmin\.com/software/VIRBEditforMac_\S.*\.dmg</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>URLDownloader</string>
            <key>Arguments</key>
            <dict>
                <key>filename</key>
                <string>%NAME%.dmg</string>
                <key>url</key>
                <string>%match%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PkgCopier</string>
            <key>Arguments</key>
            <dict>
                <key>source_pkg</key>
                <string>%pathname%/Install VIRB Edit.pkg</string>
                <key>pkg_path</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%.pkg</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
            <key>Arguments</key>
            <dict>
                <key>input_path</key>
                <string>%pkg_path%</string>
                <key>expected_authority_names</key>
                <array>
                    <string>Developer ID Installer: Garmin International (72ES32VZUA)</string>
                    <string>Developer ID Certification Authority</string>
                    <string>Apple Root CA</string>
                </array>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>FlatPkgUnpacker</string>
            <key>Arguments</key>
            <dict>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/pkg_unpack</string>
                <key>flat_pkg_path</key>
                <string>%pkg_path%</string>
                <key>purge_destination</key>
                <string>true</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PkgPayloadUnpacker</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_payload_path</key>
                <string>%destination_path%/Garmin_VIRB_Edit.pkg/Payload</string>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/payload_unpack/</string>
                <key>purge_destination</key>
                <string>true</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>Versioner</string>
            <key>Arguments</key>
            <dict>
                <key>input_plist_path</key>
                <string>%destination_path%Applications/Garmin VIRB Edit.app/Contents/Info.plist</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>
GNS3/GNS3.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of GNS3 and imports it into Munki.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.GNS3</string>
    <key>Input</key>
    <dict>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>NAME</key>
        <string>GNS3</string>
        <key>pkginfo</key>
        <dict>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>Network emulation client.</string>
            <key>developer</key>
            <string>Galaxy Technologies</string>
            <key>display_name</key>
            <string>GNS3</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
            <key>unattended_uninstall</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.GNS3</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%pathname%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>
GNS3/GNS3.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of GNS3.
Set PRERELEASE to a non-empty string to download prereleases, either
via Input in an override or via the -k option,
i.e.: `-k PRERELEASE=yes`</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.GNS3</string>
    <key>Input</key>
    <dict>
        <key>PRERELEASE</key>
        <string></string>
        <key>NAME</key>
        <string>GNS3</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>GitHubReleasesInfoProvider</string>
            <key>Arguments</key>
            <dict>
                <key>github_repo</key>
                <string>GNS3/gns3-gui</string>
                <key>include_prereleases</key>
                <string>%PRERELEASE%</string>
                <key>asset_regex</key>
                <string>GNS3-.*?\.dmg</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>URLDownloader</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
            <key>Arguments</key>
            <dict>
                <key>input_path</key>
                <string>%pathname%/GNS3.app</string>
                <key>requirement</key>
                <string>identifier "net.gns3" and anchor apple generic and 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] = "5C3VHX9RG5"</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>
GMetrixSMSe/GMetrixSMSe.png METASEP

GMetrixSMSe/GMetrixSMSe.pkg.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of GMetrixSMSe and makes a package.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.pkg.GMetrixSMSe</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>GMetrixSMSe</string>
    </dict>
    <key>MinimumVersion</key>
    <string>1.0.0</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.GMetrixSMSe</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>AppPkgCreator</string>
            <key>Arguments</key>
            <dict>
                <key>app_path</key>
                <string>%pathname%/GMetrixSMSe.app</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>

GMetrixSMSe/GMetrixSMSe.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of GMetrixSMSe and imports it into Munki.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.GMetrixSMSe</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>GMetrixSMSe</string>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>pkginfo</key>
        <dict>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>GMetrix SMS provides practice material for:
- Microsoft Office 2013, 2016, 2019 (Windows only)
- Adobe CC 2018/2019
- Adobe CC 2013/2015
- Adobe CS6
- Autodesk Certified User 2017 - 2020 (Windows only)
- Autodesk Certified Professional 2017 - 2020 (Windows only)
- Microsoft Technology Associate
- IC3 GS4/GS5/Spark
- CompTIA
- QuickBooks Certified User
- Microsoft Certified Educator (MCE)
- Entrepreneurship and Small Business
- EC-Council Associate</string>
            <key>developer</key>
            <string>GMetrix</string>
            <key>display_name</key>
            <string>GMetrixSMSe</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
            <key>unattended_uninstall</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.GMetrixSMSe</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%pathname%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>

GMetrixSMSe/GMetrixSMSe.jss.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of GMetrixSMSe and then uploads to the JSS.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.jss.GMetrixSMSe</string>
    <key>Input</key>
    <dict>
        <key>CATEGORY</key>
        <string>Applications</string>
        <key>GROUP_NAME</key>
        <string>%NAME%-update-smart</string>
        <key>GROUP_TEMPLATE</key>
        <string>SmartGroupTemplate.xml</string>
        <key>NAME</key>
        <string>GMetrixSMSe</string>
        <key>POLICY_CATEGORY</key>
        <string>Testing</string>
        <key>POLICY_TEMPLATE</key>
        <string>PolicyTemplate.xml</string>
        <key>SELF_SERVICE_DESCRIPTION</key>
        <string>GMetrix SMS provides practice material for:
- Microsoft Office 2013, 2016, 2019 (Windows only)
- Adobe CC 2018/2019
- Adobe CC 2013/2015
- Adobe CS6
- Autodesk Certified User 2017 - 2020 (Windows only)
- Autodesk Certified Professional 2017 - 2020 (Windows only)
- Microsoft Technology Associate
- IC3 GS4/GS5/Spark
- CompTIA
- QuickBooks Certified User
- Microsoft Certified Educator (MCE)
- Entrepreneurship and Small Business
- EC-Council Associate</string>
        <key>SELF_SERVICE_ICON</key>
        <string>GMetrixSMSe.png</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.pkg.GMetrixSMSe</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>JSSImporter</string>
            <key>Arguments</key>
            <dict>
                <key>category</key>
                <string>%CATEGORY%</string>
                <key>groups</key>
                <array>
                    <dict>
                        <key>name</key>
                        <string>%GROUP_NAME%</string>
                        <key>smart</key>
                        <true/>
                        <key>template_path</key>
                        <string>%GROUP_TEMPLATE%</string>
                    </dict>
                </array>
                <key>pkg_path</key>
                <string>%pkg_path%</string>
                <key>policy_category</key>
                <string>%POLICY_CATEGORY%</string>
                <key>policy_template</key>
                <string>%POLICY_TEMPLATE%</string>
                <key>prod_name</key>
                <string>4K Video Downloader</string>
                <key>self_service_description</key>
                <string>%SELF_SERVICE_DESCRIPTION%</string>
                <key>self_service_icon</key>
                <string>%SELF_SERVICE_ICON%</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>
GMetrixSMSe/GMetrixSMSe.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads latest version of GMetrixSMSe.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.GMetrixSMSe</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>GMetrixSMSe</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>URLTextSearcher</string>
            <key>Arguments</key>
            <dict>
                <key>url</key>
                <string>https://support.gmetrix.net/download</string>
                <key>re_pattern</key>
                <string>https://releases\.gmetrix\.net/smse/latest/mac/GMetrixSMSe-.*\.dmg</string>
                <key>result_output_var_name</key>
                <string>match</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>URLDownloader</string>
            <key>Arguments</key>
            <dict>
                <key>filename</key>
                <string>%NAME%.dmg</string>
                <key>url</key>
                <string>%match%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
            <key>Arguments</key>
            <dict>
                <key>input_path</key>
                <string>%pathname%/GMetrixSMSe.app</string>
                <key>requirement</key>
                <string>identifier "com.skills.management.system.app" and anchor apple generic and 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] = QEANEFRQN6</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>Versioner</string>
            <key>Arguments</key>
            <dict>
                <key>input_plist_path</key>
                <string>%pathname%/GMetrixSMSe.app/Contents/Info.plist</string>
                <key>plist_version_key</key>
                <string>CFBundleShortVersionString</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>

GDevelop/GDevelop.png METASEP

GDevelop/GDevelop.pkg.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the current release version of GDevelop and makes a package.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.pkg.GDevelop</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>GDevelop</string>
    </dict>
    <key>MinimumVersion</key>
    <string>1.0.0</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.GDevelop</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>PlistReader</string>
            <key>Arguments</key>
            <dict>
                <key>info_path</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%/Applications/GDevelop 5.app</string>
                <key>plist_keys</key>
                <dict>
                    <key>CFBundleVersion</key>
                    <string>version</string>
                    <key>CFBundleIdentifier</key>
                    <string>bundleid</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>com.github.homebysix.VersionSplitter/VersionSplitter</string>
            <key>Arguments</key>
                <dict>
                    <key>version</key>
                    <string>%version%</string>
                    <key>index</key>
                    <integer>0</integer>
                    <key>split_on</key>
                    <string>-</string>
                </dict>
            </dict>
        <dict>
            <key>Processor</key>
            <string>PkgCreator</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_request</key>
                <dict>
                    <key>chown</key>
                    <array>
                        <dict>
                            <key>group</key>
                            <string>admin</string>
                            <key>path</key>
                            <string>Applications</string>
                            <key>user</key>
                            <string>root</string>
                        </dict>
                    </array>
                    <key>id</key>
                    <string>%bundleid%</string>
                    <key>options</key>
                    <string>purge_ds_store</string>
                    <key>pkgname</key>
                    <string>%NAME%-%version%</string>
                    <key>pkgroot</key>
                    <string>%RECIPE_CACHE_DIR%/%NAME%</string>
                    <key>version</key>
                    <string>%version%</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PathDeleter</string>
            <key>Arguments</key>
            <dict>
                <key>path_list</key>
                <array>
                    <string>%RECIPE_CACHE_DIR%/%NAME%</string>                            
                </array>
            </dict>
        </dict>
    </array>
</dict>
</plist>

GDevelop/GDevelop.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of GDevelop and imports it into Munki.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.GDevelop</string>
    <key>Input</key>
    <dict>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>NAME</key>
        <string>GDevelop</string>
        <key>pkginfo</key>
        <dict>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>GDevelop is an open source HTML5 and native game creator requiring no coding skills.</string>
            <key>developer</key>
            <string>4ian</string>
            <key>display_name</key>
            <string>GDevelop</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.GDevelop</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>DmgCreator</string>
            <key>Arguments</key>
            <dict>
                <key>dmg_path</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%.dmg</string>
                <key>dmg_root</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%/Applications</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%dmg_path%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PathDeleter</string>
            <key>Arguments</key>
            <dict>
                <key>path_list</key>
                <array>
                    <string>%RECIPE_CACHE_DIR%/%NAME%</string>                            
                </array>
            </dict>
        </dict>
    </array>
</dict>
</plist>
GDevelop/GDevelop.jss.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the current release version of GDevelop and builds a package. Then, uploads to the JSS.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.jss.GDevelop</string>
    <key>Input</key>
    <dict>
        <key>CATEGORY</key>
        <string>Development</string>
        <key>GROUP_NAME</key>
        <string>%NAME%-update-smart</string>
        <key>GROUP_TEMPLATE</key>
        <string>SmartGroupTemplate.xml</string>
        <key>NAME</key>
        <string>GDevelop</string>
        <key>POLICY_CATEGORY</key>
        <string>Testing</string>
        <key>POLICY_TEMPLATE</key>
        <string>PolicyTemplate.xml</string>
        <key>SELF_SERVICE_DESCRIPTION</key>
        <string>GDevelop is an open source HTML5 and native game creator requiring no coding skills.</string>
        <key>SELF_SERVICE_ICON</key>
        <string>GDevelop.png</string>
    </dict>
    <key>MinimumVersion</key>
    <string>1.0.0</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.pkg.GDevelop</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>JSSImporter</string>
            <key>Arguments</key>
            <dict>
                <key>category</key>
                <string>%CATEGORY%</string>
                <key>groups</key>
                <array>
                    <dict>
                        <key>name</key>
                        <string>%GROUP_NAME%</string>
                        <key>smart</key>
                        <true/>
                        <key>template_path</key>
                        <string>%GROUP_TEMPLATE%</string>
                    </dict>
                </array>
                <key>pkg_path</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%-%version%.pkg</string>
                <key>policy_category</key>
                <string>%POLICY_CATEGORY%</string>
                <key>policy_template</key>
                <string>%POLICY_TEMPLATE%</string>
                <key>prod_name</key>
                <string>%NAME%</string>
                <key>self_service_description</key>
                <string>%SELF_SERVICE_DESCRIPTION%</string>
                <key>self_service_icon</key>
                <string>%SELF_SERVICE_ICON%</string>
                <key>version</key>
                <string>%version%</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>

GDevelop/GDevelop.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of GDevelop.
Set PRERELEASE to a non-empty string to download prereleases, either
via Input in an override or via the -k option,
i.e.: `-k PRERELEASE=yes`</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.GDevelop</string>
    <key>Input</key>
    <dict>
        <key>PRERELEASE</key>
        <string></string>
        <key>NAME</key>
        <string>GDevelop</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>GitHubReleasesInfoProvider</string>
            <key>Arguments</key>
            <dict>
                <key>github_repo</key>
                <string>4ian/GDevelop</string>
                <key>include_prereleases</key>
                <string>%PRERELEASE%</string>
                <key>asset_regex</key>
                <string>[\S]+\.zip</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>URLDownloader</string>
            <key>Arguments</key>
            <dict>
                <key>filename</key>
                <string>%NAME%.zip</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PkgRootCreator</string>
            <key>Arguments</key>
            <dict>
                <key>pkgdirs</key>
                <dict>
                    <key>Applications</key>
                    <string>0775</string>
                </dict>
                <key>pkgroot</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>Unarchiver</string>
            <key>Arguments</key>
            <dict>
                <key>archive_path</key>
                <string>%pathname%</string>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%/Applications</string>
                <key>purge_destination</key>
                <true/>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
            <key>Arguments</key>
            <dict>
                <key>input_path</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%/Applications/GDevelop 5.app</string>
                <key>requirement</key>
                <string>identifier "com.gdevelop-app.ide" and anchor apple generic and 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] = "5CG65LEVUK"</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>

GDevelop/GDevelop-SmartGroupTemplate.xml METASEP
<computer_group>
    <name>%group_name%</name>
    <is_smart>true</is_smart>
    <criteria>
        <criterion>
            <name>Application Title</name>
            <priority>0</priority>
            <and_or>and</and_or>
            <search_type>is</search_type>
            <value>%JSS_INVENTORY_NAME%</value>
        </criterion>
        <criterion>
            <name>Packages Installed By Installer.app/SWU</name>
            <priority>0</priority>
            <and_or>and</and_or>
            <search_type>does not have</search_type>
            <value>com.github.4ian-GDevelop-%version%</value>
        </criterion>
        <criterion>
            <name>Computer Group</name>
            <priority>2</priority>
            <and_or>and</and_or>
            <search_type>member of</search_type>
            <value>Testing</value>
        </criterion>
    </criteria>
</computer_group>

Front/Front.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of Front and imports it into Munki.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.Front</string>
    <key>Input</key>
    <dict>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>NAME</key>
        <string>Front</string>
        <key>pkginfo</key>
        <dict>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>Whether you're at your desk or on the road, Front keeps your messages, apps, and teammates at your fingertips.</string>
            <key>developer</key>
            <string>FrontApp Inc</string>
            <key>display_name</key>
            <string>Front</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>1.0.0</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.Front</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%pathname%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>

Front/Front.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of Front.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.Front</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>Front</string>
    </dict>
    <key>MinimumVersion</key>
    <string>1.0.0</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>URLDownloader</string>
            <key>Arguments</key>
            <dict>
                <key>filename</key>
                <string>%NAME%.dmg</string>
                <key>url</key>
                <string>https://dl.frontapp.com/macos/Front.dmg</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
            <key>Arguments</key>
            <dict>
                <key>input_path</key>
                <string>%pathname%/Front.app</string>
                <key>requirement</key>
                <string>identifier "com.frontapp.Front" and anchor apple generic and 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] = X549L7572J</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>
Fritzing/Fritzing.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of Fritzing and imports it into Munki.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.Fritzing</string>
    <key>Input</key>
    <dict>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>NAME</key>
        <string>Fritzing</string>
        <key>pkginfo</key>
        <dict>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>The Fritzing application is an Electronic Design Automation software with a low entry barrier, suited for the needs of makers and hobbyists. It offers a unique real-life "breadboard" view, and a parts library with many commonly used high-level components. Fritzing makes it very easy to communicate about circuits, as well as to turn them into PCB layouts ready for production. It is particularly popular among Arduino and Raspberry Pi users, and is widely used in education and creative tinkering.</string>
            <key>developer</key>
            <string>Friends-of-Fritzing</string>
            <key>display_name</key>
            <string>Fritzing</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
            <key>unattended_uninstall</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.Fritzing</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%pathname%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>
Fritzing/Fritzing.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of Fritzing.
Set PRERELEASE to a non-empty string to download prereleases, either
via Input in an override or via the -k option,
i.e.: `-k PRERELEASE=yes`</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.Fritzing</string>
    <key>Input</key>
    <dict>
        <key>PRERELEASE</key>
        <string>true</string>
        <key>NAME</key>
        <string>Fritzing</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Arguments</key>
            <dict>
                <key>github_repo</key>
                <string>fritzing/fritzing-app</string>
                <key>include_prereleases</key>
                <string>%PRERELEASE%</string>
                <key>asset_regex</key>
                <string>[\S]+\.mojave\.[\S]+\.dmg</string>
            </dict>
            <key>Processor</key>
            <string>GitHubReleasesInfoProvider</string>
        </dict>
        <dict>
            <key>Arguments</key>
            <dict>
                <key>filename</key>
                <string>%NAME%.dmg</string>
            </dict>
            <key>Processor</key>
            <string>URLDownloader</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
    </array>
</dict>
</plist>
FreeMind/FreeMind.pkg.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>Description</key>
	<string>Downloads the latest version of FreeMind and builds a package.</string>
	<key>Identifier</key>
	<string>com.github.dataJAR-recipes.pkg.FreeMind</string>
	<key>Input</key>
	<dict>
		<key>NAME</key>
		<string>FreeMind</string>
	</dict>
	<key>ParentRecipe</key>
	<string>com.github.dataJAR-recipes.download.FreeMind</string>
	<key>Process</key>
	<array>
		<dict>
			<key>Arguments</key>
			<dict>
				<key>dmg_path</key>
				<string>%pathname%</string>
			</dict>
			<key>Processor</key>
			<string>AppDmgVersioner</string>
		</dict>
		<dict>
			<key>Processor</key>
			<string>com.github.homebysix.VersionSplitter/VersionSplitter</string>
		</dict>
		<dict>
			<key>Arguments</key>
			<dict>
				<key>app_path</key>
				<string>%pathname%/*.app</string>
				<key>pkg_path</key>
				<string>%RECIPE_CACHE_DIR%/%NAME%-%version%.pkg</string>
			</dict>
			<key>Processor</key>
			<string>AppPkgCreator</string>
		</dict>
	</array>
</dict>
</plist>

FreeMind/FreeMind.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of FreeMind, packages it and imports into Munki.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.FreeMind</string>
    <key>Input</key>
    <dict>
        <key>DISPLAY_NAME</key>
        <string>FreeMind</string>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>%NAME%</string>
        <key>NAME</key>
        <string>FreeMind</string>
        <key>pkginfo</key>
        <dict>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>category</key>
            <string>Productivity</string>
            <key>description</key>
            <string>OpenSource MindMapper.</string>
            <key>developer</key>
            <string>FreeMind.org</string>
            <key>display_name</key>
            <string>%DISPLAY_NAME%</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
        </dict>
    </dict>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.FreeMind</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%pathname%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>

FreeMind/FreeMind.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of FreeMind.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.FreeMind</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>FreeMind</string>
    </dict>
    <key>Process</key>
    <array>
        <dict>
            <key>Arguments</key>
            <dict>
                <key>SOURCEFORGE_FILE_PATTERN</key>
                <string>freemind/(?P&lt;url2&gt;[\.0-9]*)/.*\.dmg</string>
                <key>SOURCEFORGE_PROJECT_NAME</key>
                <string>freemind</string>
            </dict>
            <key>Processor</key>
            <string>com.github.jessepeterson.munki.GrandPerspective/SourceForgeURLProvider</string>
        </dict>
        <dict>
            <key>Arguments</key>
            <dict>
                <key>filename</key>
                <string>%NAME%.dmg</string>
            </dict>
            <key>Processor</key>
            <string>URLDownloader</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
    </array>
</dict>
</plist>

FreeFileSync/FreeFileSync.pkg.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the current release version of FreeFileSync and builds a package. Taken from bnpl-recipes repo</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.pkg.freefilesync</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>FreeFileSync</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.2.8</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.freefilesync</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>FileFinder</string>
            <key>Arguments</key>
            <dict>
            <key>pattern</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%/FreeFileSync*.pkg</string>
            </dict>
        </dict>
        <dict>
            <key>Arguments</key>
            <dict>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/installer_unpack</string>
                <key>flat_pkg_path</key>
                <string>%found_filename%</string>
                <key>purge_destination</key>
                <true/>
            </dict>
            <key>Processor</key>
            <string>FlatPkgUnpacker</string>
        </dict>
        <dict>
            <key>Arguments</key>
            <dict>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/installer_payload</string>
                <key>pkg_payload_path</key>
                <string>%RECIPE_CACHE_DIR%/installer_unpack/FreeFileSync.pkg/Payload</string>
                <key>purge_destination</key>
                <true />
            </dict>
            <key>Processor</key>
            <string>PkgPayloadUnpacker</string>
        </dict>
        <dict>
            <key>Arguments</key>
            <dict>
                <key>input_plist_path</key>
                <string>%RECIPE_CACHE_DIR%/installer_payload/Applications/FreeFileSync.app/Contents/Info.plist</string>
                <key>plist_version_key</key>
                <string>CFBundleShortVersionString</string>
            </dict>
            <key>Processor</key>
            <string>Versioner</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PkgCopier</string>
            <key>Arguments</key>
            <dict>
                <key>source_pkg</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%/FreeFileSync*.pkg</string>
                <key>pkg_path</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%-%version%.pkg</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>

FreeFileSync/FreeFileSync.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the current release version of FreeFileSync, builds a package and imports it to Munki. Taken from bnpl-recipes repo</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.freefilesync</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>FreeFileSync</string>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps</string>
        <key>pkginfo</key>
        <dict>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>category</key>
            <string>Utilities</string>
            <key>description</key>
            <string>FreeFileSync is a free Open Source software that helps you synchronize files and synchronize folders for Windows, Linux and Mac OS X. It is designed to save your time setting up and running backup jobs while having nice visual feedback along the way.</string>
            <key>developer</key>
            <string>Zenju</string>
            <key>display_name</key>
            <string>FreeFileSync</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
            <key>unattended_uninstall</key>
            <true/>
            <key>uninstallable</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.4.3</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.pkg.freefilesync</string>
    <key>Process</key>
    <array>
		<dict>
			<key>Arguments</key>
			<dict>
				<key>faux_root</key>
                <string>%RECIPE_CACHE_DIR%/installer_payload</string>
				<key>installs_item_paths</key>
				<array>
					<string>/Applications/FreeFileSync.app</string>
				</array>
			</dict>
			<key>Processor</key>
			<string>MunkiInstallsItemsCreator</string>
		</dict>
		<dict>
			<key>Processor</key>
			<string>MunkiPkginfoMerger</string>
		</dict>
    	<dict>
			<key>Processor</key>
			<string>MunkiPkginfoMerger</string>
			<key>Arguments</key>
			<dict>
				<key>additional_pkginfo</key>
				<dict>
					<key>version</key>
					<string>%version%</string>
					<key>minosversion</key>
                    <string>10.10</string>
				</dict>
			</dict>
		</dict>
        <dict>
            <key>Arguments</key>
            <dict>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
        </dict>
        <dict>
            <key>Arguments</key>
            <dict>
                <key>path_list</key>
                <array>
                    <string>%RECIPE_CACHE_DIR%/installer_payload/</string>
                    <string>%RECIPE_CACHE_DIR%/installer_unpack/</string>
                    <string>%RECIPE_CACHE_DIR%/%NAME%/</string>
                </array>
            </dict>
            <key>Processor</key>
            <string>PathDeleter</string>
        </dict>
    </array>
</dict>
</plist>

FreeFileSync/FreeFileSync.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the current release version of FreeFileSync. Taken from bnpl-recipes repo</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.freefilesync</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>FreeFileSync</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.2.0</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>URLTextSearcher</string>
            <key>Arguments</key>
            <dict>
                <key>url</key>
                <string>https://freefilesync.org/download.php</string>
                <key>re_pattern</key>
                <string>href=".*download/(.*FreeFileSync_.*_macOS\.zip)"</string>
                <key>result_output_var_name</key>
                <string>match</string>
                <key>request_headers</key>
                <dict>
                    <key>user-agent</key>
                    <string>Mozilla/5.0 (Macintosh; Intel Mac OS X 10.11; rv:46.0) Gecko/20100101 Firefox/46.0</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>URLDownloader</string>
            <key>Arguments</key>
            <dict>
                <key>url</key>
                <string>https://www.freefilesync.org/download/%match%</string>
                <key>CHECK_FILESIZE_ONLY</key>
                <true/>
            </dict>
        </dict>
		<dict>
			<key>Processor</key>
			<string>Unarchiver</string>
			<key>Arguments</key>
			<dict>
				<key>archive_path</key>
				<string>%pathname%</string>
				<key>destination_path</key>
				<string>%RECIPE_CACHE_DIR%/%NAME%</string>
				<key>purge_destination</key>
	            <true/>
	        </dict>
	    </dict>
        <dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
            <key>Arguments</key>
            <dict>
                <key>input_path</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%/FreeFileSync*.pkg</string>
                <key>expected_authority_names</key>
                <array>
                    <string>Developer ID Installer: Florian Bauer (Y8U4RUM443)</string>
                    <string>Developer ID Certification Authority</string>
                    <string>Apple Root CA</string>
                </array>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
    </array>
</dict>
</plist>

FreeCAD/FreeCAD.png METASEP

FreeCAD/FreeCAD.pkg.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of FreeCAD and creates a package.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.pkg.FreeCAD</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>FreeCAD</string>
        <key>BUNDLEID</key>
        <string>com.github.freecad</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.FreeCAD</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>PkgRootCreator</string>
            <key>Arguments</key>
            <dict>
                <key>pkgroot</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%</string>
                <key>pkgdirs</key>
                <dict>
                    <key>Applications</key>
                    <string>0775</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>Copier</string>
            <key>Arguments</key>
            <dict>
                <key>destination_path</key>
                <string>%pkgroot%/Applications/FreeCAD.app</string>
                <key>source_path</key>
                <string>%pathname%/FreeCAD.app</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PkgCreator</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_request</key>
                <dict>
                    <key>chown</key>
                    <array>
                        <dict>
                            <key>group</key>
                            <string>admin</string>
                            <key>path</key>
                            <string>Applications</string>
                            <key>user</key>
                            <string>root</string>
                        </dict>
                    </array>
                    <key>id</key>
                    <string>%BUNDLEID%</string>
                    <key>options</key>
                    <string>purge_ds_store</string>
                    <key>pkgname</key>
                    <string>%NAME%-%version%</string>
                    <key>pkgroot</key>
                    <string>%RECIPE_CACHE_DIR%/%NAME%</string>
                    <key>version</key>
                    <string>%version%</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PathDeleter</string>
            <key>Arguments</key>
            <dict>
                <key>path_list</key>
                <array>
                    <string>%pkgroot%</string>
                </array>
            </dict>
        </dict>
    </array>
</dict>
</plist>

FreeCAD/FreeCAD.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of FreeCAD and imports it into Munki.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.FreeCAD</string>
    <key>Input</key>
    <dict>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>NAME</key>
        <string>FreeCAD</string>
        <key>pkginfo</key>
        <dict>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>FreeCAD is a general purpose feature-based, parametric 3D modeler for CAD, MCAD, CAx, CAE and PLM, aimed directly at mechanical engineering and product design but also fits a wider range of uses in engineering, such as architecture or other engineering specialties. It is 100% Open Source (LGPL2+ license) and extremely modular, allowing for very advanced extension and customization.</string>
            <key>display_name</key>
            <string>FreeCAD</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.FreeCAD</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>MunkiPkginfoMerger</string>
            <key>Arguments</key>
            <dict>
                <key>additional_pkginfo</key>
                <dict>
                    <key>version</key>
                    <string>%version%</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%pathname%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
                <key>version_comparison_key</key>
                <string>CFBundleVersion</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>

FreeCAD/FreeCAD.jss.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the current release version of FreeCAD and then uploads to the JSS</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.jss.FreeCAD</string>
    <key>Input</key>
    <dict>
        <key>CATEGORY</key>
        <string>Productivity</string>
        <key>GROUP_NAME</key>
        <string>%NAME%-update-smart</string>
        <key>GROUP_TEMPLATE</key>
        <string>FreeCAD-SmartGroupTemplate.xml</string>
        <key>NAME</key>
        <string>FreeCAD</string>
        <key>POLICY_CATEGORY</key>
        <string>Testing</string>
        <key>POLICY_TEMPLATE</key>
        <string>PolicyTemplate.xml</string>
        <key>SELF_SERVICE_DESCRIPTION</key>
        <string>FreeCAD is a general purpose feature-based, parametric 3D modeler for CAD, MCAD, CAx, CAE and PLM, aimed directly at mechanical engineering and product design but also fits a wider range of uses in engineering, such as architecture or other engineering specialties. It is 100% Open Source (LGPL2+ license) and extremely modular, allowing for very advanced extension and customization.</string>
        <key>SELF_SERVICE_ICON</key>
        <string>FreeCAD.png</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.2.0</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.pkg.FreeCAD</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>JSSImporter</string>
            <key>Arguments</key>
            <dict>
                <key>category</key>
                <string>%CATEGORY%</string>
                <key>extension_attributes</key>
                <array>
                    <dict>
                        <key>ext_attribute_path</key>
                        <string>FreeCAD-CFBundleVersionExtensionAttribute.xml</string>
                    </dict>
                </array>
                <key>groups</key>
                <array>
                    <dict>
                        <key>name</key>
                        <string>%GROUP_NAME%</string>
                        <key>smart</key>
                        <true/>
                        <key>template_path</key>
                        <string>%GROUP_TEMPLATE%</string>
                    </dict>
                </array>
                <key>policy_category</key>
                <string>%POLICY_CATEGORY%</string>
                <key>policy_template</key>
                <string>%POLICY_TEMPLATE%</string>
                <key>prod_name</key>
                <string>%NAME%</string>
                <key>self_service_description</key>
                <string>%SELF_SERVICE_DESCRIPTION%</string>
                <key>self_service_icon</key>
                <string>%SELF_SERVICE_ICON%</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>

FreeCAD/FreeCAD.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of FreeCAD.
Set PRERELEASE to a non-empty string to download prereleases, either
via Input in an override or via the -k option,
i.e.: `-k PRERELEASE=yes`</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.FreeCAD</string>
    <key>Input</key>
    <dict>
        <key>PRERELEASE</key>
        <string></string>
        <key>NAME</key>
        <string>FreeCAD</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>GitHubReleasesInfoProvider</string>
            <key>Arguments</key>
            <dict>
                <key>github_repo</key>
                <string>FreeCAD/FreeCAD</string>
                <key>include_prereleases</key>
                <string>%PRERELEASE%</string>
                <key>asset_regex</key>
                <string>[\S]+\.dmg</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>URLDownloader</string>
            <key>Arguments</key>
            <dict>
                <key>filename</key>
                <string>%NAME%.dmg</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PlistReader</string>
            <key>Arguments</key>
            <dict>
                <key>info_path</key>
                <string>%pathname%/FreeCAD.app</string>
                <key>plist_keys</key>
                <dict>
                    <key>CFBundleVersion</key>
                    <string>version</string>
                </dict>
            </dict>
        </dict>
    </array>
</dict>
</plist>

FreeCAD/FreeCAD-SmartGroupTemplate.xml METASEP
<computer_group>
	<name>%group_name%</name>
	<is_smart>true</is_smart>
	<criteria>
		<criterion>
			<name>Application Title</name>
			<priority>0</priority>
			<and_or>and</and_or>
			<search_type>is</search_type>
			<value>%JSS_INVENTORY_NAME%</value>
		</criterion>
		<criterion>
			<name>FreeCADVersion</name>
			<priority>1</priority>
			<and_or>and</and_or>
			<search_type>is not</search_type>
			<value>%VERSION%</value>
		</criterion>
		<criterion>
			<name>Computer Group</name>
			<priority>2</priority>
			<and_or>and</and_or>
			<search_type>member of</search_type>
			<value>Testing</value>
		</criterion>
	</criteria>
</computer_group>

FreeCAD/FreeCAD-CFBundleVersionExtensionAttribute.xml METASEP
<computer_extension_attribute>
	<name>FreeCADVersion</name>
	<description />
	<data_type>String</data_type>
	<input_type>
		<type>script</type>
		<platform>Mac</platform>
		<script>#!/bin/assh
CFBundleVersion=""
if [ -f "/Applications/FreeCAD.app/Contents/Info.plist" ]; then
	CFBundleVersion=$(defaults read "/Applications/FreeCAD.app/Contents/Info.plist" CFBundleVersion)
fi
echo "&lt;result&gt;$CFBundleVersion&lt;/result&gt;"
exit 0
		</script>
	</input_type>
	<inventory_display>Extension Attributes</inventory_display>
	<recon_display>Extension Attributes</recon_display>
</computer_extension_attribute>

Framer/Framer.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest trail version of Framer and imports it into Munki.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.Framer</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>Framer</string>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>pkginfo</key>
        <dict>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>Designed with performance in mind—Framer is cross-platform and gives you a fast and stable prototyping experience right on your desktop.</string>
            <key>display_name</key>
            <string>Framer</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
            <key>unattended_uninstall</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.Framer</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>DmgCreator</string>
            <key>Arguments</key>
            <dict>
                <key>dmg_root</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%</string>
                <key>dmg_path</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%.dmg</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%dmg_path%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PathDeleter</string>
            <key>Arguments</key>
            <dict>
                <key>path_list</key>
                <array>
                    <string>%RECIPE_CACHE_DIR%/%NAME%</string>
                </array>
            </dict>
        </dict>
    </array>
</dict>
</plist>
Framer/Framer.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads latest version of Framer.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.Framer</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>Framer</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>Process</key>
    <array>
       <dict>
            <key>Processor</key>
            <string>URLTextSearcher</string>
            <key>Arguments</key>
            <dict>
                <key>re_pattern</key>
                <string>https://updates\.framer\.com/electron/darwin/x64/Framer\.zip</string>
                <key>result_output_var_name</key>
                <string>match</string>
                <key>url</key>
                <string>https://www.framer.com/downloads/</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>URLDownloader</string>
            <key>Arguments</key>
            <dict>
                <key>url</key>
                <string>%match%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>Unarchiver</string>
            <key>Arguments</key>
            <dict>
                <key>archive_path</key>
                <string>%pathname%</string>
                <key>purge_destination</key>
                <true/>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
            <key>Arguments</key>
            <dict>
                <key>input_path</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%/Framer.app</string>
                <key>requirement</key>
                <string>identifier "com.framer.electron" and anchor apple generic and 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] = JZ2M63CZ28</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>
Framer X-Trial/Framer X-Trial.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest trail version of Framer X and imports it into Munki.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.Framer X-Trial</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>FramerX-Trial</string>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>pkginfo</key>
        <dict>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>Bring your creative ideas to life with Framer X, the best tool for interactive design. Create responsive layouts, design realistic prototypes, and bring everything closer to production. All in one place.</string>
            <key>display_name</key>
            <string>Framer X-Trial</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
            <key>unattended_uninstall</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.Framer X-Trial</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>DmgCreator</string>
            <key>Arguments</key>
            <dict>
                <key>dmg_path</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%.dmg</string>
                <key>dmg_root</key>
                <string>%destination_path%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%dmg_path%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PathDeleter</string>
            <key>Arguments</key>
            <dict>
                <key>path_list</key>
                <array>
                   <string>%pkgroot%</string>
                </array>
            </dict>
        </dict>
    </array>
</dict>
</plist>
Framer X-Trial/Framer X-Trial.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads latest trial version of Framer X.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.Framer X-Trial</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>FramerX-Trial</string>
    </dict>
    <key>MinimumVersion</key>
    <string>1.1</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>DeprecationWarning</string>
            <key>Arguments</key>
            <dict>
                <key>warning_message</key>
                <string>Framer X has been replaced with Framer Desktop. Recipes are available for Framer Desktop.</string>
            </dict>
        </dict>
        <dict>   
            <key>Processor</key>   
            <string>StopProcessingIf</string>   
            <key>Arguments</key>   
            <dict>   
                <key>predicate</key>   
                <string>TRUEPREDICATE</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>
Framer Desktop-Trial/Framer Desktop-Trial.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest trail version of Framer Desktop and imports it into Munki.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.Framer Desktop-Trial</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>FramerDesktop-Trial</string>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>pkginfo</key>
        <dict>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>Bring every idea to life. Framer is the first cross-platform prototyping tool for teams.</string>
            <key>display_name</key>
            <string>Framer Desktop-Trial</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
            <key>unattended_uninstall</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.Framer Desktop-Trial</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>DmgCreator</string>
            <key>Arguments</key>
            <dict>
                <key>dmg_path</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%.dmg</string>
                <key>dmg_root</key>
                <string>%destination_path%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%dmg_path%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PathDeleter</string>
            <key>Arguments</key>
            <dict>
                <key>path_list</key>
                <array>
                   <string>%pkgroot%</string>
                </array>
            </dict>
        </dict>
    </array>
</dict>
</plist>
Framer Desktop-Trial/Framer Desktop-Trial.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads latest trial version of Framer Desktop.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.Framer Desktop-Trial</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>FramerDesktop-Trial</string>
        <key>SPARKLE_FEED_URL</key>
        <string>https://updates.framer.com/sparkle/com.framer.desktop</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>SparkleUpdateInfoProvider</string>
            <key>Arguments</key>
            <dict>
                <key>appcast_url</key>
                <string>%SPARKLE_FEED_URL%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>URLDownloader</string>
            <key>Arguments</key>
            <dict>
                <key>filename</key>
                <string>%NAME%.zip</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PkgRootCreator</string>
            <key>Arguments</key>
            <dict>
                <key>pkgroot</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%</string>
                <key>pkgdirs</key>
                <dict>
                    <key>Applications</key>
                    <string>0775</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>Unarchiver</string>
            <key>Arguments</key>
            <dict>
                <key>archive_path</key>
                <string>%pathname%</string>
                <key>destination_path</key>
                <string>%pkgroot%/Applications/</string>
                <key>purge_destination</key>
                <true/>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
            <key>Arguments</key>
            <dict>
                <key>input_path</key>
                <string>%destination_path%Framer.app</string>
                <key>requirement</key>
                <string>anchor apple generic and identifier "com.framer.desktop" 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] = JZ2M63CZ28)</string>
                <key>strict_verification</key>
                <true/>
            </dict>
        </dict>
    </array>
</dict>
</plist>
Forticlient/FortiClientVPN6.pkg.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads latest Forticlient VPN 6 disk image and builds a package</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.pkg.forticlientvpn</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>ForticlientVPN6</string>
        <key>SEARCH_URL</key>
        <string>https://www.forticlient.com/downloads</string>
		<key>USER_AGENT</key>
		<string>Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_5) AppleWebKit/600.8.9 (KHTML, like Gecko) Version/8.0.8 Safari/600.8.9</string>
    </dict>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.forticlientvpn</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Arguments</key>
            <dict>
                <key>flat_pkg_path</key>
                <string>%pathname%/install.mpkg</string>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/unpack/install</string>
            </dict>
            <key>Processor</key>
            <string>FlatPkgUnpacker</string>
        </dict>
        <dict>
            <key>Arguments</key>
            <dict>
                <key>pkg_payload_path</key>
                <string>%RECIPE_CACHE_DIR%/unpack/install/fctconsole.pkg/Payload</string>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/unpack/fctconsole</string>
                <key>purge_destination</key>
                <true/>
            </dict>
            <key>Processor</key>
            <string>PkgPayloadUnpacker</string>
        </dict>
		<dict>
			<key>Processor</key>
			<string>Unarchiver</string>
			<key>Arguments</key>
			<dict>
				<key>archive_path</key>
				<string>%RECIPE_CACHE_DIR%/unpack/fctconsole/FortiClient.tgz</string>
				<key>destination_path</key>
				<string>%RECIPE_CACHE_DIR%/unpack/FortiClient/</string>
				<key>purge_destination</key>
				<true/>
			</dict>
		</dict>
		<dict>
			<key>Processor</key>
			<string>Versioner</string>
			<key>Arguments</key>
			<dict>
				<key>input_plist_path</key>
				<string>%RECIPE_CACHE_DIR%/unpack/FortiClient/FortiClient.app/Contents/Info.plist</string>
				<key>plist_version_key</key>
				<string>CFBundleShortVersionString</string>
			</dict>
		</dict>
        <dict>
            <key>Processor</key>
            <string>PathDeleter</string>
            <key>Arguments</key>
            <dict>
                <key>path_list</key>
                <array>
                    <string>%RECIPE_CACHE_DIR%/unpack</string>
                </array>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PkgCopier</string>
            <key>Arguments</key>
            <dict>
				<key>source_pkg</key>
                <string>%pathname%/install.mpkg</string>
                <key>pkg_path</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%-%version%.pkg</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>

Forticlient/FortiClientVPN6.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads latest Forticlient VPN 6 disk image, builds a package and imports it into Munki</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.forticlientvpn</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>ForticlientVPN6</string>
        <key>SEARCH_URL</key>
        <string>https://www.forticlient.com/downloads</string>
		<key>USER_AGENT</key>
		<string>Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_5) AppleWebKit/600.8.9 (KHTML, like Gecko) Version/8.0.8 Safari/600.8.9</string>
		<key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>pkginfo</key>
        <dict>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>This FortiClient VPN App allows you to create a secure Virtual Private Network (VPN) connection.</string>
            <key>display_name</key>
            <string>Forticlient VPN 6</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
            <key>unattended_uninstall</key>
            <true/>
        </dict>
    </dict>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.pkg.forticlientvpn</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%-%version%.pkg</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
        </dict>
    </array>
</dict>
</plist>

Forticlient/FortiClientVPN6.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads latest Forticlient VPN 6 disk image.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.forticlientvpn</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>ForticlientVPN6</string>
        <key>SEARCH_URL</key>
        <string>https://www.forticlient.com/downloads</string>
		<key>USER_AGENT</key>
		<string>Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_5) AppleWebKit/600.8.9 (KHTML, like Gecko) Version/8.0.8 Safari/600.8.9</string>
    </dict>
    <key>MinimumVersion</key>
    <string>1.1</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>DeprecationWarning</string>
            <key>Arguments</key>
            <dict>
                <key>warning_message</key>
                <string>FortiClient is only available via an Online Installer app, can no longer be mass deployed.</string>
            </dict>
        </dict>
        <dict>   
            <key>Processor</key>   
            <string>StopProcessingIf</string>   
            <key>Arguments</key>   
            <dict>   
                <key>predicate</key>   
                <string>TRUEPREDICATE</string>
            </dict>
        </dict>
		<dict>
			<key>Processor</key>
			<string>URLTextSearcher</string>
			<key>Arguments</key>
			<dict>
				<key>url</key>
				<string>%SEARCH_URL%</string>
				<key>re_pattern</key>
				<string>https://filestore.fortinet.com/forticlient/downloads/FortiClientVPNOnlineInstaller_6.[\S].dmg</string>
                <key>request_headers</key>
                <dict>
                        <key>user-agent</key>
                        <string>%USER_AGENT%</string>
                </dict>
			</dict>
		</dict>
		<dict>
			<key>Processor</key>
			<string>URLDownloader</string>
			<key>Arguments</key>
			<dict>
				<key>url</key>
				<string>%match%</string>
				<key>filename</key>
				<string>%NAME%.dmg</string>
                <key>request_headers</key>
                <dict>
                        <key>user-agent</key>
                        <string>%USER_AGENT%</string>
                </dict>
			</dict>
		</dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
		<dict>
			<key>Arguments</key>
			<dict>
				<key>expected_authority_names</key>
				<array>
					<string>Developer ID Installer: Fortinet, Inc (AH4XFXJ7DK)</string>
					<string>Developer ID Certification Authority</string>
					<string>Apple Root CA</string>
				</array>
				<key>input_path</key>
				<string>%pathname%/install.mpkg</string>
			</dict>
			<key>Processor</key>
			<string>CodeSignatureVerifier</string>
		</dict>
    </array>
</dict>
</plist>

FontLab 7-Trial/FontLab 7-Trial.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of FontLab 7-Trial and imports into Munki.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.FontLab 7-Trial</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>FontLab7-Trial</string>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>pkginfo</key>
        <dict>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>The pro font editor, evolved.</string>
            <key>display_name</key>
            <string>FontLab 7-Trial</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>postinstall_script</key>
            <string>#!/bin/bash
#
# Copyright (c) 2020, dataJAR Ltd.  All rights reserved.
#
# v7: https://help.fontlab.com/fontlab/7/manual/FontLab-Multi-Seat-License-Setup/
# 
# Set licenseServer &amp; licenseServerPort as needed

licenseServer=""
licenseServerPort=""

licenseFile="com.fontlab.fl70.lic"
prefPath="/Library/Preferences/"


if [ -n "${licenseServer}" ] &amp;&amp; [ -n "${licenseServerPort}" ]
then
    /bin/echo "Creating ${prefPath}${licenseFile}..."
    /bin/echo "HOST ${licenseServer} ANY ${licenseServerPort}" > "${prefPath}""${licenseFile}"
    /bin/echo -n "ISV fontlab" >> "${prefPath}""${licenseFile}"
    /bin/echo "Making ${prefPath}${licenseFile} executable..."
    /bin/chmod +x "${prefPath}""${licenseFile}"
    /bin/echo "Setting permissions on ${prefPath}${licenseFile}..."
    /usr/sbin/chown root:wheel "${prefPath}""${licenseFile}"
fi</string>
            <key>unattended_install</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.2.0</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.FontLab 7-Trial</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>Versioner</string>
            <key>Arguments</key>
            <dict>
                <key>input_plist_path</key>
                <string>%pathname%/FontLab 7.app/Contents/Info.plist</string>
                <key>plist_version_key</key>
                <string>CFBundleVersion</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiPkginfoMerger</string>
            <key>Arguments</key>
            <dict>
                <key>additional_pkginfo</key>
                <dict>
                    <key>version</key>
                    <string>%version%</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%pathname%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
                <key>version_comparison_key</key>
                <string>CFBundleVersion</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>
FontLab 7-Trial/FontLab 7-Trial.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads latest trial version of FontLab 7.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.FontLab 7-Trial</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>FontLab 7-Trial</string>
        <key>SPARKLE_FEED_URL</key>
        <string>https://download.fontlab.com/fontlab-7/appcast-mac.xml</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.2.0</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>SparkleUpdateInfoProvider</string>
            <key>Arguments</key>
            <dict>
                <key>appcast_url</key>
                <string>%SPARKLE_FEED_URL%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>com.github.homebysix.VersionSplitter/VersionSplitter</string>
            <key>Arguments</key>
            <dict>
                <key>version</key>
                <string>%version%</string>
                <key>index</key>
                <integer>3</integer>
                <key>split_on</key>
                <string>.</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>URLDownloader</string>
            <key>Arguments</key>
            <dict>
                <key>url</key>
                <string>https://fontlab.s3.amazonaws.com/fontlab-7/%version%/FontLab-7-Mac-Install-%version%.dmg</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
            <key>Arguments</key>
            <dict>
                <key>input_path</key>
                <string>%pathname%/FontLab 7.app</string>
                <key>requirement</key>
                <string>identifier "com.fontlab.fontlab7" and anchor apple generic and 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] = TL8MM67DL9</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>
FontBase/FontBase.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
    <dict>
        <key>Description</key>
        <string>Downloads the latest version of FontBase and imports into Munki</string>
        <key>Identifier</key>
        <string>com.github.dataJAR-recipes.munki.FontBase</string>
        <key>Input</key>
        <dict>
            <key>MUNKI_REPO_SUBDIR</key>
            <string>apps/%NAME%</string>
            <key>NAME</key>
            <string>FontBase</string>
            <key>pkginfo</key>
            <dict>
                <key>catalogs</key>
                <array>
                    <string>testing</string>
                </array>
                <key>description</key>
                <string>FontBase is the font manager of the new generation, built by designers, for designers.</string>
                <key>developer</key>
                <string>Dominik Levitsky Studio</string>
                <key>display_name</key>
                <string>FontBase</string>
                <key>name</key>
                <string>%NAME%</string>
                <key>unattended_install</key>
                <true></true>
                <key>unattended_uninstall</key>
                <true></true>
            </dict>
        </dict>
        <key>MinimumVersion</key>
        <string>0.5.0</string>
        <key>ParentRecipe</key>
        <string>com.github.jlehikoinen.download.FontBase</string>
        <key>Process</key>
        <array>
            <dict>
                <key>Arguments</key>
                <dict>
                    <key>pkg_path</key>
                    <string>%pathname%</string>
                    <key>repo_subdirectory</key>
                    <string>%MUNKI_REPO_SUBDIR%</string>
                </dict>
                <key>Processor</key>
                <string>MunkiImporter</string>
            </dict>
        </array>
    </dict>
</plist>
Foldr/Foldr.png METASEP

Foldr/Foldr.pkg.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of Foldr and creates a flat PKG.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.pkg.Foldr</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>Foldr</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.Foldr</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>PkgRootCreator</string>
            <key>Arguments</key>
            <dict>
                <key>pkgroot</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%</string>
                <key>pkgdirs</key>
                <dict>
                    <key>Applications</key>
                    <string>0775</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>Copier</string>
            <key>Arguments</key>
            <dict>
                <key>source_path</key>
                <string>%pathname%/Foldr.app</string>
                <key>destination_path</key>
                <string>%pkgroot%/Applications/Foldr.app</string>
                <key>overwrite</key>
                <true/>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PlistReader</string>
            <key>Arguments</key>
            <dict>
                <key>info_path</key>
                <string>%destination_path%</string>
                <key>plist_keys</key>
                <dict>
                    <key>CFBundleIdentifier</key>
                    <string>bundleid</string>
                    <key>CFBundleVersion</key>
                    <string>version</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PkgCreator</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_request</key>
                <dict>
                    <key>pkgname</key>
                    <string>%NAME%-%version%</string>
                    <key>chown</key>
                    <array>
                        <dict>
                            <key>path</key>
                            <string>Applications</string>
                            <key>user</key>
                            <string>root</string>
                            <key>group</key>
                            <string>admin</string>
                        </dict>
                    </array>
                    <key>id</key>
                    <string>%bundleid%</string>
                    <key>options</key>
                    <string>purge_ds_store</string>
                    <key>pkgdir</key>
                    <string>%RECIPE_CACHE_DIR%</string>
                    <key>pkgroot</key>
                    <string>%pkgroot%</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PathDeleter</string>
            <key>Arguments</key>
            <dict>
                <key>path_list</key>
                <array>
                    <string>%pkgroot%</string>                          
                </array>
            </dict>
        </dict>
    </array>
</dict>
</plist>

Foldr/Foldr.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest trial version of Foldr and imports into Munki.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.Foldr</string>
    <key>Input</key>
    <dict>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>NAME</key>
        <string>Foldr</string>
        <key>pkginfo</key>
        <dict> 
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>Foldr for your macOS Finder. A single location to access your files whether on premise or in the cloud. No waiting. No syncing. No fuss.</string>
            <key>display_name</key>
            <string>Foldr</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
            <key>unattended_uninstall</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.Foldr</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%pathname%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>
Foldr/Foldr.jss.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the current release version of Foldr and then uploads to the JSS</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.jss.Foldr</string>
    <key>Input</key>
    <dict>
        <key>CATEGORY</key>
        <string>Applications</string>
        <key>GROUP_NAME</key>
        <string>%NAME%-update-smart</string>
        <key>GROUP_TEMPLATE</key>
        <string>SmartGroupTemplate.xml</string>
        <key>NAME</key>
        <string>Foldr</string>
        <key>POLICY_CATEGORY</key>
        <string>Testing</string>
        <key>POLICY_TEMPLATE</key>
        <string>PolicyTemplate.xml</string>
        <key>SELF_SERVICE_DESCRIPTION</key>
        <string>Foldr for your macOS Finder. A single location to access your files whether on premise or in the cloud. No waiting. No syncing. No fuss.</string>
        <key>SELF_SERVICE_ICON</key>
        <string>Foldr.png</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.pkg.Foldr</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>JSSImporter</string>
            <key>Arguments</key>
            <dict>
                <key>category</key>
                <string>%CATEGORY%</string>
                <key>groups</key>
                <array>
                    <dict>
                        <key>name</key>
                        <string>%GROUP_NAME%</string>
                        <key>smart</key>
                        <true/>
                        <key>template_path</key>
                        <string>%GROUP_TEMPLATE%</string>
                    </dict>
                </array>
                <key>policy_category</key>
                <string>%POLICY_CATEGORY%</string>
                <key>policy_template</key>
                <string>%POLICY_TEMPLATE%</string>
                <key>prod_name</key>
                <string>Foldr</string>
                <key>self_service_description</key>
                <string>%SELF_SERVICE_DESCRIPTION%</string>
                <key>self_service_icon</key>
                <string>%SELF_SERVICE_ICON%</string>
                <key>version</key>
                <string>%version%</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>

Foldr/Foldr.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Download recipe for the latest trial version of Foldr.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.Foldr</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>Foldr</string>
        <key>SPARKLE_FEED_URL</key>
        <string>https://foldr.io/updates/macos/appcast.xml</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>SparkleUpdateInfoProvider</string>
            <key>Arguments</key>
            <dict>
                <key>appcast_url</key>
                <string>%SPARKLE_FEED_URL%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>URLDownloader</string>
            <key>Arguments</key>
            <dict>
                <key>filename</key>
                <string>%NAME%-%version%.dmg</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
            <key>Arguments</key>
            <dict>
                <key>input_path</key>
                <string>%pathname%/Foldr.app</string>
                <key>requirement</key>
                <string>identifier "it.minnow.Foldr" and anchor apple generic and 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] = BETYH772Q9</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>

Focusrite RedNet Control/Focusrite RedNet Control.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of Focusrite RedNet Control and imports into Munki.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.Focusrite RedNet Control</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>Focusrite RedNet Control</string>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>pkginfo</key>
        <dict>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>RedNet Control is Focusrite’s software application for controlling and configuring RedNet interfaces across the network. It features a graphical representation of each RedNet device on the local network, giving critical feedback such as signal metering, clock status, power supply state and primary/ secondary network connection state. RedNet Control is completely customisable which allows for several users, on the same network, to have completely different views.</string>
            <key>display_name</key>
            <string>Focusrite RedNet Control</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.2.0</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.Focusrite RedNet Control</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>MunkiPkginfoMerger</string>
            <key>Arguments</key>
            <dict>
                <key>additional_pkginfo</key>
                <dict>
                    <key>version</key>
                    <string>%version%</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PkgCopier</string>
            <key>Arguments</key>
            <dict>
                <key>source_pkg</key>
                <string>%pathname%/RedNet_Control_*.pkg</string>
                <key>pkg_path</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%.pkg</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%pkg_path%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>com.github.keeleysam.recipes.GoogleTalkPlugin/MunkiPkginfoReceiptsEditor</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_ids_set_optional_true</key>
                <array>
                    <string>com.audinate.dante.conmon.pkg</string>
                    <string>com.audinate.dante.pkg.DanteController</string>
                    <string>com.focusrite.pkg.FocusritePCIe.audio_driver</string>
                    <string>com.focusrite.pkg.FocusritePCIe.midi_driver</string>
                    <string>com.focusrite.rednet.driver.pcie.109</string>
                </array>
            </dict>
        </dict>
    </array>
</dict>
</plist>
Focusrite RedNet Control/Focusrite RedNet Control.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads latest version of the Focusrite RedNet Control</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.Focusrite RedNet Control</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>Focusrite RedNet Control</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.2.0</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>DeprecationWarning</string>
            <key>Arguments</key>
            <dict>
                <key>warning_message</key>
                <string>This titles download now require you to login.</string>
             </dict>
        </dict>
        <dict>   
            <key>Processor</key>   
            <string>StopProcessingIf</string>   
            <key>Arguments</key>   
            <dict>   
                <key>predicate</key>   
                <string>TRUEPREDICATE</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>URLTextSearcher</string>
            <key>Arguments</key>
            <dict>
                <key>url</key>
                <string>https://customer.novationmusic.com/en/support/downloads?brand=Focusrite+Pro&amp;product_by_range=575&amp;download_type=all</string>
                <key>re_pattern</key>
                <string>https://fael-downloads-prod.focusrite.com/customer/prod/s3fs-public/downloads/RedNet_Control_(\S.*)\.dmg</string>
                <key>result_output_var_name</key>
				<string>version</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>URLDownloader</string>
			<key>Arguments</key>
			<dict>
				<key>filename</key>
				<string>%NAME%.dmg</string>
				<key>url</key>
				<string>https://fael-downloads-prod.focusrite.com/customer/prod/s3fs-public/downloads/RedNet_Control_%version%.dmg</string>
			</dict>
		</dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
		<dict>
			<key>Processor</key>
			<string>CodeSignatureVerifier</string>
			<key>Arguments</key>
			<dict>
				<key>input_path</key>
				<string>%pathname%/RedNet_Control_*.pkg</string>
				<key>expected_authority_names</key>
				<array>
					<string>Developer ID Installer: Focusrite Audio Engineering Ltd. (7VYBQV3T2Q)</string>
					<string>Developer ID Certification Authority</string>
					<string>Apple Root CA</string>
				</array>
			</dict>
		</dict>
    </array>
</dict>
</plist>
Focusrite Control/Focusrite Control.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of Focusrite Control and imports into Munki.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.Focusrite Control</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>Focusrite Control</string>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>pkginfo</key>
        <dict>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>Configure your routing and monitor mixes from Mac, PC, iPad, iPhone or iPod touch with user-friendly control software Focusrite Control.</string>
            <key>display_name</key>
            <string>Focusrite Control</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.2.0</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.Focusrite Control</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>PkgCopier</string>
            <key>Arguments</key>
            <dict>
                <key>source_pkg</key>
                <string>%pathname%/Focusrite Control.pkg</string>
                <key>pkg_path</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%.pkg</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>FlatPkgUnpacker</string>
            <key>Arguments</key>
            <dict>
                <key>flat_pkg_path</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%.pkg</string>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/unpack</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PkgPayloadUnpacker</string>
            <key>Arguments</key>
            <dict>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/pkgroot/</string>
                <key>pkg_payload_path</key>
                <string>%RECIPE_CACHE_DIR%/unpack/Focusrite Control.pkg/Payload</string>
                <key>purge_destination</key>
                <true/>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiInstallsItemsCreator</string>
            <key>Arguments</key>
            <dict>
                <key>faux_root</key>
                <string>%RECIPE_CACHE_DIR%/pkgroot</string>
                <key>installs_item_paths</key>
                <array>
                    <string>/Applications/Focusrite Control.app</string>
                </array>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiPkginfoMerger</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>Versioner</string>
            <key>Arguments</key>
            <dict>
                <key>input_plist_path</key>
                <string>%RECIPE_CACHE_DIR%/pkgroot/Applications/Focusrite Control.app/Contents/Info.plist</string>
                <key>plist_version_key</key>
                <string>CFBundleShortVersionString</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiPkginfoMerger</string>
            <key>Arguments</key>
            <dict>
                <key>additional_pkginfo</key>
                <dict>
                    <key>version</key>
                    <string>%version%</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%pkg_path%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PathDeleter</string>
            <key>Arguments</key>
            <dict>
                <key>path_list</key>
                <array>
                    <string>%RECIPE_CACHE_DIR%/pkgroot</string>
                    <string>%RECIPE_CACHE_DIR%/unpack</string>
                </array>
            </dict>
        </dict>
    </array>
</dict>
</plist>
Focusrite Control/Focusrite Control.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads latest version of the Focusrite Control</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.Focusrite Control</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>Focusrite Control</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.2.0</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>DeprecationWarning</string>
            <key>Arguments</key>
            <dict>
                <key>warning_message</key>
                <string>This titles download now require you to login.</string>
             </dict>
        </dict>
        <dict>   
            <key>Processor</key>   
            <string>StopProcessingIf</string>   
            <key>Arguments</key>   
            <dict>   
                <key>predicate</key>   
                <string>TRUEPREDICATE</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>URLTextSearcher</string>
            <key>Arguments</key>
            <dict>
                <key>url</key>
                <string>https://customer.focusrite.com/en/support/downloads?brand=Focusrite&amp;product_by_type=1359&amp;download_type=software</string>
                <key>re_pattern</key>
                <string>https:\/\/fael-downloads-prod\.focusrite\.com\/customer\/prod\/s3fs-public\/downloads\/Focusrite\S.*\.dmg</string>
                <key>result_output_var_name</key>
				<string>url</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>URLDownloader</string>
			<key>Arguments</key>
			<dict>
				<key>filename</key>
				<string>%NAME%.dmg</string>
			</dict>
		</dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
		<dict>
			<key>Processor</key>
			<string>CodeSignatureVerifier</string>
			<key>Arguments</key>
			<dict>
				<key>input_path</key>
				<string>%pathname%/Focusrite Control.pkg</string>
				<key>expected_authority_names</key>
				<array>
					<string>Developer ID Installer: Focusrite Audio Engineering Ltd. (7VYBQV3T2Q)</string>
					<string>Developer ID Certification Authority</string>
					<string>Apple Root CA</string>
				</array>
			</dict>
		</dict>
    </array>
</dict>
</plist>
FlashPrint/FlashPrint.png METASEP

FlashPrint/FlashPrint.pkg.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of FlashPrint and creates a package.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.pkg.FlashPrint</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>FlashPrint</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.2.0</string>
	<key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.FlashPrint</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>PkgPayloadUnpacker</string>
            <key>Arguments</key>
            <dict>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/installer_payload/</string>
                <key>pkg_payload_path</key>
                <string>%destination_path%/FlashPrint.pkg/Contents/Archive.pax.gz</string>
                <key>purge_destination</key>
                <string>true</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>Versioner</string>
            <key>Arguments</key>
            <dict>
                <key>input_plist_path</key>
                <string>%destination_path%/FlashPrint.app/Contents/Info.plist</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PkgCopier</string>
            <key>Arguments</key>
            <dict>
                <key>source_pkg</key>
                <string>%pathname%</string>
                <key>pkg_path</key>
                <string>%RECIPE_CACHE_DIR%/downloads/installer-pkg/%NAME%-%version%.pkg</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PathDeleter</string>
            <key>Arguments</key>
            <dict>
                <key>path_list</key>
                <array>
                    <string>%RECIPE_CACHE_DIR%/installer_payload/</string>
                    <string>%RECIPE_CACHE_DIR%/installer_pkg/</string>                              
                </array>
            </dict>
        </dict>
    </array>
</dict>
</plist>

FlashPrint/FlashPrint.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of FlashPrint and imports into Munki.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.FlashPrint</string>
    <key>Input</key>
    <dict>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>NAME</key>
        <string>FlashPrint</string>
        <key>pkginfo</key>
        <dict>
            <key>blocking_applications</key>
            <array>
                <string>FlashPrint</string>
            </array>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>Flashprint, the mainstream slice software used by FlashForge, has gained outstanding reviews by the media and professionals.The software further offers an expert mode，which allows dozens of parameters to be set by the user, for greater printing flexibility.</string>
            <key>display_name</key>
            <string>FlashPrint</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
            <key>unattended_uninstall</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.2.0</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.FlashPrint</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>Unarchiver</string>
            <key>Arguments</key>
            <dict>
                <key>archive_path</key>
                <string>%RECIPE_CACHE_DIR%/downloads/%NAME%.zip</string>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/installer_pkg/</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PkgPayloadUnpacker</string>
            <key>Arguments</key>
            <dict>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%/Applications</string>
                <key>pkg_payload_path</key>
                <string>%RECIPE_CACHE_DIR%//installer_pkg/FlashPrint.pkg/Contents/Archive.pax.gz</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiInstallsItemsCreator</string>
            <key>Arguments</key>
            <dict>
                <key>faux_root</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%/</string>
                <key>installs_item_paths</key>
                <array>
                    <string>/Applications/FlashPrint.app</string>
                </array>
                <key>version_comparison_key</key>
                <string>CFBundleShortVersionString</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiPkginfoMerger</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>DmgCreator</string>
            <key>Arguments</key>
            <dict>
                <key>dmg_root</key>
                <string>%RECIPE_CACHE_DIR%/installer_pkg/FlashPrint.pkg</string>
                <key>dmg_path</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%.dmg</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%dmg_path%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PathDeleter</string>
            <key>Arguments</key>
            <dict>
                <key>path_list</key>
                <array>
                    <string>%RECIPE_CACHE_DIR%/%NAME%/</string>
                    <string>%RECIPE_CACHE_DIR%/installer_pkg/</string>                    
                </array>
            </dict>
        </dict>
    </array>
</dict>
</plist>

FlashPrint/FlashPrint.jss.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of FlashPrint and then uploads to the JSS</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.jss.FlashPrint</string>
    <key>Input</key>
    <dict>
        <key>CATEGORY</key>
        <string>Applications</string>
        <key>GROUP_NAME</key>
        <string>%NAME%-update-smart</string>
        <key>GROUP_TEMPLATE</key>
        <string>SmartGroupTemplate.xml</string>
        <key>NAME</key>
        <string>FlashPrint</string>
        <key>POLICY_CATEGORY</key>
        <string>Testing</string>
        <key>POLICY_TEMPLATE</key>
        <string>PolicyTemplate.xml</string>
        <key>SELF_SERVICE_DESCRIPTION</key>
        <string>Flashprint, the mainstream slice software used by FlashForge, has gained outstanding reviews by the media and professionals.The software further offers an expert mode，which allows dozens of parameters to be set by the user, for greater printing flexibility.</string>
        <key>SELF_SERVICE_ICON</key>
        <string>FlashPrint.png</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.2.0</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.pkg.FlashPrint</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>JSSImporter</string>
            <key>Arguments</key>
            <dict>
                <key>category</key>
                <string>%CATEGORY%</string>
                <key>groups</key>
                <array>
                    <dict>
                        <key>name</key>
                        <string>%GROUP_NAME%</string>
                        <key>smart</key>
                        <true/>
                        <key>template_path</key>
                        <string>%GROUP_TEMPLATE%</string>
                    </dict>
                </array>
                <key>policy_category</key>
                <string>%POLICY_CATEGORY%</string>
                <key>policy_template</key>
                <string>%POLICY_TEMPLATE%</string>
                <key>prod_name</key>
                <string>FlashPrint</string>
                <key>self_service_description</key>
                <string>%SELF_SERVICE_DESCRIPTION%</string>
                <key>self_service_icon</key>
                <string>%SELF_SERVICE_ICON%</string>
                <key>version</key>
                <string>%version%</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>
FlashPrint/FlashPrint.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Download recipe for FlashPrint.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.FlashPrint</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>FlashPrint</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.2.0</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>DeprecationWarning</string>
            <key>Arguments</key>
            <dict>
                <key>warning_message</key>
                <string>Following the release of Flash Print 5, these recipes no longer work. For FlashPrint 5 recipes please see: https://github.com/autopkg/dataJAR-recipes/tree/master/FlashPrint%205.</string>
            </dict>
        </dict>
        <dict>   
            <key>Processor</key>   
            <string>StopProcessingIf</string>   
            <key>Arguments</key>   
            <dict>   
                <key>predicate</key>   
                <string>TRUEPREDICATE</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>URLTextSearcher</string>
            <key>Arguments</key>
            <dict>
                <key>url</key>
                <string>https://www.flashforge.com/download-center?category=15</string>
                <key>re_pattern</key>
                <string>mac.*\n.*\n.*\n.*\n.*\n.*\n.*\n.*(https:\S*zip)</string>
                <key>result_output_var_name</key>
                <string>url</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>URLDownloader</string>
            <key>Arguments</key>
            <dict>
                <key>download_dir</key>
                <string>%RECIPE_CACHE_DIR%/downloads</string>
                <key>filename</key>
                <string>%NAME%.zip</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
    </array>
</dict>
</plist>

FlashPrint 5/FlashPrint 5.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of FlashPrint 5 and imports into Munki.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.FlashPrint 5</string>
    <key>Input</key>
    <dict>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>NAME</key>
        <string>FlashPrint5</string>
        <key>pkginfo</key>
        <dict>
            <key>blocking_applications</key>
            <array>
                <string>FlashPrint 5</string>
            </array>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>Flashprint, the mainstream slice software used by FlashForge, has gained outstanding reviews by the media and professionals.The software further offers an expert mode，which allows dozens of parameters to be set by the user, for greater printing flexibility.</string>
            <key>display_name</key>
            <string>FlashPrint</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
            <key>unattended_uninstall</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.2.0</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.FlashPrint 5</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>Unarchiver</string>
            <key>Arguments</key>
            <dict>
                <key>archive_path</key>
                <string>%pathname%</string>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/unzip/</string>
                <key>purge_destination</key>
                <true/>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>FileFinder</string>
            <key>Arguments</key>
            <dict>
                <key>pattern</key>
                <string>%RECIPE_CACHE_DIR%/unzip/*.pkg</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PkgPayloadUnpacker</string>
            <key>Arguments</key>
            <dict>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%/Applications</string>
                <key>pkg_payload_path</key>
                <string>%found_filename%/Contents/Archive.pax.gz</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiInstallsItemsCreator</string>
            <key>Arguments</key>
            <dict>
                <key>faux_root</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%/</string>
                <key>installs_item_paths</key>
                <array>
                    <string>/Applications/FlashPrint 5.app</string>
                </array>
                <key>version_comparison_key</key>
                <string>CFBundleShortVersionString</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiPkginfoMerger</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PlistReader</string>
            <key>Arguments</key>
            <dict>
                <key>info_path</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%/Applications/FlashPrint 5.app/Contents/Info.plist</string>
                <key>plist_keys</key>
                <dict>
                    <key>CFBundleShortVersionString</key>
                    <string>version</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiPkginfoMerger</string>
            <key>Arguments</key>
            <dict>
                <key>additional_pkginfo</key>
                <dict>
                    <key>version</key>
                    <string>%version%</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>DmgCreator</string>
            <key>Arguments</key>
            <dict>
                <key>dmg_path</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%.dmg</string>
                <key>dmg_root</key>
                <string>%found_filename%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%dmg_path%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PathDeleter</string>
            <key>Arguments</key>
            <dict>
                <key>path_list</key>
                <array>
                    <string>%RECIPE_CACHE_DIR%/%NAME%</string>
                    <string>%RECIPE_CACHE_DIR%/unzip</string>
                </array>
            </dict>
        </dict>
    </array>
</dict>
</plist>
FlashPrint 5/FlashPrint 5.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Download the latest version of FlashPrint 5.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.FlashPrint 5</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>FlashPrint</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.2.0</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>URLTextSearcher</string>
            <key>Arguments</key>
            <dict>
                <key>re_pattern</key>
                <string>MacOS.*\n*.*\n*.*\n*.*\n*.*\n*.*\n*.*\n*.*\n.*\"(.*\.zip)</string>
                <key>result_output_var_name</key>
                <string>url</string>
                <key>url</key>
                <string>https://www.flashforge.com/download-center?category=15</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>URLDownloader</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
    </array>
</dict>
</plist>

Finale 26-Trial/Finale26-Trial.pkg.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of Finale 26 and creates a package</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.pkg.Finale26-Trial</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>Finale</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.5.0</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.Finale26-Trial</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>FlatPkgUnpacker</string>
            <key>Arguments</key>
            <dict>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/unpack</string>
                <key>flat_pkg_path</key>
                <string>%pathname%/*.pkg</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>FileFinder</string>
            <key>Arguments</key>
            <dict>
                <key>pattern</key>
                <string>%RECIPE_CACHE_DIR%/unpack/Finale*.pkg</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PkgPayloadUnpacker</string>
            <key>Arguments</key>
            <dict>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/payload</string>
                <key>pkg_payload_path</key>
                <string>%found_filename%/Payload</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>Versioner</string>
            <key>Arguments</key>
            <dict>
                <key>input_plist_path</key>
                <string>%RECIPE_CACHE_DIR%/payload/Applications/Finale.app/Contents/Info.plist</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PkgRootCreator</string>
            <key>Arguments</key>
            <dict>
                <key>pkgdirs</key>
                <dict/>
                <key>pkgroot</key>
                <string>%RECIPE_CACHE_DIR%/pkgroot</string>
            </dict>
        </dict>
        <dict>
            <key>Arguments</key>
            <dict>
                <key>pkgdirs</key>
                <dict/>
                <key>pkgroot</key>
                <string>%RECIPE_CACHE_DIR%/Scripts</string>
            </dict>
            <key>Processor</key>
            <string>PkgRootCreator</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>Copier</string>
            <key>Arguments</key>
            <dict>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/Scripts/FinaleSetup.dmg</string>
                <key>overwrite</key>
                <true/>
                <key>source_path</key>
                <string>%pathname%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>FileCreator</string>
            <key>Arguments</key>
            <dict>
                <key>file_content</key>
                <string>&lt;?xml version="1.0" encoding="UTF-8"?&gt;
&lt;!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"&gt;
&lt;plist version="1.0"&gt;
&lt;array&gt;
    &lt;dict&gt;
        &lt;key&gt;attributeSetting&lt;/key&gt;
        &lt;true/&gt;
        &lt;key&gt;choiceAttribute&lt;/key&gt;
        &lt;string&gt;visible&lt;/string&gt;
        &lt;key&gt;choiceIdentifier&lt;/key&gt;
        &lt;string&gt;installer_choice_1&lt;/string&gt;
    &lt;/dict&gt;
    &lt;dict&gt;
        &lt;key&gt;attributeSetting&lt;/key&gt;
        &lt;true/&gt;
        &lt;key&gt;choiceAttribute&lt;/key&gt;
        &lt;string&gt;enabled&lt;/string&gt;
        &lt;key&gt;choiceIdentifier&lt;/key&gt;
        &lt;string&gt;installer_choice_1&lt;/string&gt;
    &lt;/dict&gt;
    &lt;dict&gt;
        &lt;key&gt;attributeSetting&lt;/key&gt;
        &lt;integer&gt;1&lt;/integer&gt;
        &lt;key&gt;choiceAttribute&lt;/key&gt;
        &lt;string&gt;selected&lt;/string&gt;
        &lt;key&gt;choiceIdentifier&lt;/key&gt;
        &lt;string&gt;installer_choice_1&lt;/string&gt;
    &lt;/dict&gt;
    &lt;dict&gt;
        &lt;key&gt;attributeSetting&lt;/key&gt;
        &lt;true/&gt;
        &lt;key&gt;choiceAttribute&lt;/key&gt;
        &lt;string&gt;visible&lt;/string&gt;
        &lt;key&gt;choiceIdentifier&lt;/key&gt;
        &lt;string&gt;installer_choice_2&lt;/string&gt;
    &lt;/dict&gt;
    &lt;dict&gt;
        &lt;key&gt;attributeSetting&lt;/key&gt;
        &lt;true/&gt;
        &lt;key&gt;choiceAttribute&lt;/key&gt;
        &lt;string&gt;enabled&lt;/string&gt;
        &lt;key&gt;choiceIdentifier&lt;/key&gt;
        &lt;string&gt;installer_choice_2&lt;/string&gt;
    &lt;/dict&gt;
    &lt;dict&gt;
        &lt;key&gt;attributeSetting&lt;/key&gt;
        &lt;integer&gt;-1&lt;/integer&gt;
        &lt;key&gt;choiceAttribute&lt;/key&gt;
        &lt;string&gt;selected&lt;/string&gt;
        &lt;key&gt;choiceIdentifier&lt;/key&gt;
        &lt;string&gt;installer_choice_2&lt;/string&gt;
    &lt;/dict&gt;
    &lt;dict&gt;
        &lt;key&gt;attributeSetting&lt;/key&gt;
        &lt;true/&gt;
        &lt;key&gt;choiceAttribute&lt;/key&gt;
        &lt;string&gt;visible&lt;/string&gt;
        &lt;key&gt;choiceIdentifier&lt;/key&gt;
        &lt;string&gt;installer_choice_2_1&lt;/string&gt;
    &lt;/dict&gt;
    &lt;dict&gt;
        &lt;key&gt;attributeSetting&lt;/key&gt;
        &lt;true/&gt;
        &lt;key&gt;choiceAttribute&lt;/key&gt;
        &lt;string&gt;enabled&lt;/string&gt;
        &lt;key&gt;choiceIdentifier&lt;/key&gt;
        &lt;string&gt;installer_choice_2_1&lt;/string&gt;
    &lt;/dict&gt;
    &lt;dict&gt;
        &lt;key&gt;attributeSetting&lt;/key&gt;
        &lt;integer&gt;1&lt;/integer&gt;
        &lt;key&gt;choiceAttribute&lt;/key&gt;
        &lt;string&gt;selected&lt;/string&gt;
        &lt;key&gt;choiceIdentifier&lt;/key&gt;
        &lt;string&gt;installer_choice_2_1&lt;/string&gt;
    &lt;/dict&gt;
    &lt;dict&gt;
        &lt;key&gt;attributeSetting&lt;/key&gt;
        &lt;true/&gt;
        &lt;key&gt;choiceAttribute&lt;/key&gt;
        &lt;string&gt;visible&lt;/string&gt;
        &lt;key&gt;choiceIdentifier&lt;/key&gt;
        &lt;string&gt;installer_choice_2_2&lt;/string&gt;
    &lt;/dict&gt;
    &lt;dict&gt;
        &lt;key&gt;attributeSetting&lt;/key&gt;
        &lt;false/&gt;
        &lt;key&gt;choiceAttribute&lt;/key&gt;
        &lt;string&gt;enabled&lt;/string&gt;
        &lt;key&gt;choiceIdentifier&lt;/key&gt;
        &lt;string&gt;installer_choice_2_2&lt;/string&gt;
    &lt;/dict&gt;
    &lt;dict&gt;
        &lt;key&gt;attributeSetting&lt;/key&gt;
        &lt;integer&gt;0&lt;/integer&gt;
        &lt;key&gt;choiceAttribute&lt;/key&gt;
        &lt;string&gt;selected&lt;/string&gt;
        &lt;key&gt;choiceIdentifier&lt;/key&gt;
        &lt;string&gt;installer_choice_2_2&lt;/string&gt;
    &lt;/dict&gt;
    &lt;dict&gt;
        &lt;key&gt;attributeSetting&lt;/key&gt;
        &lt;true/&gt;
        &lt;key&gt;choiceAttribute&lt;/key&gt;
        &lt;string&gt;visible&lt;/string&gt;
        &lt;key&gt;choiceIdentifier&lt;/key&gt;
        &lt;string&gt;installer_choice_3&lt;/string&gt;
    &lt;/dict&gt;
    &lt;dict&gt;
        &lt;key&gt;attributeSetting&lt;/key&gt;
        &lt;true/&gt;
        &lt;key&gt;choiceAttribute&lt;/key&gt;
        &lt;string&gt;enabled&lt;/string&gt;
        &lt;key&gt;choiceIdentifier&lt;/key&gt;
        &lt;string&gt;installer_choice_3&lt;/string&gt;
    &lt;/dict&gt;
    &lt;dict&gt;
        &lt;key&gt;attributeSetting&lt;/key&gt;
        &lt;integer&gt;0&lt;/integer&gt;
        &lt;key&gt;choiceAttribute&lt;/key&gt;
        &lt;string&gt;selected&lt;/string&gt;
        &lt;key&gt;choiceIdentifier&lt;/key&gt;
        &lt;string&gt;installer_choice_3&lt;/string&gt;
    &lt;/dict&gt;
    &lt;dict&gt;
        &lt;key&gt;attributeSetting&lt;/key&gt;
        &lt;true/&gt;
        &lt;key&gt;choiceAttribute&lt;/key&gt;
        &lt;string&gt;visible&lt;/string&gt;
        &lt;key&gt;choiceIdentifier&lt;/key&gt;
        &lt;string&gt;installer_choice_3_1&lt;/string&gt;
    &lt;/dict&gt;
    &lt;dict&gt;
        &lt;key&gt;attributeSetting&lt;/key&gt;
        &lt;true/&gt;
        &lt;key&gt;choiceAttribute&lt;/key&gt;
        &lt;string&gt;enabled&lt;/string&gt;
        &lt;key&gt;choiceIdentifier&lt;/key&gt;
        &lt;string&gt;installer_choice_3_1&lt;/string&gt;
    &lt;/dict&gt;
    &lt;dict&gt;
        &lt;key&gt;attributeSetting&lt;/key&gt;
        &lt;integer&gt;0&lt;/integer&gt;
        &lt;key&gt;choiceAttribute&lt;/key&gt;
        &lt;string&gt;selected&lt;/string&gt;
        &lt;key&gt;choiceIdentifier&lt;/key&gt;
        &lt;string&gt;installer_choice_3_1&lt;/string&gt;
    &lt;/dict&gt;
    &lt;dict&gt;
        &lt;key&gt;attributeSetting&lt;/key&gt;
        &lt;true/&gt;
        &lt;key&gt;choiceAttribute&lt;/key&gt;
        &lt;string&gt;visible&lt;/string&gt;
        &lt;key&gt;choiceIdentifier&lt;/key&gt;
        &lt;string&gt;installer_choice_3_2&lt;/string&gt;
    &lt;/dict&gt;
    &lt;dict&gt;
        &lt;key&gt;attributeSetting&lt;/key&gt;
        &lt;true/&gt;
        &lt;key&gt;choiceAttribute&lt;/key&gt;
        &lt;string&gt;enabled&lt;/string&gt;
        &lt;key&gt;choiceIdentifier&lt;/key&gt;
        &lt;string&gt;installer_choice_3_2&lt;/string&gt;
    &lt;/dict&gt;
    &lt;dict&gt;
        &lt;key&gt;attributeSetting&lt;/key&gt;
        &lt;integer&gt;0&lt;/integer&gt;
        &lt;key&gt;choiceAttribute&lt;/key&gt;
        &lt;string&gt;selected&lt;/string&gt;
        &lt;key&gt;choiceIdentifier&lt;/key&gt;
        &lt;string&gt;installer_choice_3_2&lt;/string&gt;
    &lt;/dict&gt;
&lt;/array&gt;
&lt;/plist&gt;</string>
                <key>file_mode</key>
                <string>0744</string>
                <key>file_path</key>
                <string>%RECIPE_CACHE_DIR%/Scripts/silentInstallerChoices.plist</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>FileCreator</string>
            <key>Arguments</key>
            <dict>
                <key>file_content</key>
                <string>#!/bin/sh
# Installs Finale. Assumes installer is already available in the path specified by $install_dir.

# Determine working directory
install_dir=$(dirname $0)

/usr/bin/hdiutil attach "${install_dir}/FinaleSetup.dmg" -nobrowse
/usr/sbin/installer -pkg "/Volumes/Finale/Install Finale.pkg" -tgt / -applyChoiceChangesXML "${install_dir}/silentInstallerChoices.plist"
/usr/sbin/installer -pkg "/Volumes/Finale/External/Garritan_ARIA_Player.pkg" -tgt /
/usr/sbin/installer -pkg "/Volumes/Finale/External/Garritan_Instruments_for_Finale.pkg" -tgt /
/bin/sleep 10
/usr/bin/hdiutil detach "/Volumes/Finale"</string>
                <key>file_mode</key>
                <string>0755</string>
                <key>file_path</key>
                <string>%RECIPE_CACHE_DIR%/Scripts/postinstall</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PkgCreator</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_request</key>
                <dict>
                    <key>id</key>
                    <string>com.makemusic.finale.pkg</string>
                    <key>pkgname</key>
                    <string>%NAME%-%version%</string>
                    <key>pkgroot</key>
                    <string>%RECIPE_CACHE_DIR%/pkgroot</string>
                    <key>pkgtype</key>
                    <string>flat</string>
                    <key>scripts</key>
                    <string>Scripts</string>
                    <key>version</key>
                    <string>%version%</string>
                </dict>
            </dict>
        </dict>
    </array>
</dict>
</plist>

Finale 26-Trial/Finale26-Trial.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of Finale 26 and imports into Munki</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.Finale26-Trial</string>
    <key>Input</key>
    <dict>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>NAME</key>
        <string>Finale</string>
        <key>pkginfo</key>
        <dict>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>Music notation software that lets you create your way.</string>
            <key>developer</key>
            <string>MakeMusic, Inc</string>
            <key>display_name</key>
            <string>Finale</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
            <key>unattended_uninstall</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.5.0</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.pkg.Finale26-Trial</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>MunkiInstallsItemsCreator</string>
            <key>Arguments</key>
            <dict>
                <key>faux_root</key>
                <string>%RECIPE_CACHE_DIR%/payload</string>
                <key>installs_item_paths</key>
                <array>
                    <string>/Applications/Finale.app</string>
                </array>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiPkginfoMerger</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%pkg_path%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PathDeleter</string>
            <key>Arguments</key>
            <dict>
                <key>path_list</key>
                <array>
                    <string>%RECIPE_CACHE_DIR%/payload</string>
                    <string>%RECIPE_CACHE_DIR%/pkgroot</string>
                    <string>%RECIPE_CACHE_DIR%/unpack</string>
                    <string>%RECIPE_CACHE_DIR%/Scripts</string>
                </array>
            </dict>
        </dict>
    </array>
</dict>
</plist>

Finale 26-Trial/Finale26-Trial.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of Finale 26 full installer.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.Finale26-Trial</string>
    <key>Input</key>
    <dict>
        <key>MAJOR_VERSION</key>
        <string>26</string>
        <key>NAME</key>
        <string>Finale</string>
        <key>USER_AGENT</key>
        <string>Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.116 Safari/537.36</string>
    </dict>
    <key>MinimumVersion</key>
    <string>1.4</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>URLTextSearcher</string>
            <key>Arguments</key>
            <dict>
                <key>re_pattern</key>
                <string>https://makemusic-downloads.makemusic.com/Finale/(%MAJOR_VERSION%(\.\d+)+)/</string>
                <key>request_headers</key>
                <dict>
                    <key>user-agent</key>
                    <string>%USER_AGENT%</string>
                </dict>
                <key>result_output_var_name</key>
                <string>version</string>
                <key>url</key>
                <string>https://downloads2.makemusic.com/xml/en/Finale26Mac.xml</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>URLDownloader</string>
            <key>Arguments</key>
            <dict>
                <key>request_headers</key>
                <dict>
                    <key>user-agent</key>
                    <string>%USER_AGENT%</string>
                </dict>
                <key>url</key>
                <string>http://makemusic-downloads.makemusic.com/Finale/%version%/Mac/en-US/FinaleSetup.dmg</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
            <key>Arguments</key>
            <dict>
                <key>expected_authority_names</key>
                <array>
                    <string>Developer ID Installer: MakeMusic, Inc. (77WERABCRU)</string>
                    <string>Developer ID Certification Authority</string>
                    <string>Apple Root CA</string>
                </array>
                <key>input_path</key>
                <string>%pathname%/*.pkg</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>

Final Draft 11/Final Draft 11.pkg.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
	<dict>
		<key>Description</key>
		<string>Downloads the latest version of the Final Draft 11 and extracts the pkg.</string>
		<key>Identifier</key>
		<string>com.github.dataJAR-recipes.pkg.FinalDraft11</string>
		<key>Input</key>
		<dict>
			<key>NAME</key>
			<string>FinalDraft11</string>
		</dict>
		<key>MinimumVersion</key>
		<string>0.6.1</string>
		<key>ParentRecipe</key>
		<string>com.github.dataJAR-recipes.download.FinalDraft11</string>
		<key>Process</key>
		<array>
			<dict>
				<key>Processor</key>
				<string>Unarchiver</string>
				<key>Arguments</key>
				<dict>
					<key>destination_path</key>
					<string>%RECIPE_CACHE_DIR%/unzip</string>
				</dict>
			</dict>
			<dict>
				<key>Arguments</key>
				<dict>
					<key>destination_path</key>
					<string>%RECIPE_CACHE_DIR%/installer_unpack/</string>
					<key>flat_pkg_path</key>
					<string>%RECIPE_CACHE_DIR%/unzip/Final Draft 11 Installer.pkg</string>
					<key>purge_destination</key>
					<string>true</string>
				</dict>
				<key>Processor</key>
				<string>FlatPkgUnpacker</string>
			</dict>
			<dict>
				<key>Arguments</key>
				<dict>
					<key>destination_path</key>
					<string>%RECIPE_CACHE_DIR%/installer_payload/Applications/</string>
					<key>pkg_payload_path</key>
					<string>%RECIPE_CACHE_DIR%/installer_unpack/finalDraft11.pkg/Payload</string>
					<key>purge_destination</key>
					<string>true</string>
				</dict>
				<key>Processor</key>
				<string>PkgPayloadUnpacker</string>
			</dict>
			<dict>
				<key>Arguments</key>
				<dict>
					<key>input_plist_path</key>
					<string>%RECIPE_CACHE_DIR%/installer_payload/Applications/Final Draft 11.app/Contents/Info.plist</string>
					<key>plist_version_key</key>
					<string>CFBundleShortVersionString</string>
				</dict>
				<key>Processor</key>
				<string>Versioner</string>
			</dict>
			<dict>
				<key>Arguments</key>
				<dict>
					<key>source_pkg</key>
					<string>%RECIPE_CACHE_DIR%/unzip/Final Draft 11 Installer.pkg</string>
					<key>pkg_path</key>
					<string>%RECIPE_CACHE_DIR%/%NAME%-%version%.pkg</string>
				</dict>
				<key>Processor</key>
				<string>PkgCopier</string>
			</dict>
			<dict>
				<key>Arguments</key>
				<dict>
					<key>path_list</key>
					<array>
						<string>%RECIPE_CACHE_DIR%/installer_payload/</string>
						<string>%RECIPE_CACHE_DIR%/installer_unpack/</string>
						<string>%RECIPE_CACHE_DIR%/unzip/</string>
					</array>
				</dict>
				<key>Processor</key>
				<string>PathDeleter</string>
			</dict>
		</array>
	</dict>
</plist>
Final Draft 11/Final Draft 11.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
	<dict>
		<key>Description</key>
		<string>Downloads the latest version of Final Draft 11 and imports it into Munki.</string>
		<key>Identifier</key>
		<string>com.github.dataJAR-recipes.munki.FinalDraft11</string>
		<key>Input</key>
		<dict>
			<key>MUNKI_REPO_SUBDIR</key>
			<string>apps/%NAME%</string>
			<key>NAME</key>
			<string>FinalDraft11</string>
			<key>pkginfo</key>
			<dict>
				<key>catalogs</key>
				<array>
					<string>testing</string>
				</array>
				<key>description</key>
				<string>Final Draft is a screenwriting application for writing and formatting screenplays.</string>
				<key>developer</key>
				<string>Cast and Crew</string>
				<key>display_name</key>
				<string>Final Draft 11</string>
				<key>name</key>
				<string>%NAME%</string>
				<key>unattended_install</key>
				<true />
				<key>unattended_uninstall</key>
				<true />
			</dict>
		</dict>
		<key>MinimumVersion</key>
		<string>1.0.0</string>
		<key>ParentRecipe</key>
		<string>com.github.dataJAR-recipes.download.FinalDraft11</string>
		<key>Process</key>
		<array>
			<dict>
				<key>Processor</key>
				<string>Unarchiver</string>
				<key>Arguments</key>
				<dict>
					<key>destination_path</key>
					<string>%RECIPE_CACHE_DIR%/unzip</string>
				</dict>
			</dict>
			<dict>
				<key>Arguments</key>
				<dict>
					<key>destination_path</key>
					<string>%RECIPE_CACHE_DIR%/installer_unpack/</string>
					<key>flat_pkg_path</key>
					<string>%RECIPE_CACHE_DIR%/unzip/Final Draft 11 Installer.pkg</string>
					<key>purge_destination</key>
					<string>true</string>
				</dict>
				<key>Processor</key>
				<string>FlatPkgUnpacker</string>
			</dict>
			<dict>
				<key>Arguments</key>
				<dict>
					<key>destination_path</key>
					<string>%RECIPE_CACHE_DIR%/installer_payload/Applications/</string>
					<key>pkg_payload_path</key>
					<string>%RECIPE_CACHE_DIR%/installer_unpack/finalDraft11.pkg/Payload</string>
					<key>purge_destination</key>
					<string>true</string>
				</dict>
				<key>Processor</key>
				<string>PkgPayloadUnpacker</string>
			</dict>
			<dict>
				<key>Arguments</key>
				<dict>
					<key>input_plist_path</key>
					<string>%RECIPE_CACHE_DIR%/installer_payload/Applications/Final Draft 11.app/Contents/Info.plist</string>
					<key>plist_version_key</key>
					<string>CFBundleShortVersionString</string>
				</dict>
				<key>Processor</key>
				<string>Versioner</string>
			</dict>
			<dict>
				<key>Arguments</key>
				<dict>
					<key>source_pkg</key>
					<string>%RECIPE_CACHE_DIR%/unzip/Final Draft 11 Installer.pkg</string>
					<key>pkg_path</key>
					<string>%RECIPE_CACHE_DIR%/%NAME%-%version%.pkg</string>
				</dict>
				<key>Processor</key>
				<string>PkgCopier</string>
			</dict>
			<dict>
				<key>Processor</key>
				<string>MunkiInstallsItemsCreator</string>
				<key>Arguments</key>
				<dict>
					<key>faux_root</key>
					<string>%RECIPE_CACHE_DIR%/installer_payload/</string>
					<key>installs_item_paths</key>
					<array>
						<string>/Applications/Final Draft 11.app</string>
					</array>
				</dict>
			</dict>
			<dict>
				<key>Processor</key>
				<string>MunkiPkginfoMerger</string>
			</dict>
			<dict>
				<key>Processor</key>
				<string>MunkiPkginfoMerger</string>
				<key>Arguments</key>
				<dict>
					<key>additional_pkginfo</key>
					<dict>
						<key>version</key>
						<string>%version%</string>
					</dict>
				</dict>
			</dict>
			<dict>
				<key>Arguments</key>
				<dict>
					<key>pkg_path</key>
					<string>%pkg_path%</string>
					<key>repo_subdirectory</key>
					<string>%MUNKI_REPO_SUBDIR%</string>
					<key>version_comparison_key</key>
					<string>CFBundleShortVersionString</string>
				</dict>
				<key>Processor</key>
				<string>MunkiImporter</string>
			</dict>
			<dict>
				<key>Arguments</key>
				<dict>
					<key>path_list</key>
					<array>
						<string>%RECIPE_CACHE_DIR%/installer_payload/</string>
						<string>%RECIPE_CACHE_DIR%/installer_unpack/</string>
						<string>%RECIPE_CACHE_DIR%/unzip/</string>
					</array>
				</dict>
				<key>Processor</key>
				<string>PathDeleter</string>
			</dict>
		</array>
	</dict>
</plist>
Final Draft 11/Final Draft 11.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
	<dict>
		<key>Description</key>
		<string>Download recipe for Final Draft 11.</string>
		<key>Identifier</key>
		<string>com.github.dataJAR-recipes.download.FinalDraft11</string>
		<key>Input</key>
		<dict>
			<key>NAME</key>
			<string>FinalDraft11</string>
		</dict>
		<key>MinimumVersion</key>
		<string>0.2.0</string>
		<key>Process</key>
		<array>
			<dict>
				<key>Processor</key>
				<string>URLTextSearcher</string>
				<key>Arguments</key>
				<dict>
					<key>url</key>
					<string>https://www.finaldraft.com/support/install-final-draft/install-final-draft-11-macintosh/</string>
					<key>re_pattern</key>
					<string>(\/\S*Mac.zip)</string>
				</dict>
			</dict>
			<dict>
				<key>Arguments</key>
				<dict>
					<key>filename</key>
					<string>%NAME%.zip</string>
					<key>url</key>
					<string>https://www.finaldraft.com%match%</string>
				</dict>
				<key>Processor</key>
				<string>URLDownloader</string>
			</dict>
			<dict>
				<key>Processor</key>
				<string>EndOfCheckPhase</string>
			</dict>
			<dict>
				<key>Processor</key>
				<string>Unarchiver</string>
				<key>Arguments</key>
				<dict>
					<key>destination_path</key>
					<string>%RECIPE_CACHE_DIR%/unzip</string>
				</dict>
			</dict>
			<dict>
				<key>Processor</key>
				<string>CodeSignatureVerifier</string>
				<key>Arguments</key>
				<dict>
					<key>input_path</key>
					<string>%RECIPE_CACHE_DIR%/unzip/*.pkg</string>
					<key>expected_authority_names</key>
					<array>
						<string>Developer ID Installer: Cast &amp; Crew Production Software, LLC (7XUZ8R5736)</string>
						<string>Developer ID Certification Authority</string>
						<string>Apple Root CA</string>
					</array>
				</dict>
			</dict>
			<dict>
				<key>Processor</key>
				<string>PathDeleter</string>
				<key>Arguments</key>
				<dict>
					<key>path_list</key>
					<string>%RECIPE_CACHE_DIR%/unzip</string>
				</dict>
			</dict>
		</array>
	</dict>
</plist>
Figma/Figma.png METASEP

Figma/Figma.pkg.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>Description</key>
	<string>Downloads the current release version of Figma and makes a package.</string>
	<key>Identifier</key>
	<string>com.github.dataJAR-recipes.pkg.Figma</string>
	<key>Input</key>
	<dict>
		<key>NAME</key>
		<string>Figma</string>
	</dict>
	<key>MinimumVersion</key>
	<string>0.3.1</string>
	<key>ParentRecipe</key>
	<string>com.github.dataJAR-recipes.download.Figma</string>
	<key>Process</key>
	<array>
		<dict>
			<key>Processor</key>
			<string>PkgRootCreator</string>
			<key>Arguments</key>
			<dict>
				<key>pkgroot</key>
				<string>%RECIPE_CACHE_DIR%/%NAME%-pkg</string>
				<key>pkgdirs</key>
				<dict>
					<key>Applications</key>
					<string>0775</string>
				</dict>
			</dict>
		</dict>
		<dict>
			<key>Processor</key>
			<string>Copier</string>
			<key>Arguments</key>
			<dict>
				<key>destination_path</key>
				<string>%pkgroot%/Applications/</string>
				<key>source_path</key>
				<string>%RECIPE_CACHE_DIR%/%NAME%/</string>
				<key>overwrite</key>
				<true/>
			</dict>
		</dict>
		<dict>
			<key>Processor</key>
			<string>PlistReader</string>
			<key>Arguments</key>
			<dict>
				<key>info_path</key>
				<string>%pkgroot%/Applications/Figma.app</string>
				<key>plist_keys</key>
				<dict>
					<key>CFBundleShortVersionString</key>
					<string>version</string>
					<key>CFBundleIdentifier</key>
					<string>bundleid</string>
					<key>CFBundleName</key>
					<string>app_name</string>
				</dict>
			</dict>
		</dict>
		<dict>
			<key>Processor</key>
			<string>PkgCreator</string>
			<key>Arguments</key>
			<dict>
				<key>pkg_request</key>
				<dict>
					<key>pkgname</key>
					<string>%NAME%-%version%</string>
					<key>pkgdir</key>
					<string>%RECIPE_CACHE_DIR%</string>
					<key>id</key>
					<string>%bundleid%</string>
					<key>options</key>
					<string>purge_ds_store</string>
					<key>chown</key>
					<array>
						<dict>
							<key>path</key>
							<string>Applications</string>
							<key>user</key>
							<string>root</string>
							<key>group</key>
							<string>admin</string>
						</dict>
					</array>
				</dict>
			</dict>
		</dict>
	</array>
</dict>
</plist>

Figma/Figma.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>Description</key>
	<string>Downloads the current release version of Figma and imports into Munki.</string>
	<key>Identifier</key>
	<string>com.github.dataJAR-recipes.munki.Figma</string>
	<key>Input</key>
	<dict>
		<key>NAME</key>
		<string>Figma</string>
		<key>MUNKI_REPO_SUBDIR</key>
		<string>apps/%NAME%</string>
		<key>pkginfo</key>
		<dict>
			<key>catalogs</key>
			<array>
				<string>production</string>
			</array>
			<key>category</key>
			<string>Applications</string>
			<key>developer</key>
			<string>Figma</string>
			<key>description</key>
			<string>Design, prototype, and gather feedback all in one place with Figma.</string>
			<key>display_name</key>
			<string>Figma</string>
			<key>name</key>
			<string>%NAME%</string>
			<key>unattended_install</key>
			<true/>
		</dict>
	</dict>
	<key>MinimumVersion</key>
	<string>0.2.0</string>
	<key>ParentRecipe</key>
	<string>com.github.dataJAR-recipes.download.Figma</string>
	<key>Process</key>
	<array>
		<dict>
			<key>Processor</key>
			<string>DmgCreator</string>
			<key>Arguments</key>
			<dict>
				<key>dmg_megabytes</key>
				<string>1000</string>
				<key>dmg_root</key>
				<string>%RECIPE_CACHE_DIR%/%NAME%</string>
				<key>dmg_path</key>
				<string>%RECIPE_CACHE_DIR%/%NAME%.dmg</string>
			</dict>
		</dict>
		<dict>
			<key>Arguments</key>
			<dict>
				<key>pkg_path</key>
				<string>%dmg_path%</string>
				<key>repo_subdirectory</key>
				<string>%MUNKI_REPO_SUBDIR%</string>
			</dict>
			<key>Processor</key>
			<string>MunkiImporter</string>
		</dict>
	</array>
</dict>
</plist>

Figma/Figma.jss.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>Description</key>
	<string>Downloads the latest version of Figma and then uploads to the JSS.</string>
	<key>Identifier</key>
	<string>com.github.dataJAR-recipes.jss.Figma</string>
	<key>Input</key>
	<dict>
		<key>CATEGORY</key>
		<string>Productivity</string>
		<key>GROUP_NAME</key>
		<string>%NAME%-update-smart</string>
		<key>GROUP_TEMPLATE</key>
		<string>Figma-SmartGroupTemplate.xml</string>
		<key>NAME</key>
		<string>Figma</string>
		<key>POLICY_CATEGORY</key>
		<string>Testing</string>
		<key>POLICY_TEMPLATE</key>
		<string>PolicyTemplate.xml</string>
		<key>SELF_SERVICE_DESCRIPTION</key>
		<string>Design, prototype, and gather feedback all in one place with Figma.</string>
		<key>SELF_SERVICE_ICON</key>
		<string>Figma.png</string>
	</dict>
	<key>MinimumVersion</key>
	<string>0.6.1</string>
	<key>ParentRecipe</key>
	<string>com.github.dataJAR-recipes.pkg.Figma</string>
	<key>Process</key>
	<array>
		<dict>
			<key>Arguments</key>
			<dict>
				<key>category</key>
				<string>%CATEGORY%</string>
				<key>groups</key>
				<array>
					<dict>
						<key>name</key>
						<string>%GROUP_NAME%</string>
						<key>smart</key>
						<true/>
						<key>template_path</key>
						<string>%GROUP_TEMPLATE%</string>
					</dict>
				</array>
				<key>policy_category</key>
				<string>%POLICY_CATEGORY%</string>
				<key>policy_template</key>
				<string>%POLICY_TEMPLATE%</string>
				<key>prod_name</key>
				<string>%NAME%</string>
				<key>self_service_description</key>
				<string>%SELF_SERVICE_DESCRIPTION%</string>
				<key>self_service_icon</key>
				<string>%SELF_SERVICE_ICON%</string>
				<key>version</key>
				<string>%version%</string>
			</dict>
			<key>Processor</key>
			<string>JSSImporter</string>
		</dict>
	</array>
</dict>
</plist>

Figma/Figma.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>Description</key>
	<string>Downloads the current release version of Figma.</string>
	<key>Identifier</key>
	<string>com.github.dataJAR-recipes.download.Figma</string>
	<key>Input</key>
	<dict>
		<key>NAME</key>
		<string>Figma</string>
	</dict>
	<key>MinimumVersion</key>
	<string>0.5.1</string>
	<key>Process</key>
	<array>
		<dict>
			<key>Processor</key>
			<string>URLDownloader</string>
			<key>Arguments</key>
			<dict>
				<key>url</key>
				<string>https://desktop.figma.com/mac/%NAME%.zip</string>
				<key>filename</key>
				<string>%NAME%.zip</string>
			</dict>
		</dict>
		<dict>
			<key>Processor</key>
			<string>EndOfCheckPhase</string>
		</dict>
		<dict>
			<key>Processor</key>
			<string>Unarchiver</string>
			<key>Arguments</key>
			<dict>
				<key>archive_path</key>
				<string>%pathname%</string>
				<key>destination_path</key>
				<string>%RECIPE_CACHE_DIR%/%NAME%</string>
				<key>purge_destination</key>
				<true/>
			</dict>
		</dict>
		<dict>
			<key>Processor</key>
			<string>CodeSignatureVerifier</string>
			<key>Arguments</key>
			<dict>
				<key>input_path</key>
				<string>%RECIPE_CACHE_DIR%/%NAME%/Figma.app</string>
				<key>requirement</key>
				<string>identifier "com.figma.Desktop" and anchor apple generic and 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] = T8RA8NE3B7</string>
				<key>strict_verification</key>
				<true />
			</dict>
		</dict>
	</array>
</dict>
</plist>

Figma/Figma-SmartGroupTemplate.xml METASEP
<computer_group>
	<name>%group_name%</name>
	<is_smart>true</is_smart>
	<criteria>
		<criterion>
			<name>Packages Installed By Casper</name>
			<priority>0</priority>
			<and_or>and</and_or>
			<search_type>does not have</search_type>
			<value>%NAME%-%version%.pkg</value>
		</criterion>
        <criterion>
            <name>Computer Group</name>
            <priority>1</priority>
            <and_or>and</and_or>
            <search_type>member of</search_type>
            <value>Testing</value>
        </criterion>
	</criteria>
</computer_group>

Fiddler Everywhere/Fiddler Everywhere.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of Fiddler Everywhere and imports it into Munki.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.Fiddler Everywhere</string>
    <key>Input</key>
    <dict>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>NAME</key>
        <string>FiddlerEverywhere</string>
        <key>pkginfo</key>
        <dict>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>Never Be Confined by Limitations When Debugging HTTP(S) Traffic. Amplify your debugging efforts with a Web Debugging Proxy for any device or platform. Fiddler Everywhere is a pathway for all.</string>
            <key>developer</key>
            <string>Progress Software Corporation</string>
            <key>display_name</key>
            <string>FiddlerEverywhere</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
            <key>unattended_uninstall</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>1.0.0</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.Fiddler Everywhere</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%pathname%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>
Fiddler Everywhere/Fiddler Everywhere.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of Fiddler Everywhere.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.Fiddler Everywhere</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>FiddlerEverywhere</string>
    </dict>
    <key>MinimumVersion</key>
    <string>1.0.0</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>URLDownloader</string>
            <key>Arguments</key>
            <dict>
                <key>filename</key>
                <string>%NAME%.dmg</string>
                <key>url</key>
                <string>https://api.getfiddler.com/mac/latest-mac</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
            <key>Arguments</key>
            <dict>
                <key>input_path</key>
                <string>%pathname%/Fiddler Everywhere.app</string>
                <key>requirement</key>
                <string>identifier "com.progress-telerik.fiddler" and anchor apple generic and 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] = CHSQ3M3P37</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>
Fellow/Fellow.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of Fellow and imports it into Munki.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.Fellow</string>
    <key>Input</key>
    <dict>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>NAME</key>
        <string>Fellow</string>
        <key>pkginfo</key>
        <dict>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>Fellow’s desktop app will make it easy for you to plan and organize your meetings, take notes in real-time, and assign action items to your meeting attendees.</string>
            <key>developer</key>
            <string>Fellow</string>
            <key>display_name</key>
            <string>Fellow</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>1.0.0</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.Fellow</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%pathname%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>

Fellow/Fellow.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of Fellow.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.Fellow</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>Fellow</string>
    </dict>
    <key>MinimumVersion</key>
    <string>1.0.0</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>URLDownloader</string>
            <key>Arguments</key>
            <dict>
                <key>filename</key>
                <string>%NAME%.dmg</string>
                <key>url</key>
                <string>https://fellow.app/desktop/download/darwin/latest/</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
            <key>Arguments</key>
            <dict>
                <key>input_path</key>
                <string>%pathname%/Fellow.app</string>
                <key>requirement</key>
                <string>identifier "com.electron.fellow" and anchor apple generic and 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] = "2NF46HY8D8"</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>
FabFilter Pro-Q 3/FabFilter Pro-Q 3.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
    <dict>
        <key>Description</key>
        <string>Downloads the latest version of FabFilter Pro-Q 3 and imports into Munki</string>
        <key>Identifier</key>
        <string>com.github.dataJAR-recipes.munki.FabFilter Pro-Q 3</string>
        <key>Input</key>
        <dict>
            <key>MUNKI_REPO_SUBDIR</key>
            <string>apps/%NAME%</string>
            <key>NAME</key>
            <string>FabFilter Pro-Q 3</string>
            <key>pkginfo</key>
            <dict>
                <key>catalogs</key>
                <array>
                    <string>testing</string>
                </array>
                <key>description</key>
                <string>High-quality equalizer plug-in</string>
                <key>developer</key>
                <string>FabFilter</string>
                <key>display_name</key>
                <string>FabFilter Pro-Q 3</string>
                <key>name</key>
                <string>%NAME%</string>
                <key>unattended_install</key>
                <true></true>
                <key>unattended_uninstall</key>
                <true></true>
            </dict>
        </dict>
        <key>MinimumVersion</key>
        <string>0.5.0</string>
        <key>ParentRecipe</key>
        <string>com.github.dataJAR-recipes.download.FabFilter Pro-Q 3</string>
        <key>Process</key>
        <array>
            <dict>
                <key>Arguments</key>
                <dict>
                    <key>pkg_path</key>
                    <string>%pathname%</string>
                    <key>repo_subdirectory</key>
                    <string>%MUNKI_REPO_SUBDIR%</string>
                </dict>
                <key>Processor</key>
                <string>MunkiImporter</string>
            </dict>
        </array>
    </dict>
</plist>
FabFilter Pro-Q 3/FabFilter Pro-Q 3.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of FabFilter Pro-Q 3</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.FabFilter Pro-Q 3</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>FabFilter Pro-Q 3</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.5.0</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Arguments</key>
            <dict>
                <key>re_pattern</key>
                <string>/downloads/ffproq3.*?.dmg</string>
                <key>url</key>
                <string>https://www.fabfilter.com/download</string>
            </dict>
            <key>Processor</key>
            <string>URLTextSearcher</string>
        </dict>
        <dict>
            <key>Arguments</key>
            <dict>
                <key>url</key>
                <string>https://www.fabfilter.com/%match%</string>
            </dict>
            <key>Processor</key>
            <string>URLDownloader</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
            <key>Arguments</key>
            <dict>
                <key>input_path</key>
                <string>%pathname%/*.pkg</string>
                <key>expected_authority_names</key>
                <array>
                    <string>Developer ID Installer: FabFilter (43SG2JNHFW)</string>
                    <string>Developer ID Certification Authority</string>
                    <string>Apple Root CA</string>
                </array>
            </dict>
        </dict>
    </array>
</dict>
</plist>
FabFilter Pro-MB/FabFilter Pro-MB.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
    <dict>
        <key>Description</key>
        <string>Downloads the latest version of FabFilter Pro-MB and imports into Munki</string>
        <key>Identifier</key>
        <string>com.github.dataJAR-recipes.munki.FabFilter Pro-MB</string>
        <key>Input</key>
        <dict>
            <key>MUNKI_REPO_SUBDIR</key>
            <string>apps/%NAME%</string>
            <key>NAME</key>
            <string>FabFilter Pro-MB</string>
            <key>pkginfo</key>
            <dict>
                <key>catalogs</key>
                <array>
                    <string>testing</string>
                </array>
                <key>description</key>
                <string>Professional multiband compressor and expander plug-in</string>
                <key>developer</key>
                <string>FabFilter</string>
                <key>display_name</key>
                <string>FabFilter Pro-MB</string>
                <key>name</key>
                <string>%NAME%</string>
                <key>unattended_install</key>
                <true></true>
                <key>unattended_uninstall</key>
                <true></true>
            </dict>
        </dict>
        <key>MinimumVersion</key>
        <string>0.5.0</string>
        <key>ParentRecipe</key>
        <string>com.github.dataJAR-recipes.download.FabFilter Pro-MB</string>
        <key>Process</key>
        <array>
            <dict>
                <key>Arguments</key>
                <dict>
                    <key>pkg_path</key>
                    <string>%pathname%</string>
                    <key>repo_subdirectory</key>
                    <string>%MUNKI_REPO_SUBDIR%</string>
                </dict>
                <key>Processor</key>
                <string>MunkiImporter</string>
            </dict>
        </array>
    </dict>
</plist>
FabFilter Pro-MB/FabFilter Pro-MB.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of FabFilter Pro-MB</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.FabFilter Pro-MB</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>FabFilter Pro-MB</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.5.0</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Arguments</key>
            <dict>
                <key>re_pattern</key>
                <string>/downloads/ffpromb.*?.dmg</string>
                <key>url</key>
                <string>https://www.fabfilter.com/download</string>
            </dict>
            <key>Processor</key>
            <string>URLTextSearcher</string>
        </dict>
        <dict>
            <key>Arguments</key>
            <dict>
                <key>url</key>
                <string>https://www.fabfilter.com/%match%</string>
            </dict>
            <key>Processor</key>
            <string>URLDownloader</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
            <key>Arguments</key>
            <dict>
                <key>input_path</key>
                <string>%pathname%/*.pkg</string>
                <key>expected_authority_names</key>
                <array>
                    <string>Developer ID Installer: FabFilter (43SG2JNHFW)</string>
                    <string>Developer ID Certification Authority</string>
                    <string>Apple Root CA</string>
                </array>
            </dict>
        </dict>
    </array>
</dict>
</plist>
FabFilter Pro-L 2/FabFilter Pro-L 2.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
    <dict>
        <key>Description</key>
        <string>Downloads the latest version of FabFilter Pro-L 2 and imports into Munki</string>
        <key>Identifier</key>
        <string>com.github.dataJAR-recipes.munki.FabFilter Pro-L 2</string>
        <key>Input</key>
        <dict>
            <key>MUNKI_REPO_SUBDIR</key>
            <string>apps/%NAME%</string>
            <key>NAME</key>
            <string>FabFilter Pro-L 2</string>
            <key>pkginfo</key>
            <dict>
                <key>catalogs</key>
                <array>
                    <string>testing</string>
                </array>
                <key>description</key>
                <string>True peak limiter plug-in</string>
                <key>developer</key>
                <string>FabFilter</string>
                <key>display_name</key>
                <string>FabFilter Pro-L 2</string>
                <key>name</key>
                <string>%NAME%</string>
                <key>unattended_install</key>
                <true></true>
                <key>unattended_uninstall</key>
                <true></true>
            </dict>
        </dict>
        <key>MinimumVersion</key>
        <string>0.5.0</string>
        <key>ParentRecipe</key>
        <string>com.github.dataJAR-recipes.download.FabFilter Pro-L 2</string>
        <key>Process</key>
        <array>
            <dict>
                <key>Arguments</key>
                <dict>
                    <key>pkg_path</key>
                    <string>%pathname%</string>
                    <key>repo_subdirectory</key>
                    <string>%MUNKI_REPO_SUBDIR%</string>
                </dict>
                <key>Processor</key>
                <string>MunkiImporter</string>
            </dict>
        </array>
    </dict>
</plist>
FabFilter Pro-L 2/FabFilter Pro-L 2.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of FabFilter Pro-L 2</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.FabFilter Pro-L 2</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>FabFilter Pro-L 2</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.5.0</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Arguments</key>
            <dict>
                <key>re_pattern</key>
                <string>/downloads/ffprol2.*?.dmg</string>
                <key>url</key>
                <string>https://www.fabfilter.com/download</string>
            </dict>
            <key>Processor</key>
            <string>URLTextSearcher</string>
        </dict>
        <dict>
            <key>Arguments</key>
            <dict>
                <key>url</key>
                <string>https://www.fabfilter.com/%match%</string>
            </dict>
            <key>Processor</key>
            <string>URLDownloader</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
            <key>Arguments</key>
            <dict>
                <key>input_path</key>
                <string>%pathname%/*.pkg</string>
                <key>expected_authority_names</key>
                <array>
                    <string>Developer ID Installer: FabFilter (43SG2JNHFW)</string>
                    <string>Developer ID Certification Authority</string>
                    <string>Apple Root CA</string>
                </array>
            </dict>
        </dict>
    </array>
</dict>
</plist>
FabFilter Pro-C 2/FabFilter Pro-C 2.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
    <dict>
        <key>Description</key>
        <string>Downloads the latest version of FabFilter Pro-C 2 and imports into Munki</string>
        <key>Identifier</key>
        <string>com.github.dataJAR-recipes.munki.FabFilter Pro-C 2</string>
        <key>Input</key>
        <dict>
            <key>MUNKI_REPO_SUBDIR</key>
            <string>apps/%NAME%</string>
            <key>NAME</key>
            <string>FabFilter Pro-C 2</string>
            <key>pkginfo</key>
            <dict>
                <key>catalogs</key>
                <array>
                    <string>testing</string>
                </array>
                <key>description</key>
                <string>High-quality compressor plug-in</string>
                <key>developer</key>
                <string>FabFilter</string>
                <key>display_name</key>
                <string>FabFilter Pro-C 2</string>
                <key>name</key>
                <string>%NAME%</string>
                <key>unattended_install</key>
                <true></true>
                <key>unattended_uninstall</key>
                <true></true>
            </dict>
        </dict>
        <key>MinimumVersion</key>
        <string>0.5.0</string>
        <key>ParentRecipe</key>
        <string>com.github.dataJAR-recipes.download.FabFilter Pro-C 2</string>
        <key>Process</key>
        <array>
            <dict>
                <key>Arguments</key>
                <dict>
                    <key>pkg_path</key>
                    <string>%pathname%</string>
                    <key>repo_subdirectory</key>
                    <string>%MUNKI_REPO_SUBDIR%</string>
                </dict>
                <key>Processor</key>
                <string>MunkiImporter</string>
            </dict>
        </array>
    </dict>
</plist>
FabFilter Pro-C 2/FabFilter Pro-C 2.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of FabFilter Pro-C 2</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.FabFilter Pro-C 2</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>FabFilter Pro-C 2</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.5.0</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Arguments</key>
            <dict>
                <key>re_pattern</key>
                <string>/downloads/ffproc2.*?.dmg</string>
                <key>url</key>
                <string>https://www.fabfilter.com/download</string>
            </dict>
            <key>Processor</key>
            <string>URLTextSearcher</string>
        </dict>
        <dict>
            <key>Arguments</key>
            <dict>
                <key>url</key>
                <string>https://www.fabfilter.com/%match%</string>
            </dict>
            <key>Processor</key>
            <string>URLDownloader</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
            <key>Arguments</key>
            <dict>
                <key>input_path</key>
                <string>%pathname%/*.pkg</string>
                <key>expected_authority_names</key>
                <array>
                    <string>Developer ID Installer: FabFilter (43SG2JNHFW)</string>
                    <string>Developer ID Certification Authority</string>
                    <string>Apple Root CA</string>
                </array>
            </dict>
        </dict>
    </array>
</dict>
</plist>
FLEXOPTIX App/FLEXOPTIX App.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.FLEXOPTIX App</string>
    <key>Description</key>
    <string>Downloads the current release version of Amazon Coretto 8 and imports it into Munki.</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>FLEXOPTIXApp</string>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>Applications</string>
        <key>pkginfo</key>
        <dict>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>category</key>
            <string>Applications</string>
            <key>description</key>
            <string>In order to keep all the reconfigure.me features available for you, we’ve decided to make our own application and while we were at it, gave it a nice clean up and new paint job.
The result is the FLEXOPTIX App, which comes with support for all common Windows, MacOS X and Linux operating systems as well as almost all the features you know and love.</string>
            <key>developer</key>
            <string>Flexoptix GmbH</string>
            <key>display_name</key>
            <string>FLEXOPTIX App</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
            <key>unattended_uninstall</key>
            <true/>
        </dict>
    </dict>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.FLEXOPTIX App</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%pathname%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>
FLEXOPTIX App/FLEXOPTIX App.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of FLEXOPTIX App.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.FLEXOPTIX App</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>FLEXOPTIXApp</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>URLTextSearcher</string>
            <key>Arguments</key>
            <dict>
                <key>re_pattern</key>
                <string>https://flexbox.reconfigure.me/download/electron/mac/x64/current</string>
                <key>result_output_var_name</key>
                <string>url</string>
                <key>url</key>
                <string>https://www.flexoptix.net/en/flexoptix-app/?os=mac</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>URLDownloader</string>
            <key>Arguments</key>
            <dict>
                <key>filename</key>
                <string>%NAME%.dmg</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
            <key>Arguments</key>
            <dict>
                <key>input_path</key>
                <string>%pathname%/FLEXOPTIX App.app</string>
                <key>requirement</key>
                <string>identifier "net.flexoptix.flexoptix.app" and anchor apple generic and 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] = C5JETSFPHL</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>
FFmpeg/FFmpeg.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of FFmpeg and imports into Munki.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.FFmpeg</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>FFmpeg</string>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>pkginfo</key>
        <dict>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>A complete, cross-platform solution to record, convert and stream audio and video.</string>
            <key>display_name</key>
            <string>FFmpeg</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.2.0</string>
    <key>ParentRecipe</key>
    <string>com.github.faumac.pkg.FFmpeg</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>MunkiPkginfoMerger</string>
            <key>Arguments</key>
            <dict>
                <key>additional_pkginfo</key>
                <dict>
                    <key>version</key>
                    <string>%version%</string>
                    <key>installcheck_script</key>
                    <string>#!/usr/local/munki/munki-python
# pylint: disable = invalid-name

'''
Copyright (c) 2021, dataJAR Ltd.  All rights reserved.
     Redistribution and use in source and binary forms, with or without
     modification, are permitted provided that the following conditions are met:
             * Redistributions of source code must retain the above copyright
               notice, this list of conditions and the following disclaimer.
             * Redistributions in binary form must reproduce the above copyright
               notice, this list of conditions and the following disclaimer in the
               documentation and/or other materials provided with the distribution.
             * Neither data JAR Ltd nor the names of its contributors may be used to
               endorse or promote products derived from this software without specific
               prior written permission.
     THIS SOFTWARE IS PROVIDED BY DATA JAR LTD 'AS IS' AND ANY
     EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
     WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
     DISCLAIMED. IN NO EVENT SHALL DATA JAR LTD BE LIABLE FOR ANY
     DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
     (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
     ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
     (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
     SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
SUPPORT FOR THIS PROGRAM
    This program is distributed 'as is' by DATA JAR LTD.
    For more information or support, please utilise the following resources:
            http://www.datajar.co.uk

DESCRIPTION

See docstring in main()

'''

from distutils.version import LooseVersion
import os
import sys
import subprocess


def main():
    '''
        Get ffmpeg version (if installed)

        Exit 1 if ffmpeg is installed and newer than what we have in Munki

        Based on:
        https://github.com/autopkg/andrewzirkel-recipes/blob/master/LightspeedRelaySmartAgent/LightspeedRelaySmartAgent.munki.recipe#L46
    '''

    ffmpeg_binary = '/usr/local/bin/ffmpeg'
    munki_version = '%version%'

    # If the binary exists
    if os.path.isfile(ffmpeg_binary):

        try:
            installed_ver = subprocess.check_output([ffmpeg_binary, '-version']).split()[2].decode('utf-8').split('-')[0]
        except subprocess.CalledProcessError:
            print("Encountered an error when ascertaining ffmpeg version, "
                  "proceeding with install...")
            sys.exit(0)

        if LooseVersion(installed_ver) &lt; LooseVersion(munki_version):
            print("Version of ffmpeg older than the munki version, proceeding with install...")
            sys.exit(0)

        print("Version of ffmpeg same or newer than the munki version, skipping...")
        sys.exit(1)

    print("Cannot locate ffmpeg binary, proceeding with install...")
    sys.exit(0)

if __name__ == '__main__':
    main()
</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%pkg_path%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>
EyeJack Creator 2021/EyeJack Creator 2021.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of EyeJack Creator 2021 and imports into Munki</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.EyeJack Creator 2021</string>
    <key>Input</key>
    <dict>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>NAME</key>
        <string>EyeJack Creator 2021</string>
        <key>pkginfo</key>
        <dict>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>EyeJack Creator helps you bring art to life with animation and sound in 3 easy steps.</string>
            <key>developer</key>
            <string>EyeJack</string>
            <key>display_name</key>
            <string>EyeJack Creator 2021</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
            <key>unattended_uninstall</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.5.0</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.EyeJack Creator 2021</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%pathname%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>

EyeJack Creator 2021/EyeJack Creator 2021.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of EyeJack Creator 2021</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.EyeJack Creator 2021</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>EyeJack Creator 2021</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.5.0</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>URLTextSearcher</string>
            <key>Arguments</key>
            <dict>
                <key>re_pattern</key>
                <string>EyeJack Creator (2021\S*\.dmg)</string>
                <key>result_output_var_name</key>
                <string>match</string>
                <key>url</key>
                <string>https://s3.amazonaws.com/eyejack-creator-2020/prd/mac/latest-mac.yml</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>URLDownloader</string>
            <key>Arguments</key>
            <dict>
                <key>url</key>
                <string>https://s3.amazonaws.com/eyejack-creator-2020/prd/mac/EyeJack+Creator+%match%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
            <key>Arguments</key>
            <dict>
                <key>input_path</key>
                <string>%pathname%/EyeJack Creator 2021.app</string>
                <key>requirement</key>
                <string>identifier "com.eyejackapp.creator" and anchor apple generic and 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] = "69N5JPMK3Q"</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>

ExpressVPN/ExpressVPN.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of the ExpressVPN and imports it into Munki.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.ExpressVPN</string>
    <key>Input</key>
    <dict>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>NAME</key>
        <string>ExpressVPN</string>
        <key>pkginfo</key>
        <dict>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>The VPN that just works.</string>
            <key>display_name</key>
            <string>ExpressVPN</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.ExpressVPN</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>FlatPkgUnpacker</string>
            <key>Arguments</key>
            <dict>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/unpack</string>
                <key>flat_pkg_path</key>
                <string>%pathname%</string>
                <key>purge_destination</key>
                <true/>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PkgPayloadUnpacker</string>
            <key>Arguments</key>
            <dict>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%/Applications/</string>
                <key>pkg_payload_path</key>
                <string>%RECIPE_CACHE_DIR%/unpack/ExpressVPN.pkg/payload</string>
                <key>purge_destination</key>
                <true/>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiInstallsItemsCreator</string>
            <key>Arguments</key>
            <dict>
                <key>faux_root</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%</string>
                <key>installs_item_paths</key>
                <array>
                    <string>/Applications/ExpressVPN.app</string>
                </array>
                <key>version_comparison_key</key>
                <string>CFBundleShortVersionString</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiPkginfoMerger</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PlistReader</string>
            <key>Arguments</key>
            <dict>
                <key>info_path</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%/Applications/ExpressVPN.app/Contents/Info.plist</string>
                <key>plist_keys</key>
                <dict>
                    <key>CFBundleShortVersionString</key>
                    <string>version</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiPkginfoMerger</string>
            <key>Arguments</key>
            <dict>
                <key>additional_pkginfo</key>
                <dict>
                    <key>version</key>
                    <string>%version%</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%pathname%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PathDeleter</string>
            <key>Arguments</key>
            <dict>
                <key>path_list</key>
                <array>
                    <string>%RECIPE_CACHE_DIR%/%NAME%</string>
                    <string>%RECIPE_CACHE_DIR%/unpack</string>
                </array>
            </dict>
        </dict>
    </array>
</dict>
</plist>
ExpressVPN/ExpressVPN.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of the ExpressVPN.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.ExpressVPN</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>ExpressVPN</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>URLTextSearcher</string>
            <key>Arguments</key>
            <dict>
                <key>re_pattern</key>
                <string>https://www\.expressvpn\.works/clients/mac/expressvpn_mac_.*?_release\.pkg</string>
                <key>url</key>
                <string>https://www.expressvpn.com/latest#mac</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>URLDownloader</string>
            <key>Arguments</key>
            <dict>
                <key>url</key>
                <string>%match%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
            <key>Arguments</key>
            <dict>
                <key>input_path</key>
                <string>%pathname%</string>
                <key>expected_authority_names</key>
                <array>
                    <string>Developer ID Installer: ExprsVPN LLC (VMES9GFUQJ)</string>
                    <string>Developer ID Certification Authority</string>
                    <string>Apple Root CA</string>
                </array>
            </dict>
        </dict>
    </array>
</dict>
</plist>
Exposure X5/Exposure X5.pkg.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of Exposure X5 and creates a package</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.pkg.Exposure X5</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>Exposure X5</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.5.0</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.Exposure X5</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Arguments</key>
            <dict>
                <key>pkgdirs</key>
                <dict></dict>
                <key>pkgroot</key>
                <string>%RECIPE_CACHE_DIR%/pkgroot</string>
            </dict>
            <key>Processor</key>
            <string>PkgRootCreator</string>
        </dict>
        <dict>
            <key>Arguments</key>
            <dict>
                <key>pkgdirs</key>
                <dict></dict>
                <key>pkgroot</key>
                <string>%RECIPE_CACHE_DIR%/Scripts</string>
            </dict>
            <key>Processor</key>
            <string>PkgRootCreator</string>
        </dict>
        <dict>
            <key>Arguments</key>
            <dict>
                <key>input_plist_path</key>
                <string>%pathname%/Exposure X5 Installer.app/Contents/Resources/files/HD/Applications/Exposure X5.app/Contents/Info.plist</string>
                <key>plist_version_key</key>
                <string>CFBundleShortVersionString</string>
            </dict>
            <key>Processor</key>
            <string>Versioner</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>Copier</string>
            <key>Arguments</key>
            <dict>
                <key>source_path</key>
                <string>%pathname%</string>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/Scripts/Exposure X5 Installer.dmg</string>
                <key>overwrite</key>
                <true></true>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>FileCreator</string>
            <key>Arguments</key>
            <dict>
                <key>file_path</key>
                <string>%RECIPE_CACHE_DIR%/Scripts/postinstall</string>
                <key>file_mode</key>
                <string>0755</string>
                <key>file_content</key>
                <string>#!/bin/sh

# Determine working directory
install_dir=$(dirname $0)

# Install the Exposure X5 application using the Install binary's silent install mode
/usr/bin/hdiutil attach "${install_dir}/Exposure X5 Installer.dmg" -nobrowse
"/Volumes/Exposure X5 Installer/Exposure X5 Installer.app/Contents/MacOS/Exposure X5 Installer" -quiet</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PkgCreator</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_request</key>
                <dict>
                    <key>pkgroot</key>
                    <string>%RECIPE_CACHE_DIR%/pkgroot</string>
                    <key>pkgname</key>
                    <string>%NAME%-%version%</string>
                    <key>pkgtype</key>
                    <string>flat</string>
                    <key>id</key>
                    <string>com.alienskin.ExposureX5.pkg</string>
                    <key>version</key>
                    <string>%version%</string>
                    <key>scripts</key>
                    <string>Scripts</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PathDeleter</string>
            <key>Arguments</key>
            <dict>
                <key>path_list</key>
                <array>
                    <string>%RECIPE_CACHE_DIR%/pkgroot</string>
                    <string>%RECIPE_CACHE_DIR%/Scripts</string>
                </array>
            </dict>
        </dict>
    </array>
</dict>
</plist>
Exposure X5/Exposure X5.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>Description</key>
	<string>Downloads the latest version of Exposure X5 and imports into Munki</string>
	<key>Identifier</key>
	<string>com.github.dataJAR-recipes.munki.Exposure X5</string>
	<key>Input</key>
	<dict>
		<key>MUNKI_REPO_SUBDIR</key>
		<string>apps/%NAME%</string>
		<key>NAME</key>
		<string>Exposure X5</string>
		<key>pkginfo</key>
		<dict>
			<key>catalogs</key>
			<array>
				<string>testing</string>
			</array>
			<key>description</key>
			<string>Exposure X5 is the creative photo editor that handles every step of your workflow.</string>
			<key>developer</key>
			<string>Exposure Software</string>
			<key>display_name</key>
			<string>Exposure X5</string>
			<key>name</key>
			<string>%NAME%</string>
			<key>unattended_install</key>
			<true></true>
			<key>unattended_uninstall</key>
			<true></true>
			<key>preuninstall_script</key>
			<string>#!/bin/sh
			
uninstallHelper="/Applications/Exposure Software/Exposure X5 Uninstaller.app/Contents/MacOS/UninstallerHelper"
logFilePath="/Library/Application Support/Alien Skin/Exposure X5 Installer.log"

if [ ! -e "${uninstallHelper}" ]; then
/bin/echo "Uninstaller not found, exiting..."
exit 0
fi

"${uninstallHelper}" UninstallLogFile path "${logFilePath}"</string>
		</dict>
	</dict>
	<key>MinimumVersion</key>
	<string>0.5.0</string>
	<key>ParentRecipe</key>
	<string>com.github.dataJAR-recipes.pkg.Exposure X5</string>
	<key>Process</key>
	<array>
		<dict>
			<key>Processor</key>
			<string>PkgRootCreator</string>
			<key>Arguments</key>
			<dict>
				<key>pkgroot</key>
				<string>%RECIPE_CACHE_DIR%/pkgroot/</string>
				<key>pkgdirs</key>
				<dict>
					<key>Applications</key>
					<string>0775</string>
				</dict>
			</dict>
		</dict>
		<dict>
			<key>Processor</key>
			<string>Copier</string>
			<key>Arguments</key>
			<dict>
				<key>source_path</key>
				<string>%pathname%/Exposure X5 Installer.app/Contents/Resources/files/HD/Applications/Exposure X5.app</string>
				<key>destination_path</key>
				<string>%pkgroot%/Applications/Exposure X5.app</string>
				<key>overwrite</key>
				<true/>
			</dict>
		</dict>
		<dict>
			<key>Processor</key>
			<string>MunkiInstallsItemsCreator</string>
			<key>Arguments</key>
			<dict>
				<key>faux_root</key>
				<string>%pkgroot%</string>
				<key>installs_item_paths</key>
				<array>
					<string>/Applications/Exposure X5.app</string>
				</array>
			</dict>
		</dict>
		<dict>
			<key>Processor</key>
			<string>MunkiPkginfoMerger</string>
		</dict>
		<dict>
			<key>Processor</key>
			<string>MunkiImporter</string>
			<key>Arguments</key>
			<dict>
				<key>pkg_path</key>
				<string>%pkg_path%</string>
				<key>repo_subdirectory</key>
				<string>%MUNKI_REPO_SUBDIR%</string>
			</dict>
		</dict>
        <dict>
            <key>Processor</key>
            <string>PathDeleter</string>
            <key>Arguments</key>
            <dict>
                <key>path_list</key>
                <array>
                    <string>%RECIPE_CACHE_DIR%/pkgroot</string>
                </array>
            </dict>
        </dict>
	</array>
</dict>
</plist>
Exposure X5/Exposure X5.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of Exposure X5</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.Exposure X5</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>Exposure X5</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.5.0</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>URLTextSearcher</string>
            <key>Arguments</key>
            <dict>
                <key>re_pattern</key>
                <string>&lt;h2&gt;(5\.[^a-z]*)&lt;\/h2&gt;</string>
                <key>result_output_var_name</key>
                <string>EXPOSURE_VERSION</string>
                <key>request_headers</key>
                <dict>
                    <key>user-agent</key>
                    <string>Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.116 Safari/537.36</string>
                </dict>
                <key>url</key>
                <string>https://exposure.software/exposure/x5-release-notes/</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>URLDownloader</string>
            <key>Arguments</key>
            <dict>
                <key>request_headers</key>
                <dict>
                    <key>user-agent</key>
                    <string>Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.116 Safari/537.36</string>
                </dict>
                <key>url</key>
                <string>https://cdn.exposure.software/downloads/exposure-x5-%EXPOSURE_VERSION%.dmg</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
            <key>Arguments</key>
            <dict>
                <key>input_path</key>
                <string>%pathname%/Exposure X5 Installer.app/Contents/Resources/files/HD/Applications/Exposure X5.app</string>
                <key>requirement</key>
                <string>anchor apple generic and identifier "com.alienskin.exposureX5" 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] = J5B52CMB62)</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>
Ekahau Pro/EkahauPro.png METASEP

Ekahau Pro/Ekahau Pro.pkg.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest unlicensed version of Ekahau Pro and turns it into a package.
    NOTE: When launching this App there are PPPC prompts for sh and java.
    This .pkg recipe can handle the sh prompt but the java prompt seems unavoidable</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.pkg.Ekahau Pro</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>Ekahau Pro</string>
         <key>LANGUAGE</key>
        <string>en</string>      
        <!--This will set the lanugaue for Ekahau Pro to avoid one ofthe two PPPC prompts --> 
        <!--Acceptable values for this are: -->
        <!--"en" for English -->
        <!--"fr" for French / Française -->
        <!--"de" for German / Deutsche -->
        <!--"ja" for Japanese / 日本人-->
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.Ekahau Pro</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>com.github.homebysix.VersionSplitter/VersionSplitter</string>
            <key>Arguments</key>
            <dict>
                <key>version</key>
                <string>%url%</string>
                <key>index</key>
                <integer>1</integer>
                <key>split_on</key>
                <string>-</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>com.github.homebysix.VersionSplitter/VersionSplitter</string>
            <key>Arguments</key>
            <dict>
                <key>version</key>
                <string>%version%</string>
                <key>index</key>
                <integer>0</integer>
                <key>split_on</key>
                <string>.dmg</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PkgRootCreator</string>
            <key>Arguments</key>
            <dict>
                <key>pkgroot</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%</string>
                <key>pkgdirs</key>
                <dict>
                    <key>Applications</key>
                    <string>0775</string>
                    <key>Scripts</key>
                    <string>0775</string>
                </dict>
            </dict>
        </dict>
         <dict>
            <key>Processor</key>
            <string>FileMover</string>
            <key>Arguments</key>
            <dict>
               <key>source</key>
               <string>%RECIPE_CACHE_DIR%/%NAME%/Scripts</string>
               <key>target</key>
               <string>%RECIPE_CACHE_DIR%/Scripts</string>
            </dict>
         </dict>
        <dict>
            <key>Processor</key>
            <string>FileCreator</string>
            <key>Arguments</key>
            <dict>
                <key>file_path</key>
                <string>%RECIPE_CACHE_DIR%/Scripts/postinstall</string>
                <key>file_mode</key>
                <string>0755</string>
                <key>file_content</key>
                <string>#!/bin/bash

##########################################################################################
#
# Copyright (c) 2020, dataJAR Ltd.  All rights reserved.
#
#       Redistribution and use in source and binary forms, with or without
#       modification, are permitted provided that the following conditions are met:
#               * Redistributions of source code must retain the above copyright
#                 notice, this list of conditions and the following disclaimer.
#               * Redistributions in binary form must reproduce the above copyright
#                 notice, this list of conditions and the following disclaimer in the
#                 documentation and/or other materials provided with the distribution.
#               * Neither data JAR Ltd nor the
#                 names of its contributors may be used to endorse or promote products
#                 derived from this software without specific prior written permission.
#
#       THIS SOFTWARE IS PROVIDED BY DATA JAR LTD "AS IS" AND ANY
#       EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
#       WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
#       DISCLAIMED. IN NO EVENT SHALL DATA JAR LTD BE LIABLE FOR ANY
#       DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
#       (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
#       LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
#       ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
#       (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
#       SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#
##########################################################################################
#
# SUPPORT FOR THIS PROGRAM
#
#       This program is distributed "as is" by DATA JAR LTD.
#       For more information or support, please utilise the following resources:
#
#               http://www.datajar.co.uk
#
##########################################################################################
#
# DESCRIPTION
# 
#   Sets the required file for the language chooser to not be shown by pre-setting it.
#
##########################################################################################

##########################################################################################
################################### Global Variables #####################################
##########################################################################################

# Overall name of the family of software we are installing
swTitle="gen-script-autopkg-ekanhaupro-postinstall"

# Log directory
debugDir="/var/log/managed"

# Log file
debugFile="${debugDir}/${swTitle}.log"

# Script Version
ver="1.0"

# Language
language="%LANGUAGE%"

##########################################################################################
#################################### Start functions #####################################
##########################################################################################


setup()
{

    # Make sure we're root and creating logging dirs

    if [ "$(id -u)" != "0" ]
    then
        /bin/echo "This script must be run as root"
        exit 1
    fi

    if [ ! -d "{debugDir}" ]
    then
        /bin/mkdir -p "${debugDir}"
        /bin/chmod -R 777 "${debugDir}"
    fi

    if [ ! -f "${debugFile}" ]
    then
        /usr/bin/touch "${debugFile}"
    fi

}


start()
{

    # Logging start

    {

        /bin/echo
        /bin/echo "###################-START-##################"
        /bin/echo
        /bin/echo "dataJAR IT Services"
        /bin/echo "Running ${swTitle} ${ver}"
        /bin/echo
        /bin/echo "Started: $(/bin/date)"
        /bin/echo

    } | /usr/bin/tee "${debugFile}"

}


finish()
{

    # Logging finish

    {

        /bin/echo
        /bin/echo "Finished: $(/bin/date)"
        /bin/echo
        /bin/echo "###################-END-###################"

    } | /usr/bin/tee -a "${debugFile}"

}


setLanguage ()
{

    # Write the Language key to file, overwriting the Language if exists

    {

        if [ -z "${language}" ]
        then
            /bin/echo "ERROR: The parameter 'language' is blank. Exiting..."
            exit 1
        else
            /bin/echo "Creating /Applications/Ekahau Pro.app/Contents/Java, if missing..."
            /bin/mkdir -p "/Applications/Ekahau Pro.app/Contents/Java"
            /bin/echo "Creating /Applications/Ekahau Pro.app/Contents/Java/LANGUAGE, if missing..."
            /usr/bin/touch "/Applications/Ekahau Pro.app/Contents/Java/LANGUAGE"
            /bin/echo "Writing language to LANGUAGE..."
            /bin/echo "${language}" > "/Applications/Ekahau Pro.app/Contents/Java/LANGUAGE"
       fi
    } | /usr/bin/tee -a "${debugFile}"
}   


##########################################################################################
#################################### End functions #######################################
##########################################################################################


setup
start
if ! setLanguage;
then
    finish
    exit 1
else
    finish
fi</string> 
            </dict>
        </dict>             
        <dict>
            <key>Processor</key>
            <string>Copier</string>
            <key>Arguments</key>
            <dict>
                <key>source_path</key>
                <string>%pathname%/Ekahau Pro.app</string>
                <key>destination_path</key>
                <string>%pkgroot%/Applications/Ekahau Pro.app</string>
                <key>overwrite</key>
                <true/>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PlistReader</string>
            <key>Arguments</key>
            <dict>
                <key>info_path</key>
                <string>%destination_path%</string>
                <key>plist_keys</key>
                <dict>
                    <key>CFBundleIdentifier</key>
                    <string>bundleid</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PkgCreator</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_request</key>
                <dict>
                    <key>pkgname</key>
                    <string>%NAME%-%LANGUAGE%-%version%</string>
                    <key>chown</key>
                    <array>
                        <dict>
                            <key>path</key>
                            <string>Applications</string>
                            <key>user</key>
                            <string>root</string>
                            <key>group</key>
                            <string>admin</string>
                        </dict>
                    </array>
                    <key>id</key>
                    <string>%bundleid%</string>
                    <key>options</key>
                    <string>purge_ds_store</string>
                    <key>pkgdir</key>
                    <string>%RECIPE_CACHE_DIR%</string>
                    <key>pkgroot</key>
                    <string>%pkgroot%</string>
                    <key>version</key>
                    <string>%version%</string>
                    <key>scripts</key>
                    <string>Scripts</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PathDeleter</string>
            <key>Arguments</key>
            <dict>
                <key>path_list</key>
                <array>
                    <string>%pkgroot%</string>    
                    <string>%RECIPE_CACHE_DIR%/Scripts</string>                 
                </array>
            </dict>
        </dict>
    </array>
</dict>
</plist>

Ekahau Pro/Ekahau Pro.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest unlicensed version of Ekahau Pro, turns it into a package to add to Munki.
    NOTE: When launching this App there are PPPC prompts for sh and java.
    The parent .pkg recipe can handle the sh prompt but the java prompt seems unavoidable</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.Ekahau Pro</string>
    <key>Input</key>
    <dict>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>NAME</key>
        <string>Ekahau Pro</string>
        <key>LANGUAGE</key>
        <string>en</string>      
        <!--This will set the lanugaue for Ekahau Pro to avoid one of the two PPPC prompts --> 
        <!--Acceptable values for this are: -->
        <!--"en" for English -->
        <!--"fr" for French / Française -->
        <!--"de" for German / Deutsche -->
        <!--"ja" for Japanese / 日本人-->
        <key>pkginfo</key>
        <dict> 
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>Industry standard tool for designing, analyzing, optimizing and troubleshooting WiFi Networks.</string>
            <key>display_name</key>
            <string>Ekahau Pro</string>
            <key>name</key>
            <string>EkahauPro</string>
            <key>unattended_install</key>
            <true/>
            <key>unattended_uninstall</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.pkg.Ekahau Pro</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%pkg_path%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>
Ekahau Pro/Ekahau Pro.jss.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest unlicensed version of Ekahau Pro, turns it into a package to add to Jamf.
    NOTE: When launching this App there are PPPC prompts for sh and java.
    The parent .pkg recipe can handle the sh prompt but the java prompt seems unavoidable</string>    
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.jss.Ekahau Pro</string>
    <key>Input</key>
    <dict>
        <key>CATEGORY</key>
        <string>Applications</string>
        <key>GROUP_NAME</key>
        <string>%NAME%-update-smart</string>
        <key>GROUP_TEMPLATE</key>
        <string>SmartGroupTemplate.xml</string>
        <key>NAME</key>
        <string>Ekahau Pro</string>
        <key>POLICY_CATEGORY</key>
        <string>Testing</string>
        <key>POLICY_TEMPLATE</key>
        <string>PolicyTemplate.xml</string>
        <key>SELF_SERVICE_DESCRIPTION</key>
        <string>Industry standard tool for designing, analyzing, optimizing and troubleshooting WiFi Networks.</string>
        <key>SELF_SERVICE_ICON</key>
        <string>EkahauPro.png</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.pkg.Ekahau Pro</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>JSSImporter</string>
            <key>Arguments</key>
            <dict>
                <key>category</key>
                <string>%CATEGORY%</string>
                <key>groups</key>
                <array>
                    <dict>
                        <key>name</key>
                        <string>%GROUP_NAME%</string>
                        <key>smart</key>
                        <true/>
                        <key>template_path</key>
                        <string>%GROUP_TEMPLATE%</string>
                    </dict>
                </array>
                <key>policy_category</key>
                <string>%POLICY_CATEGORY%</string>
                <key>policy_template</key>
                <string>%POLICY_TEMPLATE%</string>
                <key>prod_name</key>
                <string>Foldr</string>
                <key>self_service_description</key>
                <string>%SELF_SERVICE_DESCRIPTION%</string>
                <key>self_service_icon</key>
                <string>%SELF_SERVICE_ICON%</string>
                <key>version</key>
                <string>%version%</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>

Ekahau Pro/Ekahau Pro.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Download recipe for the latest unlicensed version of Ekahau Pro.
    NOTE: When launching this App there are PPPC prompts for sh and java.
    The .pkg recipe can handle the sh prompt but the java prompt seems unavoidable</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.Ekahau Pro</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>Ekahau Pro</string>
        <key>SEARCH_URL</key>
        <string>https://sw.ekahau.com/download/pro/</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>URLTextSearcher</string>
            <key>Arguments</key>
            <dict>
                <key>url</key>
                <string>%SEARCH_URL%</string>
                <key>re_pattern</key>
                <string>(https://sw\.ekahau\.com/download/pro/setup/EkahauPro-.*\.dmg)</string>
                <key>result_output_var_name</key>
                <string>url</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>URLDownloader</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
            <key>Arguments</key>
            <dict>
                <key>input_path</key>
                <string>%pathname%/Ekahau Pro.app</string>
                <key>requirement</key>
                <string>identifier "com.ekahau.wifidesign.ess" and anchor apple generic and 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] = "456L77HQ44"</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>

Egnyte Drive/EgnyteDrive.png METASEP

Egnyte Drive/EgnyteDrive-SmartGroupTemplate.xml METASEP
<computer_group>
	<name>%group_name%</name>
	<is_smart>true</is_smart>
	<criteria>
		<criterion>
			<name>Packages Installed By Casper</name>
			<priority>0</priority>
			<and_or>and</and_or>
			<search_type>does not have</search_type>
			<value>%NAME%-%version%.pkg</value>
		</criterion>
        <criterion>
            <name>Computer Group</name>
            <priority>1</priority>
            <and_or>and</and_or>
            <search_type>member of</search_type>
            <value>Testing</value>
        </criterion>
	</criteria>
</computer_group>

Egnyte Drive/Egnyte Drive.pkg.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>Description</key>
	<string>PKG recipe for Egnyte Drive.</string>
	<key>Identifier</key>
	<string>com.github.dataJAR-recipes.pkg.Egnyte Drive</string>
	<key>Input</key>
	<dict>
		<key>NAME</key>
		<string>Egnyte Drive</string>
	</dict>
	<key>MinimumVersion</key>
	<string>1.0.1</string>
	<key>ParentRecipe</key>
	<string>com.github.dataJAR-recipes.download.Egnyte Drive</string>
	<key>Process</key>
	<array>
		<dict>
			<key>Arguments</key>
			<dict>
				<key>source</key>
				<string>%pathname%</string>
				<key>target</key>
				<string>%RECIPE_CACHE_DIR%/%NAME%-%version%.pkg</string>
			</dict>
			<key>Processor</key>
			<string>FileMover</string>
		</dict>
	</array>
</dict>
</plist>

Egnyte Drive/Egnyte Drive.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>Description</key>
	<string>Downloads the latest Egnyte Drive package and imports into Munki.</string>
	<key>Identifier</key>
	<string>com.github.dataJAR-recipes.nunki.EgnyteDrive</string>
	<key>Input</key>
	<dict>
		<key>NAME</key>
		<string>Egnyte Drive</string>
		<key>MUNKI_REPO_SUBDIR</key>
		<string>apps/%NAME%</string>
		<key>pkginfo</key>
		<dict>
			<key>catalogs</key>
			<array>
				<string>testing</string>
			</array>
   			<key>blocking_applications</key>
    			<array>
    				<string>Egnyte Drive</string>
    			</array>
			<key>category</key>
			<string>Applications</string>
			<key>developer</key>
			<string>Egnyte</string>
			<key>description</key>
			<string>Easily browse all the Egnyte files and folders that you have access to directly from Mac Finder.</string>
			<key>display_name</key>
			<string>Egnyte Drive</string>
			<key>name</key>
			<string>%NAME%</string>
			<key>unattended_install</key>
			<true/>
		</dict>
	</dict>
	<key>MinimumVersion</key>
	<string>0.2.0</string>
	<key>ParentRecipe</key>
	<string>com.github.dataJAR-recipes.download.Egnyte Drive</string>
	<key>Process</key>
	<array>
		<dict>
			<key>Processor</key>
			<string>MunkiImporter</string>
			<key>Arguments</key>
			<dict>
				<key>pkg_path</key>
				<string>%pathname%</string>
				<key>repo_subdirectory</key>
				<string>%MUNKI_REPO_SUBDIR%</string>
			</dict>
		</dict>
	</array>
</dict>
</plist>

Egnyte Drive/Egnyte Drive.jss.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>Description</key>
	<string>Downloads the latest Egnyte Drive package and then uploads to the JSS.</string>
	<key>Identifier</key>
	<string>com.github.dataJAR-recipes.jss.EgnyteDrive</string>
	<key>Input</key>
	<dict>
		<key>CATEGORY</key>
		<string>Productivity</string>
		<key>GROUP_NAME</key>
		<string>%NAME%-update-smart</string>
		<key>GROUP_TEMPLATE</key>
		<string>EgnyteDrive-SmartGroupTemplate.xml</string>
		<key>NAME</key>
		<string>Egnyte Drive</string>
		<key>POLICY_CATEGORY</key>
		<string>Testing</string>
		<key>POLICY_TEMPLATE</key>
		<string>PolicyTemplate.xml</string>
		<key>SELF_SERVICE_DESCRIPTION</key>
		<string>Easily browse all the Egnyte files and folders that you have access to directly from Mac Finder.</string>
		<key>SELF_SERVICE_ICON</key>
		<string>EgnyteDrive.png</string>
	</dict>
	<key>MinimumVersion</key>
	<string>0.6.1</string>
	<key>ParentRecipe</key>
	<string>com.github.dataJAR-recipes.pkg.Egnyte Drive</string>
	<key>Process</key>
	<array>
		<dict>
			<key>Arguments</key>
			<dict>
				<key>category</key>
				<string>%CATEGORY%</string>
				<key>groups</key>
				<array>
					<dict>
						<key>name</key>
						<string>%GROUP_NAME%</string>
						<key>smart</key>
						<true/>
						<key>template_path</key>
						<string>%GROUP_TEMPLATE%</string>
					</dict>
				</array>
				<key>pkg_path</key>
				<string>%target%</string>
				<key>policy_category</key>
				<string>%POLICY_CATEGORY%</string>
				<key>policy_template</key>
				<string>%POLICY_TEMPLATE%</string>
				<key>prod_name</key>
				<string>%NAME%</string>
				<key>self_service_description</key>
				<string>%SELF_SERVICE_DESCRIPTION%</string>
				<key>self_service_icon</key>
				<string>%SELF_SERVICE_ICON%</string>
				<key>version</key>
				<string>%version%</string>
			</dict>
			<key>Processor</key>
			<string>JSSImporter</string>
		</dict>
	</array>
</dict>
</plist>

Egnyte Drive/Egnyte Drive.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of Egnyte Drive.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.Egnyte Drive</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>Egnyte Drive</string>
    </dict>
    <key>MinimumVersion</key>
    <string>1.1</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>DeprecationWarning</string>
            <key>Arguments</key>
            <dict>
                <key>warning_message</key>
                <string>Egnyte Drive has been replaced with Egyte Connect. Recipes are available for Egnyte Connect.</string>
            </dict>
        </dict>
        <dict>   
            <key>Processor</key>   
            <string>StopProcessingIf</string>   
            <key>Arguments</key>   
            <dict>   
                <key>predicate</key>   
                <string>TRUEPREDICATE</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>
Egnyte Desktop Sync NoPrefs/EgnyteDesktopSync.png METASEP

Egnyte Desktop Sync NoPrefs/EgnyteDesktopSync-SmartGroupTemplate.xml METASEP
<computer_group>
	<name>%group_name%</name>
	<is_smart>true</is_smart>
	<criteria>
		<criterion>
			<name>Packages Installed By Casper</name>
			<priority>0</priority>
			<and_or>and</and_or>
			<search_type>does not have</search_type>
			<value>%NAME%-%version%.pkg</value>
		</criterion>
        <criterion>
            <name>Computer Group</name>
            <priority>1</priority>
            <and_or>and</and_or>
            <search_type>member of</search_type>
            <value>Testing</value>
        </criterion>
	</criteria>
</computer_group>

Egnyte Desktop Sync NoPrefs/Egnyte Desktop Sync NoPrefs.pkg.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>PKG recipe for Egnyte Desktop Sync.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.pkg.Egnyte Desktop Sync NoPrefs</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>Egnyte Drive</string>
    </dict>
    <key>MinimumVersion</key>
    <string>1.0.1</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.Egnyte Desktop Sync NoPrefs</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>FileMover</string>
            <key>Arguments</key>
            <dict>
                <key>source</key>
                <string>%pathname%</string>
                <key>target</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%-%version%.pkg</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>

Egnyte Desktop Sync NoPrefs/Egnyte Desktop Sync NoPrefs.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>Description</key>
	<string>Downloads the latest Egnyte Desktop Sync package and imports into Munki.</string>
	<key>Identifier</key>
	<string>com.github.dataJAR-recipes.munki.Egnyte Desktop Sync NoPrefs</string>
	<key>Input</key>
	<dict>
		<key>NAME</key>
		<string>Egnyte Desktop Sync</string>
		<key>MUNKI_REPO_SUBDIR</key>
		<string>apps/%NAME%</string>
		<key>pkginfo</key>
		<dict>
			<key>catalogs</key>
			<array>
				<string>testing</string>
			</array>
			<key>category</key>
			<string>Applications</string>
			<key>developer</key>
			<string>Egnyte</string>
			<key>description</key>
			<string>Keep a local copy of files on your Egnyte cloud storage using this desktop sync agent.</string>
			<key>display_name</key>
			<string>Egnyte Desktop Sync</string>
			<key>name</key>
			<string>%NAME%</string>
			<key>unattended_install</key>
			<true/>
		</dict>
	</dict>
	<key>MinimumVersion</key>
	<string>0.2.0</string>
	<key>ParentRecipe</key>
	<string>com.github.dataJAR-recipes.download.Egnyte Desktop Sync NoPrefs</string>
	<key>Process</key>
	<array>
		<dict>
			<key>Processor</key>
			<string>FlatPkgUnpacker</string>
			<key>Arguments</key>
			<dict>
				<key>flat_pkg_path</key>
				<string>%pathname%</string>
				<key>destination_path</key>
				<string>%RECIPE_CACHE_DIR%/unpack</string>
			</dict>
		</dict>
		<dict>
			<key>Processor</key>
			<string>PkgRootCreator</string>
			<key>Arguments</key>
			<dict>
				<key>pkgroot</key>
				<string>%RECIPE_CACHE_DIR%/pkgroot/</string>
				<key>pkgdirs</key>
				<dict>
					<key>Applications</key>
					<string>0755</string>
				</dict>
	            <key>purge_destination</key>
                <true/>
			</dict>
		</dict>
		<dict>
			<key>Processor</key>
			<string>PkgPayloadUnpacker</string>
			<key>Arguments</key>
			<dict>
				<key>destination_path</key>
				<string>%RECIPE_CACHE_DIR%/pkgroot/Applications</string>
				<key>pkg_payload_path</key>
				<string>%RECIPE_CACHE_DIR%/unpack/EgnyteSD.pkg/Payload</string>
			</dict>
		</dict>
		<dict>
			<key>Processor</key>
			<string>MunkiInstallsItemsCreator</string>
			<key>Arguments</key>
			<dict>
				<key>faux_root</key>
				<string>%RECIPE_CACHE_DIR%/pkgroot</string>
				<key>installs_item_paths</key>
				<array>
					<string>/Applications/Egnyte Desktop Sync.app</string>
				</array>
			</dict>
		</dict>
		<dict>
			<key>Processor</key>
			<string>MunkiPkginfoMerger</string>
		</dict>
		<dict>
			<key>Processor</key>
			<string>MunkiImporter</string>
			<key>Arguments</key>
			<dict>
				<key>pkg_path</key>
				<string>%input_path%</string>
				<key>repo_subdirectory</key>
				<string>%MUNKI_REPO_SUBDIR%</string>
			</dict>
		</dict>
        <dict>
            <key>Processor</key>
            <string>PathDeleter</string>
            <key>Arguments</key>
            <dict>
                <key>path_list</key>
                <array>
                    <string>%RECIPE_CACHE_DIR%/pkgroot</string>
                    <string>%RECIPE_CACHE_DIR%/unpack</string>
                </array>
            </dict>
        </dict>
	</array>
</dict>
</plist>

Egnyte Desktop Sync NoPrefs/Egnyte Desktop Sync NoPrefs.jss.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest Egnyte Desktop Sync package and then uploads to the JSS.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.jss.EgnyteDesktopSyncNoPrefs</string>
    <key>Input</key>
    <dict>
        <key>CATEGORY</key>
        <string>Productivity</string>
        <key>GROUP_NAME</key>
        <string>%NAME%-update-smart</string>
        <key>GROUP_TEMPLATE</key>
        <string>EgnyteDesktopSync-SmartGroupTemplate.xml</string>
        <key>NAME</key>
        <string>Egnyte Desktop Sync</string>
        <key>POLICY_CATEGORY</key>
        <string>Testing</string>
        <key>POLICY_TEMPLATE</key>
        <string>PolicyTemplate.xml</string>
        <key>SELF_SERVICE_DESCRIPTION</key>
        <string>Keep a local copy of files on your Egnyte cloud storage using this desktop sync agent.</string>
        <key>SELF_SERVICE_ICON</key>
        <string>EgnyteDesktopSync.png</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.pkg.Egnyte Desktop Sync NoPrefs</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Arguments</key>
            <dict>
                <key>category</key>
                <string>%CATEGORY%</string>
                <key>groups</key>
                <array>
                    <dict>
                        <key>name</key>
                        <string>%GROUP_NAME%</string>
                        <key>smart</key>
                        <true/>
                        <key>template_path</key>
                        <string>%GROUP_TEMPLATE%</string>
                    </dict>
                </array>
                <key>pkg_path</key>
                <string>%target%</string>
                <key>policy_category</key>
                <string>%POLICY_CATEGORY%</string>
                <key>policy_template</key>
                <string>%POLICY_TEMPLATE%</string>
                <key>prod_name</key>
                <string>%NAME%</string>
                <key>self_service_description</key>
                <string>%SELF_SERVICE_DESCRIPTION%</string>
                <key>self_service_icon</key>
                <string>%SELF_SERVICE_ICON%</string>
                <key>version</key>
                <string>%version%</string>
            </dict>
            <key>Processor</key>
            <string>JSSImporter</string>
        </dict>
    </array>
</dict>
</plist>

Egnyte Desktop Sync NoPrefs/Egnyte Desktop Sync NoPrefs.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of Egnyte Desktop Sync.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.Egnyte Desktop Sync NoPrefs</string>
    <key>Input</key>
    <dict>
        <key>LOCALE</key>
        <string>en-us</string>
        <key>NAME</key>
        <string>Egnyte Desktop Sync</string>
    </dict>
    <key>MinimumVersion</key>
    <string>1.0.1</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>DeprecationWarning</string>
            <key>Arguments</key>
            <dict>
                <key>warning_message</key>
                <string>From: https://helpdesk.egnyte.com/hc/en-us/articles/201636844 "IMPORTANT NOTICE: Desktop Sync is no longer supported as of December 31st, 2019. Click here to see how you can start using the Desktop App today." A .munki recipe for the replacement app can be found at - https://github.com/autopkg/dataJAR-recipes/tree/master/Egnyte%20Connect, with download and pkg recipes at - https://github.com/autopkg/moofit-recipes/tree/master/Egnyte</string>
            </dict>
        </dict>
        <dict>   
            <key>Processor</key>   
            <string>StopProcessingIf</string>   
            <key>Arguments</key>   
            <dict>   
                <key>predicate</key>   
                <string>TRUEPREDICATE</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>URLTextSearcher</string>
            <key>Arguments</key>
            <dict>
                <key>re_pattern</key>
                <string>https://egnyte-cdn.egnyte.com/desktopsync/mac/en-us/\d.*/EgnyteDesktopSync_\S.*.pkg</string>
                <key>result_output_var_name</key>
                <string>match</string>
                <key>url</key>
                <string>https://helpdesk.egnyte.com/hc/%LOCALE%/articles/201636844</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>URLDownloader</string>
            <key>Arguments</key>
            <dict>
                <key>filename</key>
                <string>%NAME%.pkg</string>
                <key>url</key>
                <string>%match%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
            <key>Arguments</key>
            <dict>
                <key>expected_authority_names</key>
                <array>
                    <string>Developer ID Installer: Egnyte Inc (FELUD555VC)</string>
                    <string>Developer ID Certification Authority</string>
                    <string>Apple Root CA</string>
                </array>
                <key>input_path</key>
                <string>%pathname%</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>

Egnyte Connect/Egnyte Connect.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest Egnyte Connect package and imports into Munki.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.Egnyte Connect</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>EgnyteConnect</string>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>pkginfo</key>
        <dict>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>category</key>
            <string>Applications</string>
            <key>developer</key>
            <string>Egnyte</string>
            <key>description</key>
            <string>Easily browse all the Egnyte files and folders that you have access to directly from Mac Finder or Windows Explorer. The Egnyte Connect Desktop App will allow you to access all the files you have available in the cloud without requiring all the disk space to store them. Disk space is only occupied temporarily by files that are currently open or were recently opened. The Egnyte Connect Desktop app will automatically download and upload files and folders as you create, rename, update, and delete them.</string>
            <key>display_name</key>
            <string>Egnyte Connect</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.2.0</string>
    <key>ParentRecipe</key>
    <string>com.github.moofit-recipes.download.EgnyteConnect</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%pathname%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>
Eclipse IDE for Java Developers/EclipseIDEForJavaDevelopers.png METASEP

Eclipse IDE for Java Developers/Eclipse IDE for Java Developers.jss.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>Description</key>
	<string>Downloads the current release version of Eclipse IDE For JavaDevelopers and then uploads to the JSS.</string>
	<key>Identifier</key>
	<string>com.github.dataJAR-recipes.jss.EclipseIDEForJavaDevelopers</string>
	<key>Input</key>
	<dict>
		<key>CATEGORY</key>
		<string>Productivity</string>
		<key>GROUP_NAME</key>
		<string>%NAME%-update-smart</string>
		<key>GROUP_TEMPLATE</key>
		<string>SmartGroupTemplate.xml</string>
		<key>NAME</key>
		<string>Eclipse IDE For Java Developers</string>
		<key>POLICY_CATEGORY</key>
		<string>Testing</string>
		<key>POLICY_TEMPLATE</key>
		<string>PolicyTemplate.xml</string>
		<key>SELF_SERVICE_DESCRIPTION</key>
		<string>The essential tools for any Java developer, including a Java IDE, a CVS client, Git client, XML Editor, Mylyn, Maven integration...</string>
		<key>SELF_SERVICE_ICON</key>
		<string>EclipseIDEForJavaDevelopers.png</string>
	</dict>
	<key>MinimumVersion</key>
	<string>0.2.0</string>
	<key>ParentRecipe</key>
	<string>com.github.homebysix.pkg.Eclipse</string>
	<key>Process</key>
	<array>
		<dict>
			<key>Arguments</key>
			<dict>
				<key>category</key>
				<string>%CATEGORY%</string>
				<key>groups</key>
				<array>
					<dict>
						<key>name</key>
						<string>%GROUP_NAME%</string>
						<key>smart</key>
						<true/>
						<key>template_path</key>
						<string>%GROUP_TEMPLATE%</string>
					</dict>
				</array>
				<key>policy_category</key>
				<string>%POLICY_CATEGORY%</string>
				<key>policy_template</key>
				<string>%POLICY_TEMPLATE%</string>
				<key>prod_name</key>
				<string>%NAME%</string>
				<key>self_service_description</key>
				<string>%SELF_SERVICE_DESCRIPTION%</string>
				<key>self_service_icon</key>
				<string>%SELF_SERVICE_ICON%</string>
				<key>version</key>
				<string>%version%</string>
			</dict>
			<key>Processor</key>
			<string>JSSImporter</string>
		</dict>
	</array>
</dict>
</plist>

Easymeeting Desktop Client/EasymeetingDesktopClient.png METASEP

Easymeeting Desktop Client/Easymeeting Desktop Client.pkg.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of Easymeeting Desktop Client and creates a flat PKG.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.pkg.Easymeeting Desktop Client</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>EasymeetingDesktopClient</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.Easymeeting Desktop Client</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>PkgRootCreator</string>
            <key>Arguments</key>
            <dict>
                <key>pkgroot</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%</string>
                <key>pkgdirs</key>
                <dict>
                    <key>Applications</key>
                    <string>0775</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>Copier</string>
            <key>Arguments</key>
            <dict>
                <key>source_path</key>
                <string>%pathname%/Easymeeting Desktop Client.app</string>
                <key>destination_path</key>
                <string>%pkgroot%/Applications/Easymeeting Desktop Client.app</string>
                <key>overwrite</key>
                <true/>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PlistReader</string>
            <key>Arguments</key>
            <dict>
                <key>info_path</key>
                <string>%destination_path%</string>
                <key>plist_keys</key>
                <dict>
                    <key>CFBundleIdentifier</key>
                    <string>bundleid</string>
                    <key>CFBundleVersion</key>
                    <string>version</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PkgCreator</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_request</key>
                <dict>
                    <key>pkgname</key>
                    <string>%NAME%-%version%</string>
                    <key>chown</key>
                    <array>
                        <dict>
                            <key>path</key>
                            <string>Applications</string>
                            <key>user</key>
                            <string>root</string>
                            <key>group</key>
                            <string>admin</string>
                        </dict>
                    </array>
                    <key>id</key>
                    <string>%bundleid%</string>
                    <key>options</key>
                    <string>purge_ds_store</string>
                    <key>pkgdir</key>
                    <string>%RECIPE_CACHE_DIR%</string>
                    <key>pkgroot</key>
                    <string>%pkgroot%</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PathDeleter</string>
            <key>Arguments</key>
            <dict>
                <key>path_list</key>
                <array>
                    <string>%pkgroot%</string>                          
                </array>
            </dict>
        </dict>
    </array>
</dict>
</plist>

Easymeeting Desktop Client/Easymeeting Desktop Client.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of Easymeeting Desktop Client and imports into Munki.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.Easymeeting Desktop Client</string>
    <key>Input</key>
    <dict>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>NAME</key>
        <string>EasymeetingDesktopClient</string>
        <key>pkginfo</key>
        <dict> 
            <key>blocking_applications</key>
            <array>
                <string>Easymeeting Desktop Client</string>
            </array>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>Finally, a video client that was developed to put usability first. Search, Dial and Meet !</string>
            <key>display_name</key>
            <string>Easymeeting Desktop Client</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
            <key>unattended_uninstall</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.Easymeeting Desktop Client</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%pathname%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>
Easymeeting Desktop Client/Easymeeting Desktop Client.jss.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>Description</key>
	<string>Downloads the current release version of Easymeeting Desktop Client and then uploads to the JSS</string>
	<key>Identifier</key>
	<string>com.github.dataJAR-recipes.jss.Easymeeting Desktop Client</string>
	<key>Input</key>
	<dict>
		<key>CATEGORY</key>
		<string>Applications</string>
		<key>GROUP_NAME</key>
		<string>%NAME%-update-smart</string>
        <key>GROUP_TEMPLATE</key>
        <string>SmartGroupTemplate.xml</string>
		<key>NAME</key>
		<string>EasymeetingDesktopClient</string>
		<key>POLICY_CATEGORY</key>
		<string>Testing</string>
		<key>POLICY_TEMPLATE</key>
		<string>PolicyTemplate.xml</string>
		<key>SELF_SERVICE_DESCRIPTION</key>
        <string>Finally, a video client that was developed to put usability first. Search, Dial and Meet !</string>
        <key>SELF_SERVICE_ICON</key>
		<string>EasymeetingDesktopClient.png</string>
	</dict>
	<key>MinimumVersion</key>
	<string>0.6.1</string>
	<key>ParentRecipe</key>
	<string>com.github.dataJAR-recipes.pkg.Easymeeting Desktop Client</string>
	<key>Process</key>
	<array>
        <dict>
            <key>Processor</key>
            <string>JSSImporter</string>
            <key>Arguments</key>
            <dict>
                <key>category</key>
                <string>%CATEGORY%</string>
                <key>groups</key>
                <array>
                    <dict>
                        <key>name</key>
                        <string>%GROUP_NAME%</string>
                        <key>smart</key>
                        <true/>
                        <key>template_path</key>
                        <string>%GROUP_TEMPLATE%</string>
                    </dict>
                </array>
                <key>pkg_path</key>
                <string>%target%</string>
                <key>policy_category</key>
                <string>%POLICY_CATEGORY%</string>
                <key>policy_template</key>
                <string>%POLICY_TEMPLATE%</string>
                <key>prod_name</key>
                <string>Easymeeting Desktop Client</string>
                <key>self_service_description</key>
                <string>%SELF_SERVICE_DESCRIPTION%</string>
                <key>self_service_icon</key>
                <string>%SELF_SERVICE_ICON%</string>
                <key>version</key>
                <string>%version%</string>
            </dict>
        </dict>
	</array>
</dict>
</plist>

Easymeeting Desktop Client/Easymeeting Desktop Client.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Download recipe for the latest version of Easymeeting Desktop Client.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.Easymeeting Desktop Client</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>EasymeetingDesktopClient</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>URLTextSearcher</string>
            <key>Arguments</key>
            <dict>
                <key>url</key>
                <string>https://easymeeting.net/en/easymeeting-3/#lastned</string>
                <key>re_pattern</key>
                <string>(https://download.easymeeting.net/EmDesktopClient-[\S]+\.dmg)</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>URLDownloader</string>
            <key>Arguments</key>
            <dict>
                <key>filename</key>
                <string>%NAME%.dmg</string>
                <key>url</key>
                <string>%match%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
            <key>Arguments</key>
            <dict>
                <key>input_path</key>
                <string>%pathname%/Easymeeting Desktop Client.app</string>
                <key>requirement</key>
                <string>identifier "net.easymeeting.desktopclient" and anchor apple generic and 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] = "3328T853B3"</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>

EarMaster 7/EarMaster7.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of EarMaster imports into Munki.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.EarMaster 7</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>EarMaster7</string>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>pkginfo</key>
        <dict>
            <key>catalogs</key>
            <array>
                <string>production</string>
            </array>
            <key>category</key>
            <string>Applications</string>
            <key>developer</key>
            <string>EarMaster</string>
            <key>description</key>
            <string>Ear training and music theory practice on PC and Mac.</string>
            <key>display_name</key>
            <string>EarMaster7</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.2.0</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.EarMaster 7</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>FlatPkgUnpacker</string>
            <key>Arguments</key>
            <dict>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/unpack</string>
                <key>flat_pkg_path</key>
                <string>%pathname%</string>
                <key>purge_destination</key>
                <true/>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PkgRootCreator</string>
            <key>Arguments</key>
            <dict>
                <key>pkgdirs</key>
                <dict>
                    <key>Applications</key>
                    <string>0755</string>
                </dict>
                <key>pkgroot</key>
                <string>%RECIPE_CACHE_DIR%/pkgroot</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PkgPayloadUnpacker</string>
            <key>Arguments</key>
            <dict>
                <key>destination_path</key>
                <string>%pkgroot%/Applications/</string>
                <key>pkg_payload_path</key>
                <string>%RECIPE_CACHE_DIR%/unpack/com.earmaster.ear70p.pkg/Payload</string>
                <key>purge_destination</key>
                <true/>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiInstallsItemsCreator</string>
            <key>Arguments</key>
            <dict>
                <key>faux_root</key>
                <string>%pkgroot%</string>
                <key>version_comparison_key</key>
                <string>CFBundleVersion</string>
                <key>installs_item_paths</key>
                <array>
                    <string>/Applications/EarMaster 7.app</string>
                </array>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiPkginfoMerger</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>Versioner</string>
            <key>Arguments</key>
            <dict>
                <key>input_plist_path</key>
                <string>%pkgroot%/Applications/EarMaster 7.app/Contents/Info.plist</string>
                <key>plist_version_key</key>
                <string>CFBundleVersion</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiPkginfoMerger</string>
            <key>Arguments</key>
            <dict>
                <key>additional_pkginfo</key>
                <dict>
                    <key>version</key>
                    <string>%version%</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%pathname%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PathDeleter</string>
            <key>Arguments</key>
            <dict>
                <key>path_list</key>
                <array>
                    <string>%RECIPE_CACHE_DIR%/pkgroot/</string>
                    <string>%RECIPE_CACHE_DIR%/unpack/</string>
                </array>
            </dict>
        </dict>
    </array>
</dict>
</plist>

EarMaster 7/EarMaster7.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Download recipe for the latest version of EarMaster 7.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.EarMaster 7</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>EarMaster7</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>URLTextSearcher</string>
            <key>Arguments</key>
            <dict>
                <key>url</key>
                <string>https://www.earmaster.com/all-download.html</string>
                <key>re_pattern</key>
                <string>MAC 10\.12 OR NEWER: &lt;a href=\"(/download/EarMaster7\..*\.pkg)"</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>URLDownloader</string>
            <key>Arguments</key>
            <dict>
                <key>filename</key>
                <string>EarMaster7.pkg</string>
                <key>url</key>
                <string>https://www.earmaster.com%match%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
            <key>Arguments</key>
            <dict>
                <key>expected_authority_names</key>
                <array>
                    <string>Developer ID Installer: EarMaster ApS (G6XWPH5YAP)</string>
                    <string>Developer ID Certification Authority</string>
                    <string>Apple Root CA</string>
                </array>
                <key>input_path</key>
                <string>%pathname%</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>

EarMaster 7 Beta/EarMaster7Beta.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest beta version of EarMaster imports into Munki.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.EarMaster 7 Beta</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>EarMaster7</string>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>pkginfo</key>
        <dict>
            <key>catalogs</key>
            <array>
                <string>production</string>
            </array>
            <key>category</key>
            <string>Applications</string>
            <key>developer</key>
            <string>EarMaster</string>
            <key>description</key>
            <string>Ear training and music theory practice on PC and Mac.</string>
            <key>display_name</key>
            <string>EarMaster7</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.2.0</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.EarMaster 7 Beta</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>FlatPkgUnpacker</string>
            <key>Arguments</key>
            <dict>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/unpack</string>
                <key>flat_pkg_path</key>
                <string>%pathname%</string>
                <key>purge_destination</key>
                <true/>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PkgRootCreator</string>
            <key>Arguments</key>
            <dict>
                <key>pkgdirs</key>
                <dict>
                    <key>Applications</key>
                    <string>0755</string>
                </dict>
                <key>pkgroot</key>
                <string>%RECIPE_CACHE_DIR%/pkgroot</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PkgPayloadUnpacker</string>
            <key>Arguments</key>
            <dict>
                <key>destination_path</key>
                <string>%pkgroot%/Applications/</string>
                <key>pkg_payload_path</key>
                <string>%RECIPE_CACHE_DIR%/unpack/com.earmaster.ear70p.pkg/Payload</string>
                <key>purge_destination</key>
                <true/>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiInstallsItemsCreator</string>
            <key>Arguments</key>
            <dict>
                <key>faux_root</key>
                <string>%pkgroot%</string>
                <key>version_comparison_key</key>
                <string>CFBundleVersion</string>
                <key>installs_item_paths</key>
                <array>
                    <string>/Applications/EarMaster 7.app</string>
                </array>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiPkginfoMerger</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>Versioner</string>
            <key>Arguments</key>
            <dict>
                <key>input_plist_path</key>
                <string>%pkgroot%/Applications/EarMaster 7.app/Contents/Info.plist</string>
                <key>plist_version_key</key>
                <string>CFBundleVersion</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiPkginfoMerger</string>
            <key>Arguments</key>
            <dict>
                <key>additional_pkginfo</key>
                <dict>
                    <key>version</key>
                    <string>%version%</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%pathname%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PathDeleter</string>
            <key>Arguments</key>
            <dict>
                <key>path_list</key>
                <array>
                    <string>%RECIPE_CACHE_DIR%/pkgroot/</string>
                    <string>%RECIPE_CACHE_DIR%/unpack/</string>
                </array>
            </dict>
        </dict>
    </array>
</dict>
</plist>

EarMaster 7 Beta/EarMaster7Beta .download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Download recipe for the latest beta version of EarMaster 7.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.EarMaster 7 Beta</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>EarMaster7</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>URLTextSearcher</string>
            <key>Arguments</key>
            <dict>
                <key>url</key>
                <string>https://www.earmaster.com/all-download.html</string>
                <key>re_pattern</key>
                <string>/download/EarMaster7_beta.*\.pkg</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>URLDownloader</string>
            <key>Arguments</key>
            <dict>
                <key>filename</key>
                <string>EarMaster7Beta.pkg</string>
                <key>url</key>
                <string>https://www.earmaster.com%match%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
            <key>Arguments</key>
            <dict>
                <key>expected_authority_names</key>
                <array>
                    <string>Developer ID Installer: EarMaster ApS (G6XWPH5YAP)</string>
                    <string>Developer ID Certification Authority</string>
                    <string>Apple Root CA</string>
                </array>
                <key>input_path</key>
                <string>%pathname%</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>

EW Installation Center/EW Installation Center.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the current release version of EW Installation Center, builds a package and imports it to Munki.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.EW Installation Center</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>EWInstallationCenter</string>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps</string>
        <key>pkginfo</key>
        <dict>
            <key>blocking_applications</key>
            <array>
                <string>EW Installation Center</string>
            </array>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>category</key>
            <string>Applications</string>
            <key>description</key>
            <string>With EW Installation Center you can install EastWest software.</string>
            <key>developer</key>
            <string>East West</string>
            <key>display_name</key>
            <string>EW Installation Center</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
            <key>unattended_uninstall</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.4.3</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.EW Installation Center</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>FileFinder</string>
            <key>Arguments</key>
            <dict>
                <key>pattern</key>
                <string>%RECIPE_CACHE_DIR%/unzip/EW Installation Center-*.pkg</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>FlatPkgUnpacker</string>
            <key>Arguments</key>
            <dict>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/unpack</string>
                <key>flat_pkg_path</key>
                <string>%found_filename%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PkgPayloadUnpacker</string>
            <key>Arguments</key>
            <dict>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%</string>
                <key>pkg_payload_path</key>
                <string>%RECIPE_CACHE_DIR%/unpack/EW_Installation_Center.pkg/Payload</string>
                <key>purge_destination</key>
                <true/>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiInstallsItemsCreator</string>
            <key>Arguments</key>
            <dict>
                <key>faux_root</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%/</string>
                <key>installs_item_paths</key>
                <array>
                    <string>/Applications/East West/EW Installation Center.app</string>
                </array>
                <key>version_comparison_key</key>
                <string>CFBundleShortVersionString</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiPkginfoMerger</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PlistReader</string>
            <key>Arguments</key>
            <dict>
                <key>info_path</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%/Applications/East West/EW Installation Center.app/Contents/Info.plist</string>
                <key>plist_keys</key>
                <dict>
                    <key>CFBundleShortVersionString</key>
                    <string>version</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiPkginfoMerger</string>
            <key>Arguments</key>
            <dict>
                <key>additional_pkginfo</key>
                <dict>
                    <key>version</key>
                    <string>%version%</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PkgCopier</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%.pkg</string>
                <key>source_pkg</key>
                <string>%found_filename%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%pkg_path%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PathDeleter</string>
            <key>Arguments</key>
            <dict>
                <key>path_list</key>
                <array>
                    <string>%RECIPE_CACHE_DIR%/%NAME%/</string>
                    <string>%RECIPE_CACHE_DIR%/unpack/</string>
                    <string>%RECIPE_CACHE_DIR%/unzip/</string>
                </array>
            </dict>
        </dict>
    </array>
</dict>
</plist>
EW Installation Center/EW Installation Center.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the current release version of EW Installation Center.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.EW Installation Center</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>EWInstallationCenter</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.2.0</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>URLTextSearcher</string>
            <key>Arguments</key>
            <dict>
                <key>re_pattern</key>
                <string>https://software\.soundsonline\.com/Products/IC/IC_.*?_Mac\.zip</string>
                <key>url</key>
                <string>https://www.soundsonline.com/support/updates</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>URLDownloader</string>
            <key>Arguments</key>
            <dict>
                <key>url</key>
                <string>%match%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>Unarchiver</string>
            <key>Arguments</key>
            <dict>
                <key>archive_path</key>
                <string>%pathname%</string>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/unzip</string>
                <key>purge_destination</key>
                <true/>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
            <key>Arguments</key>
            <dict>
                <key>expected_authority_names</key>
                <array>
                    <string>Developer ID Installer: EASTWEST (TWK4WE76V9)</string>
                    <string>Developer ID Certification Authority</string>
                    <string>Apple Root CA</string>
                </array>
                <key>input_path</key>
                <string>%RECIPE_CACHE_DIR%/unzip/EW Installation Center-*.pkg</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>
EV3 Classroom/EV3 Classroom.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of EV3Classroom and imports into Munki</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.EV3 Classroom</string>
    <key>Input</key>
    <dict>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>NAME</key>
        <string>EV3Classroom</string>
        <key>pkginfo</key>
        <dict>
            <key>blocking_applications</key>
            <array>
                <string>EV3 Classroom</string>
            </array>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>If you have any LEGO MINDSTORMS Education EV3 product and want to program your EV3 Brick with word block coding, download the LEGO MINDSTORMS Education EV3 Classroom App.</string>
            <key>developer</key>
            <string>The LEGO Group</string>
            <key>display_name</key>
            <string>EV3 Classroom</string>
            <key>minimum_os_version</key>
            <string>10.14</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_uninstall</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.5.0</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.EV3 Classroom</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%pathname%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>
EV3 Classroom/EV3 Classroom.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of EV3 Classroom</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.EV3 Classroom</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>EV3Classroom</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.5.0</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>URLTextSearcher</string>
            <key>Arguments</key>
            <dict>
                <key>re_pattern</key>
                <string>https://education\.lego\.com/_/downloads/EV3_.*?_Global\.dmg</string>
                <key>result_output_var_name</key>
                <string>url</string>
                <key>url</key>
                <string>https://education.lego.com/page-data/en-us/downloads/mindstorms-ev3/software/page-data.json</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>URLDownloader</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
            <key>Arguments</key>
            <dict>
                <key>input_path</key>
                <string>%pathname%/EV3 Classroom.app</string>
                <key>requirement</key>
                <string>identifier "com.lego.ev3" and anchor apple generic and 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] = RS3Y27K2T9</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>
DrawBot/DrawBot.png METASEP

DrawBot/DrawBot.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads latest version of DrawBot for Mac OS X and imports into Munki.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.DrawBot</string>
    <key>Input</key>
    <dict>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>NAME</key>
        <string>DrawBot</string>
        <key>pkginfo</key>
        <dict> 
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>DrawBot is an open source application for OS X that allows users to write simple Python scripts to generate two-dimensional graphics.</string>
            <key>display_name</key>
            <string>DrawBot</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
            <key>unattended_uninstall</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>ParentRecipe</key>
    <string>com.github.neilmartin83.download.DrawBot</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%pathname%</string>
                <key>munkiimport_pkgname</key>
                <string>%MUNKIIMPORT_PKG_NAME%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
        </dict>
    </array>
</dict>
</plist>
DraftSight/DraftSight.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Imports the latest version of the DraftSight software into Munki.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.DraftSight</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>DraftSight</string>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>pkginfo</key>
            <dict>
                <key>catalogs</key>
                <array>
                     <string>testing</string>
                </array>
                <key>description</key>
                <string>DraftSight is a feature-rich 2D and 3D CAD solution for architects, engineers and construction service providers, as well as professional CAD users, designers, educators and hobbyists.</string>
                <key>developer</key>
                 <string>Dassault Systemes</string>
                <key>display_name</key>
                <string>DraftSight</string>
                <key>name</key>
                <string>%NAME%</string>
                <key>unattended_install</key>
                <true/>
                <key>unattended_uninstall</key>
                <true/>
            </dict>
        </dict>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.DraftSight</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%pathname%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>

DraftSight/DraftSight.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of DraftSight.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.DraftSight</string>
    <key>Input</key>
    <dict>
        <key>DOWNLOAD_URL</key>
        <string>https://www.draftsight.com/download-mac</string>
        <key>NAME</key>
        <string>DraftSight</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.2.0</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>URLDownloader</string>
            <key>Arguments</key>
            <dict>
                <key>filename</key>
                <string>%NAME%.pkg</string>
                <key>url</key>
                <string>%DOWNLOAD_URL%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
        <dict>   
            <key>Processor</key>   
            <string>CodeSignatureVerifier</string>   
            <key>Arguments</key>   
            <dict>   
                <key>input_path</key>   
                <string>%pathname%</string>
                <key>expected_authority_names</key>
                <array>
                    <string>Developer ID Installer: Dassault Systemes (AYR48YN343)</string>
                    <string>Developer ID Certification Authority</string>
                    <string>Apple Root CA</string>
                </array>
            </dict>
        </dict>
    </array>
</dict>
</plist>
DisplayLink/DisplayLink.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>Description</key>
	<string>Import DisplayLink Driver into munki.
	Taken over from bochoven-recipe (https://github.com/autopkg/bochoven-recipes/issues/35)</string>
	<key>Identifier</key>
	<string>com.github.dataJAR-recipes.munki.DisplayLink</string>
	<key>Input</key>
	<dict>
		<key>MUNKI_REPO_SUBDIR</key>
		<string>apps/%NAME%</string>
		<key>NAME</key>
		<string>displaylink</string>
		<key>pkginfo</key>
		<dict>
			<key>catalogs</key>
			<array>
				<string>testing</string>
			</array>
			<key>category</key>
			<string>Utilities</string>
			<key>description</key>
			<string>DisplayLink Software Installer to use with a Port Replicator. You can find the user manual &lt;a href="http://downloads.displaylink.com/manuals/DisplayLink%20Mac%20User%20Guide%20for%202.3%20software.pdf"&gt;here&lt;/a&gt;</string>
			<key>developer</key>
			<string>DisplayLink</string>
			<key>display_name</key>
			<string>DisplayLink Driver Installer</string>
			<key>minimum_os_version</key>
			<string>10.10</string>
			<key>name</key>
			<string>%NAME%</string>
			<key>unattended_install</key>
			<true/>
		</dict>
	</dict>
	<key>MinimumVersion</key>
	<string>0.6.1</string>
	<key>ParentRecipe</key>
	<string>com.github.dataJAR-recipes.download.DisplayLink</string>
	<key>Process</key>
	<array>
		<dict>
			<key>Arguments</key>
			<dict>
				<key>flat_pkg_path</key>
				<string>%found_filename%/DisplayLink Software Installer.pkg</string>
				<key>destination_path</key>
				<string>%RECIPE_CACHE_DIR%/unpack</string>
				<key>purge_destination</key>
				<true/>
			</dict>
			<key>Processor</key>
			<string>FlatPkgUnpacker</string>
		</dict>
		<dict>
			<key>Arguments</key>
			<dict>
					<key>pkg_payload_path</key>
					<string>%RECIPE_CACHE_DIR%/unpack/DisplayLinkDriverSignedKexts.pkg/Payload</string>
					<key>destination_path</key>
					<string>%RECIPE_CACHE_DIR%/version_check</string>
			</dict>
			<key>Processor</key>
			<string>PkgPayloadUnpacker</string>
		</dict>
		<dict>
			<key>Arguments</key>
			<dict>
				<key>info_path</key>
				<string>%RECIPE_CACHE_DIR%/version_check/DisplayLinkDriver.kext/Contents/Info.plist</string>
			</dict>
			<key>Processor</key>
			<string>PlistReader</string>
		</dict>
		<dict>
				<key>Arguments</key>
				<dict>
						<key>additional_pkginfo</key>
						<dict>
								<key>version</key>
								<string>%version%</string>
						</dict>
				</dict>
				<key>Processor</key>
				<string>MunkiPkginfoMerger</string>
		</dict>
		<dict>
			<key>Arguments</key>
			<dict>
				<key>pkg_path</key>
				<string>%found_filename%</string>
				<key>repo_subdirectory</key>
				<string>%MUNKI_REPO_SUBDIR%</string>
			</dict>
			<key>Processor</key>
			<string>MunkiImporter</string>
		</dict>
	</array>
</dict>
</plist>
DisplayLink/DisplayLink.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of the DisplayLink Drivers (not Manager).
	Taken over from bochoven-recipe (https://github.com/autopkg/bochoven-recipes/issues/35)</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.DisplayLink</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>DisplayLink</string>
        <key>DOWNLOAD_URL</key>
        <string>https://www.displaylink.com/downloads</string>
    </dict>
    <key>MinimumVersion</key>
    <string>1.0.0</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>DeprecationWarning</string>
            <key>Arguments</key>
            <dict>
                <key>warning_message</key>
                <string>Looks like DisplayLink Drivers are no longer available, only the DisplayLink Manager. A .download for DisplayLink Manager can be found at: https://github.com/autopkg/smithjw-recipes/blob/master/DisplayLink/DisplayLink%20Manager.download.recipe.yaml, a .munki recipe at: https://github.com/autopkg/dataJAR-recipes/blob/master/DisplayLink%20Manager/DisplayLink%20Manager.munki.recipe</string>
             </dict>
        </dict>
        <dict>   
            <key>Processor</key>   
            <string>StopProcessingIf</string>   
            <key>Arguments</key>   
            <dict>   
                <key>predicate</key>   
                <string>TRUEPREDICATE</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>URLTextSearcher</string>
            <key>Arguments</key>
            <dict>
                <key>re_pattern</key>
                <string>DisplayLink USB Graphics Software for macOS\s.*\s.*\s.*\s.*\s.*\s.*\s.*\s.*\s.*\s.*\s.*a href=\&quot;\/downloads\/file\?id=(\d+)\&quot; title=\&quot;Download File\&quot; onclick=\&quot;\&quot; class=\&quot;download-link\&quot;&gt;&lt;button&gt;Download&lt;\/button&gt;&lt;\/a&gt;</string>
                <key>url</key>
                <string>%DOWNLOAD_URL%/macos</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>URLDownloader</string>
            <key>Arguments</key>
            <dict>
                <key>curl_opts</key>
                <array>
                    <string>-F</string>
                    <string>fileId=%match%</string>
                    <string>-F</string>
                    <string>accept_submit=Accept</string>
                    <string>--location</string>
                </array>
                <key>filename</key>
                <string>%NAME%.dmg</string>
                <key>url</key>
                <string>%DOWNLOAD_URL%/file?id=%match%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
        <dict>
			<key>Arguments</key>
			<dict>
				<key>pattern</key>
				<string>%RECIPE_CACHE_DIR%/downloads/*.dmg</string>
			</dict>
			<key>Processor</key>
			<string>FileFinder</string>
		</dict>
        <dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
            <key>Arguments</key>
            <dict>
                <key>input_path</key>
                <string>%found_filename%/DisplayLink Software Installer.pkg</string>
                <key>expected_authority_names</key>
                <array>
                    <string>Developer ID Installer: DisplayLink Corp (73YQY62QM3)</string>
                    <string>Developer ID Certification Authority</string>
                    <string>Apple Root CA</string>
                </array>
            </dict>
        </dict>
    </array>
</dict>
</plist>
DisplayLink Manager/DisplayLink Manager.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of DisplayLink Manager and imports into Munki</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.DisplayLink Manager</string>
    <key>Input</key>
    <dict>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>NAME</key>
        <string>DisplayLink Manager</string>
        <key>pkginfo</key>
        <dict>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>DisplayLink Manager is a new way to enable your DisplayLink dock, adapter or monitor on macOS platforms. It's an application that combines our latest driver with features that streamline the setup of mutliple displays up to 4K.</string>
            <key>developer</key>
            <string>DisplayLink</string>
            <key>display_name</key>
            <string>DisplayLink Manager</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
            <key>unattended_uninstall</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.5.0</string>
    <key>ParentRecipe</key>
    <string>com.github.smithjw.download.DisplayLink_Manager</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>FlatPkgUnpacker</string>
            <key>Arguments</key>
            <dict>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/unpack</string>
                <key>flat_pkg_path</key>
                <string>%pathname%</string>
                <key>purge_destination</key>
                <true/>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PkgPayloadUnpacker</string>
            <key>Arguments</key>
            <dict>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%/Applications</string>
                <key>pkg_payload_path</key>
                <string>%RECIPE_CACHE_DIR%/unpack/DisplayLinkManagerApp.pkg/Payload</string>
                <key>purge_destination</key>
                <true/>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiInstallsItemsCreator</string>
            <key>Arguments</key>
            <dict>
                <key>faux_root</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%</string>
                <key>installs_item_paths</key>
                <array>
                    <string>/Applications/DisplayLink Manager.app</string>
                </array>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiPkginfoMerger</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PlistReader</string>
            <key>Arguments</key>
            <dict>
                <key>info_path</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%/Applications/DisplayLink Manager.app/Contents/Info.plist</string>
                <key>plist_keys</key>
                <dict>
                    <key>CFBundleShortVersionString</key>
                    <string>version</string>
                    <key>LSMinimumSystemVersion</key>
                    <string>min_os_version</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiPkginfoMerger</string>
            <key>Arguments</key>
            <dict>
                <key>additional_pkginfo</key>
                <dict>
                    <key>minimum_os_version</key>
                    <string>%min_os_version%</string>
                    <key>version</key>
                    <string>%version%</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%pathname%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PathDeleter</string>
            <key>Arguments</key>
            <dict>
                <key>path_list</key>
                <array>
                    <string>%RECIPE_CACHE_DIR%/%NAME%</string>
                    <string>%RECIPE_CACHE_DIR%/unpack</string>
                </array>
            </dict>
        </dict>
    </array>
</dict>
</plist>
Disk Inventory X/Disk Inventory X.pkg.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of Disk Inventory X and creates a package.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.pkg.Disk Inventory X</string>
    <key>Input</key>
    <dict>
        <key>BUNDLE_ID</key>
        <string>com.derlien.Disk Inventory X</string>
        <key>NAME</key>
        <string>Disk Inventory X</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.Disk Inventory X</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>Versioner</string>
            <key>Arguments</key>
            <dict>
                <key>input_plist_path</key>
                <string>%pathname%/Disk Inventory X.app/Contents/Info.plist</string>
                <key>plist_version_key</key>
                <string>CFBundleShortVersionString</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>AppPkgCreator</string>
            <key>Arguments</key>
            <dict>
                <key>app_path</key>
                <string>%pathname%/Disk Inventory X.app</string>
                <key>pkg_path</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%-%version%.pkg</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>

Disk Inventory X/Disk Inventory X.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of Disk Inventory X and imports it into Munki.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.Disk Inventory X</string>
    <key>Input</key>
    <dict>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>NAME</key>
        <string>Disk Inventory X</string>
        <key>pkginfo</key>
        <dict>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>Disk Inventory X is a disk usage utility for Mac OS X.</string>
            <key>developer</key>
            <string>Tjark Derlien</string>
            <key>display_name</key>
            <string>Disk Inventory X</string>
            <key>maximum_os_version</key>
            <string>10.15.7</string>
            <key>minimum_os_version</key>
            <string>10.13</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>1.0.0</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.Disk Inventory X</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%pathname%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>

Disk Inventory X/Disk Inventory X.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of Disk Inventory X.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.Disk Inventory X</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>Disk Inventory X</string>
    </dict>
    <key>MinimumVersion</key>
    <string>1.0.0</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>URLDownloader</string>
            <key>Arguments</key>
            <dict>
                <key>filename</key>
                <string>%NAME%.dmg</string>
                <key>url</key>
                <string>http://www.derlien.com/download.php?file=DiskInventoryX</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
    </array>
</dict>
</plist>
Digital Pigeon 4/DigitalPigeon4.png METASEP

Digital Pigeon 4/Digital Pigeon 4.pkg.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>Description</key>
	<string>Downloads the latest version of Digital Pigeon 4 and creates a package.</string>
	<key>Identifier</key>
	<string>com.github.dataJAR-recipes.pkg.Digital Pigeon 4</string>
	<key>Input</key>
	<dict>
		<key>BUNDLE_ID</key>
		<string>com.sixtydigits.DigitalPigeon-CEF</string>
		<key>NAME</key>
		<string>Digital Pigeon 4</string>
	</dict>
	<key>MinimumVersion</key>
	<string>0.6.1</string>
	<key>ParentRecipe</key>
	<string>com.github.dataJAR-recipes.download.Digital Pigeon 4</string>
	<key>Process</key>
	<array>
	    <dict>
			<key>Processor</key>
			<string>PkgRootCreator</string>
			<key>Arguments</key>
			<dict>
				<key>pkgroot</key>
				<string>%RECIPE_CACHE_DIR%/%NAME%</string>
				<key>pkgdirs</key>
				<dict>
					<key>Applications</key>
					<string>0775</string>
				</dict>
			</dict>
		</dict>
        <dict>
            <key>Processor</key>
            <string>Copier</string>
            <key>Arguments</key>
            <dict>
                <key>source_path</key>
                <string>%pathname%/Digital Pigeon.app</string>
                <key>destination_path</key>
                <string>%pkgroot%/Applications/Digital Pigeon.app</string>
            </dict>
        </dict>
		<dict>
			<key>Arguments</key>
			<dict>
				<key>pkg_request</key>
				<dict>
					<key>chown</key>
					<array>
						<dict>
							<key>group</key>
							<string>admin</string>
							<key>path</key>
							<string>Applications</string>
							<key>user</key>
							<string>root</string>
						</dict>
					</array>
					<key>id</key>
					<string>%BUNDLE_ID%</string>
					<key>options</key>
					<string>purge_ds_store</string>
					<key>pkgname</key>
					<string>%NAME%-%version%</string>
                    <key>pkgroot</key>
                    <string>%RECIPE_CACHE_DIR%/%NAME%</string>
					<key>version</key>
					<string>%version%</string>
				</dict>
			</dict>
			<key>Processor</key>
			<string>PkgCreator</string>
		</dict>
	</array>
</dict>
</plist>

Digital Pigeon 4/Digital Pigeon 4.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the most recent version of Digital Pigeon 4 and imports it into Munki.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.Digital Pigeon 4</string>
    <key>Input</key>
    <dict>
		<key>MUNKI_REPO_SUBDIR</key>
		<string>apps/%NAME%</string>
		<key>NAME</key>
		<string>Digital Pigeon 4</string>
		<key>pkginfo</key>
		<dict>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>Pigeon your files faster and easier than ever from your desktop. The desktop app has been specially designed to maximise your transfer speed and minimise your waiting time! It includes the ability to integrate with your address book and advanced error recovery features.</string>
            <key>developer</key>
            <string>Sixty Digits Pty Ltd</string>
            <key>display_name</key>
            <string>Digital Pigeon 4</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
		</dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.2.0</string>
	<key>ParentRecipe</key>
	<string>com.github.dataJAR-recipes.download.Digital Pigeon 4</string>
    <key>Process</key>
    <array>
		<dict>
			<key>Arguments</key>
			<dict>
				<key>pkg_path</key>
				<string>%pathname%</string>
				<key>repo_subdirectory</key>
				<string>%MUNKI_REPO_SUBDIR%</string>
				<key>version_comparison_key</key>
				<string>CFBundleShortVersionString</string>
			</dict>
			<key>Processor</key>
			<string>MunkiImporter</string>
		</dict>
    </array>
</dict>
</plist>

Digital Pigeon 4/Digital Pigeon 4.jss.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the current release version of Digital Pigeon 4 and then uploads to the JSS</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.jss.Digital Pigeon 4</string>
    <key>Input</key>
    <dict>
        <key>CATEGORY</key>
        <string>Productivity</string>
        <key>GROUP_NAME</key>
        <string>%NAME%-update-smart</string>
        <key>GROUP_TEMPLATE</key>
        <string>SmartGroupTemplate.xml</string>
        <key>NAME</key>
        <string>Digital Pigeon 4</string>
        <key>POLICY_CATEGORY</key>
        <string>Testing</string>
        <key>POLICY_TEMPLATE</key>
        <string>PolicyTemplate.xml</string>
        <key>SELF_SERVICE_DESCRIPTION</key>
        <string>Pigeon your files faster and easier than ever from your desktop. The desktop app has been specially designed to maximise your transfer speed and minimise your waiting time! It includes the ability to integrate with your address book and advanced error recovery features.</string>
        <key>SELF_SERVICE_ICON</key>
        <string>DigitalPigeon4.png</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.2.0</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.pkg.Digital Pigeon 4</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Arguments</key>
            <dict>
                <key>category</key>
                <string>%CATEGORY%</string>
                <key>groups</key>
                <array>
                    <dict>
                        <key>name</key>
                        <string>%GROUP_NAME%</string>
                        <key>smart</key>
                        <true/>
                        <key>template_path</key>
                        <string>%GROUP_TEMPLATE%</string>
                    </dict>
                </array>
                <key>policy_category</key>
                <string>%POLICY_CATEGORY%</string>
                <key>policy_template</key>
                <string>%POLICY_TEMPLATE%</string>
                <key>prod_name</key>
                <string>Digital Pigeon</string>
                <key>self_service_description</key>
                <string>%SELF_SERVICE_DESCRIPTION%</string>
                <key>self_service_icon</key>
                <string>%SELF_SERVICE_ICON%</string>
            </dict>
            <key>Processor</key>
            <string>JSSImporter</string>
        </dict>
    </array>
</dict>
</plist>

Digital Pigeon 4/Digital Pigeon 4.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the most recent version of Digital Pigeon 4</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.Digital Pigeon 4</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>Digital Pigeon 4</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.2.0</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>SparkleUpdateInfoProvider</string>
            <key>Arguments</key>
            <dict>
                <key>appcast_url</key>
                <string>https://appcast.digitalpigeon.com/mac/v4/updates.xml</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>URLDownloader</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
		<dict>
			<key>Arguments</key>
			<dict>
				<key>input_path</key>
				<string>%pathname%/Digital Pigeon.app</string>
				<key>requirement</key>
				<string>anchor apple generic and identifier "com.sixtydigits.DigitalPigeon-CEF" 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] = G5MUBZKV62)</string>
			</dict>
			<key>Processor</key>
			<string>CodeSignatureVerifier</string>
		</dict>
		<dict>
			<key>Arguments</key>
			<dict>
				<key>input_plist_path</key>
				<string>%pathname%/Digital Pigeon.app/Contents/Info.plist</string>
				<key>plist_version_key</key>
				<string>CFBundleShortVersionString</string>
			</dict>
			<key>Processor</key>
			<string>Versioner</string>
		</dict>
    </array>
</dict>
</plist>

Dialpad/Dialpad.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.Dialpad</string>
    <key>Input</key>
    <dict>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>NAME</key>
        <string>Dialpad</string>
        <key>pkginfo</key>
        <dict>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>category</key>
            <string>Applications</string>
            <key>description</key>
            <string>Move your phone system, conferencing and call center to the cloud. Support your modern, mobile workers. Work from anywhere and let Ai make every call a smarter call.</string>
            <key>developer</key>
            <string>Dialpad, Inc</string>
            <key>display_name</key>
            <string>Dialpad</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
        </dict>
    </dict>
    <key>ParentRecipe</key>
    <string>com.github.autopkg.mikestechshop.download.Dialpad</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%pathname%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
        </dict>
    </array>
</dict>
</plist>
Desktoppr/Desktoppr.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>Identifier</key>
	<string>com.github.dataJAR-recipes.munki.Desktoppr</string>
	<key>Input</key>
	<dict>
		<key>MUNKI_REPO_SUBDIR</key>
		<string>apps/%NAME%</string>
		<key>NAME</key>
		<string>Desktoppr</string>
		<key>pkginfo</key>
		<dict>
			<key>catalogs</key>
			<array>
				<string>testing</string>
			</array>
			<key>category</key>
			<string>Applications</string>
			<key>description</key>
			<string>Simple command line tool which can read and set the desktop picture</string>
			<key>developer</key>
			<string>scriptingosx</string>
			<key>display_name</key>
			<string>Desktoppr</string>
			<key>name</key>
			<string>%NAME%</string>
			<key>unattended_install</key>
			<true/>
		</dict>
	</dict>
	<key>ParentRecipe</key>
	<string>com.github.moofit-recipes.pkg.Desktoppr</string>
	<key>Process</key>
	<array>
		<dict>
			<key>Arguments</key>
			<dict>
				<key>pkg_path</key>
				<string>%pathname%</string>
				<key>repo_subdirectory</key>
				<string>%MUNKI_REPO_SUBDIR%</string>
			</dict>
			<key>Processor</key>
			<string>MunkiImporter</string>
		</dict>
	</array>
</dict>
</plist>

DVDStyler/DVDStyler.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>This recipe uses FossHub to check for available software updates. 
    All users should contact FossHub directly (https://www.fosshub.com/contact.html) to seek permission to use an automated tool for the purpose of redistributing this software on their internal network, as specified in their Terms of Service (https://www.fosshub.com/tos.html#fh-tou-o7). 
    You will need to provide them the IP address of the machine downloading FossHub software. 
    This recipe does not perform any tracking (cookies, advertising identifiers, and similar technologies) and respects the EU General Data Protection Regulation (GDPR) guidelines.
    This recipe downloads the latest Audacity and imports onto Munki.
    For more information see: https://macmule.com/2019/03/17/fosshub-autopkg</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.DVDStyler</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>DVDStyler</string>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/DVDStyler</string>
        <key>pkginfo</key>
        <dict>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>DVDStyler is a cross-platform free DVD authoring application that makes possible for video enthusiasts to create professional-looking DVDs</string>
            <key>display_name</key>
            <string>DVDStyler</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.2.9</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.DVDStyler</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%pathname%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
        </dict>
    </array>
</dict>
</plist>
DVDStyler/DVDStyler.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>This recipe uses FossHub to check for available software updates. 
    All users should contact FossHub directly (https://www.fosshub.com/contact.html) to seek permission to use an automated tool for the purpose of redistributing this software on their internal network, as specified in their Terms of Service (https://www.fosshub.com/tos.html#fh-tou-o7). 
    You will need to provide them the IP address of the machine downloading FossHub software. 
    This recipe does not perform any tracking (cookies, advertising identifiers, and similar technologies) and respects the EU General Data Protection Regulation (GDPR) guidelines.
    This recipe downloads the latest Audacity dmg.
    For more information see: https://macmule.com/2019/03/17/fosshub-autopkg</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.DVDStyler</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>DVDStyler</string>
        <key>DOWNLOAD_URL</key>
        <string>https://university.fosshub.com/projects.json</string>
        <key>USER_AGENT</key>
        <string>Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_2) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/12.0.2 Safari/605.1.15</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.0</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>URLTextSearcher</string>
            <key>Arguments</key>
            <dict>
                <key>url</key>
                <string>%DOWNLOAD_URL%</string>
                <key>re_pattern</key>
                <string>https://university\.fosshub\.com/Protected/\S*/DVDStyler-\S*-MacOSX\.dmg</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>URLDownloader</string>
            <key>Arguments</key>
            <dict>
                <key>request_headers</key>
                <dict>
                        <key>User-Agent</key>
                        <string>%USER_AGENT%</string>
                </dict>
                <key>filename</key>
                <string>%NAME%.dmg</string>
                <key>url</key>
                <string>%match%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
    </array>
</dict>
</plist>


DJI Assistant 2 For Phantom/DJI Assistant 2 For Phantom.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of DJI Assistant 2 For Phantom and imports it into Munki.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.DJI Assistant 2 For Phantom</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>DJIAssistant2ForPhantom</string>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>pkginfo</key>
        <dict>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>Built to Endure. Engineered to Adapt.</string>
            <key>developer</key>
            <string>DJI</string>
            <key>display_name</key>
            <string>DJI Assistant 2 For Phantom</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
            <key>unattended_uninstall</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.DJI Assistant 2 For Phantom</string>
    <key>Process</key>
    <array>
        <dict>  
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%pathname%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>

DJI Assistant 2 For Phantom/DJI Assistant 2 For Phantom.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads latest version of DJI Assistant 2 For Phantom.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.DJI Assistant 2 For Phantom</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>DJIAssistant2ForPhantom</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>URLTextSearcher</string>
            <key>Arguments</key>
            <dict>
                <key>url</key>
                <string>https://www.dji.com/uk/downloads/softwares/assistant-dji-2-for-phantom</string>
                <key>re_pattern</key>
                <string>https:\/\/dl\.djicdn\.com\/downloads\/dji_assistant\/.*?\/DJI\+Assistant\+2\+For\+Phantom\+.*?\.pkg</string>
                <key>request_headers</key>
                <dict>
                        <key>user-agent</key>
                        <string>Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13 Safari/605.1.15</string>
                </dict>
                <key>result_output_var_name</key>
                <string>match</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>URLDownloader</string>
            <key>Arguments</key>
            <dict>
            	<key>filename</key>
            	<string>%NAME%.pkg</string>
                <key>url</key>
                <string>%match%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
    </array>
</dict>
</plist>
DJI Assistant 2 For Matrice/DJI Assistant 2 For Matrice.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of DJI Assistant 2 For Matrice and imports it into Munki.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.DJI Assistant 2 For Matrice</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>DJIAssistant2ForMatrice</string>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>pkginfo</key>
        <dict>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>Built to Endure. Engineered to Adapt.</string>
            <key>developer</key>
            <string>DJI</string>
            <key>display_name</key>
            <string>DJI Assistant 2 For Matrice</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
            <key>unattended_uninstall</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.DJI Assistant 2 For Matrice</string>
    <key>Process</key>
    <array>
        <dict>  
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%pathname%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>

DJI Assistant 2 For Matrice/DJI Assistant 2 For Matrice.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads latest version of DJI Assistant 2 For Matrice.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.DJI Assistant 2 For Matrice</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>DJIAssistant2ForMatrice</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>DeprecationWarning</string>
            <key>Arguments</key>
            <dict>
                <key>warning_message</key>
                <string>These recipes have been replaced by: https://github.com/autopkg/dataJAR-recipes/tree/master/DJI%20Assistant%202%20(Enterprise%20Series)</string>
            </dict>
        </dict>
        <dict>   
            <key>Processor</key>   
            <string>StopProcessingIf</string>   
            <key>Arguments</key>   
            <dict>   
                <key>predicate</key>   
                <string>TRUEPREDICATE</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>URLTextSearcher</string>
            <key>Arguments</key>
            <dict>
                <key>url</key>
                <string>https://www.dji.com/uk/downloads/softwares/assistant-dji-2-for-matrice</string>
                <key>re_pattern</key>
                <string>https:\/\/dl\.djicdn\.com\/downloads\/dji_assistant\/.*?\/DJI\+Assistant\+2\.*?\.pkg</string>
                <key>request_headers</key>
                <dict>
                    <key>user-agent</key>
                    <string>Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13 Safari/605.1.15</string>
                </dict>
                <key>result_output_var_name</key>
                <string>match</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>URLDownloader</string>
            <key>Arguments</key>
            <dict>
                <key>filename</key>
                <string>%NAME%.pkg</string>
                <key>url</key>
                <string>%match%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
    </array>
</dict>
</plist>
DJI Assistant 2 (Enterprise Series)/DJI Assistant 2 (Enterprise Series).munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of DJI Assistant 2 (Enterprise Series) and imports it into Munki.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.DJI Assistant 2 (Enterprise Series)</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>DJIAssistant2EnterpriseSeries</string>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>pkginfo</key>
        <dict>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>Built to Endure. Engineered to Adapt.</string>
            <key>developer</key>
            <string>DJI</string>
            <key>display_name</key>
            <string>DJI Assistant 2 (Enterprise Series)</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
            <key>unattended_uninstall</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.DJI Assistant 2 (Enterprise Series)</string>
    <key>Process</key>
    <array>
        <dict>  
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%pathname%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>
DJI Assistant 2 (Enterprise Series)/DJI Assistant 2 (Enterprise Series).download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads latest version of DJI Assistant 2 (Enterprise Series).</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.DJI Assistant 2 (Enterprise Series)</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>DJIAssistant2EnterpriseSeries</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>URLTextSearcher</string>
            <key>Arguments</key>
            <dict>
                <key>url</key>
                <string>https://www.dji.com/uk/downloads/softwares/assistant-dji-2-for-matrice</string>
                <key>re_pattern</key>
                <string>https://dl\.djicdn\.com/downloads/dji_assistant/.*?/DJI\+Assistant\+2\+\(Enterprise\+Series\)\+.*?\.pkg</string>
                <key>request_headers</key>
                <dict>
                    <key>user-agent</key>
                    <string>Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.116 Safari/537.36</string>
                </dict>
                <key>result_output_var_name</key>
                <string>match</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>URLDownloader</string>
            <key>Arguments</key>
            <dict>
                <key>url</key>
                <string>%match%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
    </array>
</dict>
</plist>
DBeaver Community Edition/DBeaver Community Edition.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Imports DBeaver Community Edition into Munki.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.DBeaver Community Edition</string>
    <key>Input</key>
    <dict>
        <key>APP_FILENAME</key>
        <string>DBeaver</string>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>NAME</key>
        <string>DBeaver Community Edition</string>
        <key>os</key>
        <string>macos</string>
        <key>pkginfo</key>
        <dict>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>Free multi-platform database tool for developers, SQL programmers, database administrators and analysts. Supports all popular databases: MySQL, PostgreSQL, MariaDB, SQLite, Oracle, DB2, SQL Server, Sybase, MS Access, Teradata, Firebird, Derby, etc.</string>
            <key>developer</key>
            <string>DBeaver Corp</string>
            <key>display_name</key>
            <string>DBeaver Community Edition</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>1.0.0</string>
    <key>ParentRecipe</key>
    <string>com.github.peshay.download.DBeaverCE</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Arguments</key>
            <dict>
                <key>input_path</key>
                <string>%pathname%/DBeaver.app</string>
                <key>requirement</key>
                <string>identifier "org.jkiss.dbeaver.core.product" and anchor apple generic and 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] = "42B6MDKMW8"</string>
            </dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
        </dict>
        <dict>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%pathname%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
        </dict>
    </array>
</dict>
</plist>

DB Browser for SQLite/DBBrowserforSQLite.png METASEP

DB Browser for SQLite/DB Browser for SQLite.pkg.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>Description</key>
	<string>Downloads the latest version of DB Browser for SQLite and creates a package.</string>
	<key>Identifier</key>
	<string>com.github.dataJAR-recipes.pkg.DB Browser for SQLite</string>
	<key>Input</key>
	<dict>
		<key>BUNDLE_ID</key>
		<string>net.sourceforge.sqlitebrowser</string>
		<key>NAME</key>
		<string>DBBrowserforSQLite</string>
	</dict>
	<key>MinimumVersion</key>
	<string>0.6.1</string>
	<key>ParentRecipe</key>
	<string>com.github.dataJAR-recipes.download.DB Browser for SQLite</string>
	<key>Process</key>
	<array>
		<dict>
			<key>Arguments</key>
			<dict>
				<key>pkgdirs</key>
				<dict>
					<key>Applications</key>
					<string>0775</string>
				</dict>
				<key>pkgroot</key>
				<string>%RECIPE_CACHE_DIR%/%NAME%</string>
			</dict>
			<key>Processor</key>
			<string>PkgRootCreator</string>
		</dict>
		<dict>
			<key>Arguments</key>
			<dict>
				<key>destination_path</key>
				<string>%pkgroot%/Applications/DBBrowserforSQLite.app</string>
				<key>source_path</key>
				<string>%RECIPE_CACHE_DIR%/downloads/%filename%/DB Browser for SQLite.app</string>
			</dict>
			<key>Processor</key>
			<string>Copier</string>
		</dict>
		<dict>
			<key>Arguments</key>
			<dict>
				<key>pkg_request</key>
				<dict>
					<key>chown</key>
					<array>
						<dict>
							<key>group</key>
							<string>admin</string>
							<key>path</key>
							<string>Applications</string>
							<key>user</key>
							<string>root</string>
						</dict>
					</array>
					<key>id</key>
					<string>%BUNDLE_ID%</string>
					<key>options</key>
					<string>purge_ds_store</string>
					<key>pkgname</key>
					<string>%NAME%-%version%</string>
					<key>pkgroot</key>
					<string>%RECIPE_CACHE_DIR%/%NAME%</string>
					<key>version</key>
					<string>%version%</string>
				</dict>
			</dict>
			<key>Processor</key>
			<string>PkgCreator</string>
		</dict>
	</array>
</dict>
</plist>

DB Browser for SQLite/DB Browser for SQLite.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>Description</key>
	<string>Downloads the latest version of DB Browser for SQLite and imports it into Munki.</string>
	<key>Identifier</key>
	<string>com.github.dataJAR-recipes.munki.DB Browser for SQLite</string>
	<key>Input</key>
	<dict>
		<key>MUNKI_REPO_SUBDIR</key>
		<string>apps/%NAME%</string>
		<key>NAME</key>
		<string>DBBrowserforSQLite</string>
		<key>pkginfo</key>
		<dict>
			<key>catalogs</key>
			<array>
				<string>testing</string>
			</array>
			<key>description</key>
			<string>DB Browser for SQLite is a high quality, visual, open source tool to create, design, and edit database files compatible with SQLite..</string>
			<key>developer</key>
			<string>sqlitebrowser</string>
			<key>display_name</key>
			<string>DB Browser for SQLite</string>
			<key>name</key>
			<string>%NAME%</string>
			<key>unattended_install</key>
			<true/>
		</dict>
	</dict>
	<key>MinimumVersion</key>
	<string>0.6.1</string>
	<key>ParentRecipe</key>
	<string>com.github.dataJAR-recipes.download.DB Browser for SQLite</string>
	<key>Process</key>
	<array>
		<dict>
			<key>Arguments</key>
			<dict>
				<key>pkg_path</key>
				<string>%RECIPE_CACHE_DIR%/downloads/%filename%</string>
				<key>repo_subdirectory</key>
				<string>%MUNKI_REPO_SUBDIR%</string>
			</dict>
			<key>Processor</key>
			<string>MunkiImporter</string>
		</dict>
	</array>
</dict>
</plist>

DB Browser for SQLite/DB Browser for SQLite.jss.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>Description</key>
	<string>Downloads the current release version of DB Browser for SQLite and then uploads to the JSS</string>
	<key>Identifier</key>
	<string>com.github.dataJAR-recipes.jss.DB Browser for SQLite</string>
	<key>Input</key>
	<dict>
		<key>CATEGORY</key>
		<string>Productivity</string>
		<key>GROUP_NAME</key>
		<string>%NAME%-update-smart</string>
		<key>GROUP_TEMPLATE</key>
		<string>SmartGroupTemplate.xml</string>
		<key>NAME</key>
		<string>DB Browser for SQLite</string>
		<key>POLICY_CATEGORY</key>
		<string>Testing</string>
		<key>POLICY_TEMPLATE</key>
		<string>PolicyTemplate.xml</string>
		<key>SELF_SERVICE_DESCRIPTION</key>
		<string>DB Browser for SQLite is a high quality, visual, open source tool to create, design, and edit database files compatible with SQLite..</string>
		<key>SELF_SERVICE_ICON</key>
		<string>DBBrowserforSQLite.png</string>
	</dict>
	<key>MinimumVersion</key>
	<string>0.2.0</string>
	<key>ParentRecipe</key>
	<string>com.github.dataJAR-recipes.pkg.DB Browser for SQLite</string>
	<key>Process</key>
	<array>
		<dict>
			<key>Arguments</key>
			<dict>
				<key>category</key>
				<string>%CATEGORY%</string>
				<key>groups</key>
				<array>
					<dict>
						<key>name</key>
						<string>%GROUP_NAME%</string>
						<key>smart</key>
						<true/>
						<key>template_path</key>
						<string>%GROUP_TEMPLATE%</string>
					</dict>
				</array>
				<key>policy_category</key>
				<string>%POLICY_CATEGORY%</string>
				<key>policy_template</key>
				<string>%POLICY_TEMPLATE%</string>
				<key>prod_name</key>
				<string>%NAME%</string>
				<key>self_service_description</key>
				<string>%SELF_SERVICE_DESCRIPTION%</string>
				<key>self_service_icon</key>
				<string>%SELF_SERVICE_ICON%</string>
			</dict>
			<key>Processor</key>
			<string>JSSImporter</string>
		</dict>
	</array>
</dict>
</plist>

DB Browser for SQLite/DB Browser for SQLite.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>Description</key>
	<string>Downloads the latest version of DB Browser for SQLite (formerly sqlitebrowser).
Set PRERELEASE to a non-empty string to download prereleases, either
via Input in an override or via the -k option,
i.e.: `-k PRERELEASE=yes`</string>
	<key>Identifier</key>
	<string>com.github.dataJAR-recipes.download.DB Browser for SQLite</string>
	<key>Input</key>
	<dict>
	    <key>PRERELEASE</key>
        <string></string>
		<key>NAME</key>
		<string>DBBrowserforSQLite</string>
	</dict>
	<key>MinimumVersion</key>
	<string>0.6.1</string>
	<key>Process</key>
	<array>
		<dict>
			<key>Arguments</key>
			<dict>
				<key>github_repo</key>
				<string>sqlitebrowser/sqlitebrowser</string>
				<key>include_prereleases</key>
				<string>%PRERELEASE%</string>
				<key>asset_regex</key>
				<string>[\S]+\.dmg</string>
			</dict>
			<key>Processor</key>
			<string>GitHubReleasesInfoProvider</string>
		</dict>
		<dict>
			<key>Arguments</key>
			<dict>
				<key>filename</key>
				<string>%NAME%-%version%.dmg</string>
			</dict>
			<key>Processor</key>
			<string>URLDownloader</string>
		</dict>
		<dict>
			<key>Processor</key>
			<string>EndOfCheckPhase</string>
		</dict>
		<dict>
			<key>Arguments</key>
			<dict>
				<key>input_path</key>
				<string>%RECIPE_CACHE_DIR%/downloads/%filename%/DB Browser for SQLite.app</string>
				<key>requirement</key>
				<string>identifier "net.sourceforge.sqlitebrowser" and anchor apple generic and 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] = C34AV33YLK</string>
			</dict>
			<key>Processor</key>
			<string>CodeSignatureVerifier</string>
		</dict>
	</array>
</dict>
</plist>

Cubase LE AI Elements 9/Cubase LE AI Elements 9.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>Description</key>
	<string>Downloads the latest version of Cubase LE AI Elements 9 and imports into Munki.</string>
	<key>Identifier</key>
	<string>com.github.dataJAR-recipes.munki.Cubase LE AI Elements 9</string>
	<key>Input</key>
	<dict>
		<key>NAME</key>
		<string>CubaseLEAIElements9</string>
		<key>MUNKI_REPO_SUBDIR</key>
		<string>apps/%NAME%</string>
		<key>pkginfo</key>
		<dict>
			<key>blocking_applications</key>
			<array>
				<string>Cubase LE AI Elements 9.app</string>
			</array>
			<key>catalogs</key>
			<array>
				<string>testing</string>
			</array>
			<key>description</key>
			<string>Cubase Elements welcomes you to the world of Cubase, offering a streamlined music production environment with plenty of features that help seize the moment when musical creativity strikes. Sharing the same pristine audio quality as its larger siblings in the Cubase family, Cubase Elements provides the perfect starting point for intuitive song writing, studio-grade recordings and finalizing your mix. Do you want to elevate your sound to a new level? Cubase Elements is your next step.</string>
			<key>display_name</key>
			<string>Cubase LE AI Elements 9</string>
			<key>developer</key>
			<string>Steinberg Media Technologies GmbH</string>
			<key>minimum_os_version</key>
			<string>10.11</string>
			<key>name</key>
			<string>%NAME%</string>
			<key>unattended_install</key>
			<true/>
			<key>unattended_uninstall</key>
			<true/>
		</dict>
	</dict>
	<key>MinimumVersion</key>
	<string>0.6.1</string>
	<key>ParentRecipe</key>
	<string>com.github.dataJAR-recipes.download.Cubase LE AI Elements 9</string>
	<key>Process</key>
	<array>
        <dict>
        	<key>Processor</key>
        	<string>PkgCopier</string>
        	<key>Arguments</key>
        	<dict>
        		<key>pkg_path</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%.pkg</string>
        		<key>source_pkg</key>
        		<string>%pathname%/Cubase LE AI Elements 9 Update.pkg</string>
        	</dict>
        </dict>
        <dict>
			<key>Processor</key>
			<string>FlatPkgUnpacker</string>
			<key>Arguments</key>
			<dict>
				<key>destination_path</key>
				<string>%RECIPE_CACHE_DIR%/unpack/</string>
				<key>flat_pkg_path</key>
				<string>%RECIPE_CACHE_DIR%/%NAME%.pkg</string>
				<key>purge_destination</key>
				<true/>
			</dict>
		</dict>
		<dict>
			<key>Processor</key>
			<string>PkgPayloadUnpacker</string>
			<key>Arguments</key>
			<dict>
				<key>destination_path</key>
				<string>%RECIPE_CACHE_DIR%/application_payload/Applications</string>
				<key>pkg_payload_path</key>
				<string>%RECIPE_CACHE_DIR%/unpack/Cubase LE AI Elements 9.pkg/Payload</string>
				<key>purge_destination</key>
				<true/>
			</dict>
		</dict>
		<dict>
			<key>Processor</key>
			<string>MunkiInstallsItemsCreator</string>
			<key>Arguments</key>
			<dict>
				<key>faux_root</key>
                <string>%RECIPE_CACHE_DIR%/application_payload</string>
				<key>installs_item_paths</key>
				<array>
					<string>/Applications/Cubase LE AI Elements 9.app</string>
				</array>
			</dict>
		</dict>
		<dict>
			<key>Processor</key>
			<string>MunkiPkginfoMerger</string>
		</dict>
        <dict>
            <key>Processor</key>
            <string>PlistReader</string>
            <key>Arguments</key>
            <dict>
                <key>info_path</key>
                <string>%RECIPE_CACHE_DIR%/application_payload/Applications/Cubase LE AI Elements 9.app/Contents/Info.plist</string>
                <key>plist_keys</key>
                <dict>
                    <key>CFBundleShortVersionString</key>
                    <string>version</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiPkginfoMerger</string>
            <key>Arguments</key>
            <dict>
                <key>additional_pkginfo</key>
                <dict>
                    <key>version</key>
                    <string>%version%</string>
                </dict>
            </dict>
        </dict>
		<dict>
			<key>Processor</key>
			<string>MunkiImporter</string>
			<key>Arguments</key>
			<dict>
				<key>pkg_path</key>
				<string>%RECIPE_CACHE_DIR%/%NAME%.pkg</string>
				<key>repo_subdirectory</key>
				<string>%MUNKI_REPO_SUBDIR%</string>
			</dict>
		</dict>
		<dict>
            <key>Processor</key>
            <string>PathDeleter</string>
            <key>Arguments</key>
            <dict>
                <key>path_list</key>
                <array>
                <string>%RECIPE_CACHE_DIR%/application_payload/</string>
                <string>%RECIPE_CACHE_DIR%/unpack</string>                              
                </array>
            </dict>
        </dict> 
	</array>
</dict>
</plist>
Cubase LE AI Elements 9/Cubase LE AI Elements 9.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Download recipe for the latest version of Cubase LE AI Elements 9.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.Cubase LE AI Elements 9</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>CubaseLEAIElements9</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>Process</key>
    <array>
		<dict>
			<key>Processor</key>
			<string>URLTextSearcher</string>
			<key>Arguments</key>
			<dict>
				<key>re_pattern</key>
				<string>https://download.steinberg.net/downloads_software/Cubase_LE_AI_Elements_9/+[0-9]+\.+[0-9]+\.+[0-9][0-9]/Cubase_LE_AI_Elements_+[0-9]+\.+[0-9]+\.+[0-9][0-9]_Update_mac.dmg</string>
				<key>url</key>
				<string>https://www.steinberg.net/en/support/downloads/cubase_9.html</string>
                <key>result_output_var_name</key>
                <string>url</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>URLDownloader</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
            <key>Arguments</key>
            <dict>
                <key>input_path</key>
                <string>%pathname%/Cubase LE AI Elements 9 Update.pkg</string>
                <key>expected_authority_names</key>
                <array>
                    <string>Developer ID Installer: Steinberg Media Technologies GmbH (5PMY476BJ6)</string>
                    <string>Developer ID Certification Authority</string>
                    <string>Apple Root CA</string>
                </array>
            </dict>
        </dict>      
    </array>
</dict>
</plist>
Cubase LE AI Elements 9.5/Cubase LE AI Elements 9.5.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>Description</key>
	<string>Downloads the latest version of Cubase LE AI Elements 9.5 and imports into Munki.</string>
	<key>Identifier</key>
	<string>com.github.dataJAR-recipes.munki.Cubase LE AI Elements 9.5</string>
	<key>Input</key>
	<dict>
		<key>NAME</key>
		<string>CubaseLEAIElements9.5</string>
		<key>MUNKI_REPO_SUBDIR</key>
		<string>apps/%NAME%</string>
		<key>pkginfo</key>
		<dict>
			<key>blocking_applications</key>
			<array>
				<string>Cubase LE AI Elements 9.5.app</string>
			</array>
			<key>catalogs</key>
			<array>
				<string>testing</string>
			</array>
			<key>description</key>
			<string>Cubase Elements welcomes you to the world of Cubase, offering a streamlined music production environment with plenty of features that help seize the moment when musical creativity strikes. Sharing the same pristine audio quality as its larger siblings in the Cubase family, Cubase Elements provides the perfect starting point for intuitive song writing, studio-grade recordings and finalizing your mix. Do you want to elevate your sound to a new level? Cubase Elements is your next step.</string>
			<key>display_name</key>
			<string>Cubase LE AI Elements 9.5</string>
			<key>developer</key>
			<string>Steinberg Media Technologies GmbH</string>
			<key>minimum_os_version</key>
			<string>10.11</string>
			<key>name</key>
			<string>%NAME%</string>
			<key>unattended_install</key>
			<true/>
			<key>unattended_uninstall</key>
			<true/>
		</dict>
	</dict>
	<key>MinimumVersion</key>
	<string>0.6.1</string>
	<key>ParentRecipe</key>
	<string>com.github.dataJAR-recipes.download.Cubase LE AI Elements 9.5</string>
	<key>Process</key>
	<array>
        <dict>
        	<key>Processor</key>
        	<string>PkgCopier</string>
        	<key>Arguments</key>
        	<dict>
        		<key>pkg_path</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%.pkg</string>
        		<key>source_pkg</key>
        		<string>%pathname%/Cubase LE AI Elements 9.5 Update.pkg</string>
        	</dict>
        </dict>
        <dict>
			<key>Processor</key>
			<string>FlatPkgUnpacker</string>
			<key>Arguments</key>
			<dict>
				<key>destination_path</key>
				<string>%RECIPE_CACHE_DIR%/unpack/</string>
				<key>flat_pkg_path</key>
				<string>%RECIPE_CACHE_DIR%/%NAME%.pkg</string>
				<key>purge_destination</key>
				<true/>
			</dict>
		</dict>
		<dict>
			<key>Processor</key>
			<string>PkgPayloadUnpacker</string>
			<key>Arguments</key>
			<dict>
				<key>destination_path</key>
				<string>%RECIPE_CACHE_DIR%/application_payload/Applications</string>
				<key>pkg_payload_path</key>
				<string>%RECIPE_CACHE_DIR%/unpack/Cubase LE AI Elements 9.5.app.pkg/Payload</string>
				<key>purge_destination</key>
				<true/>
			</dict>
		</dict>
		<dict>
			<key>Processor</key>
			<string>MunkiInstallsItemsCreator</string>
			<key>Arguments</key>
			<dict>
				<key>faux_root</key>
                <string>%RECIPE_CACHE_DIR%/application_payload</string>
				<key>installs_item_paths</key>
				<array>
					<string>/Applications/Cubase LE AI Elements 9.5.app</string>
				</array>
			</dict>
		</dict>
		<dict>
			<key>Processor</key>
			<string>MunkiPkginfoMerger</string>
		</dict>
        <dict>
            <key>Processor</key>
            <string>PlistReader</string>
            <key>Arguments</key>
            <dict>
                <key>info_path</key>
                <string>%RECIPE_CACHE_DIR%/application_payload/Applications/Cubase LE AI Elements 9.5.app/Contents/Info.plist</string>
                <key>plist_keys</key>
                <dict>
                    <key>CFBundleShortVersionString</key>
                    <string>version</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiPkginfoMerger</string>
            <key>Arguments</key>
            <dict>
                <key>additional_pkginfo</key>
                <dict>
                    <key>version</key>
                    <string>%version%</string>
                </dict>
            </dict>
        </dict>
		<dict>
			<key>Processor</key>
			<string>MunkiImporter</string>
			<key>Arguments</key>
			<dict>
				<key>pkg_path</key>
				<string>%RECIPE_CACHE_DIR%/%NAME%.pkg</string>
				<key>repo_subdirectory</key>
				<string>%MUNKI_REPO_SUBDIR%</string>
			</dict>
		</dict>
		<dict>
            <key>Processor</key>
            <string>PathDeleter</string>
            <key>Arguments</key>
            <dict>
                <key>path_list</key>
                <array>
                <string>%RECIPE_CACHE_DIR%/application_payload/</string>
                <string>%RECIPE_CACHE_DIR%/unpack</string>                              
                </array>
            </dict>
        </dict> 
	</array>
</dict>
</plist>
Cubase LE AI Elements 9.5/Cubase LE AI Elements 9.5.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Download recipe for the latest version of Cubase LE AI Elements 9.5</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.Cubase LE AI Elements 9.5</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>Cubase LE AI Elements 9.5</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>URLTextSearcher</string>
            <key>Arguments</key>
            <dict>
                <key>re_pattern</key>
                <string>https://download.steinberg.net/downloads_software/Cubase_9.5/9\.[0-9]\.[0-9][0-9]/Cubase_LE_AI_Elements_9\.[0-9]\.[0-9][0-9]_Update_mac.dmg</string>
                <key>result_output_var_name</key>
                <string>url</string>
                <key>url</key>
                <string>https://o.steinberg.net/en/support/downloads/cubase_9.5.html</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>URLDownloader</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
            <key>Arguments</key>
            <dict>
                <key>input_path</key>
                <string>%pathname%/Cubase LE AI Elements 9.5 Update.pkg</string>
                <key>expected_authority_names</key>
                <array>
                    <string>Developer ID Installer: Steinberg Media Technologies GmbH (5PMY476BJ6)</string>
                    <string>Developer ID Certification Authority</string>
                    <string>Apple Root CA</string>
                </array>
            </dict>
        </dict>
    </array>
</dict>
</plist>
Cubase 9/Cubase 9.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>Description</key>
	<string>Downloads the latest version of Cubase 9 and imports into Munki.</string>
	<key>Identifier</key>
	<string>com.github.dataJAR-recipes.munki.Cubase 9</string>
	<key>Input</key>
	<dict>
		<key>NAME</key>
		<string>Cubase9</string>
		<key>MUNKI_REPO_SUBDIR</key>
		<string>apps/%NAME%</string>
		<key>pkginfo</key>
		<dict>
			<key>blocking_applications</key>
			<array>
				<string>Cubase 9.app</string>
			</array>
			<key>catalogs</key>
			<array>
				<string>testing</string>
			</array>
			<key>description</key>
			<string>Ground-breaking new features, streamlined workflows and stunning new plug-ins — the latest update enhances your favorite digital audio workstation in every direction and underlines Cubase’s claim of being the most complete DAW available. The new Lower Zone gives you direct access to editors and the MixConsole without leaving the Project window; the perfectly integrated Sampler Track opens up new creative possibilities; and the surgically precise frequency EQ takes your mix to the next level. The new Plug-in Sentinel, Multiple Marker Tracks, the improved Maximizer — Cubase 9 introduces loads of new features that you won’t want to miss in future music productions.</string>
			<key>display_name</key>
			<string>Cubase 9</string>
			<key>developer</key>
			<string>Steinberg Media Technologies GmbH</string>
			<key>minimum_os_version</key>
			<string>10.11</string>
			<key>name</key>
			<string>%NAME%</string>
			<key>unattended_install</key>
			<true/>
			<key>unattended_uninstall</key>
			<true/>
		</dict>
	</dict>
	<key>MinimumVersion</key>
	<string>0.6.1</string>
	<key>ParentRecipe</key>
	<string>com.github.dataJAR-recipes.download.Cubase 9</string>
	<key>Process</key>
	<array>
        <dict>
        	<key>Processor</key>
        	<string>PkgCopier</string>
        	<key>Arguments</key>
        	<dict>
        		<key>pkg_path</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%.pkg</string>
        		<key>source_pkg</key>
        		<string>%pathname%/Cubase 9 Update.pkg</string>
        	</dict>
        </dict>
        <dict>
			<key>Processor</key>
			<string>FlatPkgUnpacker</string>
			<key>Arguments</key>
			<dict>
				<key>destination_path</key>
				<string>%RECIPE_CACHE_DIR%/unpack/</string>
				<key>flat_pkg_path</key>
				<string>%RECIPE_CACHE_DIR%/%NAME%.pkg</string>
				<key>purge_destination</key>
				<true/>
			</dict>
		</dict>
		<dict>
			<key>Processor</key>
			<string>PkgPayloadUnpacker</string>
			<key>Arguments</key>
			<dict>
				<key>destination_path</key>
				<string>%RECIPE_CACHE_DIR%/application_payload/Applications</string>
				<key>pkg_payload_path</key>
				<string>%RECIPE_CACHE_DIR%/unpack/Cubase 9.pkg/Payload</string>
				<key>purge_destination</key>
				<true/>
			</dict>
		</dict>
		<dict>
			<key>Processor</key>
			<string>MunkiInstallsItemsCreator</string>
			<key>Arguments</key>
			<dict>
				<key>faux_root</key>
                <string>%RECIPE_CACHE_DIR%/application_payload</string>
				<key>installs_item_paths</key>
				<array>
					<string>/Applications/Cubase 9.app</string>
				</array>
			</dict>
		</dict>
		<dict>
			<key>Processor</key>
			<string>MunkiPkginfoMerger</string>
		</dict>
        <dict>
            <key>Processor</key>
            <string>PlistReader</string>
            <key>Arguments</key>
            <dict>
                <key>info_path</key>
                <string>%RECIPE_CACHE_DIR%/application_payload/Applications/Cubase 9.app/Contents/Info.plist</string>
                <key>plist_keys</key>
                <dict>
                    <key>CFBundleShortVersionString</key>
                    <string>version</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiPkginfoMerger</string>
            <key>Arguments</key>
            <dict>
                <key>additional_pkginfo</key>
                <dict>
                    <key>version</key>
                    <string>%version%</string>
                </dict>
            </dict>
        </dict>
		<dict>
			<key>Processor</key>
			<string>MunkiImporter</string>
			<key>Arguments</key>
			<dict>
				<key>pkg_path</key>
				<string>%RECIPE_CACHE_DIR%/%NAME%.pkg</string>
				<key>repo_subdirectory</key>
				<string>%MUNKI_REPO_SUBDIR%</string>
			</dict>
		</dict>
		<dict>
            <key>Processor</key>
            <string>PathDeleter</string>
            <key>Arguments</key>
            <dict>
                <key>path_list</key>
                <array>
                <string>%RECIPE_CACHE_DIR%/application_payload/</string>
                <string>%RECIPE_CACHE_DIR%/unpack</string>                              
                </array>
            </dict>
        </dict> 
	</array>
</dict>
</plist>
Cubase 9/Cubase 9.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Download recipe for the latest version of Cubase 9.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.Cubase 9</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>Cubase9</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>URLTextSearcher</string>
            <key>Arguments</key>
            <dict>
                <key>url</key>
                <string>https://www.steinberg.net/en/support/downloads/cubase_9.html</string>
                <key>re_pattern</key>
                <string>https:\/\/download\.steinberg\.net\/downloads_software\/Cubase_Pro_9_and_Cubase_Artist_9\/+[0-9]+\.+[0-9]+\.+[0-9][0-9]\/Cubase_+[0-9]+\.+[0-9]+\.+[0-9][0-9]_Update_mac.dmg</string>
                <key>result_output_var_name</key>
                <string>url</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>URLDownloader</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
            <key>Arguments</key>
            <dict>
                <key>input_path</key>
                <string>%pathname%/Cubase 9 Update.pkg</string>
                <key>expected_authority_names</key>
                <array>
                    <string>Developer ID Installer: Steinberg Media Technologies GmbH (5PMY476BJ6)</string>
                    <string>Developer ID Certification Authority</string>
                    <string>Apple Root CA</string>
                </array>
            </dict>
        </dict>
    </array>
</dict>
</plist>
Cubase 9.5/Cubase 9.5.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of Cubase 9.5 and imports into Munki.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.Cubase 9.5</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>Cubase9.5</string>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>pkginfo</key>
        <dict>
            <key>blocking_applications</key>
            <array>
                <string>Cubase 9.5.app</string>
            </array>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>Ground-breaking new features, streamlined workflows and stunning new plug-ins — the latest update enhances your favorite digital audio workstation in every direction and underlines Cubase’s claim of being the most complete DAW available. The new Lower Zone gives you direct access to editors and the MixConsole without leaving the Project window; the perfectly integrated Sampler Track opens up new creative possibilities; and the surgically precise frequency EQ takes your mix to the next level. The new Plug-in Sentinel, Multiple Marker Tracks, the improved Maximizer — Cubase 9.5 introduces loads of new features that you won’t want to miss in future music productions.</string>
            <key>display_name</key>
            <string>Cubase 9.5</string>
            <key>developer</key>
            <string>Steinberg Media Technologies GmbH</string>
            <key>minimum_os_version</key>
            <string>10.11</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
            <key>unattended_uninstall</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.Cubase 9.5</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>PkgCopier</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%.pkg</string>
                <key>source_pkg</key>
                <string>%pathname%/Cubase 9.5 Update.pkg</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>FlatPkgUnpacker</string>
            <key>Arguments</key>
            <dict>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/unpack/</string>
                <key>flat_pkg_path</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%.pkg</string>
                <key>purge_destination</key>
                <true/>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PkgPayloadUnpacker</string>
            <key>Arguments</key>
            <dict>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/application_payload/Applications</string>
                <key>pkg_payload_path</key>
                <string>%RECIPE_CACHE_DIR%/unpack/Cubase 9.5.app.pkg/Payload</string>
                <key>purge_destination</key>
                <true/>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiInstallsItemsCreator</string>
            <key>Arguments</key>
            <dict>
                <key>faux_root</key>
                <string>%RECIPE_CACHE_DIR%/application_payload</string>
                <key>installs_item_paths</key>
                <array>
                    <string>/Applications/Cubase 9.5.app</string>
                </array>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiPkginfoMerger</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PlistReader</string>
            <key>Arguments</key>
            <dict>
                <key>info_path</key>
                <string>%RECIPE_CACHE_DIR%/application_payload/Applications/Cubase 9.5.app/Contents/Info.plist</string>
                <key>plist_keys</key>
                <dict>
                    <key>CFBundleShortVersionString</key>
                    <string>version</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiPkginfoMerger</string>
            <key>Arguments</key>
            <dict>
                <key>additional_pkginfo</key>
                <dict>
                    <key>version</key>
                    <string>%version%</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%.pkg</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PathDeleter</string>
            <key>Arguments</key>
            <dict>
                <key>path_list</key>
                <array>
                <string>%RECIPE_CACHE_DIR%/application_payload/</string>
                <string>%RECIPE_CACHE_DIR%/unpack</string>
                </array>
            </dict>
        </dict>
    </array>
</dict>
</plist>
Cubase 9.5/Cubase 9.5.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Download recipe for the latest version of Cubase 9.5.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.Cubase 9.5</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>Cubase9.5</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>URLTextSearcher</string>
            <key>Arguments</key>
            <dict>
                <key>url</key>
                <string>https://o.steinberg.net/en/support/downloads/cubase_9.5.html</string>
                <key>re_pattern</key>
                <string>https://download.steinberg.net/downloads_software/Cubase_9.5/9\.[0-9]\.[0-9][0-9]/Cubase_9\.[0-9]\.[0-9][0-9]_Update_mac.dmg</string>
                <key>result_output_var_name</key>
                <string>url</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>URLDownloader</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
            <key>Arguments</key>
            <dict>
                <key>input_path</key>
                <string>%pathname%/Cubase 9.5 Update.pkg</string>
                <key>expected_authority_names</key>
                <array>
                    <string>Developer ID Installer: Steinberg Media Technologies GmbH (5PMY476BJ6)</string>
                    <string>Developer ID Certification Authority</string>
                    <string>Apple Root CA</string>
                </array>
            </dict>
        </dict>
    </array>
</dict>
</plist>
CsoundQt/CsoundQt.png METASEP

CsoundQt/CsoundQt.pkg.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of CsoundQt and exports package.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.pkg.CsoundQt</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>CsoundQt</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.CsoundQt</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>PkgRootCreator</string>
            <key>Arguments</key>
            <dict>
                <key>pkgdirs</key>
                <dict>
                    <key>Applications</key>
                    <string>0775</string>
                </dict>
                <key>pkgroot</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>Copier</string>
            <key>Arguments</key>
            <dict>
                <key>destination_path</key>
                <string>%pkgroot%/Applications/CsoundQt-d-html-cs6.app</string>
                <key>overwrite</key>
                <true/>
                <key>source_path</key>
                <string>%pathname%/CsoundQt-d-html-cs6.app</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PkgCreator</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_request</key>
                <dict>
                    <key>chown</key>
                    <array>
                        <dict>
                            <key>group</key>
                            <string>admin</string>
                            <key>path</key>
                            <string>Applications</string>
                            <key>user</key>
                            <string>root</string>
                        </dict>
                    </array>
                    <key>id</key>
                    <string>com.csound.qutecsound</string>
                    <key>options</key>
                    <string>purge_ds_store</string>
                    <key>pkgname</key>
                    <string>%NAME%-%version%</string>
                    <key>pkgroot</key>
                    <string>%RECIPE_CACHE_DIR%/%NAME%</string>
                    <key>version</key>
                    <string>%version%</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PathDeleter</string>
            <key>Arguments</key>
            <dict>
                <key>path_list</key>
                <array>
                    <string>%RECIPE_CACHE_DIR%/%NAME%</string>
                </array>
            </dict>
        </dict>
    </array>
</dict>
</plist>
CsoundQt/CsoundQt.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of CsoundQt and imports it into Munki.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.CsoundQt</string>
    <key>Input</key>
    <dict>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>NAME</key>
        <string>CsoundQt</string>
        <key>pkginfo</key>
        <dict>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>CsoundQt is a frontend for Csound featuring a highlighting editor with autocomplete, interactive widgets and integrated help. It is a cross-platform and aims to be a simple yet powerful and complete development environment for Csound. It can open files created by MacCsound. Csound is a musical programming language with a very long history, with roots in the origins of computer music. It is still being maintained by an active community and despite its age, is still one of the most powerful tools for sound processing and synthesis. CsoundQt hopes to bring the power of Csound to a larger group of people, by reducing Csound's intial learning curve, and by giving users more immediate control of their sound. It hopes to be both a simple tool for the beginner, as well as a powerful tool for experienced users.</string>
            <key>developer</key>
            <string>CsoundQt</string>
            <key>display_name</key>
            <string>CsoundQt</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>requires</key>
            <array>
                <string>Csound</string>
            </array>
            <key>unattended_install</key>
            <true/>
            <key>unattended_uninstall</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.pkg.CsoundQt</string>
    <key>Process</key>
    <array>
        <dict>
          <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%pkg_path%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>
CsoundQt/CsoundQt.jss.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the current release version of CsoundQt and then uploads to the JSS</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.jss.CsoundQt</string>
    <key>Input</key>
    <dict>
        <key>CATEGORY</key>
        <string>Productivity</string>
        <key>GROUP_NAME</key>
        <string>%NAME%-update-smart</string>
        <key>GROUP_TEMPLATE</key>
        <string>Csound-SmartGroupTemplate.xml</string>
        <key>NAME</key>
        <string>CsoundQt</string>
        <key>POLICY_CATEGORY</key>
        <string>Testing</string>
        <key>POLICY_TEMPLATE</key>
        <string>PolicyTemplate.xml</string>
        <key>SELF_SERVICE_DESCRIPTION</key>
        <string>CsoundQt is a frontend for Csound featuring a highlighting editor with autocomplete, interactive widgets and integrated help. It is a cross-platform and aims to be a simple yet powerful and complete development environment for Csound. It can open files created by MacCsound. Csound is a musical programming language with a very long history, with roots in the origins of computer music. It is still being maintained by an active community and despite its age, is still one of the most powerful tools for sound processing and synthesis. CsoundQt hopes to bring the power of Csound to a larger group of people, by reducing Csound's intial learning curve, and by giving users more immediate control of their sound. It hopes to be both a simple tool for the beginner, as well as a powerful tool for experienced users.</string>
        <key>SELF_SERVICE_ICON</key>
        <string>CsoundQt.png</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.2.0</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.pkg.CsoundQt</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Arguments</key>
            <dict>
                <key>category</key>
                <string>%CATEGORY%</string>
                <key>groups</key>
                <array>
                    <dict>
                        <key>name</key>
                        <string>%GROUP_NAME%</string>
                        <key>smart</key>
                        <true/>
                        <key>template_path</key>
                        <string>%GROUP_TEMPLATE%</string>
                    </dict>
                </array>
                <key>policy_category</key>
                <string>%POLICY_CATEGORY%</string>
                <key>policy_template</key>
                <string>%POLICY_TEMPLATE%</string>
                <key>prod_name</key>
                <string>%NAME%</string>
                <key>self_service_description</key>
                <string>%SELF_SERVICE_DESCRIPTION%</string>
                <key>self_service_icon</key>
                <string>%SELF_SERVICE_ICON%</string>
            </dict>
            <key>Processor</key>
            <string>JSSImporter</string>
        </dict>
    </array>
</dict>
</plist>
CsoundQt/CsoundQt.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of CsoundQt.
Set PRERELEASE to a non-empty string to download prereleases, either
via Input in an override or via the -k option,
i.e.: `-k PRERELEASE=yes`</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.CsoundQt</string>
    <key>Input</key>
    <dict>
        <key>PRERELEASE</key>
        <string></string>
        <key>NAME</key>
        <string>CsoundQt</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>GitHubReleasesInfoProvider</string>
            <key>Arguments</key>
            <dict>
                <key>asset_regex</key>
                <string>CsoundQt-\d.*?\.?[^pythonqt]-MacOS\.dmg</string>
                <key>github_repo</key>
                <string>csoundqt/csoundqt</string>
                <key>include_prereleases</key>
                <string>%PRERELEASE%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>URLDownloader</string>
            <key>Arguments</key>
            <dict>
                <key>filename</key>
                <string>%NAME%-%version%.dmg</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
    </array>
</dict>
</plist>
Csound/Csound.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of Csound and imports it into Munki.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.Csound</string>
    <key>Input</key>
    <dict>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>NAME</key>
        <string>Csound</string>
        <key>pkginfo</key>
        <dict>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>Csound is a user-programmable and user-extensible sound processing language and software synthesizer.</string>
            <key>developer</key>
            <string>Csound</string>
            <key>display_name</key>
            <string>Csound</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
            <key>unattended_uninstall</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.Csound</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%pathname%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>
Csound/Csound.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of Csound.
Set PRERELEASE to a non-empty string to download prereleases, either
via Input in an override or via the -k option,
i.e.: `-k PRERELEASE=yes`</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.Csound</string>
    <key>Input</key>
    <dict>
        <key>PRERELEASE</key>
        <string></string>
        <key>NAME</key>
        <string>Csound</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>GitHubReleasesInfoProvider</string>
            <key>Arguments</key>
            <dict>
                <key>github_repo</key>
                <string>csound/csound</string>
                <key>include_prereleases</key>
                <string>%PRERELEASE%</string>
                <key>asset_regex</key>
                <string>csound-MacOS_x86_64-.*?\.dmg</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>URLDownloader</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
    </array>
</dict>
</plist>
CrashPlanPROe/CrashPlanPROeClient.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version CrashPlan PROe Client and imports into Munki</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.CrashPlanPROeClient</string>
    <key>Input</key>
    <dict>
        <key>MUNKI_REPO_SUBDIR</key>
		<string>apps/%NAME%</string>
        <key>NAME</key>
        <string>CrashPlanPROeClient</string>
        <key>SEARCH_URL</key>
        <string>https://www.crashplan.com/shared/js/cp.download.js</string>
        <key>SEARCH_PATTERN</key>
        <string>cp.download.CPPROE_CLIENT_VERSION = \'(?P&lt;version&gt;.*?)\';</string>
        <key>DOWNLOAD_URL</key>
        <string>https://download.crashplan.com/installs/mac/install/CrashPlanPROe/</string>
		<key>pkginfo</key>
		<dict>
			<key>catalogs</key>
			<array>
				<string>testing</string>
			</array>
			<key>description</key>
			<string>Silently and continuously back up all distributed end-user data for complete visibility and control on a single, secure platform.</string>
			<key>developer</key>
			<string>Code42</string>
			<key>display_name</key>
			<string>CrashPlan PROe Client</string>
			<key>name</key>
			<string>%NAME%</string>
			<key>unattended_install</key>
			<true/>
			<key>unattended_uninstall</key>
			<true/>
		</dict>
    </dict>
    <key>MinimumVersion</key>
    <string>1.1</string>
    <key>ParentRecipe</key>
	<string>com.github.homebysix.pkg.CrashPlanPROeClient</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>DeprecationWarning</string>
            <key>Arguments</key>
            <dict>
                <key>warning_message</key>
                <string>This recipe has been no longer works and has been deprecated.</string>
            </dict>
        </dict>
        <dict>   
            <key>Processor</key>   
            <string>StopProcessingIf</string>   
            <key>Arguments</key>   
            <dict>   
                <key>predicate</key>   
                <string>TRUEPREDICATE</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>DeprecationWarning</string>
            <key>Arguments</key>
            <dict>
                <key>warning_message</key>
                <string>This recipe is now non-functional, as parent pkg recipe was deleted: https://github.com/autopkg/homebysix-recipes/commit/a8bef0ee56626811992dac34c639122c618d75ab#diff-ce0b34293223285eb9810a1219e7ff05</string>
            </dict>
        </dict>
        <dict>
			<key>Processor</key>
			<string>FlatPkgUnpacker</string>
			<key>Arguments</key>
			<dict>
				<key>flat_pkg_path</key>
				<string>%RECIPE_CACHE_DIR%/CrashPlanPROe-%version%.pkg</string>
				<key>destination_path</key>
				<string>%RECIPE_CACHE_DIR%/pkgexpand</string>
			</dict>
		</dict>
		<dict>
			<key>Processor</key>
			<string>PkgRootCreator</string>
			<key>Arguments</key>
			<dict>
				<key>pkgroot</key>
				<string>%RECIPE_CACHE_DIR%/pkgroot</string>
				<key>pkgdirs</key>
				<dict>
					<key>Applications</key>
					<string>0755</string>
				</dict>
			</dict>
		</dict>
		<dict>
			<key>Processor</key>
			<string>PkgPayloadUnpacker</string>
			<key>Arguments</key>
			<dict>
				<key>destination_path</key>
				<string>%RECIPE_CACHE_DIR%/pkgroot/Applications</string>
				<key>pkg_payload_path</key>
				<string>%RECIPE_CACHE_DIR%/pkgexpand/crashplan.pkg/Payload</string>
			</dict>
		</dict>
		<dict>
			<key>Arguments</key>
			<dict>
				<key>faux_root</key>
				<string>%RECIPE_CACHE_DIR%/pkgroot</string>
				<key>installs_item_paths</key>
				<array>
					<string>/Applications/CrashPlan.app</string>
				</array>
			</dict>
			<key>Processor</key>
			<string>MunkiInstallsItemsCreator</string>
		</dict>
		<dict>
			<key>Processor</key>
			<string>MunkiPkginfoMerger</string>
		</dict>
		<dict>
			<key>Arguments</key>
			<dict>
				<key>input_plist_path</key>
				<string>%RECIPE_CACHE_DIR%/pkgroot/Applications/CrashPlan.app/Contents/Info.plist</string>
			</dict>
			<key>Processor</key>
			<string>Versioner</string>
		</dict>
		<dict>
			<key>Arguments</key>
			<dict>
				<key>additional_pkginfo</key>
				<dict>
					<key>version</key>
					<string>%version%</string>
					<key>uninstall_method</key>
					<string>/Library/Application Support/CrashPlan/Uninstall.app/Contents/Resources/uninstall.sh</string>
				</dict>
			</dict>
			<key>Processor</key>
			<string>MunkiPkginfoMerger</string>
		</dict>
		<dict>
			<key>Arguments</key>
			<dict>
				<key>pkg_path</key>
				<string>%RECIPE_CACHE_DIR%/CrashPlanPROe-%version%.pkg</string>
				<key>repo_subdirectory</key>
				<string>%MUNKI_REPO_SUBDIR%</string>
			</dict>
			<key>Processor</key>
			<string>MunkiImporter</string>
		</dict>
    </array>
</dict>
</plist>

CrashPlan/CrashPlan.png METASEP

CrashPlan/CrashPlan.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>Comment</key>
	<string>Created with Recipe Robot v1.1.2 (https://github.com/homebysix/recipe-robot)</string>
	<key>Description</key>
	<string>Downloads the latest version of CrashPlan and imports it into Munki.</string>
	<key>Identifier</key>
	<string>com.github.dataJAR-recipes.munki.CrashPlan</string>
	<key>Input</key>
	<dict>
		<key>APP_FILENAME</key>
		<string>CrashPlan</string>
		<key>MUNKI_REPO_SUBDIR</key>
		<string>apps/%NAME%</string>
		<key>NAME</key>
		<string>CrashPlan</string>
		<key>pkginfo</key>
		<dict>
			<key>blocking_applications</key>
			<array>
				<string>Electron Helper (Renderer).app</string>
				<string>CrashPlan.app</string>
				<string>Electron Helper (GPU).app</string>
				<string>CrashPlanService.app</string>
				<string>Electron Helper (Plugin).app</string>
				<string>Electron Helper.app</string>
			</array>
			<key>catalogs</key>
			<array>
				<string>testing</string>
			</array>
			<key>description</key>
			<string> </string>
			<key>developer</key>
			<string>Code 42 Software</string>
			<key>display_name</key>
			<string>CrashPlan</string>
			<key>name</key>
			<string>%NAME%</string>
			<key>unattended_install</key>
			<true/>
		</dict>
	</dict>
	<key>MinimumVersion</key>
	<string>1.0.0</string>
	<key>ParentRecipe</key>
	<string>com.github.dataJAR-recipes.download.CrashPlan</string>
	<key>Process</key>
	<array>
		<dict>
			<key>Arguments</key>
			<dict>
				<key>pkg_path</key>
				<string>%pathname%</string>
				<key>repo_subdirectory</key>
				<string>%MUNKI_REPO_SUBDIR%</string>
			</dict>
			<key>Processor</key>
			<string>MunkiImporter</string>
		</dict>
	</array>
</dict>
</plist>

CrashPlan/CrashPlan.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>Comment</key>
	<string>Created with Recipe Robot v1.1.2 (https://github.com/homebysix/recipe-robot)</string>
	<key>Description</key>
	<string>Downloads the latest version of CrashPlan.</string>
	<key>Identifier</key>
	<string>com.github.dataJAR-recipes.download.CrashPlan</string>
	<key>Input</key>
	<dict>
		<key>APP_FILENAME</key>
		<string>CrashPlan</string>
		<key>DOWNLOAD_URL</key>
		<string>https://download.code42.com/installs/agent/latest-mac.dmg</string>
		<key>NAME</key>
		<string>CrashPlan</string>
	</dict>
	<key>MinimumVersion</key>
	<string>1.1</string>
	<key>Process</key>
	<array>
		<dict>
            <key>Processor</key>
            <string>DeprecationWarning</string>
            <key>Arguments</key>
            <dict>
                <key>warning_message</key>
                <string>This recipe has been replaced by: https://github.com/autopkg/dataJAR-recipes/tree/master/Code42.</string>
            </dict>
        </dict>
        <dict>   
            <key>Processor</key>   
            <string>StopProcessingIf</string>   
            <key>Arguments</key>   
            <dict>   
                <key>predicate</key>   
                <string>TRUEPREDICATE</string>
            </dict>
        </dict>
	</array>
</dict>
</plist>

CrashPlan for Small Business/CrashPlan for Small Business.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of CrashPlan for Small Business and imports it into Munki.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.CrashPlan for Small Business</string>
    <key>Input</key>
    <dict>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>NAME</key>
        <string>CrashPlanForSmallBusiness</string>
        <key>pkginfo</key>
        <dict>
            <key>blocking_applications</key>
            <array>
                <string>Electron Helper (Renderer).app</string>
                <string>Code42.app</string>
                <string>Electron Helper (GPU).app</string>
                <string>Code42 Service.app</string>
                <string>Electron Helper (Plugin).app</string>
                <string>Electron Helper.app</string>
            </array>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>Enterprise-grade data loss protection at small business prices. CrashPlan® for Small Business makes protecting files on your devices easy.</string>
            <key>developer</key>
            <string>Code 42 Software</string>
            <key>display_name</key>
            <string>CrashPlan for Small Business</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>1.0.0</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.CrashPlan for Small Business</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>FlatPkgUnpacker</string>
            <key>Arguments</key>
            <dict>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/unpack</string>
                <key>flat_pkg_path</key>
                <string>%pathname%/Install CrashPlan for Small Business.pkg</string>
                <key>purge_destination</key>
                <true/>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PkgRootCreator</string>
            <key>Arguments</key>
            <dict>
                <key>pkgdirs</key>
                <dict>
                    <key>Applications</key>
                    <string>0755</string>
                </dict>
                <key>pkgroot</key>
                <string>%RECIPE_CACHE_DIR%/pkgroot</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PkgPayloadUnpacker</string>
            <key>Arguments</key>
            <dict>
                <key>destination_path</key>
                <string>%pkgroot%/Applications</string>
                <key>pkg_payload_path</key>
                <string>%RECIPE_CACHE_DIR%/unpack/code42.pkg/Payload</string>
                <key>purge_destination</key>
                <true/>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiInstallsItemsCreator</string>
            <key>Arguments</key>
            <dict>
                <key>faux_root</key>
                <string>%RECIPE_CACHE_DIR%/pkgroot</string>
                <key>version_comparison_key</key>
                <string>CFBundleShortVersionString</string>
                <key>installs_item_paths</key>
                <array>
                    <string>/Applications/Code42.app</string>
                </array>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiPkginfoMerger</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%pathname%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PathDeleter</string>
            <key>Arguments</key>
            <dict>
                <key>path_list</key>
                <array>
                    <string>%RECIPE_CACHE_DIR%/pkgroot/</string>
                    <string>%RECIPE_CACHE_DIR%/unpack/</string>
                </array>
            </dict>
        </dict>
    </array>
</dict>
</plist>

CrashPlan for Small Business/CrashPlan for Small Business.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of CrashPlan for Small Business.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.CrashPlan for Small Business</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>CrashPlanForSmallBusiness</string>
    </dict>
    <key>MinimumVersion</key>
    <string>1.0.0</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>URLDownloader</string>
            <key>Arguments</key>
            <dict>
                <key>filename</key>
                <string>%NAME%.dmg</string>
                <key>url</key>
                <string>https://download.code42.com/installs/agent/latest-smb-mac.dmg</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
            <key>Arguments</key>
            <dict>
                <key>expected_authority_names</key>
                <array>
                    <string>Developer ID Installer: Code 42 Software (9YV9435DHD)</string>
                    <string>Developer ID Certification Authority</string>
                    <string>Apple Root CA</string>
                </array>
                <key>input_path</key>
                <string>%pathname%/Install CrashPlan for Small Business.pkg</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>
CrashPlan for Enterprise 7/CrashPlanForEnterprise7.png METASEP

CrashPlan for Enterprise 7/CrashPlan for Enterprise 7.pkg.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Download recipe for the latest version of CrashPlan for Enterprise 7.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.pkg.CrashPlan for Enterprise 7</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>CrashPlanForEnterprise7</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.CrashPlan for Enterprise 7</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>Copier</string>
            <key>Arguments</key>
            <dict>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%.pkg</string>
                <key>source_path</key>
                <string>%pathname%/Install Code42 CrashPlan.pkg</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>FlatPkgUnpacker</string>
            <key>Arguments</key>
            <dict>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/unpack/</string>
                <key>flat_pkg_path</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%.pkg</string>
                <key>purge_destination</key>
                <string>true</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PkgRootCreator</string>
            <key>Arguments</key>
            <dict>
                <key>pkgroot</key>
                <string>%RECIPE_CACHE_DIR%/application_payload</string>
                <key>pkgdirs</key>
                <dict>
                    <key>Applications</key>
                    <string>0755</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PkgPayloadUnpacker</string>
            <key>Arguments</key>
            <dict>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/application_payload/Applications</string>
                <key>pkg_payload_path</key>
                <string>%RECIPE_CACHE_DIR%/unpack/crashplan.pkg/Payload</string>
                <key>purge_destination</key>
                <string>true</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>Versioner</string>
            <key>Arguments</key>
            <dict>
                <key>input_plist_path</key>
                <string>%RECIPE_CACHE_DIR%/application_payload/Applications/CrashPlan.app/Contents/Info.plist</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>FileMover</string>
            <key>Arguments</key>
            <dict>
                <key>source</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%.pkg</string>
                <key>target</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%-%version%.pkg</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>
CrashPlan for Enterprise 7/CrashPlan for Enterprise 7.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version CrashPlan for Enterprise 7 and imports into Munki</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.CrashPlan for Enterprise 7</string>
    <key>Input</key>
    <dict>
        <key>MUNKI_REPO_SUBDIR</key>
		<string>apps/%NAME%</string>
        <key>NAME</key>
        <string>CrashPlanForEnterprise7</string>
		<key>pkginfo</key>
		<dict>
			<key>catalogs</key>
			<array>
				<string>testing</string>
			</array>
			<key>description</key>
			<string>Silently and continuously back up all distributed end-user data for complete visibility and control on a single, secure platform.</string>
			<key>developer</key>
			<string>Code42</string>
			<key>display_name</key>
			<string>CrashPlan for Enterprise 7</string>
			<key>name</key>
			<string>%NAME%</string>
			<key>unattended_install</key>
			<true/>
			<key>unattended_uninstall</key>
			<true/>
		</dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>ParentRecipe</key>
	<string>com.github.dataJAR-recipes.pkg.CrashPlan for Enterprise 7</string>
    <key>Process</key>
    <array>
		<dict>
			<key>Processor</key>
			<string>MunkiInstallsItemsCreator</string>
			<key>Arguments</key>
			<dict>
				<key>faux_root</key>
                <string>%RECIPE_CACHE_DIR%/application_payload</string>
				<key>installs_item_paths</key>
				<array>
					<string>/Applications/CrashPlan.app</string>
				</array>
			</dict>
		</dict>
		<dict>
			<key>Processor</key>
			<string>MunkiPkginfoMerger</string>
		</dict>
		<dict>
			<key>Processor</key>
			<string>MunkiPkginfoMerger</string>
			<key>Arguments</key>
			<dict>
				<key>additional_pkginfo</key>
				<dict>
					<key>version</key>
					<string>%version%</string>
					<key>uninstall_method</key>
					<string>/Library/Application Support/CrashPlan/Uninstall.app/Contents/Resources/uninstall.sh</string>
				</dict>
			</dict>
		</dict>
		<dict>
			<key>Processor</key>
			<string>MunkiImporter</string>
			<key>Arguments</key>
			<dict>
				<key>pkg_path</key>
				<string>%target%</string>
				<key>repo_subdirectory</key>
				<string>%MUNKI_REPO_SUBDIR%</string>
			</dict>
		</dict>
		<dict>
            <key>Processor</key>
            <string>PathDeleter</string>
            <key>Arguments</key>
            <dict>
                <key>path_list</key>
                <array>
                <string>%RECIPE_CACHE_DIR%/application_payload/</string>
                <string>%RECIPE_CACHE_DIR%/unpack</string>                              
                </array>
            </dict>
        </dict> 
    </array>
</dict>
</plist>

CrashPlan for Enterprise 7/CrashPlan for Enterprise 7.jss.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>Description</key>
	<string>Downloads the latest version of CrashPlan for Enterprise 7 and then uploads to the JSS.</string>
	<key>Identifier</key>
	<string>com.github.dataJAR-recipes.jss.CrashPlan for Enterprise 7</string>
	<key>Input</key>
	<dict>
		<key>CATEGORY</key>
		<string>Utilities</string>
		<key>GROUP_NAME</key>
		<string>%NAME%-update-smart</string>
		<key>GROUP_TEMPLATE</key>
		<string>SmartGroupTemplate.xml</string>
		<key>NAME</key>
		<string>CrashPlanForEnterprise7</string>
		<key>POLICY_CATEGORY</key>
		<string>Testing</string>
		<key>POLICY_TEMPLATE</key>
		<string>PolicyTemplate.xml</string>
		<key>SELF_SERVICE_DESCRIPTION</key>
		<string>Silently and continuously back up all distributed end-user data for complete visibility and control on a single, secure platform.</string>
		<key>SELF_SERVICE_ICON</key>
		<string>CrashPlanForEnterprise7.png</string>
	</dict>
	<key>MinimumVersion</key>
	<string>0.6.1</string>
	<key>ParentRecipe</key>
	<string>com.github.dataJAR-recipes.pkg.CrashPlan for Enterprise 7</string>
	<key>Process</key>
	<array>
		<dict>
			<key>Arguments</key>
			<dict>
				<key>category</key>
				<string>%CATEGORY%</string>
				<key>groups</key>
				<array>
					<dict>
						<key>name</key>
						<string>%GROUP_NAME%</string>
						<key>smart</key>
						<true/>
						<key>template_path</key>
						<string>%GROUP_TEMPLATE%</string>
					</dict>
				</array>
				<key>pkg_path</key>
				<string>%target%</string>
				<key>policy_category</key>
				<string>%POLICY_CATEGORY%</string>
				<key>policy_template</key>
				<string>%POLICY_TEMPLATE%</string>
				<key>prod_name</key>
				<string>CrashPlan</string>
				<key>self_service_description</key>
				<string>%SELF_SERVICE_DESCRIPTION%</string>
				<key>self_service_icon</key>
				<string>%SELF_SERVICE_ICON%</string>
			</dict>
			<key>Processor</key>
			<string>JSSImporter</string>
		</dict>
		<dict>
            <key>Arguments</key>
            <dict>
                <key>path_list</key>
                <array>
                <string>%RECIPE_CACHE_DIR%/application_payload/</string>
                <string>%RECIPE_CACHE_DIR%/unpack</string>                              
                </array>
            </dict>
            <key>Processor</key>
            <string>PathDeleter</string>
        </dict> 
	</array>
</dict>
</plist>
CrashPlan for Enterprise 7/CrashPlan for Enterprise 7.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Download recipe for the latest version of CrashPlan for Enterprise 7 and extracts the Pkg</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.CrashPlan for Enterprise 7</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>CrashPlanForEnterprise7</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>DeprecationWarning</string>
            <key>Arguments</key>
            <dict>
                <key>warning_message</key>
                <string>"Previous versions are no longer supported. If you need to download an older version, contact our Customer Champions for support." from - https://support.code42.com/Administrator/6/Planning_And_Installing/Code42_server_and_app_downloads</string>
             </dict>
        </dict>
        <dict>   
            <key>Processor</key>   
            <string>StopProcessingIf</string>   
            <key>Arguments</key>   
            <dict>   
                <key>predicate</key>   
                <string>TRUEPREDICATE</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>URLTextSearcher</string>
            <key>Arguments</key>
            <dict>
                <key>url</key>
                <string>https://support.code42.com/Administrator/6/Planning_And_Installing/Code42_server_and_app_downloads</string>
                <key>re_pattern</key>
                <string>href=\"(https://download\.code42\.com/installs/mac/install/Code42CrashPlan/Code42CrashPlan_7.*_Mac\.dmg)\"</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>URLDownloader</string>
            <key>Arguments</key>
            <dict>
                <key>url</key>
                <string>%match%</string>
                <key>filename</key>
                <string>%NAME%.dmg</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
            <key>Arguments</key>
            <dict>
                <key>input_path</key>
                <string>%pathname%/Install Code42 CrashPlan.pkg</string>
                <key>expected_authority_names</key>
                <array>
                    <string>Developer ID Installer: Code 42 Software (9YV9435DHD)</string>
                    <string>Developer ID Certification Authority</string>
                    <string>Apple Root CA</string>
                </array>
            </dict>
        </dict>
    </array>
</dict>
</plist>
CrashPlan for Enterprise 6/CrashPlanForEnterprise6.png METASEP

CrashPlan for Enterprise 6/CrashPlan for Enterprise 6.pkg.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Download recipe for the latest version of CrashPlan for Enterprise 6.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.pkg.CrashPlan for Enterprise 6</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>CrashPlanForEnterprise6</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.CrashPlan for Enterprise 6</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>Copier</string>
            <key>Arguments</key>
            <dict>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%.pkg</string>
                <key>source_path</key>
                <string>%pathname%/Install Code42 CrashPlan.pkg</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>FlatPkgUnpacker</string>
            <key>Arguments</key>
            <dict>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/unpack/</string>
                <key>flat_pkg_path</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%.pkg</string>
                <key>purge_destination</key>
                <string>true</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PkgRootCreator</string>
            <key>Arguments</key>
            <dict>
                <key>pkgroot</key>
                <string>%RECIPE_CACHE_DIR%/application_payload</string>
                <key>pkgdirs</key>
                <dict>
                    <key>Applications</key>
                    <string>0755</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PkgPayloadUnpacker</string>
            <key>Arguments</key>
            <dict>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/application_payload/Applications</string>
                <key>pkg_payload_path</key>
                <string>%RECIPE_CACHE_DIR%/unpack/crashplan.pkg/Payload</string>
                <key>purge_destination</key>
                <string>true</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>Versioner</string>
            <key>Arguments</key>
            <dict>
                <key>input_plist_path</key>
                <string>%RECIPE_CACHE_DIR%/application_payload/Applications/CrashPlan.app/Contents/Info.plist</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>FileMover</string>
            <key>Arguments</key>
            <dict>
                <key>source</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%.pkg</string>
                <key>target</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%-%version%.pkg</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>
CrashPlan for Enterprise 6/CrashPlan for Enterprise 6.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version CrashPlan for Enterprise 6 and imports into Munki</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.CrashPlan for Enterprise 6</string>
    <key>Input</key>
    <dict>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>NAME</key>
        <string>CrashPlanForEnterprise6</string>
        <key>pkginfo</key>
        <dict>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>Silently and continuously back up all distributed end-user data for complete visibility and control on a single, secure platform.</string>
            <key>developer</key>
            <string>Code42</string>
            <key>display_name</key>
            <string>CrashPlan for Enterprise 6</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
            <key>unattended_uninstall</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.pkg.CrashPlan for Enterprise 6</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>MunkiInstallsItemsCreator</string>
            <key>Arguments</key>
            <dict>
                <key>faux_root</key>
                <string>%RECIPE_CACHE_DIR%/application_payload</string>
                <key>installs_item_paths</key>
                <array>
                    <string>/Applications/CrashPlan.app</string>
                </array>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiPkginfoMerger</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiPkginfoMerger</string>
            <key>Arguments</key>
            <dict>
                <key>additional_pkginfo</key>
                <dict>
                    <key>version</key>
                    <string>%version%</string>
                    <key>uninstall_method</key>
                    <string>/Library/Application Support/CrashPlan/Uninstall.app/Contents/Resources/uninstall.sh</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%target%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PathDeleter</string>
            <key>Arguments</key>
            <dict>
                <key>path_list</key>
                <array>
                <string>%RECIPE_CACHE_DIR%/application_payload/</string>
                <string>%RECIPE_CACHE_DIR%/unpack</string>                              
                </array>
            </dict>
        </dict> 
    </array>
</dict>
</plist>

CrashPlan for Enterprise 6/CrashPlan for Enterprise 6.jss.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>Description</key>
	<string>Downloads the latest version of CrashPlan for Enterprise 6 and then uploads to the JSS.</string>
	<key>Identifier</key>
	<string>com.github.dataJAR-recipes.jss.CrashPlan for Enterprise 6</string>
	<key>Input</key>
	<dict>
		<key>CATEGORY</key>
		<string>Utilities</string>
		<key>GROUP_NAME</key>
		<string>%NAME%-update-smart</string>
		<key>GROUP_TEMPLATE</key>
		<string>SmartGroupTemplate.xml</string>
		<key>NAME</key>
		<string>CrashPlanForEnterprise6</string>
		<key>POLICY_CATEGORY</key>
		<string>Testing</string>
		<key>POLICY_TEMPLATE</key>
		<string>PolicyTemplate.xml</string>
		<key>SELF_SERVICE_DESCRIPTION</key>
		<string>Silently and continuously back up all distributed end-user data for complete visibility and control on a single, secure platform.</string>
		<key>SELF_SERVICE_ICON</key>
		<string>CrashPlanForEnterprise6.png</string>
	</dict>
	<key>MinimumVersion</key>
	<string>0.6.1</string>
	<key>ParentRecipe</key>
	<string>com.github.dataJAR-recipes.pkg.CrashPlan for Enterprise 6</string>
	<key>Process</key>
	<array>
		<dict>
			<key>Arguments</key>
			<dict>
				<key>category</key>
				<string>%CATEGORY%</string>
				<key>groups</key>
				<array>
					<dict>
						<key>name</key>
						<string>%GROUP_NAME%</string>
						<key>smart</key>
						<true/>
						<key>template_path</key>
						<string>%GROUP_TEMPLATE%</string>
					</dict>
				</array>
				<key>pkg_path</key>
				<string>%target%</string>
				<key>policy_category</key>
				<string>%POLICY_CATEGORY%</string>
				<key>policy_template</key>
				<string>%POLICY_TEMPLATE%</string>
				<key>prod_name</key>
				<string>CrashPlan</string>
				<key>self_service_description</key>
				<string>%SELF_SERVICE_DESCRIPTION%</string>
				<key>self_service_icon</key>
				<string>%SELF_SERVICE_ICON%</string>
			</dict>
			<key>Processor</key>
			<string>JSSImporter</string>
		</dict>
		<dict>
            <key>Arguments</key>
            <dict>
                <key>path_list</key>
                <array>
                <string>%RECIPE_CACHE_DIR%/application_payload/</string>
                <string>%RECIPE_CACHE_DIR%/unpack</string>                              
                </array>
            </dict>
            <key>Processor</key>
            <string>PathDeleter</string>
        </dict> 
	</array>
</dict>
</plist>
CrashPlan for Enterprise 6/CrashPlan for Enterprise 6.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Download recipe for the latest version of CrashPlan for Enterprise 6 and extracts the Pkg</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.CrashPlan for Enterprise 6</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>CrashPlanForEnterprise6</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>DeprecationWarning</string>
            <key>Arguments</key>
            <dict>
                <key>warning_message</key>
                <string>"Previous versions are no longer supported. If you need to download an older version, contact our Customer Champions for support." from - https://support.code42.com/Administrator/6/Planning_And_Installing/Code42_server_and_app_downloads</string>
             </dict>
        </dict>
        <dict>   
            <key>Processor</key>   
            <string>StopProcessingIf</string>   
            <key>Arguments</key>   
            <dict>   
                <key>predicate</key>   
                <string>TRUEPREDICATE</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>URLTextSearcher</string>
            <key>Arguments</key>
            <dict>
                <key>url</key>
                <string>https://support.code42.com/Administrator/6/Planning_And_Installing/Code42_server_and_app_downloads</string>
                <key>re_pattern</key>
                <string>href=\"(https://download\.code42\.com/installs/mac/install/Code42CrashPlan/Code42CrashPlan_6.*_Mac\.dmg)\"</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>URLDownloader</string>
            <key>Arguments</key>
            <dict>
                <key>url</key>
                <string>%match%</string>
                <key>filename</key>
                <string>%NAME%.dmg</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
            <key>Arguments</key>
            <dict>
                <key>input_path</key>
                <string>%pathname%/Install Code42 CrashPlan.pkg</string>
                <key>expected_authority_names</key>
                <array>
                    <string>Developer ID Installer: Code 42 Software (9YV9435DHD)</string>
                    <string>Developer ID Certification Authority</string>
                    <string>Apple Root CA</string>
                </array>
            </dict>
        </dict>
    </array>
</dict>
</plist>
Coot/Coot.png METASEP

Coot/Coot.pkg.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of Coot and creates a flat PKG.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.pkg.Coot</string>
    <key>Input</key>
    <dict>
        <key>BUNDLE_ID</key>
		<string>edu.ucsc.scottlab.coot</string>
        <key>NAME</key>
        <string>Coot</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.Coot</string>
    <key>Process</key>
    <array>
    	<dict>
            <key>Arguments</key>
            <dict>
                <key>pattern</key>
                <string>%RECIPE_CACHE_DIR%/unzip/*.pkg</string>
            </dict>
            <key>Processor</key>
            <string>FileFinder</string>
        </dict>
        <dict>
            <key>Arguments</key>
            <dict>
                <key>extract_root</key>
                <string>%RECIPE_CACHE_DIR%/pkgroot</string>
                <key>pkg_path</key>
                <string>%found_filename%</string>
            </dict>
            <key>Processor</key>
            <string>PkgExtractor</string>
        </dict>
        <dict>
			<key>Arguments</key>
			<dict>
				<key>pkg_request</key>
				<dict>
					<key>chown</key>
					<array>
						<dict>
							<key>group</key>
							<string>admin</string>
							<key>path</key>
							<string>/</string>
							<key>user</key>
							<string>root</string>
						</dict>
					</array>
					<key>id</key>
					<string>%BUNDLE_ID%-%version%</string>
					<key>options</key>
					<string>purge_ds_store</string>
					<key>pkgname</key>
					<string>%NAME%-%version%</string>
					<key>pkgroot</key>
					<string>%RECIPE_CACHE_DIR%/pkgroot</string>
					<key>version</key>
					<string>%version%</string>
				</dict>
			</dict>
			<key>Processor</key>
			<string>PkgCreator</string>
		</dict>
		<dict>
        	<key>Processor</key>
            <string>PathDeleter</string>
            <key>Arguments</key>
            <dict>
                <key>path_list</key>
                <array>
                	<string>%RECIPE_CACHE_DIR%/pkgroot</string>
            	</array>
            </dict>
        </dict>
        <dict>
        	<key>Processor</key>
            <string>PathDeleter</string>
            <key>Arguments</key>
            <dict>
                <key>path_list</key>
                <array>
                	<string>%RECIPE_CACHE_DIR%/unzip</string>
            	</array>
            </dict>
        </dict>
    </array>
</dict>
</plist>

Coot/Coot.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of Coot and imports into Munki.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.Coot</string>
    <key>Input</key>
    <dict>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>NAME</key>
        <string>Coot</string>
        <key>pkginfo</key>
        <dict>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>Coot is a graphics program for building, refining and analysing macromolecular models obtained with crystallographic procedures.</string>
            <key>display_name</key>
            <string>Coot</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
            <key>unattended_uninstall</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.pkg.Coot</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%-%version%.pkg</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
        </dict>
    </array>
</dict>
</plist>

Coot/Coot.jss.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>Description</key>
	<string>Downloads the current release version of Coot and then uploads to the JSS</string>
	<key>Identifier</key>
	<string>com.github.dataJAR-recipes.jss.Coot</string>
	<key>Input</key>
	<dict>
		<key>CATEGORY</key>
		<string>Applications</string>
		<key>GROUP_NAME</key>
		<string>%NAME%-update-smart</string>
		<key>GROUP_TEMPLATE</key>
		<string>Coot-SmartGroupTemplate.xml</string>
		<key>NAME</key>
		<string>Coot</string>
		<key>POLICY_CATEGORY</key>
		<string>Testing</string>
		<key>POLICY_TEMPLATE</key>
		<string>PolicyTemplate.xml</string>
		<key>SELF_SERVICE_DESCRIPTION</key>
		<string>Coot is a graphics program for building, refining and analysing macromolecular models obtained with crystallographic procedures.</string>
        <key>SELF_SERVICE_ICON</key>
		<string>Coot.png</string>
	</dict>
	<key>MinimumVersion</key>
	<string>0.6.1</string>
	<key>ParentRecipe</key>
	<string>com.github.dataJAR-recipes.pkg.Coot</string>
	<key>Process</key>
	<array>
		<dict>
			<key>Arguments</key>
			<dict>
				<key>category</key>
				<string>%CATEGORY%</string>
				<key>groups</key>
				<array>
					<dict>
						<key>name</key>
						<string>%GROUP_NAME%</string>
						<key>smart</key>
						<true/>
						<key>template_path</key>
						<string>%GROUP_TEMPLATE%</string>
					</dict>
				</array>
				<key>policy_category</key>
				<string>%POLICY_CATEGORY%</string>
				<key>policy_template</key>
				<string>%POLICY_TEMPLATE%</string>
				<key>prod_name</key>
				<string>%NAME%</string>
				<key>self_service_description</key>
				<string>%SELF_SERVICE_DESCRIPTION%</string>
				<key>self_service_icon</key>
				<string>%SELF_SERVICE_ICON%</string>
				<key>version</key>
				<string>%version%</string>
			</dict>
			<key>Processor</key>
			<string>JSSImporter</string>
		</dict>
	</array>
</dict>
</plist>

Coot/Coot.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Download recipe for the latest version of Coot.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.Coot</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>Coot</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>Process</key>
    <array>
		<dict>
			<key>Processor</key>
			<string>URLTextSearcher</string>
			<key>Arguments</key>
			<dict>
				<key>url</key>
				<string>http://scottlab.ucsc.edu/coot/stable</string>
				<key>re_pattern</key>
				<string>(coot_[0-9a-z\.]+\.[0-9a-z\.]+\.[0-9a-z\.]+\_stable_[0-9a-z\.]+\.[0-9a-z\.]+\.[0-9a-z\.]+\.pkg.zip)</string>
				<key>result_output_var_name</key>
				<string>match</string>
			</dict>
		</dict>
        <dict>
        	<key>Arguments</key>
			<dict>
				<key>url</key>
				<string>%url%/%match%</string>
			</dict>
            <key>Processor</key>
            <string>URLDownloader</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
        <dict>
			<key>Arguments</key>
			<dict>
				<key>archive_path</key>
				<string>%pathname%</string>
				<key>destination_path</key>
				<string>%RECIPE_CACHE_DIR%/unzip/</string>
				<key>purge_destination</key>
				<true/>
			</dict>
			<key>Processor</key>
			<string>Unarchiver</string>
		</dict>
		<dict>
			<key>Processor</key>
			<string>com.github.homebysix.VersionSplitter/VersionSplitter</string>
			<key>Arguments</key>
			<dict>
				<key>version</key>
				<string>%match%</string>
				<key>index</key>
        		<integer>1</integer>
				<key>split_on</key>
				<string>_</string>
			</dict>
		</dict>
    </array>
</dict>
</plist>

Coot/Coot-SmartGroupTemplate.xml METASEP
<computer_group>
	<name>%group_name%</name>
	<is_smart>true</is_smart>
	<criteria>
		<criterion>
			<name>Application Title</name>
			<priority>0</priority>
			<and_or>and</and_or>
			<search_type>is</search_type>
			<value>%JSS_INVENTORY_NAME%</value>
		</criterion>
		<criterion>
			<name>Packages Installed By Installer.app/SWU</name>
			<priority>0</priority>
			<and_or>and</and_or>
			<search_type>does not have</search_type>
			<value>%BUNDLE_ID%-%version%</value>
		</criterion>
		<criterion>
			<name>Computer Group</name>
			<priority>2</priority>
			<and_or>and</and_or>
			<search_type>member of</search_type>
			<value>Testing</value>
		</criterion>
	</criteria>
</computer_group>

Code42/Code42.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of Code42 and imports it into Munki.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.Code42</string>
    <key>Input</key>
    <dict>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>NAME</key>
        <string>Code42</string>
        <key>pkginfo</key>
        <dict>
            <key>blocking_applications</key>
            <array>
                <string>Electron Helper (Renderer).app</string>
                <string>Code42.app</string>
                <string>Electron Helper (GPU).app</string>
                <string>Code42Service.app</string>
                <string>Electron Helper (Plugin).app</string>
                <string>Electron Helper.app</string>
            </array>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>The Code42 app allows you to back up your device, change backup settings, and download backed up files from all the devices on your account.</string>
            <key>developer</key>
            <string>Code 42 Software</string>
            <key>display_name</key>
            <string>Code42</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>uninstall_method</key>
            <string>uninstall_script</string>
            <key>uninstall_script</key>
            <string>#!/bin/bash
#
# From: https://support.code42.com/CrashPlan/6/Get_started/Uninstall_the_Code42_app#Mac_2
#

# The section below uninstalls Code42, if it is installed on the system.
if [[ -e /Library/Application\ Support/CrashPlan/ ]]; then
    launchctl unload /Library/LaunchDaemons/com.crashplan.engine.plist
    launchctl unload /Library/LaunchDaemons/com.code42.service.plist
    /Library/Application\ Support/CrashPlan/Uninstall.app/Contents/Resources/uninstall.sh
fi

# The section below removes the Code42 identity file. Uncomment the lines below if you wish to do a complete uninstall.
rm -r /Library/Application\ Support/CrashPlan/</string>
            <key>unattended_install</key>
            <true/>
            <key>unattended_uninstall</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>1.0.0</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.Code42</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>FlatPkgUnpacker</string>
            <key>Arguments</key>
            <dict>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/unpack</string>
                <key>flat_pkg_path</key>
                <string>%pathname%/Install Code42.pkg</string>
                <key>purge_destination</key>
                <true/>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PkgRootCreator</string>
            <key>Arguments</key>
            <dict>
                <key>pkgdirs</key>
                <dict>
                    <key>Applications</key>
                    <string>0755</string>
                </dict>
                <key>pkgroot</key>
                <string>%RECIPE_CACHE_DIR%/pkgroot</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PkgPayloadUnpacker</string>
            <key>Arguments</key>
            <dict>
                <key>destination_path</key>
                <string>%pkgroot%/Applications</string>
                <key>pkg_payload_path</key>
                <string>%RECIPE_CACHE_DIR%/unpack/code42.pkg/Payload</string>
                <key>purge_destination</key>
                <true/>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiInstallsItemsCreator</string>
            <key>Arguments</key>
            <dict>
                <key>faux_root</key>
                <string>%RECIPE_CACHE_DIR%/pkgroot</string>
                <key>version_comparison_key</key>
                <string>CFBundleShortVersionString</string>
                <key>installs_item_paths</key>
                <array>
                    <string>/Applications/Code42.app</string>
                </array>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiPkginfoMerger</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%pathname%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PathDeleter</string>
            <key>Arguments</key>
            <dict>
                <key>path_list</key>
                <array>
                    <string>%RECIPE_CACHE_DIR%/pkgroot/</string>
                    <string>%RECIPE_CACHE_DIR%/unpack/</string>
                </array>
            </dict>
        </dict>
    </array>
</dict>
</plist>

Code42/Code42.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of Code42.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.Code42</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>Code42</string>
    </dict>
    <key>MinimumVersion</key>
    <string>1.0.0</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>URLDownloader</string>
            <key>Arguments</key>
            <dict>
                <key>filename</key>
                <string>%NAME%.dmg</string>
                <key>url</key>
                <string>https://download.code42.com/installs/agent/latest-mac.dmg</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
            <key>Arguments</key>
            <dict>
                <key>expected_authority_names</key>
                <array>
                    <string>Developer ID Installer: Code 42 Software (9YV9435DHD)</string>
                    <string>Developer ID Certification Authority</string>
                    <string>Apple Root CA</string>
                </array>
                <key>input_path</key>
                <string>%pathname%/Install Code42.pkg</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>
Code42/Code42-arm64.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest arm64 version of Code42 and imports it into Munki.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.Code42-arm64</string>
    <key>Input</key>
    <dict>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>NAME</key>
        <string>Code42</string>
        <key>pkginfo</key>
        <dict>
            <key>blocking_applications</key>
            <array>
                <string>Electron Helper (Renderer).app</string>
                <string>Code42.app</string>
                <string>Electron Helper (GPU).app</string>
                <string>Code42Service.app</string>
                <string>Electron Helper (Plugin).app</string>
                <string>Electron Helper.app</string>
            </array>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>The Code42 app allows you to back up your device, change backup settings, and download backed up files from all the devices on your account.</string>
            <key>developer</key>
            <string>Code 42 Software</string>
            <key>display_name</key>
            <string>Code42</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>supported_architectures</key>
            <array>
                <string>arm64</string>
            </array>
            <key>uninstall_method</key>
            <string>uninstall_script</string>
            <key>uninstall_script</key>
            <string>#!/bin/bash
#
# From: https://support.code42.com/CrashPlan/6/Get_started/Uninstall_the_Code42_app#Mac_2
#

# The section below uninstalls Code42, if it is installed on the system.
if [[ -e /Library/Application\ Support/CrashPlan/ ]]; then
    launchctl unload /Library/LaunchDaemons/com.crashplan.engine.plist
    launchctl unload /Library/LaunchDaemons/com.code42.service.plist
    /Library/Application\ Support/CrashPlan/Uninstall.app/Contents/Resources/uninstall.sh
fi

# The section below removes the Code42 identity file. Uncomment the lines below if you wish to do a complete uninstall.
rm -r /Library/Application\ Support/CrashPlan/</string>
            <key>unattended_install</key>
            <true/>
            <key>unattended_uninstall</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>1.0.0</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.Code42-arm64</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>FlatPkgUnpacker</string>
            <key>Arguments</key>
            <dict>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/unpack</string>
                <key>flat_pkg_path</key>
                <string>%pathname%/Install Code42.pkg</string>
                <key>purge_destination</key>
                <true/>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PkgRootCreator</string>
            <key>Arguments</key>
            <dict>
                <key>pkgdirs</key>
                <dict>
                    <key>Applications</key>
                    <string>0755</string>
                </dict>
                <key>pkgroot</key>
                <string>%RECIPE_CACHE_DIR%/pkgroot</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PkgPayloadUnpacker</string>
            <key>Arguments</key>
            <dict>
                <key>destination_path</key>
                <string>%pkgroot%/Applications</string>
                <key>pkg_payload_path</key>
                <string>%RECIPE_CACHE_DIR%/unpack/code42.pkg/Payload</string>
                <key>purge_destination</key>
                <true/>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiInstallsItemsCreator</string>
            <key>Arguments</key>
            <dict>
                <key>faux_root</key>
                <string>%RECIPE_CACHE_DIR%/pkgroot</string>
                <key>version_comparison_key</key>
                <string>CFBundleShortVersionString</string>
                <key>installs_item_paths</key>
                <array>
                    <string>/Applications/Code42.app</string>
                </array>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiPkginfoMerger</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%pathname%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PathDeleter</string>
            <key>Arguments</key>
            <dict>
                <key>path_list</key>
                <array>
                    <string>%RECIPE_CACHE_DIR%/pkgroot/</string>
                    <string>%RECIPE_CACHE_DIR%/unpack/</string>
                </array>
            </dict>
        </dict>
    </array>
</dict>
</plist>

Code42/Code42-arm64.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest arm64 version of Code42.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.Code42-arm64</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>Code42</string>
    </dict>
    <key>MinimumVersion</key>
    <string>1.0.0</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>URLDownloader</string>
            <key>Arguments</key>
            <dict>
                <key>filename</key>
                <string>%NAME%.dmg</string>
                <key>url</key>
                <string>https://download.code42.com/installs/agent/latest-mac-arm64.dmg</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
            <key>Arguments</key>
            <dict>
                <key>expected_authority_names</key>
                <array>
                    <string>Developer ID Installer: Code 42 Software (9YV9435DHD)</string>
                    <string>Developer ID Certification Authority</string>
                    <string>Apple Root CA</string>
                </array>
                <key>input_path</key>
                <string>%pathname%/Install Code42.pkg</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>
CocoaPods/CocoaPods.png METASEP

CocoaPods/CocoaPods.jss.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>Description</key>
	<string>Downloads the current release version of CocoaPods and builds a package. Then, uploads to the JSS.</string>
	<key>Identifier</key>
	<string>com.github.dataJAR-recipes.jss.CocoaPods</string>
	<key>Input</key>
	<dict>
		<key>CATEGORY</key>
		<string>Productivity</string>
		<key>GROUP_NAME</key>
		<string>%NAME%-update-smart</string>
		<key>GROUP_TEMPLATE</key>
		<string>SmartGroupTemplate.xml</string>
		<key>NAME</key>
		<string>CocoaPods</string>
		<key>POLICY_CATEGORY</key>
		<string>Testing</string>
		<key>POLICY_TEMPLATE</key>
		<string>PolicyTemplate.xml</string>
		<key>SELF_SERVICE_DESCRIPTION</key>
		<string>Have easy access to running pod install and pod update on your projects. It also supports running every CocoaPods command via a hosted ruby environment.</string>
		<key>SELF_SERVICE_ICON</key>
		<string>CocoaPods.png</string>
	</dict>
	<key>MinimumVersion</key>
	<string>0.2.0</string>
	<key>ParentRecipe</key>
	<string>com.github.homebysix.pkg.CocoaPods</string>
	<key>Process</key>
	<array>
		<dict>
			<key>Arguments</key>
			<dict>
				<key>category</key>
				<string>%CATEGORY%</string>
				<key>groups</key>
				<array>
					<dict>
						<key>name</key>
						<string>%GROUP_NAME%</string>
						<key>smart</key>
						<true/>
						<key>template_path</key>
						<string>%GROUP_TEMPLATE%</string>
					</dict>
				</array>
				<key>policy_category</key>
				<string>%POLICY_CATEGORY%</string>
				<key>policy_template</key>
				<string>%POLICY_TEMPLATE%</string>
				<key>prod_name</key>
				<string>%NAME%</string>
				<key>self_service_description</key>
				<string>%SELF_SERVICE_DESCRIPTION%</string>
				<key>self_service_icon</key>
				<string>%SELF_SERVICE_ICON%</string>
			</dict>
			<key>Processor</key>
			<string>JSSImporter</string>
		</dict>
	</array>
</dict>
</plist>

CloudApp/CloudApp.png METASEP

CloudApp/CloudApp.pkg.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of CloudApp and creates a package. We use the Sparkle feed URL as the vendor supplied package has a different version number than the app bundle and contains postinstall scripts and an auto-update script that does not behave.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.pkg.CloudApp</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>CloudApp</string>
    </dict>
    <key>MinimumVersion</key>
    <string>1.0.0</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.CloudApp</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>Versioner</string>
            <key>Arguments</key>
            <dict>
                <key>input_plist_path</key>
                <string>%RECIPE_CACHE_DIR%/Applications/CloudApp.app/Contents/Info.plist</string>
                <key>plist_version_key</key>
                <string>CFBundleShortVersionString</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>AppPkgCreator</string>
            <key>Arguments</key>
            <dict>
                <key>app_path</key>
                <string>%RECIPE_CACHE_DIR%/Applications/CloudApp.app</string>
                <key>pkg_path</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%-%version%.pkg</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PathDeleter</string>
            <key>Arguments</key>
            <dict>
                <key>path_list</key>
                <array>
                    <string>%RECIPE_CACHE_DIR%/Applications</string>
                </array>
            </dict>
        </dict>
    </array>
</dict>
</plist>
CloudApp/CloudApp.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>Description</key>
	<string>Downloads the latest version of CloudApp and imports it into Munki. We use the Sparkle feed URL as the vendor supplied package has a different version number than the app bundle and contains postinstall scripts and an auto-update script that does not behave.</string>
	<key>Identifier</key>
	<string>com.github.dataJAR-recipes.munki.CloudApp</string>
	<key>Input</key>
	<dict>
		<key>MUNKI_REPO_SUBDIR</key>
		<string>apps/%NAME%</string>
		<key>NAME</key>
		<string>CloudApp</string>
		<key>pkginfo</key>
		<dict>
			<key>catalogs</key>
			<array>
				<string>testing</string>
			</array>
			<key>description</key>
			<string>CloudApp screen recorder software for Mac and PC. Record video, webcam, GIFs, capture your screen and share it instantly to the cloud.</string>
			<key>developer</key>
			<string>CloudApp</string>
			<key>display_name</key>
			<string>CloudApp</string>
			<key>name</key>
			<string>%NAME%</string>
			<key>unattended_install</key>
			<true/>
			<key>unattended_uninstall</key>
			<true/>
		</dict>
	</dict>
	<key>MinimumVersion</key>
	<string>1.0.0</string>
	<key>ParentRecipe</key>
	<string>com.github.dataJAR-recipes.download.CloudApp</string>
	<key>Process</key>
	<array>
        <dict>
            <key>Processor</key>
            <string>DmgCreator</string>
            <key>Arguments</key>
            <dict>
                <key>dmg_root</key>
                <string>%RECIPE_CACHE_DIR%/Applications</string>
                <key>dmg_path</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%.dmg</string>
            </dict>
        </dict>
		<dict>
			<key>Processor</key>
			<string>MunkiImporter</string>
			<key>Arguments</key>
			<dict>
				<key>pkg_path</key>
				<string>%dmg_path%</string>
				<key>repo_subdirectory</key>
				<string>%MUNKI_REPO_SUBDIR%</string>
			</dict>
		</dict>
        <dict>
            <key>Processor</key>
            <string>PathDeleter</string>
            <key>Arguments</key>
            <dict>
                <key>path_list</key>
                <array>
                    <string>%RECIPE_CACHE_DIR%/Applications</string>
                </array>
            </dict>
        </dict>
	</array>
</dict>
</plist>
CloudApp/CloudApp.jss.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>Description</key>
	<string>Downloads the latest version of CloudApp and imports it into your JSS.</string>
	<key>Identifier</key>
	<string>com.github.dataJAR-recipes.jss.CloudApp</string>
	<key>Input</key>
	<dict>
		<key>CATEGORY</key>
		<string>Productivity</string>
		<key>GROUP_NAME</key>
		<string>%NAME%-update-smart</string>
		<key>GROUP_TEMPLATE</key>
		<string>SmartGroupTemplate.xml</string>
		<key>NAME</key>
		<string>CloudApp</string>
		<key>POLICY_CATEGORY</key>
		<string>Testing</string>
		<key>POLICY_TEMPLATE</key>
		<string>PolicyTemplate.xml</string>
		<key>SELF_SERVICE_DESCRIPTION</key>
		<string>CloudApp screen recorder software for Mac and PC. Record video, webcam, GIFs, capture your screen and share it instantly to the cloud</string>
		<key>SELF_SERVICE_ICON</key>
		<string>%NAME%.png</string>
	</dict>
	<key>MinimumVersion</key>
	<string>1.0.0</string>
	<key>ParentRecipe</key>
	<string>com.github.dataJAR-recipes.pkg.CloudApp</string>
	<key>Process</key>
	<array>
		<dict>
			<key>Arguments</key>
			<dict>
				<key>category</key>
				<string>%CATEGORY%</string>
				<key>groups</key>
				<array>
					<dict>
						<key>name</key>
						<string>%GROUP_NAME%</string>
						<key>smart</key>
						<true/>
						<key>template_path</key>
						<string>%GROUP_TEMPLATE%</string>
					</dict>
				</array>
				<key>policy_category</key>
				<string>%POLICY_CATEGORY%</string>
				<key>policy_template</key>
				<string>%POLICY_TEMPLATE%</string>
				<key>prod_name</key>
				<string>Jamf Switcher</string>
				<key>self_service_description</key>
				<string>%SELF_SERVICE_DESCRIPTION%</string>
				<key>self_service_icon</key>
				<string>%SELF_SERVICE_ICON%</string>
				<key>version</key>
				<string>%version%</string>
			</dict>
			<key>Processor</key>
			<string>JSSImporter</string>
		</dict>
	</array>
</dict>
</plist>

CloudApp/CloudApp.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of CloudApp.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.CloudApp</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>CloudApp</string>
    </dict>
    <key>MinimumVersion</key>
    <string>1.0.0</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>SparkleUpdateInfoProvider</string>
            <key>Arguments</key>
            <dict>
                <key>appcast_url</key>
                <string>https://d2plwz9jdz9z5d.cloudfront.net/mac/latest/appcast.xml</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>URLDownloader</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>Unarchiver</string>
            <key>Arguments</key>
            <dict>
                <key>archive_path</key>
                <string>%pathname%</string>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/Applications/</string>
                <key>purge_destination</key>
                <true/>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
            <key>Arguments</key>
            <dict>
                <key>input_path</key>
                <string>%RECIPE_CACHE_DIR%/Applications/CloudApp.app</string>
                <key>requirement</key>
                <string>anchor apple generic and identifier "com.linebreak.CloudAppMacOSX" 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] = DCMDDJEW9X)</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>
Clocker/Clocker.png METASEP

Clocker/Clocker.pkg.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of Clocker and creates a package.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.pkg.Clocker</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>Clocker</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.Clocker</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>PkgRootCreator</string>
            <key>Arguments</key>
            <dict>
                <key>pkgroot</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%</string>
                <key>pkgdirs</key>
                <dict>
                    <key>Applications</key>
                    <string>0775</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>Unarchiver</string>
            <key>Arguments</key>
            <dict>
                <key>archive_path</key>
                <string>%pathname%</string>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%/Applications/</string>
                <key>purge_destination</key>
                <true/>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PlistReader</string>
            <key>Arguments</key>
            <dict>
                <key>info_path</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%/Applications/Clocker.app</string>
                <key>plist_keys</key>
                <dict>
                    <key>CFBundleIdentifier</key>
                    <string>bundleid</string>
                    <key>CFBundleShortVersionString</key>
                    <string>version</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PkgCreator</string>
            <key>Arguments</key>
            <dict>
                <key>pkgname</key>
                <string>%NAME%-%version%</string>
                <key>pkg_request</key>
                <dict>
                    <key>chown</key>
                    <array>
                        <dict>
                            <key>path</key>
                            <string>Applications</string>
                            <key>user</key>
                            <string>root</string>
                            <key>group</key>
                            <string>admin</string>
                        </dict>
                    </array>
                    <key>id</key>
                    <string>%bundleid%</string>
                    <key>options</key>
                    <string>purge_ds_store</string>
                    <key>pkgdir</key>
                    <string>%RECIPE_CACHE_DIR%</string>
                    <key>pkgroot</key>
                    <string>%RECIPE_CACHE_DIR%/%NAME%</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PathDeleter</string>
            <key>Arguments</key>
            <dict>
                <key>path_list</key>
                <array>
                    <string>%RECIPE_CACHE_DIR%/%NAME%</string>
                </array>
            </dict>
        </dict>
    </array>
</dict>
</plist>

Clocker/Clocker.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>Description</key>
	<string>Downloads the latest stable Clocker and imports it in into Munki.</string>
	<key>Identifier</key>
	<string>com.github.dataJAR-recipes.munki.Clocker</string>
	<key>Input</key>
	<dict>
		<key>MUNKI_REPO_SUBDIR</key>
		<string>apps/Clocker</string>
		<key>MUNKI_CATEGORY</key>
		<string>Utilities</string>
		<key>NAME</key>
		<string>Clocker</string>
		<key>pkginfo</key>
		<dict>
			<key>catalogs</key>
			<array>
				<string>testing</string>
			</array>
			<key>category</key>
			<string>%MUNKI_CATEGORY%</string>
			<key>description</key>
			<string>Clocker is an macOS menubar utility designed to help you keep track of your friends in different time zones.</string>
			<key>developer</key>
			<string>Abhishek Banthia</string>
			<key>display_name</key>
			<string>%NAME%</string>
			<key>name</key>
			<string>%NAME%</string>
			<key>unattended_install</key>
			<true/>
		</dict>
	</dict>
	<key>MinimumVersion</key>
	<string>1.0.4</string>
	<key>ParentRecipe</key>
	<string>com.github.dataJAR-recipes.download.Clocker</string>
	<key>Process</key>
	<array>
	    <dict>
            <key>Processor</key>
            <string>MunkiInstallsItemsCreator</string>
            <key>Arguments</key>
            <dict>
                <key>faux_root</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%</string>
                <key>version_comparison_key</key>
                <string>CFBundleShortVersionString</string>
                <key>installs_item_paths</key>
                <array>
                    <string>/Applications/Clocker.app</string>
                </array>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiPkginfoMerger</string>
        </dict>
		<dict>
			<key>Processor</key>
			<string>DmgCreator</string>
			<key>Arguments</key>
			<dict>
				<key>dmg_root</key>
				<string>%RECIPE_CACHE_DIR%/%NAME%/Applications</string>
				<key>dmg_path</key>
				<string>%RECIPE_CACHE_DIR%/%NAME%.dmg</string>
			</dict>
		</dict>
		<dict>
			<key>Processor</key>
			<string>MunkiImporter</string>
			<key>Arguments</key>
			<dict>
				<key>pkg_path</key>
				<string>%dmg_path%</string>
				<key>repo_subdirectory</key>
				<string>%MUNKI_REPO_SUBDIR%</string>
			</dict>
		</dict>
        <dict>
            <key>Processor</key>
            <string>PathDeleter</string>
            <key>Arguments</key>
            <dict>
                <key>path_list</key>
                <array>
                    <string>%RECIPE_CACHE_DIR%/%NAME%/</string>
                </array>
            </dict>
        </dict>
	</array>
</dict>
</plist>

Clocker/Clocker.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of Clocker.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.Clocker</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>Clocker</string>
        <key>PRERELEASE</key>
        <string></string>
    </dict>
    <key>MinimumVersion</key>
    <string>1.0.4</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Arguments</key>
            <dict>
                <key>github_repo</key>
                <string>n0shake/Clocker</string>
                <key>include_prereleases</key>
                <string>%PRERELEASE%</string>
                <key>asset_regex</key>
                <string>Clocker.zip</string>
            </dict>
            <key>Processor</key>
            <string>GitHubReleasesInfoProvider</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>URLDownloader</string>
            <key>Arguments</key>
            <dict>
                <key>filename</key>
                <string>%NAME%-%version%.zip</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PkgRootCreator</string>
            <key>Arguments</key>
            <dict>
                <key>pkgroot</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%</string>
                <key>pkgdirs</key>
                <dict>
                    <key>Applications</key>
                    <string>0775</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>Unarchiver</string>
            <key>Arguments</key>
            <dict>
                <key>archive_path</key>
                <string>%RECIPE_CACHE_DIR%/downloads/%NAME%-%version%.zip</string>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%/Applications/</string>
                <key>purge_destination</key>
                <true/>
            </dict>
        </dict>
		<dict>
			<key>Processor</key>
			<string>CodeSignatureVerifier</string>
			<key>Arguments</key>
			<dict>
				<key>input_path</key>
				<string>%RECIPE_CACHE_DIR%/%NAME%/Applications/Clocker.app</string>
				<key>requirement</key>
				<string>anchor apple generic and identifier "com.abhishek.Clocker" 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] = AJS5SNW8EY)</string>
			</dict>
		</dict>
    </array>
</dict>
</plist>
ClickShare/ClickShare.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of Barco ClickShare and imports into Munki.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.ClickShare</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>ClickShare</string>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>pkginfo</key>
        <dict>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>category</key>
            <string>Applications</string>
            <key>description</key>
            <string>ClickShare, wireless presentation and conferencing technology, creates understanding between people by freeing them to interact easily and naturally.</string>
            <key>developer</key>
            <string>Barco</string>
            <key>display_name</key>
            <string>ClickShare</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.2.9</string>
    <key>ParentRecipe</key>
    <string>com.github.moofit-recipes.download.ClickShare</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>PkgRootCreator</string>
            <key>Arguments</key>
            <dict>
                <key>pkgroot</key>
                <string>%RECIPE_CACHE_DIR%/pkgroot</string>
                <key>pkgdirs</key>
                <dict>
                    <key>Applications</key>
                    <string>0775</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>Copier</string>
            <key>Arguments</key>
            <dict>
                <key>source_path</key>
                <string>%found_filename%/ClickShare.app</string>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/pkgroot/Applications/ClickShare.app</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiInstallsItemsCreator</string>
            <key>Arguments</key>
            <dict>
                <key>faux_root</key>
                <string>%RECIPE_CACHE_DIR%/pkgroot</string>
                <key>installs_item_paths</key>
                <array>
                    <string>/Applications/ClickShare.app</string>
                </array>
                <key>version_comparison_key</key>
                <string>CFBundleShortVersionString</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiPkginfoMerger</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>Versioner</string>
            <key>Arguments</key>
            <dict>
                <key>input_plist_path</key>
                <string>%RECIPE_CACHE_DIR%/pkgroot/Applications/ClickShare.app/Contents/Info.plist</string>
                <key>plist_version_key</key>
                <string>CFBundleShortVersionString</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiPkginfoMerger</string>
            <key>Arguments</key>
            <dict>
                <key>additional_pkginfo</key>
                <dict>
                    <key>version</key>
                    <string>%version%</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>DmgCreator</string>
            <key>Arguments</key>
            <dict>
                <key>dmg_root</key>
                <string>%RECIPE_CACHE_DIR%/pkgroot/Applications</string>
                <key>dmg_path</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%.dmg</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%dmg_path%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PathDeleter</string>
            <key>Arguments</key>
            <dict>
                <key>path_list</key>
                <array>
                    <string>%RECIPE_CACHE_DIR%/pkgroot</string>
                    <string>%RECIPE_CACHE_DIR%/unpack</string>
                </array>
            </dict>
        </dict>
    </array>
</dict>
</plist>
Clevershare2/Clevershare2.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of Clevershare 2 and imports it into Munki.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.Clevershare2</string>
      <key>Input</key>
    <dict>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>NAME</key>
        <string>Clevershare2</string>
        <key>pkginfo</key>
        <dict>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
			<key>developer</key>
			<string>Sahara</string>
            <key>description</key>
            <string>Clevershare 2 is a bi-directional mirroring application that wirelessly connects your iPhone, iPad, Android phone and tablet, Mac, Windows laptop/PC and Chrome devices to your Clevertouch touch screen.
            </string>
            <key>display_name</key>
            <string>Clevershare 2</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.3.1</string>
    <key>ParentRecipe</key>
	<string>com.github.dataJAR-recipes.download.Clevershare2</string>
    <key>Process</key>
	<array>
		<dict>
			<key>Arguments</key>
			<dict>
				<key>pkg_path</key>
				<string>%RECIPE_CACHE_DIR%/downloads/%NAME%.dmg</string>
				<key>repo_subdirectory</key>
				<string>%MUNKI_REPO_SUBDIR%</string>
				<key>version_comparison_key</key>
				<string>CFBundleShortVersionString</string>
			</dict>
			<key>Processor</key>
			<string>MunkiImporter</string>
		</dict>
    </array>
</dict>
</plist>
Clevershare2/Clevershare2.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of Clevershare2.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.Clevershare2</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>Clevershare2</string>
    </dict>
    <key>MinimumVersion</key>
    <string>1.0.0</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>URLTextSearcher</string>
            <key>Arguments</key>
            <dict>
                <key>url</key>
                <string>https://www.clevertouch.com/uk/clevershare2g</string>
                <key>re_pattern</key>
                <string>(https://saharaplc.s3.eu-west-2.amazonaws.com/Clevershare\+2\+Clients/Clevershare_Mac.[0-9.]*\.dmg)</string>
                <key>result_output_var_name</key>
                <string>url</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>URLDownloader</string>
            <key>Arguments</key>
            <dict>
                <key>filename</key>
                <string>%NAME%.dmg</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
            <key>Arguments</key>
            <dict>
                <key>input_path</key>
                <string>%RECIPE_CACHE_DIR%/downloads/%NAME%.dmg/Clevershare.app</string>
                <key>requirement</key>
                <string>anchor apple generic and identifier "com.cvte.clevershare.mac" 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] = P76M9BE8DQ)</string>
                <key>strict_verification</key>
                <true />
            </dict>
        </dict>
    </array>
</dict>
</plist>
ClaroRead Plus/ClaroRead Plus.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of ClaroRead Plus and imports it into Munki.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.ClaroRead Plus</string>
    <key>Input</key>
    <dict>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>NAME</key>
        <string>ClaroReadPlus</string>
        <key>pkginfo</key>
        <dict>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>ClaroRead supports reading and writing. Designed to be simple, easy-to-use and flexible, ClaroRead aids concentration and increases confidence. You can read any on-screen text out loud and improve your writing in Microsoft Word. ClaroRead Plus Mac also lets you scan and convert paper books and documents so you can read them aloud too.</string>
            <key>developer</key>
            <string>Claro Software Ltd</string>
            <key>display_name</key>
            <string>ClaroRead Plus</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
            <key>unattended_uninstall</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>1.0.0</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.ClaroRead Plus</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>FlatPkgUnpacker</string>
            <key>Arguments</key>
            <dict>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/unpack/</string>
                <key>flat_pkg_path</key>
                <string>%pathname%</string>
                <key>purge_destination</key>
                <true/>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PkgPayloadUnpacker</string>
            <key>Arguments</key>
            <dict>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%/Applications/</string>
                <key>pkg_payload_path</key>
                <string>%RECIPE_CACHE_DIR%/unpack/ClaroRead_Plus_Auth.pkg/Payload</string>
                <key>purge_destination</key>
                <true/>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PlistReader</string>
            <key>Arguments</key>
            <dict>
                <key>info_path</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%/Applications/ClaroRead Plus.app/Contents/Info.plist</string>
                <key>plist_keys</key>
                <dict>
                    <key>CFBundleShortVersionString</key>
                    <string>version</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiPkginfoMerger</string>
            <key>Arguments</key>
            <dict>
                <key>additional_pkginfo</key>
                <dict>
                    <key>version</key>
                    <string>%version%</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiInstallsItemsCreator</string>
            <key>Arguments</key>
            <dict>
                <key>faux_root</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%</string>
                <key>installs_item_paths</key>
                <array>
                    <string>/Applications/ClaroRead Plus.app</string>
                </array>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiPkginfoMerger</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%pathname%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PathDeleter</string>
            <key>Arguments</key>
            <dict>
                <key>path_list</key>
                <array>
                <string>%RECIPE_CACHE_DIR%/%NAME%/</string>
                <string>%RECIPE_CACHE_DIR%/unpack/</string>
                </array>
            </dict>
        </dict>
    </array>
</dict>
</plist>
ClaroRead Plus/ClaroRead Plus.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads latest version of ClaroRead Plus.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.ClaroRead Plus</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>ClaroReadPlus</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>URLTextSearcher</string>
            <key>Arguments</key>
            <dict>
                <key>re_pattern</key>
                <string>href=\"(https://www\.clarosoftware\.com/download/claroreadplusmac)\" style</string>
                <key>result_output_var_name</key>
                <string>url</string>
                <key>url</key>
                <string>https://www.clarosoftware.com/portfolio/claroreadmac/</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>URLDownloader</string>
            <key>Arguments</key>
            <dict>
                <key>filename</key>
                <string>%NAME%.pkg</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
            <key>Arguments</key>
            <dict>
                <key>input_path</key>
                <string>%pathname%</string>
                <key>expected_authority_names</key>
                <array>
                    <string>Developer ID Installer: Claro Software Limited (NLX6B32939)</string>
                    <string>Developer ID Certification Authority</string>
                    <string>Apple Root CA</string>
                </array>
            </dict>
        </dict>
    </array>
</dict>
</plist>
Citrix Files for Mac/CitrixFiles.png METASEP

Citrix Files for Mac/Citrix Files for Mac.pkg.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of Citrix Files for Mac and imports into pkg.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.pkg.Citrix Files for Mac</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>Citrix Files for Mac</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.2.0</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.Citrix Files for Mac</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>FlatPkgUnpacker</string>
            <key>Arguments</key>
            <dict>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/unpack/</string>
                <key>flat_pkg_path</key>
                <string>%pkg_path%</string>
                <key>purge_destination</key>
                <string>true</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PkgRootCreator</string>
            <key>Arguments</key>
            <dict>
                <key>pkgroot</key>
                <string>%RECIPE_CACHE_DIR%/application_payload/Applications</string>
                <key>pkgdirs</key>
                <dict/>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PkgPayloadUnpacker</string>
            <key>Arguments</key>
            <dict>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/application_payload/Applications</string>
                <key>pkg_payload_path</key>
                <string>%RECIPE_CACHE_DIR%/unpack/Citrix_Files.pkg/Payload</string>
                <key>purge_destination</key>
                <string>true</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>Versioner</string>
            <key>Arguments</key>
            <dict>
                <key>input_plist_path</key>
                <string>%RECIPE_CACHE_DIR%/application_payload/Applications/Citrix Files.app/Contents/Info.plist</string>
            </dict>
        </dict> 
		<dict>
			<key>Processor</key>
			<string>FileMover</string>
			<key>Arguments</key>
			<dict>
				<key>source</key>
				<string>%pkg_path%</string>
				<key>target</key>
				<string>%RECIPE_CACHE_DIR%/%NAME%-%version%.pkg</string>
			</dict>
		</dict>
        <dict>
            <key>Processor</key>
            <string>PathDeleter</string>
            <key>Arguments</key>
            <dict>
                <key>path_list</key>
                <array>
                <string>%RECIPE_CACHE_DIR%/application_payload/</string>
                <string>%RECIPE_CACHE_DIR%/unpack</string>                              
                </array>
            </dict>
        </dict> 
    </array>
</dict>
</plist>

Citrix Files for Mac/Citrix Files for Mac.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of Citrix Files for Mac and imports into Munki.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.Citrix Files for Mac</string>
    <key>Input</key>
    <dict>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>NAME</key>
        <string>Citrix Files for Mac</string>
        <key>pkginfo</key>
        <dict>
            <key>blocking_applications</key>
            <array>
                <string>Citrix Files</string>
            </array>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>Citrix Files for Mac allows users with a ShareFile license to interact with all their files directly from the Finder. Files do not need to be synced locally. Quick access to sharing, requesting, and other file options are available through the right click menu.</string>
            <key>display_name</key>
            <string>Citrix Files for Mac</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
            <key>unattended_uninstall</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.2.0</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.Citrix Files for Mac</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>FlatPkgUnpacker</string>
            <key>Arguments</key>
            <dict>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/unpack/</string>
                <key>flat_pkg_path</key>
                <string>%pkg_path%</string>
                <key>purge_destination</key>
                <string>true</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PkgRootCreator</string>
            <key>Arguments</key>
            <dict>
                <key>pkgroot</key>
                <string>%RECIPE_CACHE_DIR%/application_payload/Applications</string>
                <key>pkgdirs</key>
                <dict/>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PkgPayloadUnpacker</string>
            <key>Arguments</key>
            <dict>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/application_payload/Applications</string>
                <key>pkg_payload_path</key>
                <string>%RECIPE_CACHE_DIR%/unpack/Citrix_Files.pkg/Payload</string>
                <key>purge_destination</key>
                <string>true</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiInstallsItemsCreator</string>
            <key>Arguments</key>
            <dict>
                <key>faux_root</key>
                <string>%RECIPE_CACHE_DIR%/application_payload</string>
                <key>installs_item_paths</key>
                <array>
                    <string>/Applications/Citrix Files.app</string>
                </array>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiPkginfoMerger</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>Versioner</string>
            <key>Arguments</key>
            <dict>
                <key>input_plist_path</key>
                <string>%RECIPE_CACHE_DIR%/application_payload/Applications/Citrix Files.app/Contents/Info.plist</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiPkginfoMerger</string>
            <key>Arguments</key>
            <dict>
                <key>additional_pkginfo</key>
                <dict>
                    <key>version</key>
                    <string>%version%</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%pkg_path%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PathDeleter</string>
            <key>Arguments</key>
            <dict>
                <key>path_list</key>
                <array>
                <string>%RECIPE_CACHE_DIR%/application_payload/</string>
                <string>%RECIPE_CACHE_DIR%/unpack</string>                              
                </array>
            </dict>
        </dict> 
    </array>
</dict>
</plist>

Citrix Files for Mac/Citrix Files for Mac.jss.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of Citrix Files for Mac and then uploads to the JSS</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.jss.Citrix Files for Mac</string>
    <key>Input</key>
    <dict>
        <key>CATEGORY</key>
        <string>Applications</string>
        <key>GROUP_NAME</key>
        <string>%NAME%-update-smart</string>
        <key>GROUP_TEMPLATE</key>
        <string>SmartGroupTemplate.xml</string>
        <key>NAME</key>
        <string>Citrix Files for Mac</string>
        <key>POLICY_CATEGORY</key>
        <string>Testing</string>
        <key>POLICY_TEMPLATE</key>
        <string>PolicyTemplate.xml</string>
        <key>SELF_SERVICE_DESCRIPTION</key>
        <string>Citrix Files for Mac allows users with a ShareFile license to interact with all their files directly from the Finder. Files do not need to be synced locally. Quick access to sharing, requesting, and other file options are available through the right click menu.</string>
        <key>SELF_SERVICE_ICON</key>
        <string>CitrixFiles.png</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.2.0</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.pkg.Citrix Files for Mac</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>JSSImporter</string>
            <key>Arguments</key>
            <dict>
                <key>category</key>
                <string>%CATEGORY%</string>
                <key>groups</key>
                <array>
                    <dict>
                        <key>name</key>
                        <string>%GROUP_NAME%</string>
                        <key>smart</key>
                        <true/>
                        <key>template_path</key>
                        <string>%GROUP_TEMPLATE%</string>
                    </dict>
                </array>
                <key>pkg_path</key>
                <string>%target%</string>
                <key>policy_category</key>
                <string>%POLICY_CATEGORY%</string>
                <key>policy_template</key>
                <string>%POLICY_TEMPLATE%</string>
                <key>prod_name</key>
                <string>Citrix Files for Mac</string>
                <key>self_service_description</key>
                <string>%SELF_SERVICE_DESCRIPTION%</string>
                <key>self_service_icon</key>
                <string>%SELF_SERVICE_ICON%</string>
                <key>version</key>
                <string>%version%</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>
Citrix Files for Mac/Citrix Files for Mac.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Download recipe for Citrix Files for Mac.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.Citrix Files for Mac</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>Citrix Files for Mac</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.2.0</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>URLTextSearcher</string>
            <key>Arguments</key>
            <dict>
                <key>url</key>
                <string>https://www.citrix.com/downloads/sharefile/clients-and-plug-ins/citrix-files-for-mac.html</string>
                <key>re_pattern</key>
                <string>https://[\S]+\/cfmac</string>
                <key>result_output_var_name</key>
                <string>match</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>URLDownloader</string>
            <key>Arguments</key>
            <dict>
                <key>url</key>
                <string>%match%</string>
                <key>filename</key>
                <string>%NAME%.dmg</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PkgCopier</string>
            <key>Arguments</key>
            <dict>
                <key>source_pkg</key>
                <string>%pathname%/Install Citrix Files.pkg</string>
                <key>pkg_path</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%.pkg</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
            <key>Arguments</key>
            <dict>
                <key>input_path</key>
                <string>%pkg_path%</string>
                <key>expected_authority_names</key>
                <array>
                    <string>Developer ID Installer: Citrix Systems, Inc. (S272Y5R93J)</string>
                    <string>Developer ID Certification Authority</string>
                    <string>Apple Root CA</string>
                </array>
            </dict>
        </dict>
    </array>
</dict>
</plist>

Cisco Webex Meetings/Cisco Webex Meetings.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
    <dict>
        <key>Description</key>
        <string>Downloads the latest version of Cisco Webex Meetings.</string>
        <key>Identifier</key>
        <string>com.github.dataJAR-recipes.download.CiscoWebexMeetings</string>
        <key>Input</key>
        <dict>
            <key>DOWNLOAD_URL</key>
            <string>https://akamaicdn.webex.com/client/webexapp.dmg</string>
            <key>NAME</key>
            <string>Cisco Webex Meetings</string>
        </dict>
        <key>MinimumVersion</key>
        <string>1.1.0</string>
        <key>Process</key>
        <array>
        <dict>
            <key>Processor</key>
            <string>DeprecationWarning</string>
            <key>Arguments</key>
            <dict>
                <key>warning_message</key>
                <string>This package from Cisco deploys files into /tmp then uses a post-
                script to move them into the logged in user's home area. As a result, this
                isn't mass-deployable and isn't fully patchable. As a result, we have 
                depreciated this recipe.</string>
            </dict>
        </dict>
        <dict>   
            <key>Processor</key>   
            <string>StopProcessingIf</string>   
            <key>Arguments</key>   
            <dict>   
                <key>predicate</key>   
                <string>TRUEPREDICATE</string>
            </dict>
        </dict>
        </array>
    </dict>
</plist>

Catalyst Prepare/Catalyst Prepare.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest trial version of Catalyst Prepare and imports into Munki.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.Catalyst Prepare</string>
    <key>Input</key>
    <dict>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>NAME</key>
        <string>CatalystPrepare</string>
        <key>pkginfo</key>
        <dict> 
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>Jump start the editing and review process by creating a rough cut storyboard with a quick initial color grade, then render it out directly or export an EDL for use in popular NLEs.</string>
            <key>display_name</key>
            <string>Catalyst Prepare</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
            <key>unattended_uninstall</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.Catalyst Prepare</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>DmgCreator</string>
            <key>Arguments</key>
            <dict>
                <key>dmg_root</key>
                <string>%destination_path%</string>
                <key>dmg_path</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%.dmg</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%dmg_path%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PathDeleter</string>
            <key>Arguments</key>
            <dict>
                <key>path_list</key>
                <array>
                    <string>%RECIPE_CACHE_DIR%/%NAME%</string>                          
                </array>
            </dict>
        </dict>
    </array>
</dict>
</plist>
Catalyst Prepare/Catalyst Prepare.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Download recipe for the latest trial version of Catalyst Prepare.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.Catalyst Prepare</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>CatalystPrepare</string>
        <key>SPARKLE_FEED_URL</key>
        <string>https://www.mediasoftwareapps.com/sparkle/?appName=catalystprepare&amp;version=subscription&amp;OS=%ls</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>SparkleUpdateInfoProvider</string>
            <key>Arguments</key>
            <dict>
                <key>appcast_url</key>
                <string>%SPARKLE_FEED_URL%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>URLDownloader</string>
            <key>Arguments</key>
            <dict>
                <key>filename</key>
                <string>%NAME%-%version%.zip</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PkgRootCreator</string>
            <key>Arguments</key>
            <dict>
                <key>pkgroot</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%</string>
                <key>pkgdirs</key>
                <dict>
                    <key>Applications</key>
                    <string>0775</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>Unarchiver</string>
            <key>Arguments</key>
            <dict>
                <key>archive_path</key>
                <string>%pathname%</string>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%/Applications</string>
                <key>purge_destination</key>
                <true/>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
            <key>Arguments</key>
            <dict>
                <key>input_path</key>
                <string>%destination_path%/Catalyst Prepare.app</string>
                <key>requirement</key>
                <string>identifier "com.sony.SonyCreativeSoftware.Catalyst-Prepare" and anchor apple generic and 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] = "237LWLWT2Q"</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>

Catalyst Browse/Catalyst Browse.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest trial version of Catalyst Browse and imports into Munki.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.Catalyst Browse</string>
    <key>Input</key>
    <dict>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>NAME</key>
        <string>CatalystBrowse</string>
        <key>pkginfo</key>
        <dict> 
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>Catalyst Browse, a cross-platform viewing and logging tool for all Sony Pro formats, offers streamlined media management that simplifies your workflow and secures your content.</string>
            <key>display_name</key>
            <string>Catalyst Browse</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
            <key>unattended_uninstall</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.Catalyst Browse</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>DmgCreator</string>
            <key>Arguments</key>
            <dict>
                <key>dmg_root</key>
                <string>%destination_path%</string>
                <key>dmg_path</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%.dmg</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%dmg_path%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PathDeleter</string>
            <key>Arguments</key>
            <dict>
                <key>path_list</key>
                <array>
                    <string>%RECIPE_CACHE_DIR%/%NAME%</string>                          
                </array>
            </dict>
        </dict>
    </array>
</dict>
</plist>
Catalyst Browse/Catalyst Browse.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Download recipe for the latest trial version of Catalyst Browse.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.Catalyst Browse</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>CatalystBrowse</string>
        <key>SPARKLE_FEED_URL</key>
        <string>https://www.mediasoftwareapps.com/sparkle/catalystbrowse-1.0-mac.xml</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>SparkleUpdateInfoProvider</string>
            <key>Arguments</key>
            <dict>
                <key>appcast_url</key>
                <string>%SPARKLE_FEED_URL%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>URLDownloader</string>
            <key>Arguments</key>
            <dict>
                <key>filename</key>
                <string>%NAME%-%version%.zip</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PkgRootCreator</string>
            <key>Arguments</key>
            <dict>
                <key>pkgroot</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%</string>
                <key>pkgdirs</key>
                <dict>
                    <key>Applications</key>
                    <string>0775</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>Unarchiver</string>
            <key>Arguments</key>
            <dict>
                <key>archive_path</key>
                <string>%pathname%</string>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%/Applications</string>
                <key>purge_destination</key>
                <true/>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
            <key>Arguments</key>
            <dict>
                <key>input_path</key>
                <string>%destination_path%/Catalyst Browse.app</string>
                <key>requirement</key>
                <string>identifier "com.sony.SonyCreativeSoftware.Browse" and anchor apple generic and 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] = "237LWLWT2Q"</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>

Carthage/Carthage.png METASEP

Carthage/Carthage.jss.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>Description</key>
	<string>Downloads the current release version of Carthage and uploads to the JSS.</string>
	<key>Identifier</key>
	<string>com.github.dataJAR-recipes.jss.Carthage</string>
	<key>Input</key>
	<dict>
		<key>CATEGORY</key>
		<string>Productivity</string>
		<key>GROUP_NAME</key>
		<string>%NAME%-update-smart</string>
		<key>GROUP_TEMPLATE</key>
		<string>SmartGroupTemplate.xml</string>
		<key>NAME</key>
		<string>Carthage</string>
		<key>POLICY_CATEGORY</key>
		<string>Testing</string>
		<key>POLICY_TEMPLATE</key>
		<string>PolicyTemplate.xml</string>
		<key>SELF_SERVICE_DESCRIPTION</key>
		<string>Carthage is intended to be the simplest way to add frameworks to your Cocoa application.</string>
		<key>SELF_SERVICE_ICON</key>
		<string>Carthage.png</string>
	</dict>
	<key>MinimumVersion</key>
	<string>0.2.0</string>
	<key>ParentRecipe</key>
	<string>com.github.apettinen.download.Carthage</string>
	<key>Process</key>
	<array>
		<dict>
			<key>Arguments</key>
			<dict>
				<key>category</key>
				<string>%CATEGORY%</string>
				<key>pkg_path</key>
                <string>%pathname%</string>
				<key>groups</key>
				<array>
					<dict>
						<key>name</key>
						<string>%GROUP_NAME%</string>
						<key>smart</key>
						<true/>
						<key>template_path</key>
						<string>%GROUP_TEMPLATE%</string>
					</dict>
				</array>
				<key>policy_category</key>
				<string>%POLICY_CATEGORY%</string>
				<key>policy_template</key>
				<string>%POLICY_TEMPLATE%</string>
				<key>prod_name</key>
				<string>%NAME%</string>
				<key>self_service_description</key>
				<string>%SELF_SERVICE_DESCRIPTION%</string>
				<key>self_service_icon</key>
				<string>%SELF_SERVICE_ICON%</string>
			</dict>
			<key>Processor</key>
			<string>JSSImporter</string>
		</dict>
	</array>
</dict>
</plist>

Call Recorder for Skype-local/Call Recorder for Skype-local.pkg.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>This recipe creates a PKG of a locally supplied copy of the "Install Call Recorder for Skype.app".
    
This recipe is based off of https://github.com/autopkg/foigus-recipes/tree/master/Ecamm but amended for a a local
copy of the "Install Call Recorder for Skype.app" to be supplied with the -p flag.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.pkg.CallRecorderforSkype</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>CallRecorderforSkype</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.2.0</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>PackageRequired</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
            <key>Arguments</key>
            <dict>
                <key>input_path</key>
                <string>%PKG%</string>
                <key>requirement</key>
                <string>identifier "com.ecamm.installer.callrecorder" and anchor apple generic and 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] = "5EJH68M642"</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>Copier</string>
            <key>Arguments</key>
            <dict>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/unarchive/</string>
                <key>overwrite</key>
                <true/>
                <key>source_path</key>
                <string>%PKG%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>Copier</string>
            <key>Arguments</key>
            <dict>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/contents.tar</string>
                <key>overwrite</key>
                <true/>
                <key>source_path</key>
                <string>%RECIPE_CACHE_DIR%/unarchive/Contents/Resources/contents.einstall</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>Unarchiver</string>
            <key>Arguments</key>
            <dict>
                <key>archive_path</key>
                <string>%RECIPE_CACHE_DIR%/contents.tar</string>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/unarchive_einstall</string>
                <key>purge_destination</key>
                <true/>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>Versioner</string>
            <key>Arguments</key>
            <dict>
                <key>input_plist_path</key>
                <string>%RECIPE_CACHE_DIR%/unarchive_einstall/CallRecorder.plugin/Contents/Info.plist</string>
                <key>plist_version_key</key>
                <string>CFBundleVersion</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PkgRootCreator</string>
            <key>Arguments</key>
            <dict>
                <key>pkgdirs</key>
                <dict>
                    <key>Applications</key>
                    <string>0775</string>
                    <key>Library</key>
                    <string>0755</string>
                    <key>Library/Audio</key>
                    <string>0755</string>
                    <key>Library/Audio/Plug-Ins</key>
                    <string>0755</string>
                    <key>Library/Audio/Plug-Ins/HAL</key>
                    <string>0755</string>
                </dict>
                <key>pkgroot</key>
                <string>%RECIPE_CACHE_DIR%/pkgroot</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>Copier</string>
            <key>Arguments</key>
            <dict>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/pkgroot/Applications/Ecamm Movie Tools.app</string>
                <key>source_path</key>
                <string>%RECIPE_CACHE_DIR%/unarchive_einstall/Ecamm Movie Tools.app</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>Copier</string>
            <key>Arguments</key>
            <dict>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/pkgroot/Library/Audio/Plug-Ins/HAL/EcammAudioLoader.plugin</string>
                <key>source_path</key>
                <string>%RECIPE_CACHE_DIR%/unarchive_einstall/EcammAudioLoader.plugin</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>Copier</string>
            <key>Arguments</key>
            <dict>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/pkgroot/Library/Audio/Plug-Ins/HAL/EcammAudioLoader.plugin/Contents/Plugins/CallRecorder.plugin</string>
                <key>source_path</key>
                <string>%RECIPE_CACHE_DIR%/unarchive_einstall/CallRecorder.plugin</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PkgCreator</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_request</key>
                <dict>
                    <key>chown</key>
                    <array>
                        <dict>
                            <key>group</key>
                            <string>admin</string>
                            <key>path</key>
                            <string>Applications</string>
                            <key>user</key>
                            <string>root</string>
                        </dict>
                        <dict>
                            <key>group</key>
                            <string>wheel</string>
                            <key>path</key>
                            <string>Library</string>
                            <key>user</key>
                            <string>root</string>
                        </dict>
                    </array>
                    <key>id</key>
                    <string>com.ecamm.CallRecorderforSkype.pkg</string>
                    <key>pkgname</key>
                    <string>CallRecorderforSkype-%version%</string>
                    <key>pkgroot</key>
                    <string>%RECIPE_CACHE_DIR%/pkgroot</string>
                    <key>pkgtype</key>
                    <string>flat</string>
                    <key>version</key>
                    <string>%version%</string>
                </dict>
            </dict>
        </dict>
    </array>
</dict>
</plist>
CLO/CLO.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of CLO and imports into Munki</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.CLO</string>
    <key>Input</key>
    <dict>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>NAME</key>
        <string>CLO</string>
        <key>pkginfo</key>
        <dict>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>CLO is a 3D fashion design software program creating virtual, true-to life garment visualization with cutting-edge simulation technologies for the fashion industry.</string>
            <key>developer</key>
            <string>CLO Virtual Fashion LLC</string>
            <key>display_name</key>
            <string>CLO</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
            <key>unattended_uninstall</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.5.0</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.CLO</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%pathname%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
        </dict>
    </array>
</dict>
</plist>

CLO/CLO.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of CLO</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.CLO</string>
    <key>Input</key>
    <dict>
        <key>DOWNLOAD_URL</key>
        <string>https://bit.ly/CLO_ENT_MACO</string>
        <key>NAME</key>
        <string>CLO</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.5.0</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>DeprecationWarning</string>
            <key>Arguments</key>
            <dict>
                <key>warning_message</key>
                <string>Download is now behind a login.</string>
            </dict>
        </dict>
        <dict>   
            <key>Processor</key>   
            <string>StopProcessingIf</string>   
            <key>Arguments</key>   
            <dict>   
                <key>predicate</key>   
                <string>TRUEPREDICATE</string>
            </dict>
        </dict>
        <dict>
            <key>Arguments</key>
            <dict>
                <key>filename</key>
                <string>%NAME%.dmg</string>
                <key>url</key>
                <string>%DOWNLOAD_URL%</string>
            </dict>
            <key>Processor</key>
            <string>URLDownloader</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
        <dict>
            <key>Arguments</key>
            <dict>
                <key>input_path</key>
                <string>%pathname%/CLO_Network_OnlineAuth.app</string>
                <key>requirement</key>
                <string>identifier "com.clo3d.security.clono" and anchor apple generic and 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] = LM3T6Q78ZL</string>
            </dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
        </dict>
    </array>
</dict>
</plist>

BrowserStackLocal/BrowserStackLocal Binary.pkg.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of the BrowserStackLocal binary and creates a pkg, placing the binary at /usr/local/bin/BrowserStackLocal</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.pkg.BrowserStackLocal Binary</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>BrowserStackLocalBinary</string>
    </dict>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.BrowserStackLocal Binary</string>
    <key>MinimumVersion</key>
    <string>0.5.0</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>BrowserStackLocalBinaryVersioner</string>
            <key>Arguments</key>
            <dict>
                <key>binary_path</key>
                <string>%pkgroot%/usr/local/bin/BrowserStackLocal</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PkgCreator</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_request</key>
                <dict>
                    <key>pkgname</key>
                    <string>%NAME%-%version%</string>
                    <key>version</key>
                    <string>%version%</string>
                    <key>id</key>
                    <string>com.browserstack.local.binary</string>
                    <key>options</key>
                    <string>purge_ds_store</string>
                    <key>chown</key>
                    <array>
                        <dict>
                            <key>path</key>
                            <string>/usr/local/bin/BrowserStackLocal</string>
                            <key>user</key>
                            <string>root</string>
                            <key>group</key>
                            <string>wheel</string>
                            <key>mode</key>
                            <string>0755</string>
                        </dict>
                    </array>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PathDeleter</string>
            <key>Arguments</key>
            <dict>
                <key>path_list</key>
                <array>
                    <string>%RECIPE_CACHE_DIR%/%NAME%</string>
                </array>
            </dict>
        </dict>
    </array>
</dict>
</plist>
BrowserStackLocal/BrowserStackLocal Binary.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of the BrowserStackLocal binary and creates a pkg, placing the binary at /usr/local/bin/BrowserStackLocal and imports into Munki.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.BrowserStackLocal Binary</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>BrowserStackLocalBinary</string>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>pkginfo</key>
        <dict>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>BrowserStackLocal lets you test work-in-progress web and mobile apps at scale without hosting them on public staging environments.</string>
            <key>display_name</key>
            <string>BrowserStackLocal Binary</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
            <key>unattended_uninstall</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.2.0</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.pkg.BrowserStackLocal Binary</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>MunkiPkginfoMerger</string>
            <key>Arguments</key>
            <dict>
                <key>additional_pkginfo</key>
                <dict>
                    <key>version</key>
                    <string>%version%</string>
                    <key>installcheck_script</key>
                    <string>#!/usr/local/munki/munki-python
# pylint: disable = invalid-name

'''
Copyright (c) 2021, dataJAR Ltd.  All rights reserved.
     Redistribution and use in source and binary forms, with or without
     modification, are permitted provided that the following conditions are met:
             * Redistributions of source code must retain the above copyright
               notice, this list of conditions and the following disclaimer.
             * Redistributions in binary form must reproduce the above copyright
               notice, this list of conditions and the following disclaimer in the
               documentation and/or other materials provided with the distribution.
             * Neither data JAR Ltd nor the names of its contributors may be used to
               endorse or promote products derived from this software without specific
               prior written permission.
     THIS SOFTWARE IS PROVIDED BY DATA JAR LTD 'AS IS' AND ANY
     EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
     WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
     DISCLAIMED. IN NO EVENT SHALL DATA JAR LTD BE LIABLE FOR ANY
     DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
     (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
     ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
     (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
     SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
SUPPORT FOR THIS PROGRAM
    This program is distributed 'as is' by DATA JAR LTD.
    For more information or support, please utilise the following resources:
            http://www.datajar.co.uk

DESCRIPTION

See docstring in main()

'''

from distutils.version import LooseVersion
import os
import sys
import subprocess


def main():
    '''
        Get browserstacklocal version (if installed)

        Exit 1 if browserstacklocal is installed and newer than what we have in Munki

        Based on:
        https://github.com/autopkg/andrewzirkel-recipes/blob/master/LightspeedRelaySmartAgent/LightspeedRelaySmartAgent.munki.recipe#L46
    '''

    browserstacklocal_binary = '/usr/local/bin/BrowserStackLocal'
    munki_version = '%version%'

    # If the binary exists
    if os.path.isfile(browserstacklocal_binary):

        try:
            installed_ver = subprocess.check_output([browserstacklocal_binary, '-version']).split()[3].decode('utf-8')
        except subprocess.CalledProcessError:
            print("Encountered an error when ascertaining browserstacklocal version, "
                  "proceeding with install...")
            sys.exit(0)

        if LooseVersion(installed_ver) &lt; LooseVersion(munki_version):
            print("Version of browserstacklocal binary older than the munki version, proceeding with install...")
            sys.exit(0)

        print("Version of browserstacklocal binary same or newer than the munki version, skipping...")
        sys.exit(1)

    print("Cannot locate browserstacklocal binary, proceeding with install...")
    sys.exit(0)

if __name__ == '__main__':
    main()
</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%pkg_path%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>
BrowserStackLocal/BrowserStackLocal Binary.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of the BrowserStackLocal binary.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.BrowserStackLocal Binary</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>BrowserStackLocalBinary</string>
    </dict>
    <key>MinimumVersion</key>
    <string>1.0.4</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>URLTextSearcher</string>
            <key>Arguments</key>
            <dict>
                <key>re_pattern</key>
                <string>https://www\.browserstack\.com/browserstack-local/BrowserStackLocal-darwin.*\.zip</string>
                <key>result_output_var_name</key>
                <string>url</string>
                <key>url</key>
                <string>https://www.browserstack.com/docs/live/local-testing#Chrome_and_Firefox</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>URLDownloader</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PkgRootCreator</string>
            <key>Arguments</key>
            <dict>
                <key>pkgroot</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%</string>
                <key>pkgdirs</key>
                <dict>
                    <key>usr</key>
                    <string>0755</string>
                    <key>usr/local</key>
                    <string>0755</string>
                    <key>usr/local/bin</key>
                    <string>0755</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>Unarchiver</string>
            <key>Arguments</key>
            <dict>
                <key>archive_path</key>
                <string>%pathname%</string>
                <key>destination_path</key>
                <string>%pkgroot%/usr/local/bin/</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
            <key>Arguments</key>
            <dict>
                <key>input_path</key>
                <string>%pkgroot%/usr/local/bin/BrowserStackLocal</string>
                <key>requirement</key>
                <string>identifier "BrowserStack Local" and anchor apple generic and 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] = CL769MBK8C</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>
BrowserStackLocal/BrowserStackLocal App.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of the BrowserStackLocal.app and imports it into Munki.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.BrowserStackLocal App</string>
    <key>Input</key>
    <dict>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>NAME</key>
        <string>BrowserStackLocalApp</string>
        <key>pkginfo</key>
        <dict>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>BrowserStackLocal.app lets you test work-in-progress web and mobile apps at scale without hosting them on public staging environments, within Chrome or Firefox.</string>
            <key>developer</key>
            <string>BrowserStack</string>
            <key>category</key>
            <string>Applications</string>
            <key>display_name</key>
            <string>OpenVPN</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
            <key>unattended_uninstall</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>1.0.0</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.BrowserStackLocal App</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%pathname%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>
BrowserStackLocal/BrowserStackLocal App.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of the BrowserStackLocal.app.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.BrowserStackLocal App</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>BrowserStackLocalApp</string>
     </dict>
    <key>MinimumVersion</key>
    <string>0.2.0</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>URLTextSearcher</string>
            <key>Arguments</key>
            <dict>
                <key>re_pattern</key>
                <string>https://www\.browserstack\.com/local-testing/downloads/native-app/.*/BrowserStackLocal\.dmg</string>
                <key>result_output_var_name</key>
                <string>url</string>
                <key>url</key>
                <string>https://www.browserstack.com/docs/live/local-testing#Chrome_and_Firefox</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>URLDownloader</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
            <key>Arguments</key>
            <dict>
                <key>input_path</key>
                <string>%pathname%/BrowserStackLocal.app</string>
                <key>requirement</key>
                <string>identifier "com.browserstack.local" and anchor apple generic and 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] = CL769MBK8C</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>
BrightPay UK 2021-22/BrightPay UK 2021-22.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of BrightPay UK 2021-22 and imports it into Munki.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.BrightPay UK 2021-22</string>
    <key>Input</key>
    <dict>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>NAME</key>
        <string>BrightPayUK2021-22</string>
        <key>pkginfo</key>
        <dict>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>BrightPay is fully HMRC recognised, supports all RTI submission types and includes full auto enrolment functionality. New and improved features include integration with accounting software and the ability to batch process multiple employers at the same time.</string>
            <key>developer</key>
            <string>Thesaurus Software Ltd</string>
            <key>display_name</key>
            <string>BrightPay UK 2021-22</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
            <key>unattended_uninstall</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>1.0.0</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.BrightPay UK 2021-22</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>DmgCreator</string>
            <key>Arguments</key>
            <dict>
                <key>dmg_path</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%.dmg</string>
                <key>dmg_root</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%/Applications/</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%dmg_path%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PathDeleter</string>
            <key>Arguments</key>
            <dict>
                <key>path_list</key>
                <array>
                    <string>%RECIPE_CACHE_DIR%/%NAME%/</string>
                </array>
            </dict>
        </dict>
    </array>
</dict>
</plist>
BrightPay UK 2021-22/BrightPay UK 2021-22.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads latest version of BrightPay UK 2021-22.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.BrightPay UK 2021-22</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>BrightPayUK2021-22</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>SparkleUpdateInfoProvider</string>
            <key>Arguments</key>
            <dict>
                <key>appcast_url</key>
                <string>https://downloads.thesaurussoftware.com/mac/sparkle/BrightPay-UKM-2021-22.xml</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>URLDownloader</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>Unarchiver</string>
            <key>Arguments</key>
            <dict>
                <key>archive_path</key>
                <string>%pathname%</string>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%/Applications/</string>
                <key>purge_destination</key>
                <true/>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
            <key>Arguments</key>
            <dict>
                <key>input_path</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%/Applications/BrightPay UK 2021-22.app</string>
                <key>requirement</key>
                <string>anchor apple generic and identifier "com.thesaurussoftware.BrightPay-UK-2021-22" 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] = "963FKU52U4")</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>
Bria/Bria.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads thev latest ersion of Bria and imports into Munki.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.Bria</string>
    <key>Input</key>
    <dict>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>Applications</string>
        <key>NAME</key>
        <string>Bria</string>
        <key>pkginfo</key>
        <dict>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>Bria is your interface for business-class communications. Access your lines of communications no matter anywhere you are.</string>
            <key>display_name</key>
            <string>Bria</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
            <key>unattended_uninstall</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.2.0</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.Bria</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%pathname%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>
Bria/Bria.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Download recipe for Bria.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.Bria</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>Bria</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.2.0</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>URLDownloader</string>
            <key>Arguments</key>
            <dict>
                <key>url</key>
                <string>https://www.counterpath.com/downloads/Bria6ForMac.php</string>
                <key>filename</key>
                <string>%NAME%.dmg</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
            <key>Arguments</key>
            <dict>
                <key>input_path</key>
                <string>%RECIPE_CACHE_DIR%/downloads/%NAME%.dmg/Bria.app</string>
                <key>requirement</key>
                <string>identifier "com.CounterPath_Corporation.Bria" and anchor apple generic and 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] = "9WJ3F6R925"</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>

Bria Enterprise/Bria Enterprise.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads thev latest ersion of Bria Enterprise and imports into Munki.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.Bria Enterprise</string>
    <key>Input</key>
    <dict>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>Applications</string>
        <key>NAME</key>
        <string>BriaEnterprise</string>
        <key>pkginfo</key>
        <dict>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>Empower your workforce with communication tools for the modern business</string>
            <key>display_name</key>
            <string>Bria Enterprise</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
            <key>unattended_uninstall</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.2.0</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.Bria Enterprise</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%pathname%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>
Bria Enterprise/Bria Enterprise.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Download recipe for Bria Enterprise.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.Bria Enterprise</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>BriaEnterprise</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.2.0</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>URLDownloader</string>
            <key>Arguments</key>
            <dict>
                <key>filename</key>
                <string>%NAME%.dmg</string>
                <key>url</key>
                <string>https://www.counterpath.com/EnterpriseForMac</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
            <key>Arguments</key>
            <dict>
                <key>input_path</key>
                <string>%pathname%/Bria Enterprise.app</string>
                <key>requirement</key>
                <string>identifier "com.CounterPath_Corporation.Bria-Enterprise" and anchor apple generic and 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] = "9WJ3F6R925"</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>
BoxDrive/BoxDrive.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of Box Drive and then uploads to munki.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.boxdrive</string>
    <key>Input</key>
    <dict>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>Applications/%NAME%</string>
        <key>NAME</key>
        <string>BoxDrive</string>
        <key>pkginfo</key>
        <dict>
            <key>blocking_applications</key>
			<array>
				<string>Box</string>
			</array>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>Box Drive is the incredibly simple way to work with all of your files — even billions of files — right from your desktop, taking up very little hard drive space. Open your Windows Explorer or Mac Finder to find every file you need, edit like you would any local file and save it automatically to the cloud. And, keep enterprise-grade security protecting everything you do.</string>
            <key>developer</key>
            <string>Box</string>
            <key>display_name</key>
            <string>BoxDrive</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.boxdrive</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>com.github.dataJAR-recipes.Shared Processors/DistributionPkgInfo</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%pathname%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>FlatPkgUnpacker</string>
            <key>Arguments</key>
            <dict>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/unpack/</string>
                <key>flat_pkg_path</key>
                <string>%pathname%</string>
                <key>purge_destination</key>
                <true/>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PkgPayloadUnpacker</string>
            <key>Arguments</key>
            <dict>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%/Applications/</string>
                <key>pkg_payload_path</key>
                <string>%RECIPE_CACHE_DIR%/unpack/BoxDesktopDrive.pkg/Payload</string>
                <key>purge_destination</key>
                <true/>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiInstallsItemsCreator</string>
            <key>Arguments</key>
            <dict>
                <key>faux_root</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%/</string>
                <key>installs_item_paths</key>
                <array>
                    <string>/Applications/Box.app</string>
                </array>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiPkginfoMerger</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%pathname%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PathDeleter</string>
            <key>Arguments</key>
            <dict>
                <key>path_list</key>
                <array>
                    <string>%RECIPE_CACHE_DIR%/%NAME%/</string>
                    <string>%RECIPE_CACHE_DIR%/unpack/</string>
                </array>
            </dict>
        </dict>
    </array>
</dict>
</plist>
BoxDrive/BoxDrive.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of Box Drive.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.boxdrive</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>BoxDrive</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.4.1</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>URLTextSearcher</string>
            <key>Arguments</key>
            <dict>
                <key>url</key>
                <string>https://www.box.com/en-gb/resources/downloads/drive</string>
                <key>re_pattern</key>
                <string>(https://\w+\.\w+\.\w+/box-installers/desktop/releases/mac/Box.pkg)</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>URLDownloader</string>
            <key>Arguments</key>
            <dict>
                <key>filename</key>
                <string>%NAME%.pkg</string>
                <key>url</key>
                <string>%match%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
            <key>Arguments</key>
            <dict>
                <key>expected_authority_names</key>
                <array>
                    <string>Developer ID Installer: Box, Inc. (M683GB7CPW)</string>
                    <string>Developer ID Certification Authority</string>
                    <string>Apple Root CA</string>
                </array>
                <key>input_path</key>
                <string>%pathname%</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>
BlueGriffon/BlueGriffon.png METASEP

BlueGriffon/BlueGriffon.pkg.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>Description</key>
	<string>Downloads the latest version of BlueGriffon and creates a package.</string>
	<key>Identifier</key>
	<string>com.github.dataJAR-recipes.pkg.BlueGriffon</string>
	<key>Input</key>
	<dict>
		<key>NAME</key>
		<string>BlueGriffon</string>
	</dict>
	<key>MinimumVersion</key>
	<string>0.6.1</string>
	<key>ParentRecipe</key>
	<string>com.github.dataJAR-recipes.download.BlueGriffon</string>
	<key>Process</key>
	<array>
		<dict>
			<key>Arguments</key>
			<dict>
				<key>pkgdirs</key>
				<dict>
					<key>Applications</key>
					<string>0775</string>
				</dict>
				<key>pkgroot</key>
				<string>%RECIPE_CACHE_DIR%/%NAME%</string>
			</dict>
			<key>Processor</key>
			<string>PkgRootCreator</string>
		</dict>
		<dict>
			<key>Arguments</key>
			<dict>
				<key>destination_path</key>
				<string>%pkgroot%/Applications/BlueGriffon.app</string>
				<key>source_path</key>
				<string>%RECIPE_CACHE_DIR%/downloads/%filename%/BlueGriffon.app</string>
			</dict>
			<key>Processor</key>
			<string>Copier</string>
		</dict>
		<dict>
            <key>Processor</key>
            <string>PlistReader</string>
            <key>Arguments</key>
            <dict>
                <key>info_path</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%/Applications/BlueGriffon.app</string>
                <key>plist_keys</key>
                <dict>
                    <key>CFBundleVersion</key>
                    <string>version</string>
                    <key>CFBundleIdentifier</key>
                    <string>bundleid</string>
                </dict>
            </dict>
        </dict>
		<dict>
			<key>Arguments</key>
			<dict>
				<key>pkg_request</key>
				<dict>
					<key>chown</key>
					<array>
						<dict>
							<key>group</key>
							<string>admin</string>
							<key>path</key>
							<string>Applications</string>
							<key>user</key>
							<string>root</string>
						</dict>
					</array>
					<key>id</key>
					<string>%bundleid%</string>
					<key>options</key>
					<string>purge_ds_store</string>
					<key>pkgname</key>
					<string>%NAME%-%version%</string>
					<key>pkgroot</key>
					<string>%RECIPE_CACHE_DIR%/%NAME%</string>
					<key>version</key>
					<string>%version%</string>
				</dict>
			</dict>
			<key>Processor</key>
			<string>PkgCreator</string>
		</dict>
	</array>
</dict>
</plist>

BlueGriffon/BlueGriffon.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads thev latest ersion of BlueGriffon and imports into Munki.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.BlueGriffon</string>
    <key>Input</key>
    <dict>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>NAME</key>
        <string>BlueGriffon</string>
        <key>pkginfo</key>
        <dict>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>The next-gen Web and EPUB Editor based on the rendering engine of Firefox®</string>
            <key>display_name</key>
            <string>BlueGriffon</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
            <key>unattended_uninstall</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.2.0</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.BlueGriffon</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%pathname%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
        </dict>
    </array>
</dict>
</plist>

BlueGriffon/BlueGriffon.jss.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>Description</key>
	<string>Downloads the current release version of BlueGriffon and then uploads to the JSS</string>
	<key>Identifier</key>
	<string>com.github.dataJAR-recipes.jss.BlueGriffon</string>
	<key>Input</key>
	<dict>
		<key>CATEGORY</key>
		<string>Productivity</string>
		<key>GROUP_NAME</key>
		<string>%NAME%-update-smart</string>
		<key>GROUP_TEMPLATE</key>
		<string>SmartGroupTemplate.xml</string>
		<key>NAME</key>
		<string>BlueGriffon</string>
		<key>POLICY_CATEGORY</key>
		<string>Testing</string>
		<key>POLICY_TEMPLATE</key>
		<string>PolicyTemplate.xml</string>
		<key>SELF_SERVICE_DESCRIPTION</key>
		<string>The next-gen Web and EPUB Editor based on the rendering engine of Firefox®</string>
        <key>SELF_SERVICE_ICON</key>
		<string>BlueGriffon.png</string>
	</dict>
	<key>MinimumVersion</key>
	<string>0.2.0</string>
	<key>ParentRecipe</key>
	<string>com.github.dataJAR-recipes.pkg.BlueGriffon</string>
	<key>Process</key>
	<array>
		<dict>
			<key>Arguments</key>
			<dict>
				<key>category</key>
				<string>%CATEGORY%</string>
				<key>groups</key>
				<array>
					<dict>
						<key>name</key>
						<string>%GROUP_NAME%</string>
						<key>smart</key>
						<true/>
						<key>template_path</key>
						<string>%GROUP_TEMPLATE%</string>
					</dict>
				</array>
				<key>policy_category</key>
				<string>%POLICY_CATEGORY%</string>
				<key>policy_template</key>
				<string>%POLICY_TEMPLATE%</string>
				<key>prod_name</key>
				<string>%NAME%</string>
				<key>self_service_description</key>
				<string>%SELF_SERVICE_DESCRIPTION%</string>
				<key>self_service_icon</key>
				<string>%SELF_SERVICE_ICON%</string>
				<key>version</key>
				<string>%version%</string>
			</dict>
			<key>Processor</key>
			<string>JSSImporter</string>
		</dict>
	</array>
</dict>
</plist>

BlueGriffon/BlueGriffon.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Download recipe for BlueGriffon.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.BlueGriffon</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>BlueGriffon</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.2.0</string>
    <key>Process</key>
    <array>
		<dict>
			<key>Processor</key>
			<string>URLTextSearcher</string>
			<key>Arguments</key>
			<dict>
				<key>url</key>
				<string>http://bluegriffon.org/#download</string>
				<key>re_pattern</key>
				<string>(http://bluegriffon.org/freshmeat/[0-9a-z\.]+\.[0-9a-z\.]/bluegriffon-[0-9a-z\.]+\.[0-9a-z\.]+\.mac-x86_64.dmg)</string>
				<key>result_output_var_name</key>
				<string>url</string>
			</dict>
		</dict>
        <dict>
            <key>Arguments</key>
            <dict>
                <key>filename</key>
                <string>%NAME%.dmg</string>
            </dict>
            <key>Processor</key>
            <string>URLDownloader</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
    </array>
</dict>
</plist>

Blue Jeans Scheduler for Mac/BlueJeansSchedulerforMac.png METASEP

Blue Jeans Scheduler for Mac/Blue Jeans Scheduler for Mac.pkg.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>Description</key>
	<string>Downloads the latest version of Blue Jeans Scheduler for Mac and creates a package.</string>
	<key>Identifier</key>
	<string>com.github.dataJAR-recipes.pkg.Blue Jeans Scheduler for Mac</string>
	<key>Input</key>
	<dict>
		<key>NAME</key>
		<string>Blue Jeans Scheduler for Mac</string>
	</dict>
	<key>MinimumVersion</key>
	<string>0.6.1</string>
	<key>ParentRecipe</key>
	<string>com.github.dataJAR-recipes.download.Blue Jeans Scheduler for Mac</string>
	<key>Process</key>
	<array>
		<dict>
			<key>Arguments</key>
			<dict>
				<key>pkgdirs</key>
				<dict>
					<key>Applications</key>
					<string>0775</string>
				</dict>
				<key>pkgroot</key>
				<string>%RECIPE_CACHE_DIR%/%NAME%</string>
			</dict>
			<key>Processor</key>
			<string>PkgRootCreator</string>
		</dict>
		<dict>
			<key>Arguments</key>
			<dict>
				<key>destination_path</key>
				<string>%pkgroot%/Applications/Blue Jeans Scheduler for Mac.app</string>
				<key>source_path</key>
				<string>%RECIPE_CACHE_DIR%/downloads/%filename%/Blue Jeans Scheduler for Mac.app</string>
			</dict>
			<key>Processor</key>
			<string>Copier</string>
		</dict>
	    <dict>
            <key>Processor</key>
            <string>PlistReader</string>
            <key>Arguments</key>
            <dict>
                <key>info_path</key>
                <string>%pkgroot%/Applications/Blue Jeans Scheduler for Mac.app/Contents/Info.plist</string>
				<key>plist_keys</key>
                <dict>
                    <key>CFBundleVersion</key>
                    <string>version</string>
                    <key>CFBundleIdentifier</key>
                    <string>bundleid</string>
                </dict>
            </dict>
        </dict>
		<dict>
			<key>Arguments</key>
			<dict>
				<key>pkg_request</key>
				<dict>
					<key>chown</key>
					<array>
						<dict>
							<key>group</key>
							<string>admin</string>
							<key>path</key>
							<string>Applications</string>
							<key>user</key>
							<string>root</string>
						</dict>
					</array>
					<key>id</key>
					<string>%bundleid%</string>
					<key>options</key>
					<string>purge_ds_store</string>
					<key>pkgname</key>
					<string>%NAME%-%version%</string>
					<key>pkgroot</key>
					<string>%RECIPE_CACHE_DIR%/%NAME%</string>
					<key>version</key>
					<string>%version%</string>
				</dict>
			</dict>
			<key>Processor</key>
			<string>PkgCreator</string>
		</dict>
	</array>
</dict>
</plist>

Blue Jeans Scheduler for Mac/Blue Jeans Scheduler for Mac.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of Blue Jeans Scheduler for Mac and imports it into Munki.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.Blue Jeans Scheduler for Mac</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>Blue Jeans Scheduler for Mac</string>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>pkginfo</key>
        <dict>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
			<string>&lt;p&gt;Compatible with both iCal and Outlook, the BlueJeans Scheduler for Mac gives you one-click entry to upcoming meetings, lets you schedule future meetings and invite participants, and even start an instant meeting for ad hoc collaboration.&lt;/p&gt;
&lt;p&gt;With the BlueJeans Scheduler for Mac, you can:&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;Connect with iCal, Outlook, and BlueJeans Scheduling to display upcoming BlueJeans meetings in the Mac toolbar&lt;/li&gt;
	&lt;li&gt;Launch your browser and join meetings with one click&lt;/li&gt;
	&lt;li&gt;Schedule upcoming meetings and invite participants&lt;/li&gt;
	&lt;li&gt;Specify default and per-meeting advanced options&lt;/li&gt;
	&lt;li&gt;Review and cancel upcoming meetings&lt;/li&gt;
&lt;/ul&gt;
</string>
            <key>developer</key>
			<string>Bluejeans</string>
            <key>display_name</key>
            <string>Blue Jeans Scheduler for Mac</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
        </dict>
		<key>pkginfo_keys_to_copy_from_sparkle_feed</key>
		<array>
			<string>minimum_os_version</string>
		</array>  
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.Blue Jeans Scheduler for Mac</string>
    <key>Process</key>
    <array>
		<dict>
			<key>Arguments</key>
			<dict>
				<key>pkg_path</key>
				<string>%RECIPE_CACHE_DIR%/downloads/%filename%</string>
				<key>repo_subdirectory</key>
				<string>%MUNKI_REPO_SUBDIR%</string>
			</dict>
			<key>Processor</key>
			<string>MunkiImporter</string>
		</dict>
    </array>
</dict>
</plist>

Blue Jeans Scheduler for Mac/Blue Jeans Scheduler for Mac.jss.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>Description</key>
	<string>Downloads the current release version of Blue Jeans Scheduler for Mac and builds a package. Then, uploads to the JSS.</string>
	<key>Identifier</key>
	<string>com.github.dataJAR-recipes.jss.Blue Jeans Scheduler for Mac</string>
	<key>Input</key>
	<dict>
		<key>CATEGORY</key>
		<string>Productivity</string>
		<key>GROUP_NAME</key>
		<string>%NAME%-update-smart</string>
		<key>GROUP_TEMPLATE</key>
		<string>SmartGroupTemplate.xml</string>
		<key>NAME</key>
		<string>Blue Jeans Scheduler for Mac</string>
		<key>POLICY_CATEGORY</key>
		<string>Testing</string>
		<key>POLICY_TEMPLATE</key>
		<string>PolicyTemplate.xml</string>
		<key>SELF_SERVICE_DESCRIPTION</key>
		<string>Compatible with both iCal and Outlook, the BlueJeans Scheduler for Mac gives you one-click entry to upcoming meetings, lets you schedule future meetings and invite participants, and even start an instant meeting for ad hoc collaboration.</string>
       	<key>SELF_SERVICE_ICON</key>
		<string>BlueJeansSchedulerforMac.png</string>
	</dict>
	<key>MinimumVersion</key>
	<string>0.6.1</string>
	<key>ParentRecipe</key>
	<string>com.github.dataJAR-recipes.pkg.Blue Jeans Scheduler for Mac</string>
	<key>Process</key>
	<array>
		<dict>
			<key>Arguments</key>
			<dict>
				<key>category</key>
				<string>%CATEGORY%</string>
				<key>groups</key>
				<array>
					<dict>
						<key>name</key>
						<string>%GROUP_NAME%</string>
						<key>smart</key>
						<true/>
						<key>template_path</key>
						<string>%GROUP_TEMPLATE%</string>
					</dict>
				</array>
				<key>policy_category</key>
				<string>%POLICY_CATEGORY%</string>
				<key>policy_template</key>
				<string>%POLICY_TEMPLATE%</string>
				<key>prod_name</key>
				<string>%NAME%</string>
				<key>self_service_description</key>
				<string>%SELF_SERVICE_DESCRIPTION%</string>
				<key>self_service_icon</key>
				<string>%SELF_SERVICE_ICON%</string>
			</dict>
			<key>Processor</key>
			<string>JSSImporter</string>
		</dict>
	</array>
</dict>
</plist>

Blue Jeans Scheduler for Mac/Blue Jeans Scheduler for Mac.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads latest version of Blue Jeans Scheduler for Mac.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.Blue Jeans Scheduler for Mac</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>Blue Jeans Scheduler for Mac</string>
        <key>SPARKLE_FEED_URL</key>
        <string>https://swdl.bluejeans.com/bluejeansformac/appcast.xml</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>SparkleUpdateInfoProvider</string>
            <key>Arguments</key>
            <dict>
                <key>appcast_url</key>
                <string>%SPARKLE_FEED_URL%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>URLDownloader</string>
            <key>Arguments</key>
            <dict>
                <key>filename</key>
                <string>%NAME%-%version%.dmg</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
		<dict>
			<key>Arguments</key>
			<dict>
				<key>input_path</key>
				<string>%RECIPE_CACHE_DIR%/downloads/%filename%/Blue Jeans Scheduler for Mac.app</string>
                <key>requirement</key>
                <string>anchor apple generic and identifier "com.bluejeans.bluejeansschedulerformac" 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] = HE4P42JBGN)</string>
            </dict>
			<key>Processor</key>
			<string>CodeSignatureVerifier</string>
		</dict>
    </array>
</dict>
</plist>

Blue Jeans Events/Blue Jeans Events.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of Blue Jeans Events and imports into Munki</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.Blue Jeans Events</string>
    <key>Input</key>
    <dict>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>NAME</key>
        <string>Blue Jeans Events</string>
        <key>pkginfo</key>
        <dict>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>The BlueJeans Events App gives moderators and presenters intuitive and full-featured controls to easily manage live virtual events.</string>
            <key>developer</key>
            <string>BlueJeans</string>
            <key>display_name</key>
            <string>Blue Jeans Events</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
            <key>unattended_uninstall</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.5.0</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.Blue Jeans Events</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>FlatPkgUnpacker</string>
            <key>Arguments</key>
            <dict>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/unpack/</string>
                <key>flat_pkg_path</key>
                <string>%pathname%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PkgRootCreator</string>
            <key>Arguments</key>
            <dict>
                <key>pkgroot</key>
                <string>%RECIPE_CACHE_DIR%/pkgroot</string>
                <key>pkgdirs</key>
                <dict>
                    <key>Applications</key>
                    <string>0755</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PkgPayloadUnpacker</string>
            <key>Arguments</key>
            <dict>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/pkgroot/Applications/</string>
                <key>pkg_payload_path</key>
                <string>%RECIPE_CACHE_DIR%/unpack/com.bluejeans.primetime.pkg/Payload</string>
                <key>purge_destination</key>
                <string>true</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiInstallsItemsCreator</string>
            <key>Arguments</key>
            <dict>
                <key>faux_root</key>
                <string>%RECIPE_CACHE_DIR%/pkgroot</string>
                <key>installs_item_paths</key>
                <array>
                    <string>/Applications/BlueJeans Events.app</string>
                </array>
                <key>version_comparison_key</key>
                <string>CFBundleShortVersionString</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiPkginfoMerger</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>Versioner</string>
            <key>Arguments</key>
            <dict>
                <key>input_plist_path</key>
                <string>%RECIPE_CACHE_DIR%/pkgroot/Applications/BlueJeans Events.app/Contents/Info.plist</string>
                <key>plist_version_key</key>
                <string>CFBundleShortVersionString</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiPkginfoMerger</string>
            <key>Arguments</key>
            <dict>
                <key>additional_pkginfo</key>
                <dict>
                    <key>version</key>
                    <string>%version%</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%pathname%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PathDeleter</string>
            <key>Arguments</key>
            <dict>
                <key>path_list</key>
                <array>
                    <string>%RECIPE_CACHE_DIR%/pkgroot/</string>
                    <string>%RECIPE_CACHE_DIR%/unpack/</string>
                </array>
            </dict>
        </dict>
    </array>
</dict>
</plist>

Blue Jeans Events/Blue Jeans Events.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of Blue Jeans Events</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.Blue Jeans Events</string>
    <key>Input</key>
    <dict>
        <key>DOWNLOAD_URL</key>
        <string>https://swdl.bluejeans.com/events/release/beta/downloads/BlueJeans_Events.pkg</string>
        <key>NAME</key>
        <string>Blue Jeans Events</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.5.0</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>URLDownloader</string>
            <key>Arguments</key>
            <dict>
                <key>url</key>
                <string>%DOWNLOAD_URL%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
            <key>Arguments</key>
            <dict>
                <key>expected_authority_names</key>
                <array>
                    <string>Developer ID Installer: Blue Jeans Network, Inc. (HE4P42JBGN)</string>
                    <string>Developer ID Certification Authority</string>
                    <string>Apple Root CA</string>
                </array>
                <key>input_path</key>
                <string>%pathname%</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>

Blue Jeans Admin Installer/Blue Jeans Admin Installer.png METASEP

Blue Jeans Admin Installer/Blue Jeans Admin Installer.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of Admin Installer for Blue Jeans and imports it into Munki. This package also installs the Blue Jeans sound driver
	More Details on the Admin installer: https://support.bluejeans.com/s/article/BlueJeans-App-2-x-Centralized-Deployment</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.Blue Jeans Admin Installer</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>Blue Jeans Admin Installer</string>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>pkginfo</key>
        <dict>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
			<string>BlueJeans video conferencing application and sound driver</string>
            <key>developer</key>
			<string>Bluejeans</string>
            <key>display_name</key>
            <string>Blue Jeans</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.Blue Jeans Admin Installer</string>
    <key>Process</key>
    <array>
		<dict>
			<key>Arguments</key>
			<dict>
				<key>pkg_path</key>
				<string>%RECIPE_CACHE_DIR%/downloads/%filename%</string>
				<key>repo_subdirectory</key>
				<string>%MUNKI_REPO_SUBDIR%</string>
			</dict>
			<key>Processor</key>
			<string>MunkiImporter</string>
		</dict>
    </array>
</dict>
</plist>

Blue Jeans Admin Installer/Blue Jeans Admin Installer.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>Description</key>
	<string>Downloads the latest version of Admin Installer for Blue Jeans. This package also installs the Blue Jeans sound driver
	More Details on the Admin installer: https://support.bluejeans.com/s/article/BlueJeans-App-2-x-Centralized-Deployment</string>
	<key>Identifier</key>
	<string>com.github.dataJAR-recipes.download.Blue Jeans Admin Installer</string>
	<key>Input</key>
	<dict>
		<key>NAME</key>
		<string>Blue Jeans Admin Installer</string>
        <key>URL</key>
        <string>https://swdl.bluejeans.com/desktop-app/mac/ga.appcast.xml</string>
	</dict>
	<key>MinimumVersion</key>
	<string>0.4.1</string>
	<key>Process</key>
	<array>
		<dict>
			<key>Processor</key>
			<string>URLTextSearcher</string>
			<key>Arguments</key>
			<dict>
				<key>url</key>
				<string>%URL%</string>
				<key>re_pattern</key>
				<string>(\/[0-9\.]+\.[0-9\.]+\.[0-9\.]+\/[0-9\.]+\.[0-9\.]+\.[0-9\.]+\/)</string>
			</dict>
		</dict>
		<dict>
			<key>Processor</key>
			<string>URLDownloader</string>
			<key>Arguments</key>
			<dict>
				<key>url</key>
				<string>https://swdl.bluejeans.com/desktop-app/mac%match%BlueJeansAdminInstaller.pkg</string>
				<key>filename</key>
				<string>%NAME%.pkg</string>
			</dict>
		</dict>
		<dict>
			<key>Processor</key>
			<string>EndOfCheckPhase</string>
		</dict>
		<dict>
			<key>Arguments</key>
			<dict>
				<key>expected_authority_names</key>
				<array>
					<string>Developer ID Installer: Blue Jeans Network, Inc. (HE4P42JBGN)</string>
					<string>Developer ID Certification Authority</string>
					<string>Apple Root CA</string>
				</array>
				<key>input_path</key>
				<string>%pathname%</string>
			</dict>
			<key>Processor</key>
			<string>CodeSignatureVerifier</string>
		</dict>
	</array>
</dict>
</plist>

Balsamiq Wireframes 4/Balsamiq Wireframes 4.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of Balsamiq Wireframes 4 and imports into Munki.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.Balsamiq Wireframes 4</string>
    <key>Input</key>
    <dict>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>NAME</key>
        <string>BalsamiqWireframes4</string>
        <key>pkginfo</key>
        <dict> 
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>Balsamiq Wireframes for Desktop can open both local BMPR files from your computer and Balsamiq Cloud projects.</string>
            <key>display_name</key>
            <string>Balsamiq Wireframes 4</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
            <key>unattended_uninstall</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.Balsamiq Wireframes 4</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%pathname%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>
Balsamiq Wireframes 4/Balsamiq Wireframes 4.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of Balsamiq Wireframes 4.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.Balsamiq Wireframes 4</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>BalsamiqWireframes4</string>
    </dict>
    <key>MinimumVersion</key>
    <string>1.0.0</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>URLTextSearcher</string>
            <key>Arguments</key>
            <dict>
                <key>url</key>
                <string>https://builds.balsamiq.com/bwd/mac.jsonp</string>
                <key>re_pattern</key>
                <string>version\":\"(4\..*?)\"</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>URLDownloader</string>
            <key>Arguments</key>
            <dict>
                <key>url</key>
                <string>https://build_archives.s3.amazonaws.com/Wireframes-macOS/Balsamiq%20Wireframes%20%match%.dmg</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
            <key>Arguments</key>
            <dict>
                <key>input_path</key>
                <string>%pathname%/Balsamiq Wireframes.app</string>
                <key>requirement</key>
                <string>anchor apple generic and identifier "com.balsamiq.wireframes" 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] = "3DPKD72KQ7")</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>
Balsamiq Mockups 3/Balsamiq Mockups 3.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of Balsamiq Mockups 3 and imports into Munki.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.Balsamiq Mockups 3</string>
    <key>Input</key>
    <dict>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>NAME</key>
        <string>BalsamiqMockups3</string>
        <key>pkginfo</key>
        <dict> 
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>Mockups offers the same speed and rough feel as sketching with pencil, with the advantage of the digital medium: drag and drop to resize and rearrange elements, make changes without starting over, and your work is clear enough that you'll make sense of them later.</string>
            <key>display_name</key>
            <string>Balsamiq Mockups 3</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
            <key>unattended_uninstall</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.Balsamiq Mockups 3</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%pathname%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>
Balsamiq Mockups 3/Balsamiq Mockups 3.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of Balsamiq Mockups 3.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.Balsamiq Mockups 3</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>BalsamiqMockups3</string>

    </dict>
    <key>MinimumVersion</key>
    <string>1.0.0</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>URLDownloader</string>
            <key>Arguments</key>
            <dict>
                <key>url</key>
                <string>https://build_archives.s3.amazonaws.com/Mockups/Mockups-3/Balsamiq-Mockups-3-macOS.dmg</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
            <key>Arguments</key>
            <dict>
                <key>input_path</key>
                <string>%pathname%/Balsamiq Mockups 3.app</string>
                <key>requirement</key>
                <string>identifier "BalsamiqMockups3.EDE15CF69E11F7F7D45B5430C7D37CC6C3545E3C.1" and anchor apple generic and 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] = "3DPKD72KQ7"</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>
Backup Manager/Backup Manager.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of Backup Manager and imports into Munki.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.Backup Manager</string>
    <key>Input</key>
    <dict>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>NAME</key>
        <string>BackupManager</string>
        <key>pkginfo</key>
        <dict> 
            <key>blocking_applications</key>
            <array>
                <string>Backup Manager</string>
            </array>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>Whether you support legacy solutions or you’re maintaining hardware for a "cloud" product, backup can quickly get too complicated. SolarWinds® Backup helps you break out of this backup trap. With a single, easy-to-use dashboard, private cloud storage included (with fast data transfers), and multiple recovery methods at your fingertips, SolarWinds Backup helps cure your backup pains.</string>
            <key>display_name</key>
            <string>Backup Manager</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
            <key>unattended_uninstall</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.Backup Manager</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%found_filename%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PathDeleter</string>
            <key>Arguments</key>
            <dict>
                <key>path_list</key>
                <array>
                    <string>%RECIPE_CACHE_DIR%/%NAME%/</string>                        
                </array>
            </dict>
        </dict>
    </array>
</dict>
</plist>

Backup Manager/Backup Manager.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Download recipe for the latest version of Backup Manager.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.Backup Manager</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>BackupManager</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>URLDownloader</string>
            <key>Arguments</key>
            <dict>
                <key>url</key>
                <string>https://cdn.cloudbackup.management/maxdownloads/mxb-macosx-x86_64.zip</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>Unarchiver</string>
            <key>Arguments</key>
            <dict>
                <key>archive_path</key>
                <string>%pathname%</string>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%/</string>
                <key>purge_destination</key>
                <true/>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>FileFinder</string>
            <key>Arguments</key>
            <dict>
                <key>pattern</key>
                <string>%destination_path%/*.pkg</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
            <key>Arguments</key>
            <dict>
                <key>input_path</key>
                <string>%found_filename%</string>
                <key>expected_authority_names</key>
                <array>
                    <string>Developer ID Installer: N-able Technologies Inc. (YT3GCGK3Z7)</string>
                    <string>Developer ID Certification Authority</string>
                    <string>Apple Root CA</string>
                </array>
            </dict>
        </dict>
    </array>
</dict>
</plist>
BBC iPlayer Downloads/BBCiPlayerDownloads.png METASEP

BBC iPlayer Downloads/BBC iPlayer Downloads.pkg.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of BBC iPlayer Downloads and creates a versioned PKG.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.pkg.BBC iPlayer Downloads</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>BBC iPlayer Downloads</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.BBC iPlayer Downloads</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>PkgRootCreator</string>
            <key>Arguments</key>
            <dict>
                <key>pkgroot</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%</string>
                <key>pkgdirs</key>
                <dict>
                    <key>Applications</key>
                    <string>0775</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>Copier</string>
            <key>Arguments</key>
            <dict>
                <key>source_path</key>
                <string>%input_path%</string>
                <key>destination_path</key>
                <string>%pkgroot%/Applications/BBC iPlayer Downloads.app</string>
                <key>overwrite</key>
                <true/>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PlistReader</string>
            <key>Arguments</key>
            <dict>
                <key>info_path</key>
                <string>%destination_path%</string>
                <key>plist_keys</key>
                <dict>
                    <key>CFBundleIdentifier</key>
                    <string>bundleid</string>
                    <key>CFBundleShortVersionString</key>
                    <string>version</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PkgCreator</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_request</key>
                <dict>
                    <key>pkgname</key>
                    <string>%NAME%-%version%</string>
                    <key>chown</key>
                    <array>
                        <dict>
                            <key>path</key>
                            <string>Applications</string>
                            <key>user</key>
                            <string>root</string>
                            <key>group</key>
                            <string>admin</string>
                        </dict>
                    </array>
                    <key>id</key>
                    <string>%bundleid%</string>
                    <key>options</key>
                    <string>purge_ds_store</string>
                    <key>pkgdir</key>
                    <string>%RECIPE_CACHE_DIR%</string>
                    <key>pkgroot</key>
                    <string>%pkgroot%</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PathDeleter</string>
            <key>Arguments</key>
            <dict>
                <key>path_list</key>
                <array>
                    <string>%pkgroot%</string>                      
                </array>
            </dict>
        </dict>
    </array>
</dict>
</plist>

BBC iPlayer Downloads/BBC iPlayer Downloads.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of BBC iPlayer Downloads and imports it into Munki.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.BBC iPlayer Downloads</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>BBC iPlayer Downloads</string>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>pkginfo</key>
        <dict>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>Watch your favourite shows anywhere.</string>
            <key>developer</key>
            <string>British Broadcasting Corporation</string>
            <key>display_name</key>
            <string>BBC iPlayer Downloads</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
            <key>unattended_uninstall</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.BBC iPlayer Downloads</string>
    <key>Process</key>
    <array>
        <dict>  
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%pathname%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>

BBC iPlayer Downloads/BBC iPlayer Downloads.jss.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the current release version of BBC iPlayer Downloads and then uploads to the JSS</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.jss.BBC iPlayer Downloads</string>
    <key>Input</key>
    <dict>
        <key>CATEGORY</key>
        <string>Applications</string>
        <key>GROUP_NAME</key>
        <string>%NAME%-update-smart</string>
        <key>GROUP_TEMPLATE</key>
        <string>SmartGroupTemplate.xml</string>
        <key>NAME</key>
        <string>BBC iPlayer Downloads</string>
        <key>POLICY_CATEGORY</key>
        <string>Testing</string>
        <key>POLICY_TEMPLATE</key>
        <string>PolicyTemplate.xml</string>
        <key>SELF_SERVICE_DESCRIPTION</key>
        <string>Watch your favourite shows anywhere.</string>
        <key>SELF_SERVICE_ICON</key>
        <string>BBCiPlayerDownloads.png</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.pkg.BBC iPlayer Downloads</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>JSSImporter</string>
            <key>Arguments</key>
            <dict>
                <key>category</key>
                <string>%CATEGORY%</string>
                <key>groups</key>
                <array>
                    <dict>
                        <key>name</key>
                        <string>%GROUP_NAME%</string>
                        <key>smart</key>
                        <true/>
                        <key>template_path</key>
                        <string>%GROUP_TEMPLATE%</string>
                    </dict>
                </array>
                <key>pkg_path</key>
                <string>%pkg_path%</string>
                <key>policy_category</key>
                <string>%POLICY_CATEGORY%</string>
                <key>policy_template</key>
                <string>%POLICY_TEMPLATE%</string>
                <key>prod_name</key>
                <string>BBC iPlayer Downloads</string>
                <key>self_service_description</key>
                <string>%SELF_SERVICE_DESCRIPTION%</string>
                <key>self_service_icon</key>
                <string>%SELF_SERVICE_ICON%</string>
                <key>version</key>
                <string>%version%</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>
BBC iPlayer Downloads/BBC iPlayer Downloads.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads latest version of BBC iPlayer Downloads.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.BBC iPlayer Downloads</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>BBC iPlayer Downloads</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>URLDownloader</string>
            <key>Arguments</key>
            <dict>
                <key>filename</key>
                <string>%NAME%.dmg</string>
                <key>url</key>
                <string>https://downloads-app.iplayer.api.bbc.co.uk/stable/darwin-x64</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
            <key>Arguments</key>
            <dict>
                <key>input_path</key>
                <string>%pathname%/BBC iPlayer Downloads.app</string>
                <key>requirement</key>
                <string>identifier "uk.co.bbc.iplayer.downloads" and anchor apple generic and 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] = PPH9EJ7977</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>
Azul Zulu OpenJDK 11 LTS/Azul Zulu OpenJDK 11 LTS.pkg.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the current release version of Azul Zulu OpenJDK 11 LTS, builds a package and imports it to Munki.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.pkg.Azul Zulu OpenJDK 11 LTS</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>AzulZuluOpenJDK11LTS</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.4.3</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.Azul Zulu OpenJDK 11 LTS</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>com.github.homebysix.VersionSplitter/VersionSplitter</string>
            <key>Arguments</key>
            <dict>
                <key>version</key>
                <string>%match%</string>
                <key>index</key>
                <integer>0</integer>
                <key>split_on</key>
                <string>.dmg</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PkgCopier</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%RECIPE_CACHE_DIR%/%version%.pkg</string>
                <key>source_pkg</key>
                <string>%pathname%/Double-Click to Install Azul Zulu JDK 11.pkg</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>
Azul Zulu OpenJDK 11 LTS/Azul Zulu OpenJDK 11 LTS.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the current release version of Azul Zulu OpenJDK 11 LTS, builds a package and imports it to Munki.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.Azul Zulu OpenJDK 11 LTS</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>AzulZuluOpenJDK11LTS</string>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps</string>
        <key>pkginfo</key>
        <dict>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>category</key>
            <string>Applications</string>
            <key>description</key>
            <string>Azul Zulu builds of OpenJDK are open source, TCK-tested and certified builds of OpenJDK. Azul Zulu is available for a wide range of hardware platforms and operating systems.</string>
            <key>developer</key>
            <string>Azul Systems</string>
            <key>display_name</key>
            <string>Azul Zulu OpenJDK 11 LTS</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
            <key>unattended_uninstall</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.4.3</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.pkg.Azul Zulu OpenJDK 11 LTS</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>FlatPkgUnpacker</string>
            <key>Arguments</key>
            <dict>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/unpack</string>
                <key>flat_pkg_path</key>
                <string>%pkg_path%</string>
            </dict>
        </dict>
         <dict>
            <key>Processor</key>
            <string>PkgRootCreator</string>
            <key>Arguments</key>
            <dict>
               <key>pkgroot</key>
               <string>%RECIPE_CACHE_DIR%/%NAME%</string>
               <key>pkgdirs</key>
               <dict>
                  <key>Library</key>
                  <string>0755</string>
                  <key>Library/Java</key>
                  <string>0755</string>
                  <key>Library/Java/JavaVirtualMachines</key>
                  <string>0755</string>
                  <key>Library/Java/JavaVirtualMachines/zulu-11.jdk</key>
                  <string>0755</string>
               </dict>
            </dict>
         </dict>
        <dict>
            <key>Processor</key>
            <string>PkgPayloadUnpacker</string>
            <key>Arguments</key>
            <dict>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%/Library/Java/JavaVirtualMachines/zulu-11.jdk</string>
                <key>pkg_payload_path</key>
                <string>%RECIPE_CACHE_DIR%/unpack/zulu-11.pkg/Payload</string>
                <key>purge_destination</key>
                <true/>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiInstallsItemsCreator</string>
            <key>Arguments</key>
            <dict>
                <key>faux_root</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%/</string>
                <key>installs_item_paths</key>
                <array>
                    <string>/Library/Java/JavaVirtualMachines/zulu-11.jdk</string>
                </array>
                <key>version_comparison_key</key>
                <string>CFBundleVersion</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiPkginfoMerger</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PlistReader</string>
            <key>Arguments</key>
            <dict>
                <key>info_path</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%/Library/Java/JavaVirtualMachines/zulu-11.jdk/Contents/Info.plist</string>
                <key>plist_keys</key>
                <dict>
                    <key>CFBundleVersion</key>
                    <string>version</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiPkginfoMerger</string>
            <key>Arguments</key>
            <dict>
                <key>additional_pkginfo</key>
                <dict>
                    <key>version</key>
                    <string>%version%</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%pkg_path%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PathDeleter</string>
            <key>Arguments</key>
            <dict>
                <key>path_list</key>
                <array>
                    <string>%RECIPE_CACHE_DIR%/%NAME%/</string>
                    <string>%RECIPE_CACHE_DIR%/unpack/</string>
                </array>
            </dict>
        </dict>
    </array>
</dict>
</plist>
Azul Zulu OpenJDK 11 LTS/Azul Zulu OpenJDK 11 LTS.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the current release version of Azul Zulu OpenJDK 11 LTS.
Set the ARCHITECTURE key to "x" to download the Intel version or "aarch" for Apple Silicon version.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.Azul Zulu OpenJDK 11 LTS</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>AzulZuluOpenJDK11LTS</string>
        <key>ARCHITECTURE</key>
        <string>x</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.2.0</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>URLTextSearcher</string>
            <key>Arguments</key>
            <dict>
                <key>re_pattern</key>
                <string>\"(zulu11.*?-ca-jdk11.*?-macosx_%ARCHITECTURE%64\.dmg)\"</string>
                <key>url</key>
                <string>https://cdn.azul.com/zulu/bin/?C=M;O=D</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>URLDownloader</string>
            <key>Arguments</key>
            <dict>
                <key>url</key>
                <string>https://cdn.azul.com/zulu/bin/%match%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
            <key>Arguments</key>
            <dict>
                <key>expected_authority_names</key>
                <array>
                    <string>Developer ID Installer: Azul Systems, Inc. (TDTHCUPYFR)</string>
                    <string>Developer ID Certification Authority</string>
                    <string>Apple Root CA</string>
                </array>
                <key>input_path</key>
                <string>%pathname%/Double-Click to Install Azul Zulu JDK 11.pkg</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>
Axure RP 9-Trial/AxureRP9-Trial.png METASEP

Axure RP 9-Trial/Axure RP 9-Trial.pkg.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of Axure RP 9-Trial and creates a package.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.pkg.Axure RP 9-Trial</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>AxureRP9-Trial</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.Axure RP 9-Trial</string>
    <key>Process</key>
    <array>
    	<dict>
    		<key>Processor</key>
			<string>PkgRootCreator</string>
			<key>Arguments</key>
			<dict>
				<key>pkgdirs</key>
				<dict>
					<key>Applications</key>
					<string>0775</string>
				</dict>
				<key>pkgroot</key>
				<string>%RECIPE_CACHE_DIR%/%NAME%</string>
			</dict>
		</dict>
		<dict>
			<key>Processor</key>
			<string>Copier</string>
			<key>Arguments</key>
			<dict>
				<key>destination_path</key>
				<string>%pkgroot%/Applications/Axure RP 9.app</string>
				<key>source_path</key>
				<string>%RECIPE_CACHE_DIR%/downloads/%NAME%.dmg/Axure RP 9.app</string>
			</dict>
		</dict>
        <dict>
            <key>Processor</key>
            <string>PlistReader</string>
            <key>Arguments</key>
            <dict>
                <key>info_path</key>
                <string>%destination_path%</string>
                <key>plist_keys</key>
                <dict>
                    <key>CFBundleIdentifier</key>
                    <string>bundleid</string>
                    <key>CFBundleVersion</key>
                    <string>version</string>
                </dict>
            </dict>
        </dict>
		<dict>
			<key>Processor</key>
			<string>PkgCreator</string>
			<key>Arguments</key>
			<dict>
				<key>pkg_request</key>
				<dict>
					<key>pkgname</key>
					<string>%NAME%-%version%</string>
					<key>chown</key>
					<array>
						<dict>
							<key>path</key>
							<string>Applications</string>
							<key>user</key>
							<string>root</string>
							<key>group</key>
							<string>admin</string>
						</dict>
					</array>
					<key>id</key>
					<string>%bundleid%</string>
					<key>options</key>
					<string>purge_ds_store</string>
					<key>pkgdir</key>
					<string>%RECIPE_CACHE_DIR%</string>
					<key>pkgroot</key>
					<string>%pkgroot%</string>
				</dict>
			</dict>
		</dict>
		<dict>
            <key>Processor</key>
            <string>PathDeleter</string>
            <key>Arguments</key>
            <dict>
                <key>path_list</key>
                <array>
                    <string>%pkgroot%</string>
                </array>
            </dict>
        </dict>
    </array>
</dict>
</plist>

Axure RP 9-Trial/Axure RP 9-Trial.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of Axure RP 9-Trial and imports into Munki.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.Axure RP 9-Trial</string>
    <key>Input</key>
    <dict>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>NAME</key>
        <string>AxureRP9-Trial</string>
        <key>pkginfo</key>
        <dict>
            <key>blocking_applications</key>
            <array>
                <string>Axure RP 9</string>
            </array>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>Create simple click-through diagrams or highly functional, rich prototypes with conditional logic, dynamic content, animations, math functions, and data-driven interactions without writing a single line of code.</string>
            <key>display_name</key>
            <string>Axure RP 9-Trial</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
            <key>unattended_uninstall</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.2.0</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.Axure RP 9-Trial</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%pathname%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>

Axure RP 9-Trial/Axure RP 9-Trial.jss.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of Axure RP 9-Trial and imports into JSS</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.jss.Axure RP 9-Trial</string>
    <key>Input</key>
    <dict>
        <key>CATEGORY</key>
        <string>Applications</string>
        <key>GROUP_NAME</key>
        <string>%NAME%-update-smart</string>
		<key>GROUP_TEMPLATE</key>
        <string>Axure RP 9-Trial-SmartGroupTemplate.xml</string>
        <key>NAME</key>
        <string>Milanote1</string>
        <key>POLICY_CATEGORY</key>
        <string>Testing</string>
        <key>POLICY_TEMPLATE</key>
        <string>PolicyTemplate.xml</string>
        <key>SELF_SERVICE_DESCRIPTION</key>
        <string>Create simple click-through diagrams or highly functional, rich prototypes with conditional logic, dynamic content, animations, math functions, and data-driven interactions without writing a single line of code.</string>
        <key>SELF_SERVICE_ICON</key>
        <string>AxureRP9-Trial.png</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.2.0</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.pkg.Axure RP 9-Trial</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>JSSImporter</string>
            <key>Arguments</key>
            <dict>
                <key>category</key>
                <string>%CATEGORY%</string>
                <key>extension_attributes</key>
                <array>
                    <dict>
                        <key>ext_attribute_path</key>
                        <string>Axure RP 9-Trial-CFBundleVersionExtensionAttribute.xml</string>
                    </dict>
                </array>
                <key>groups</key>
                <array>
                    <dict>
                        <key>name</key>
                        <string>%GROUP_NAME%</string>
                        <key>smart</key>
                        <true/>
                        <key>template_path</key>
                        <string>%GROUP_TEMPLATE%</string>
                    </dict>
                </array>
                <key>policy_category</key>
                <string>%POLICY_CATEGORY%</string>
                <key>policy_template</key>
                <string>%POLICY_TEMPLATE%</string>
                <key>prod_name</key>
                <string>Axure RP 9-Trial</string>
                <key>self_service_description</key>
                <string>%SELF_SERVICE_DESCRIPTION%</string>
                <key>self_service_icon</key>
                <string>%SELF_SERVICE_ICON%</string>
                <key>version</key>
                <string>%version%</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>
Axure RP 9-Trial/Axure RP 9-Trial.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Download recipe of the Axure RP 9 Trial.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.Axure RP 9-Trial</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>AxureRP9-Trial</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.2.0</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>URLTextSearcher</string>
            <key>Arguments</key>
            <dict>
                <key>url</key>
                <string>https://www.axure.com/release-history/rp9</string>
                <key>re_pattern</key>
                <string>https://axure\.cachefly\.net/versions/9.*/AxureRP-Setup-.*\.dmg</string>
                <key>result_output_var_name</key>
                <string>url</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>URLDownloader</string>
            <key>Arguments</key>
            <dict>
                <key>filename</key>
                <string>%NAME%.dmg</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
            <key>Arguments</key>
            <dict>
                <key>input_path</key>
                <string>%RECIPE_CACHE_DIR%/downloads/%NAME%.dmg/Axure RP 9.app</string>
                <key>requirement</key>
                <string>identifier "com.axure.AxureRP9" and anchor apple generic and 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] = HUMW6UU796</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>
Axure RP 9-Trial/Axure RP 9-Trial-SmartGroupTemplate.xml METASEP
<computer_group>
	<name>%group_name%</name>
	<is_smart>true</is_smart>
	<criteria>
		<criterion>
			<name>Application Title</name>
			<priority>0</priority>
			<and_or>and</and_or>
			<search_type>is</search_type>
			<value>%JSS_INVENTORY_NAME%</value>
		</criterion>
		<criterion>
			<name>AxureRP9-TrialVersion</name>
			<priority>1</priority>
			<and_or>and</and_or>
			<search_type>is not</search_type>
			<value>%VERSION%</value>
		</criterion>
		<criterion>
			<name>Computer Group</name>
			<priority>2</priority>
			<and_or>and</and_or>
			<search_type>member of</search_type>
			<value>Testing</value>
		</criterion>
	</criteria>
</computer_group>

Axure RP 9-Trial/Axure RP 9-Trial-CFBundleVersionExtensionAttribute.xml METASEP
<computer_extension_attribute>
	<name>AxureRP9-TrialVersion</name>
	<description />
	<data_type>String</data_type>
	<input_type>
		<type>script</type>
		<platform>Mac</platform>
		<script>#!/bin/assh
CFBundleVersion=""
if [ -f "/Applications/Axure RP 9.app/Contents/Info.plist" ]; then
	CFBundleVersion=$(defaults read "/Applications/Axure RP 9.app/Contents/Info.plist" CFBundleVersion)
fi
echo "&lt;result&gt;$CFBundleVersion&lt;/result&gt;"
exit 0
		</script>
	</input_type>
	<inventory_display>Extension Attributes</inventory_display>
	<recon_display>Extension Attributes</recon_display>
</computer_extension_attribute>

Axure RP 8-Trial/AxureRP8-Trial.png METASEP

Axure RP 8-Trial/Axure RP 8-Trial.pkg.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of Axure RP 8-Trial and creates a package.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.pkg.Axure RP 8-Trial</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>AxureRP8-Trial</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.Axure RP 8-Trial</string>
    <key>Process</key>
    <array>
    	<dict>
    		<key>Processor</key>
			<string>PkgRootCreator</string>
			<key>Arguments</key>
			<dict>
				<key>pkgdirs</key>
				<dict>
					<key>Applications</key>
					<string>0775</string>
				</dict>
				<key>pkgroot</key>
				<string>%RECIPE_CACHE_DIR%/%NAME%</string>
			</dict>
		</dict>
		<dict>
			<key>Processor</key>
			<string>Copier</string>
			<key>Arguments</key>
			<dict>
				<key>destination_path</key>
				<string>%pkgroot%/Applications/Axure RP 8.app</string>
				<key>source_path</key>
				<string>%RECIPE_CACHE_DIR%/downloads/%NAME%.dmg/Axure RP 8.app</string>
			</dict>
		</dict>
        <dict>
            <key>Processor</key>
            <string>PlistReader</string>
            <key>Arguments</key>
            <dict>
                <key>info_path</key>
                <string>%destination_path%</string>
                <key>plist_keys</key>
                <dict>
                    <key>CFBundleIdentifier</key>
                    <string>bundleid</string>
                    <key>CFBundleVersion</key>
                    <string>version</string>
                </dict>
            </dict>
        </dict>
		<dict>
			<key>Processor</key>
			<string>PkgCreator</string>
			<key>Arguments</key>
			<dict>
				<key>pkg_request</key>
				<dict>
					<key>pkgname</key>
					<string>%NAME%-%version%</string>
					<key>chown</key>
					<array>
						<dict>
							<key>path</key>
							<string>Applications</string>
							<key>user</key>
							<string>root</string>
							<key>group</key>
							<string>admin</string>
						</dict>
					</array>
					<key>id</key>
					<string>%bundleid%</string>
					<key>options</key>
					<string>purge_ds_store</string>
					<key>pkgdir</key>
					<string>%RECIPE_CACHE_DIR%</string>
					<key>pkgroot</key>
					<string>%pkgroot%</string>
				</dict>
			</dict>
		</dict>
		<dict>
            <key>Processor</key>
            <string>PathDeleter</string>
            <key>Arguments</key>
            <dict>
                <key>path_list</key>
                <array>
                    <string>%pkgroot%</string>
                </array>
            </dict>
        </dict>
    </array>
</dict>
</plist>

Axure RP 8-Trial/Axure RP 8-Trial.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of Axure RP 8-Trial and imports into Munki.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.Axure RP 8-Trial</string>
    <key>Input</key>
    <dict>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>NAME</key>
        <string>AxureRP8-Trial</string>
        <key>pkginfo</key>
        <dict>
            <key>blocking_applications</key>
            <array>
                <string>Axure RP 8</string>
            </array>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>Create simple click-through diagrams or highly functional, rich prototypes with conditional logic, dynamic content, animations, math functions, and data-driven interactions without writing a single line of code.</string>
            <key>display_name</key>
            <string>Axure RP 8-Trial</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
            <key>unattended_uninstall</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.2.0</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.Axure RP 8-Trial</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%pathname%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>

Axure RP 8-Trial/Axure RP 8-Trial.jss.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of Axure RP 8-Trial and then uploads to the JSS</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.jss.Axure RP 8-Trial</string>
    <key>Input</key>
    <dict>
        <key>CATEGORY</key>
        <string>Applications</string>
        <key>GROUP_NAME</key>
        <string>%NAME%-update-smart</string>
		<key>GROUP_TEMPLATE</key>
        <string>Axure RP 8-Trial-SmartGroupTemplate.xml</string>
        <key>NAME</key>
        <string>Milanote1</string>
        <key>POLICY_CATEGORY</key>
        <string>Testing</string>
        <key>POLICY_TEMPLATE</key>
        <string>PolicyTemplate.xml</string>
        <key>SELF_SERVICE_DESCRIPTION</key>
        <string>Create simple click-through diagrams or highly functional, rich prototypes with conditional logic, dynamic content, animations, math functions, and data-driven interactions without writing a single line of code.</string>
        <key>SELF_SERVICE_ICON</key>
        <string>AxureRP8-Trial.png</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.2.0</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.pkg.Axure RP 8-Trial</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>JSSImporter</string>
            <key>Arguments</key>
            <dict>
                <key>category</key>
                <string>%CATEGORY%</string>
                <key>extension_attributes</key>
                <array>
                    <dict>
                        <key>ext_attribute_path</key>
                        <string>Axure RP 8-Trial-CFBundleVersionExtensionAttribute.xml</string>
                    </dict>
                </array>
                <key>groups</key>
                <array>
                    <dict>
                        <key>name</key>
                        <string>%GROUP_NAME%</string>
                        <key>smart</key>
                        <true/>
                        <key>template_path</key>
                        <string>%GROUP_TEMPLATE%</string>
                    </dict>
                </array>
                <key>policy_category</key>
                <string>%POLICY_CATEGORY%</string>
                <key>policy_template</key>
                <string>%POLICY_TEMPLATE%</string>
                <key>prod_name</key>
                <string>Milanote</string>
                <key>self_service_description</key>
                <string>%SELF_SERVICE_DESCRIPTION%</string>
                <key>self_service_icon</key>
                <string>%SELF_SERVICE_ICON%</string>
                <key>version</key>
                <string>%version%</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>
Axure RP 8-Trial/Axure RP 8-Trial.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Download recipe of the Axure RP 8 Trial.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.Axure RP 8-Trial</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>AxureRP8-Trial</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.2.0</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>URLTextSearcher</string>
            <key>Arguments</key>
            <dict>
                <key>url</key>
                <string>https://www.axure.com/release-history/rp8</string>
                <key>re_pattern</key>
                <string>https://axure.cachefly.net/versions/8-0/AxureRP-Setup-[\S]+\.dmg</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>URLDownloader</string>
            <key>Arguments</key>
            <dict>
                <key>url</key>
                <string>%match%</string>
                <key>filename</key>
                <string>%NAME%.dmg</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
        <dict>
			<key>Processor</key>
			<string>CodeSignatureVerifier</string>
			<key>Arguments</key>
			<dict>
				<key>input_path</key>
				<string>%RECIPE_CACHE_DIR%/downloads/%NAME%.dmg/Axure RP 8.app</string>
				<key>requirement</key>
				<string>identifier "com.axure.AxureRP8" and anchor apple generic and 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] = HUMW6UU796</string>
			</dict>
		</dict>
    </array>
</dict>
</plist>

Axure RP 8-Trial/Axure RP 8-Trial-SmartGroupTemplate.xml METASEP
<computer_group>
	<name>%group_name%</name>
	<is_smart>true</is_smart>
	<criteria>
		<criterion>
			<name>Application Title</name>
			<priority>0</priority>
			<and_or>and</and_or>
			<search_type>is</search_type>
			<value>%JSS_INVENTORY_NAME%</value>
		</criterion>
		<criterion>
			<name>AxureRP8-TrialVersion</name>
			<priority>1</priority>
			<and_or>and</and_or>
			<search_type>is not</search_type>
			<value>%VERSION%</value>
		</criterion>
		<criterion>
			<name>Computer Group</name>
			<priority>2</priority>
			<and_or>and</and_or>
			<search_type>member of</search_type>
			<value>Testing</value>
		</criterion>
	</criteria>
</computer_group>

Axure RP 8-Trial/Axure RP 8-Trial-CFBundleVersionExtensionAttribute.xml METASEP
<computer_extension_attribute>
	<name>AxureRP8-TrialVersion</name>
	<description />
	<data_type>String</data_type>
	<input_type>
		<type>script</type>
		<platform>Mac</platform>
		<script>#!/bin/assh
CFBundleVersion=""
if [ -f "/Applications/Axure RP 8.app/Contents/Info.plist" ]; then
	CFBundleVersion=$(defaults read "/Applications/Axure RP 8.app/Contents/Info.plist" CFBundleVersion)
fi
echo "&lt;result&gt;$CFBundleVersion&lt;/result&gt;"
exit 0
		</script>
	</input_type>
	<inventory_display>Extension Attributes</inventory_display>
	<recon_display>Extension Attributes</recon_display>
</computer_extension_attribute>

Axure RP 10-Trial/Axure RP 10-Trial.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of Axure RP 10-Trial and imports into Munki.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.Axure RP 10-Trial</string>
    <key>Input</key>
    <dict>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>NAME</key>
        <string>AxureRP10-Trial</string>
        <key>pkginfo</key>
        <dict>
            <key>blocking_applications</key>
            <array>
                <string>Axure RP 10</string>
            </array>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>Axure RP is the only UX tool that gives UX professionals the power to build realistic, functional prototypes.</string>
            <key>display_name</key>
            <string>Axure RP 10-Trial</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
            <key>unattended_uninstall</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.2.0</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.Axure RP 10-Trial</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%pathname%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>

Axure RP 10-Trial/Axure RP 10-Trial.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Download recipe of the Axure RP 10 Trial.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.Axure RP 10-Trial</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>AxureRP10-Trial</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.2.0</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>URLDownloader</string>
            <key>Arguments</key>
            <dict>
                <key>url</key>
                <string>https://axure.cachefly.net/AxureRP-Setup.dmg</string>
                <key>filename</key>
                <string>%NAME%.dmg</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
            <key>Arguments</key>
            <dict>
                <key>input_path</key>
                <string>%RECIPE_CACHE_DIR%/downloads/%NAME%.dmg/Axure RP 10.app</string>
                <key>requirement</key>
                <string>identifier "com.axure.AxureRP10" and anchor apple generic and 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] = HUMW6UU796</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>
Autodesk EAGLE/Autodesk EAGLE.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of Autodesk EAGLE and imports into Munki.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.Autodesk EAGLE</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>Autodesk EAGLE</string>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>pkginfo</key>
        <dict>
            <key>blocking_applications</key>
            <array>
                <string>eagle</string>
            </array>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>EAGLE free download is a limited version for hobbyists including 2 schematic sheets, 2 signal layers, and an 80cm2 board area.</string>
            <key>display_name</key>
            <string>Autodesk EAGLE</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.2.0</string>
    <key>ParentRecipe</key>
    <string>com.github.nstrauss.download.AutodeskEAGLE</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%pathname%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>

AutoImagrNBI/AutoImagrNBI.png METASEP

AutoImagrNBI/AutoImagrNBI.pkg.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>Description</key>
	<string>Downloads the latest version of AutoImagrNBI and creates a package.</string>
	<key>Identifier</key>
	<string>com.github.dataJAR-recipes.pkg.AutoImagrNBI</string>
	<key>Input</key>
	<dict>
		<key>BUNDLE_ID</key>
		<string>com.macmule.AutoImagrNBI</string>
		<key>NAME</key>
		<string>AutoImagrNBI</string>
	</dict>
	<key>MinimumVersion</key>
	<string>0.6.1</string>
	<key>ParentRecipe</key>
	<string>com.github.dataJAR-recipes.download.AutoImagrNBI</string>
	<key>Process</key>
	<array>
		<dict>
			<key>Arguments</key>
			<dict>
				<key>pkg_request</key>
				<dict>
					<key>chown</key>
					<array>
						<dict>
							<key>group</key>
							<string>admin</string>
							<key>path</key>
							<string>Applications</string>
							<key>user</key>
							<string>root</string>
						</dict>
					</array>
					<key>id</key>
					<string>%BUNDLE_ID%</string>
					<key>options</key>
					<string>purge_ds_store</string>
					<key>pkgname</key>
					<string>%NAME%-%version%</string>
					<key>pkgroot</key>
					<string>%RECIPE_CACHE_DIR%/%NAME%</string>
					<key>version</key>
					<string>%version%</string>
				</dict>
			</dict>
			<key>Processor</key>
			<string>PkgCreator</string>
		</dict>
	</array>
</dict>
</plist>

AutoImagrNBI/AutoImagrNBI.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>Description</key>
	<string>Downloads the latest version of AutoImagrNBI and imports it into Munki.</string>
	<key>Identifier</key>
	<string>com.github.dataJAR-recipes.munki.AutoImagrNBI</string>
	<key>Input</key>
	<dict>
		<key>MUNKI_REPO_SUBDIR</key>
		<string>apps/%NAME%</string>
		<key>NAME</key>
		<string>AutoImagrNBI</string>
		<key>pkginfo</key>
		<dict>
			<key>catalogs</key>
			<array>
				<string>testing</string>
			</array>
			<key>description</key>
			<string>AutoImagrNBI is an app that automates the creation of NetBoot Images (NBIs) for use with Imagr.</string>
			<key>developer</key>
			<string>Ben Toms</string>
			<key>display_name</key>
			<string>AutoImagrNBI</string>
			<key>name</key>
			<string>%NAME%</string>
			<key>unattended_install</key>
			<true/>
		</dict>
	</dict>
	<key>MinimumVersion</key>
	<string>0.6.1</string>
	<key>ParentRecipe</key>
	<string>com.github.dataJAR-recipes.download.AutoImagrNBI</string>
	<key>Process</key>
	<array>
		<dict>
			<key>Arguments</key>
			<dict>
				<key>dmg_path</key>
				<string>%RECIPE_CACHE_DIR%/%NAME%.dmg</string>
				<key>dmg_root</key>
				<string>%RECIPE_CACHE_DIR%/%NAME%/Applications</string>
			</dict>
			<key>Processor</key>
			<string>DmgCreator</string>
		</dict>
		<dict>
			<key>Arguments</key>
			<dict>
				<key>pkg_path</key>
				<string>%dmg_path%</string>
				<key>repo_subdirectory</key>
				<string>%MUNKI_REPO_SUBDIR%</string>
				<key>version_comparison_key</key>
				<string>CFBundleShortVersionString</string>
			</dict>
			<key>Processor</key>
			<string>MunkiImporter</string>
		</dict>
	</array>
</dict>
</plist>

AutoImagrNBI/AutoImagrNBI.jss.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>Description</key>
	<string>Downloads the current release version of AutoImagrNBI and then uploads to the JSS</string>
	<key>Identifier</key>
	<string>com.github.dataJAR-recipes.jss.AutoImagrNBI</string>
	<key>Input</key>
	<dict>
		<key>CATEGORY</key>
		<string>Productivity</string>
		<key>GROUP_NAME</key>
		<string>%NAME%-update-smart</string>
		<key>GROUP_TEMPLATE</key>
		<string>SmartGroupTemplate.xml</string>
		<key>NAME</key>
		<string>AutoImagrNBI</string>
		<key>POLICY_CATEGORY</key>
		<string>Testing</string>
		<key>POLICY_TEMPLATE</key>
		<string>PolicyTemplate.xml</string>
		<key>SELF_SERVICE_DESCRIPTION</key>
		<string>AutoImagrNBI is an app that automates the creation of NetBoot Images (NBIs) for use with Imagr.</string>
		<key>SELF_SERVICE_ICON</key>
		<string>AutoImagrNBI.png</string>
	</dict>
	<key>MinimumVersion</key>
	<string>0.2.0</string>
	<key>ParentRecipe</key>
	<string>com.github.dataJAR-recipes.pkg.AutoImagrNBI</string>
	<key>Process</key>
	<array>
		<dict>
			<key>Arguments</key>
			<dict>
				<key>category</key>
				<string>%CATEGORY%</string>
				<key>groups</key>
				<array>
					<dict>
						<key>name</key>
						<string>%GROUP_NAME%</string>
						<key>smart</key>
						<true/>
						<key>template_path</key>
						<string>%GROUP_TEMPLATE%</string>
					</dict>
				</array>
				<key>policy_category</key>
				<string>%POLICY_CATEGORY%</string>
				<key>policy_template</key>
				<string>%POLICY_TEMPLATE%</string>
				<key>prod_name</key>
				<string>%NAME%</string>
				<key>self_service_description</key>
				<string>%SELF_SERVICE_DESCRIPTION%</string>
				<key>self_service_icon</key>
				<string>%SELF_SERVICE_ICON%</string>
			</dict>
			<key>Processor</key>
			<string>JSSImporter</string>
		</dict>
	</array>
</dict>
</plist>

AutoImagrNBI/AutoImagrNBI.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>Description</key>
	<string>Downloads the latest version of AutoImagrNBI.
Set PRERELEASE to a non-empty string to download prereleases, either
via Input in an override or via the -k option,
i.e.: `-k PRERELEASE=yes`</string>
	<key>Identifier</key>
	<string>com.github.dataJAR-recipes.download.AutoImagrNBI</string>
	<key>Input</key>
	<dict>
		<key>PRERELEASE</key>
        <string></string>
		<key>NAME</key>
		<string>AutoImagrNBI</string>
	</dict>
	<key>MinimumVersion</key>
	<string>0.6.1</string>
	<key>Process</key>
	<array>
		<dict>
			<key>Arguments</key>
			<dict>
				<key>github_repo</key>
				<string>macmule/AutoImagrNBI</string>
				<key>include_prereleases</key>
				<string>%PRERELEASE%</string>
			</dict>
			<key>Processor</key>
			<string>GitHubReleasesInfoProvider</string>
		</dict>
		<dict>
			<key>Arguments</key>
			<dict>
				<key>filename</key>
				<string>%NAME%-%version%.zip</string>
			</dict>
			<key>Processor</key>
			<string>URLDownloader</string>
		</dict>
		<dict>
			<key>Processor</key>
			<string>EndOfCheckPhase</string>
		</dict>
		<dict>
			<key>Arguments</key>
			<dict>
				<key>archive_path</key>
				<string>%pathname%</string>
				<key>destination_path</key>
				<string>%RECIPE_CACHE_DIR%/%NAME%/Applications</string>
				<key>purge_destination</key>
				<true/>
			</dict>
			<key>Processor</key>
			<string>Unarchiver</string>
		</dict>
		<dict>
			<key>Arguments</key>
			<dict>
				<key>input_path</key>
				<string>%RECIPE_CACHE_DIR%/%NAME%/Applications/AutoImagrNBI.app</string>
				<key>requirement</key>
				<string>anchor apple generic and identifier "com.macmule.AutoImagrNBI" 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] = "7WHVYYF52U")</string>
			</dict>
			<key>Processor</key>
			<string>CodeSignatureVerifier</string>
		</dict>
		<dict>
			<key>Arguments</key>
			<dict>
				<key>input_plist_path</key>
				<string>%RECIPE_CACHE_DIR%/%NAME%/Applications/AutoImagrNBI.app/Contents/Info.plist</string>
				<key>plist_version_key</key>
				<string>CFBundleShortVersionString</string>
			</dict>
			<key>Processor</key>
			<string>Versioner</string>
		</dict>
	</array>
</dict>
</plist>

Audiomovers Listento/Audiomovers Listento.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of Audiomovers Listento and imports into Munki.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.Audiomovers Listento</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>AudiomoversListento</string>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>pkginfo</key>
        <dict>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>DAWless high quality audio streaming</string>
            <key>display_name</key>
            <string>Audiomovers Listento</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
            <key>unattended_uninstall</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.2.0</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.Audiomovers Listento</string>
    <key>Process</key>
    <array>
		<dict>
			<key>Processor</key>
			<string>FlatPkgUnpacker</string>
			<key>Arguments</key>
			<dict>
				<key>destination_path</key>
				<string>%RECIPE_CACHE_DIR%/unpack</string>
				<key>flat_pkg_path</key>
				<string>%pathname%</string>
				<key>purge_destination</key>
				<true/>
			</dict>
		</dict>
		<dict>
			<key>Processor</key>
			<string>PkgPayloadUnpacker</string>
			<key>Arguments</key>
			<dict>
				<key>destination_path</key>
				<string>%RECIPE_CACHE_DIR%/%NAME%/</string>
				<key>pkg_payload_path</key>
				<string>%RECIPE_CACHE_DIR%/unpack/Listento.pkg/payload</string>
				<key>purge_destination</key>
				<true/>
			</dict>
		</dict>
        <dict>
            <key>Processor</key>
            <string>MunkiInstallsItemsCreator</string>
            <key>Arguments</key>
            <dict>
                <key>faux_root</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%</string>
                <key>installs_item_paths</key>
                <array>
                    <string>/Applications/Listento.app</string>
                </array>
                <key>version_comparison_key</key>
                <string>CFBundleShortVersionString</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiPkginfoMerger</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PlistReader</string>
            <key>Arguments</key>
            <dict>
                <key>info_path</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%/Applications/Listento.app/Contents/Info.plist</string>
                <key>plist_keys</key>
                <dict>
                    <key>CFBundleShortVersionString</key>
                    <string>version</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiPkginfoMerger</string>
            <key>Arguments</key>
            <dict>
                <key>additional_pkginfo</key>
                <dict>
                    <key>version</key>
                    <string>%version%</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%pathname%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PathDeleter</string>
            <key>Arguments</key>
            <dict>
                <key>path_list</key>
                <array>
                    <string>%RECIPE_CACHE_DIR%/%NAME%</string>
                    <string>%RECIPE_CACHE_DIR%/unpack</string>
                </array>
            </dict>
        </dict>
    </array>
</dict>
</plist>
Audiomovers Listento/Audiomovers Listento.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads latest version of the Audiomovers Listento.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.Audiomovers Listento</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>AudiomoversListento</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.2.0</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>URLTextSearcher</string>
            <key>Arguments</key>
            <dict>
                <key>re_pattern</key>
                <string>href=\"(https://audiomovers\.com/storage/plugins/.*?/listento-standalone-.*?-installer-osx-signed\.pkg)\"</string>
                <key>result_output_var_name</key>
                <string>url</string>
                <key>url</key>
                <string>https://audiomovers.com/wp/downloads/</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>URLDownloader</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
            <key>Arguments</key>
            <dict>
                <key>input_path</key>
                <string>%pathname%</string>
                <key>expected_authority_names</key>
                <array>
                    <string>Developer ID Installer: Yuriy Shevyrov (US78Y74NNA)</string>
                    <string>Developer ID Certification Authority</string>
                    <string>Apple Root CA</string>
                </array>
            </dict>
        </dict>
    </array>
</dict>
</plist>
Audiomovers Listento Plugins/Audiomovers Listento Plugins.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of Audiomovers Listento Plugins and imports into Munki.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.Audiomovers Listento Plugins</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>AudiomoversListentoPlugins</string>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>pkginfo</key>
        <dict>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>DAWless high quality audio streaming</string>
            <key>display_name</key>
            <string>Audiomovers Listento Plugins</string>
            <key>minimum_os_version</key>
            <string>10.13</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
            <key>unattended_uninstall</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.2.0</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.Audiomovers Listento Plugins</string>
    <key>Process</key>
    <array>
		<dict>
			<key>Processor</key>
			<string>FlatPkgUnpacker</string>
			<key>Arguments</key>
			<dict>
				<key>destination_path</key>
				<string>%RECIPE_CACHE_DIR%/unpack</string>
				<key>flat_pkg_path</key>
				<string>%pathname%</string>
				<key>purge_destination</key>
				<true/>
			</dict>
		</dict>
		<dict>
			<key>Processor</key>
			<string>PkgPayloadUnpacker</string>
			<key>Arguments</key>
			<dict>
				<key>destination_path</key>
				<string>%RECIPE_CACHE_DIR%/%NAME%/</string>
				<key>pkg_payload_path</key>
				<string>%RECIPE_CACHE_DIR%/unpack/AAX.pkg/payload</string>
				<key>purge_destination</key>
				<true/>
			</dict>
		</dict>
        <dict>
            <key>Processor</key>
            <string>MunkiInstallsItemsCreator</string>
            <key>Arguments</key>
            <dict>
                <key>faux_root</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%</string>
                <key>installs_item_paths</key>
                <array>
                    <string>/Library/Application Support/Avid/Audio/Plug-Ins/Listento.aaxplugin</string>
                </array>
                <key>version_comparison_key</key>
                <string>CFBundleShortVersionString</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiPkginfoMerger</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PlistReader</string>
            <key>Arguments</key>
            <dict>
                <key>info_path</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%/Library/Application Support/Avid/Audio/Plug-Ins/Listento.aaxplugin/Contents/Info.plist</string>
                <key>plist_keys</key>
                <dict>
                    <key>CFBundleShortVersionString</key>
                    <string>version</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiPkginfoMerger</string>
            <key>Arguments</key>
            <dict>
                <key>additional_pkginfo</key>
                <dict>
                    <key>version</key>
                    <string>%version%</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%pathname%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PathDeleter</string>
            <key>Arguments</key>
            <dict>
                <key>path_list</key>
                <array>
                    <string>%RECIPE_CACHE_DIR%/%NAME%</string>
                    <string>%RECIPE_CACHE_DIR%/unpack</string>
                </array>
            </dict>
        </dict>
    </array>
</dict>
</plist>
Audiomovers Listento Plugins/Audiomovers Listento Plugins.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads latest version of the Audiomovers Listento Plugins.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.Audiomovers Listento Plugins</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>AudiomoversListentoPlugins</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.2.0</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>URLTextSearcher</string>
            <key>Arguments</key>
            <dict>
                <key>re_pattern</key>
                <string>href=\"(https://audiomovers\.com/storage/plugins/.*?/listento-\d.*?-installer-osx-signed\.pkg)\"</string>
                <key>result_output_var_name</key>
                <string>url</string>
                <key>url</key>
                <string>https://audiomovers.com/wp/downloads/</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>URLDownloader</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
            <key>Arguments</key>
            <dict>
                <key>input_path</key>
                <string>%pathname%</string>
                <key>expected_authority_names</key>
                <array>
                    <string>Developer ID Installer: Yuriy Shevyrov (US78Y74NNA)</string>
                    <string>Developer ID Certification Authority</string>
                    <string>Apple Root CA</string>
                </array>
            </dict>
        </dict>
    </array>
</dict>
</plist>
Audinate Dante Virtual Soundcard/Audinate Dante Virtual Soundcard.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of Audinate Dante Virtual Soundcard and imports into Munki.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.Audinate Dante Virtual Soundcard</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>Audinate Dante Virtual Soundcard</string>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>pkginfo</key>
        <dict>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>Dante Virtual Soundcard turns your computer into a Dante-powered workstation, seamlessly integrating your PC or Mac with Dante audio devices on your network. Instantly connect to record, process and playout using any audio application and any combination of Dante-enabled devices.</string>
            <key>display_name</key>
            <string>Audinate Dante Virtual Soundcard</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.2.0</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.Audinate Dante Virtual Soundcard</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>PkgRootCreator</string>
            <key>Arguments</key>
            <dict>
                <key>pkgroot</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%</string>
                <key>pkgdirs</key>
                <dict>
                    <key>Applications</key>
                    <string>0775</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>FlatPkgUnpacker</string>
            <key>Arguments</key>
            <dict>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/pkg_unpack</string>
                <key>flat_pkg_path</key>
                <string>%pkg_path%</string>
                <key>purge_destination</key>
                <string>true</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>FlatPkgUnpacker</string>
            <key>Arguments</key>
            <dict>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/pkg_unpack</string>
                <key>flat_pkg_path</key>
                <string>%pkg_path%</string>
                <key>purge_destination</key>
                <string>true</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PkgPayloadUnpacker</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_payload_path</key>
                <string>%destination_path%//DVS_User_Interface.pkg/Payload</string>
                <key>destination_path</key>
                <string>%pkgroot%/Applications</string>
                <key>purge_destination</key>
                <string>true</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>Versioner</string>
            <key>Arguments</key>
            <dict>
                <key>input_plist_path</key>
                <string>%destination_path%/Dante Virtual Soundcard.app/Contents/Info.plist</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiInstallsItemsCreator</string>
            <key>Arguments</key>
            <dict>
                <key>faux_root</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%</string>
                <key>installs_item_paths</key>
                <array>
                    <string>/Applications/Dante Virtual Soundcard.app</string>
                </array>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiPkginfoMerger</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiPkginfoMerger</string>
            <key>Arguments</key>
            <dict>
                <key>additional_pkginfo</key>
                <dict>
                    <key>version</key>
                    <string>%version%</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%pkg_path%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PathDeleter</string>
            <key>Arguments</key>
            <dict>
                <key>path_list</key>
                <array>
                    <string>%RECIPE_CACHE_DIR%/%NAME%</string>
                    <string>%RECIPE_CACHE_DIR%/pkg_unpack</string>                       
                </array>
            </dict>
        </dict>
    </array>
</dict>
</plist>

Audinate Dante Virtual Soundcard/Audinate Dante Virtual Soundcard.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads latest version of Audinate Dante Virtual Soundcard.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.Audinate Dante Virtual Soundcard</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>Audinate Dante Virtual Soundcard</string>
        <key>SPARKLE_FEED_URL</key>
        <string>https://software-updates-dvs.audinate.com/DanteVirtualSoundcard/appcast/DanteVirtualSoundcard-OSX.xml</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.2.0</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>SparkleUpdateInfoProvider</string>
            <key>Arguments</key>
            <dict>
                <key>appcast_url</key>
                <string>%SPARKLE_FEED_URL%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>URLDownloader</string>
        </dict>
        <dict>
			<key>Processor</key>
			<string>EndOfCheckPhase</string>
		</dict>
		<dict>
            <key>Processor</key>
            <string>PkgCopier</string>
            <key>Arguments</key>
            <dict>
                <key>source_pkg</key>
                <string>%pathname%/DanteVirtualSoundcard.pkg</string>
                <key>pkg_path</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%.pkg</string>
            </dict>
        </dict>
		<dict>
			<key>Processor</key>
			<string>CodeSignatureVerifier</string>
			<key>Arguments</key>
			<dict>
				<key>input_path</key>
				<string>%pkg_path%</string>
				<key>expected_authority_names</key>
				<array>
					<string>Developer ID Installer: Audinate Pty Ltd (P4WCR6Y822)</string>
					<string>Developer ID Certification Authority</string>
					<string>Apple Root CA</string>
				</array>
			</dict>
		</dict>
    </array>
</dict>
</plist>

Audinate Dante Via/Audinate Dante Via.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of Audinate Dante Via and imports into Munki.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.Audinate Dante Via</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>Audinate Dante Via</string>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>pkginfo</key>
        <dict>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>Dante Via is easy-to-use software that delivers unprecedented multi-channel routing of computer-based audio, allowing a wide range of applications and devices to be networked and interconnected, easily and inexpensively.</string>
            <key>display_name</key>
            <string>Audinate Dante Via</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.2.0</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.Audinate Dante Via</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>FlatPkgUnpacker</string>
            <key>Arguments</key>
            <dict>
                <key>flat_pkg_path</key>
                <string>%pkg_path%</string>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/unpack</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PkgPayloadUnpacker</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_payload_path</key>
                <string>%RECIPE_CACHE_DIR%/unpack/Dante_Via.pkg/Payload</string>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%</string>
                <key>purge_destination</key>
                <true/>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiInstallsItemsCreator</string>
            <key>Arguments</key>
            <dict>
                <key>faux_root</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%/</string>
                <key>installs_item_paths</key>
                <array>
                    <string>/Applications/Dante Via.app</string>
                </array>
                <key>version_comparison_key</key>
                <string>CFBundleShortVersionString</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiPkginfoMerger</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PlistReader</string>
            <key>Arguments</key>
            <dict>
                <key>info_path</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%/Applications/Dante Via.app/Contents/Info.plist</string>
                <key>plist_keys</key>
                <dict>
                    <key>CFBundleShortVersionString</key>
                    <string>version</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiPkginfoMerger</string>
            <key>Arguments</key>
            <dict>
                <key>additional_pkginfo</key>
                <dict>
                    <key>version</key>
                    <string>%version%</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%pathname%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PathDeleter</string>
            <key>Arguments</key>
            <dict>
                <key>path_list</key>
                <array>
                    <string>%RECIPE_CACHE_DIR%/%NAME%/</string>  
                    <string>%RECIPE_CACHE_DIR%/unpack/</string>                      
                </array>
            </dict>
        </dict>
    </array>
</dict>
</plist>

Audinate Dante Via/Audinate Dante Via.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads latest version of Audinate Dante Via.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.Audinate Dante Via</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>Audinate Dante Via</string>
        <key>SPARKLE_FEED_URL</key>
        <string>https://software-updates-via.audinate.com/DanteVia/appcast/DanteVia-OSX.xml</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.2.0</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>SparkleUpdateInfoProvider</string>
            <key>Arguments</key>
            <dict>
                <key>appcast_url</key>
                <string>%SPARKLE_FEED_URL%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>URLDownloader</string>
        </dict>
        <dict>
			<key>Processor</key>
			<string>EndOfCheckPhase</string>
		</dict>
		<dict>
            <key>Processor</key>
            <string>PkgCopier</string>
            <key>Arguments</key>
            <dict>
                <key>source_pkg</key>
                <string>%pathname%/Dante Via.pkg</string>
                <key>pkg_path</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%.pkg</string>
            </dict>
        </dict>
		<dict>
			<key>Processor</key>
			<string>CodeSignatureVerifier</string>
			<key>Arguments</key>
			<dict>
				<key>input_path</key>
				<string>%pkg_path%</string>
				<key>expected_authority_names</key>
				<array>
					<string>Developer ID Installer: Audinate Pty Ltd (P4WCR6Y822)</string>
					<string>Developer ID Certification Authority</string>
					<string>Apple Root CA</string>
				</array>
			</dict>
		</dict>
    </array>
</dict>
</plist>

Audinate Dante Controller/Audinate Dante Controller.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of Audinate Dante Controller and imports into Munki.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.Audinate Dante Controller</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>Audinate Dante Controller</string>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>pkginfo</key>
        <dict>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>Dante Controller provides essential device status information and powerful real-time network monitoring, including device-level latency and clock stability stats, multicast bandwidth usage, and customized event logging, enabling you to quickly identify and resolve any potential network issues. You can also quickly and easily backup, restore, move, and reuse Dante network configurations using Presets, and edit Dante routing configurations offline.</string>
            <key>display_name</key>
            <string>Audinate Dante Controller</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.2.0</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.Audinate Dante Controller</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>PkgRootCreator</string>
            <key>Arguments</key>
            <dict>
                <key>pkgroot</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%</string>
                <key>pkgdirs</key>
                <dict>
                    <key>Applications</key>
                    <string>0775</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>FlatPkgUnpacker</string>
            <key>Arguments</key>
            <dict>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/pkg_unpack</string>
                <key>flat_pkg_path</key>
                <string>%pkg_path%</string>
                <key>purge_destination</key>
                <string>true</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PkgPayloadUnpacker</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_payload_path</key>
                <string>%destination_path%//DanteController.pkg/Payload</string>
                <key>destination_path</key>
                <string>%pkgroot%/Applications</string>
                <key>purge_destination</key>
                <string>true</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>Versioner</string>
            <key>Arguments</key>
            <dict>
                <key>input_plist_path</key>
                <string>%destination_path%/Dante Controller.app/Contents/Info.plist</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiInstallsItemsCreator</string>
            <key>Arguments</key>
            <dict>
                <key>faux_root</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%</string>
                <key>installs_item_paths</key>
                <array>
                    <string>/Applications/Dante Controller.app</string>
                </array>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiPkginfoMerger</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiPkginfoMerger</string>
            <key>Arguments</key>
            <dict>
                <key>additional_pkginfo</key>
                <dict>
                    <key>version</key>
                    <string>%version%</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%pkg_path%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PathDeleter</string>
            <key>Arguments</key>
            <dict>
                <key>path_list</key>
                <array>
                    <string>%RECIPE_CACHE_DIR%/%NAME%</string>
                    <string>%RECIPE_CACHE_DIR%/pkg_unpack</string>                       
                </array>
            </dict>
        </dict>
    </array>
</dict>
</plist>

Audinate Dante Controller/Audinate Dante Controller.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads latest version of Audinate Dante Controller.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.Audinate Dante Controller</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>Audinate Dante Controller</string>
        <key>SPARKLE_FEED_URL</key>
        <string>https://software-updates.audinate.com/DanteController/appcast/DanteController-OSX.xml</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.2.0</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>SparkleUpdateInfoProvider</string>
            <key>Arguments</key>
            <dict>
                <key>appcast_url</key>
                <string>%SPARKLE_FEED_URL%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>URLDownloader</string>
        </dict>
        <dict>
			<key>Processor</key>
			<string>EndOfCheckPhase</string>
		</dict>
		<dict>
            <key>Processor</key>
            <string>PkgCopier</string>
            <key>Arguments</key>
            <dict>
                <key>source_pkg</key>
                <string>%pathname%/DanteController.pkg</string>
                <key>pkg_path</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%.pkg</string>
            </dict>
        </dict>
		<dict>
			<key>Processor</key>
			<string>CodeSignatureVerifier</string>
			<key>Arguments</key>
			<dict>
				<key>input_path</key>
				<string>%pkg_path%</string>
				<key>expected_authority_names</key>
				<array>
					<string>Developer ID Installer: Audinate Pty Ltd (P4WCR6Y822)</string>
					<string>Developer ID Certification Authority</string>
					<string>Apple Root CA</string>
				</array>
			</dict>
		</dict>
    </array>
</dict>
</plist>

Audacity/Audacity.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>This recipe uses FossHub to check for available software updates. 
    All users should contact FossHub directly (https://www.fosshub.com/contact.html) to seek permission to use an automated tool for the purpose of redistributing this software on their internal network, as specified in their Terms of Service (https://www.fosshub.com/tos.html#fh-tou-o7). 
    You will need to provide them the IP address of the machine downloading FossHub software. 
    This recipe does not perform any tracking (cookies, advertising identifiers, and similar technologies) and respects the EU General Data Protection Regulation (GDPR) guidelines.
    This recipe downloads the latest Audacity and imports onto Munki.
    For more information see: https://macmule.com/2019/03/17/fosshub-autopkg</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.Audacity</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>Audacity</string>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/Audacity</string>
        <key>pkginfo</key>
        <dict>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>Audacity is a free, easy-to-use, multi-track audio editor and recorder for Windows, Mac OS X, GNU/Linux and other operating systems.</string>
            <key>display_name</key>
            <string>Audacity</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.2.9</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.Audacity</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%pathname%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
        </dict>
    </array>
</dict>
</plist>
Audacity/Audacity.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>This recipe uses FossHub to check for available software updates. 
    All users should contact FossHub directly (https://www.fosshub.com/contact.html) to seek permission to use an automated tool for the purpose of redistributing this software on their internal network, as specified in their Terms of Service (https://www.fosshub.com/tos.html#fh-tou-o7). 
    You will need to provide them the IP address of the machine downloading FossHub software. 
    This recipe does not perform any tracking (cookies, advertising identifiers, and similar technologies) and respects the EU General Data Protection Regulation (GDPR) guidelines.
    This recipe downloads the latest Audacity dmg.
    For more information see: https://macmule.com/2019/03/17/fosshub-autopkg</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.Audacity</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>Audacity</string>
        <key>SEARCH_URL</key>
        <string>https://university.fosshub.com/projects.json</string>
        <key>SEARCH_PATTERN</key>
        <string>https://university.fosshub.com/Protected/[\S]+\/[\S]+\/audacity-macos-[\S]+\.dmg</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.2.9</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>URLTextSearcher</string>
            <key>Arguments</key>
            <dict>
                <key>url</key>
                <string>%SEARCH_URL%</string>
                <key>re_pattern</key>
                <string>%SEARCH_PATTERN%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>URLDownloader</string>
            <key>Arguments</key>
            <dict>
                <key>url</key>
                <string>%match%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>Versioner</string>
            <key>Arguments</key>
            <dict>
                <key>input_plist_path</key>
                <string>%pathname%/Audacity.app/Contents/Info.plist</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
            <key>Arguments</key>
            <dict>
                <key>input_path</key>
                <string>%pathname%/Audacity.app</string>
                <key>requirement</key>
                <string>identifier "org.audacityteam.audacity" and anchor apple generic and 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] = AWEYX923UX</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>

Aspera Connect/Aspera Connect.pkg.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of Aspera Connect and creates a package</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.pkg.Aspera Connect</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>AsperaConnect</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.5.0</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.Aspera Connect</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>Copier</string>
            <key>Arguments</key>
            <dict>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/scripts/IBM Aspera Connect Installer.app</string>
                <key>source_path</key>
                <string>%pathname%/IBM Aspera Connect Installer.app</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>Unarchiver</string>
            <key>Arguments</key>
            <dict>
                <key>archive_path</key>
                <string>%RECIPE_CACHE_DIR%/scripts/IBM Aspera Connect Installer.app/Contents/Resources/AsperaApps.zip</string>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%/Applications</string>
                <key>purge_destination</key>
                <true/>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PlistReader</string>
            <key>Arguments</key>
            <dict>
                <key>info_path</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%/Applications/Aspera Connect.app/Contents/Info.plist</string>
                <key>plist_keys</key>
                <dict>
                    <key>CFBundleIdentifier</key>
                    <string>bundleid</string>
                    <key>CFBundleShortVersionString</key>
                    <string>version</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>FileCreator</string>
            <key>Arguments</key>
            <dict>
                <key>file_content</key>
                <string>#!/bin/bash

#
# Copyright (c) 2021, dataJAR Ltd.  All rights reserved.
#

# Determine working directory
install_dir="$(dirname "$0")"

# If the install binary exists
if [ -f "${install_dir}/IBM Aspera Connect Installer.app/Contents/Resources/install" ]
then
    # Install the application using the Installer application’s native script
    "${install_dir}/IBM Aspera Connect Installer.app/Contents/Resources/install" true
else
    /bin/echo "Cannot locate ${install_dir}/IBM Aspera Connect Installer.app/Contents/Resources/install, exiting..."
    exit 1
fi</string>
                <key>file_mode</key>
                <string>0755</string>
                <key>file_path</key>
                <string>%RECIPE_CACHE_DIR%/scripts/postinstall</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PkgRootCreator</string>
            <key>Arguments</key>
            <dict>
                <key>pkgdirs</key>
                <dict/>
                <key>pkgroot</key>
                <string>%RECIPE_CACHE_DIR%/pkgroot</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PkgCreator</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_request</key>
                <dict>
                    <key>id</key>
                    <string>%bundleid%</string>
                    <key>pkgname</key>
                    <string>%NAME%-%version%</string>
                    <key>pkgroot</key>
                    <string>%RECIPE_CACHE_DIR%/pkgroot</string>
                    <key>pkgtype</key>
                    <string>flat</string>
                    <key>scripts</key>
                    <string>scripts</string>
                    <key>version</key>
                    <string>%version%</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PathDeleter</string>
            <key>Arguments</key>
            <dict>
                <key>path_list</key>
                <array>
                    <string>%RECIPE_CACHE_DIR%/%NAME%</string>
                    <string>%RECIPE_CACHE_DIR%/pkgroot</string>
                    <string>%RECIPE_CACHE_DIR%/scripts</string>
                </array>
            </dict>
        </dict>
    </array>
</dict>
</plist>
Aspera Connect/Aspera Connect.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
 <plist version="1.0">
 <dict>
     <key>Description</key>
     <string>Downloads the latest version of Aspera Connect and imports it into Munki.</string>
     <key>Identifier</key>
     <string>com.github.dataJAR-recipes.munki.Aspera Connect</string>
     <key>Input</key>
     <dict>
         <key>NAME</key>
         <string>Aspera Connect</string>
         <key>MUNKI_REPO_SUBDIR</key>
         <string>apps/%NAME%</string>
         <key>pkginfo</key>
         <dict>
             <key>catalogs</key>
             <array>
                 <string>testing</string>
             </array>
             <key>description</key>
             <string>Push the limits of maximum-speed transfers. Aspera Connect helps you securely move files and folders of any size.</string>
             <key>developer</key>
             <string>IBM Corp</string>
             <key>display_name</key>
             <string>Aspera Connect</string>
             <key>name</key>
             <string>%NAME%</string>
             <key>unattended_install</key>
             <true/>
             <key>unattended_uninstall</key>
             <true/>
         </dict>
     </dict>
     <key>MinimumVersion</key>
     <string>0.6.1</string>
     <key>ParentRecipe</key>
     <string>com.github.dataJAR-recipes.pkg.Aspera Connect</string>
     <key>Process</key>
     <array>
       <dict>
            <key>Processor</key>
            <string>Copier</string>
            <key>Arguments</key>
            <dict>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/scripts/IBM Aspera Connect Installer.app</string>
                <key>source_path</key>
                <string>%pathname%/IBM Aspera Connect Installer.app</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>Unarchiver</string>
            <key>Arguments</key>
            <dict>
                <key>archive_path</key>
                <string>%RECIPE_CACHE_DIR%/scripts/IBM Aspera Connect Installer.app/Contents/Resources/AsperaApps.zip</string>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%/Applications</string>
                <key>purge_destination</key>
                <true/>
            </dict>
        </dict>
         <dict>
             <key>Processor</key>
             <string>MunkiInstallsItemsCreator</string>
             <key>Arguments</key>
             <dict>
                 <key>faux_root</key>
                 <string>%RECIPE_CACHE_DIR%/%NAME%</string>
                 <key>installs_item_paths</key>
                 <array>
                     <string>/Applications/Aspera Connect.app</string>
                     <string>/Applications/Aspera Crypt.app</string>
                     <string>/Applications/IBM Aspera Launcher.app</string>
                 </array>
             </dict>
         </dict>
         <dict>
             <key>Processor</key>
             <string>MunkiPkginfoMerger</string>
         </dict>
         <dict>
             <key>Processor</key>
             <string>Versioner</string>
             <key>Arguments</key>
             <dict>
                 <key>input_plist_path</key>
                 <string>%RECIPE_CACHE_DIR%/%NAME%/Applications/Aspera Connect.app/Contents/Info.plist</string>
             </dict>
         </dict>
         <dict>
             <key>Processor</key>
             <string>MunkiPkginfoMerger</string>
             <key>Arguments</key>
             <dict>
                 <key>additional_pkginfo</key>
                 <dict>
                     <key>version</key>
                     <string>%version%</string>
                 </dict>
             </dict>
         </dict>
         <dict>  
             <key>Processor</key>
             <string>MunkiImporter</string>
             <key>Arguments</key>
             <dict>
                 <key>pkg_path</key>
                 <string>%pkg_path%</string>
                 <key>repo_subdirectory</key>
                 <string>%MUNKI_REPO_SUBDIR%</string>
             </dict>
         </dict>
         <dict>
             <key>Processor</key>
             <string>PathDeleter</string>
             <key>Arguments</key>
             <dict>
                 <key>path_list</key>
                 <array>
                     <string>%RECIPE_CACHE_DIR%/%NAME%/</string>
                     <string>%RECIPE_CACHE_DIR%/scripts/</string>
                 </array>
             </dict>
         </dict>
     </array>
 </dict>
 </plist> 
Aspera Connect/Aspera Connect.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
 <plist version="1.0">
 <dict>
     <key>Description</key>
     <string>Downloads latest version of Aspera Connect.</string>
     <key>Identifier</key>
     <string>com.github.dataJAR-recipes.download.Aspera Connect</string>
     <key>Input</key>
     <dict>
         <key>NAME</key>
         <string>AsperaConnect</string>
     </dict>
     <key>MinimumVersion</key>
     <string>1.1</string>
     <key>Process</key>
     <array>
         <dict>
             <key>Processor</key>
             <string>URLTextSearcher</string>
             <key>Arguments</key>
             <dict>
                 <key>url</key>
                 <string>https://www.ibm.com/aspera/connect/</string>
                 <key>re_pattern</key>
                 <string>https://.*?\.cloudfront\.net</string>
                 <key>result_output_var_name</key>
                 <string>baseurl</string>
             </dict>
         </dict>
         <dict>
             <key>Processor</key>
             <string>URLTextSearcher</string>
             <key>Arguments</key>
             <dict>
                 <key>url</key>
                 <string>%baseurl%/connect_latest/v4/connectversions.min.js</string>
                 <key>re_pattern</key>
                 <string>title:\"Mac Intel Installer\",type:\"application/octet-stream\",href:\"(bin/ibm-aspera-connect_.*?_macOS_x86_64\.dmg)\"</string>
                 <key>result_output_var_name</key>
                 <string>downloadpath</string>
             </dict>
         </dict>

         <dict>
             <key>Processor</key>
             <string>URLDownloader</string>
             <key>Arguments</key>
             <dict>
                 <key>filename</key>
                 <string>%NAME%.dmg</string>
                 <key>url</key>
                 <string>%baseurl%/connect_latest/v4/%downloadpath%</string>
             </dict>
         </dict>
         <dict>
             <key>Processor</key>
             <string>EndOfCheckPhase</string>
         </dict>
         <dict>
             <key>Processor</key>
             <string>CodeSignatureVerifier</string>
             <key>Arguments</key>
             <dict>
                 <key>input_path</key>
                 <string>%pathname%/IBM Aspera Connect Installer.app</string>
                 <key>requirement</key>
                 <string>identifier "com.ibm.installer.IBM-Aspera-Connect-Installer" and anchor apple generic and 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] = RJ747GSBCT</string>
             </dict>
         </dict>
     </array>
 </dict>
 </plist>
Asana/Asana.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of Asana and imports into Munki</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.Asana</string>
    <key>Input</key>
    <dict>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>NAME</key>
        <string>Asana</string>
        <key>pkginfo</key>
        <dict>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>Asana’s native desktop app removes distractions so you can focus on what’s important. Just download according to your OS, login with your email on the web, and you’ll be guided to your new favorite app.</string>
            <key>developer</key>
            <string>Asana Inc</string>
            <key>display_name</key>
            <string>Asana</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true></true>
            <key>unattended_uninstall</key>
            <true></true>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.5.0</string>
    <key>ParentRecipe</key>
    <string>com.github.mikestechshop.download.asana</string>
    <key>Process</key>
    <array>
    <dict>
        <key>Processor</key>
        <string>MunkiImporter</string>
        <key>Arguments</key>
        <dict>
            <key>pkg_path</key>
            <string>%pathname%</string>
            <key>repo_subdirectory</key>
            <string>%MUNKI_REPO_SUBDIR%</string>
        </dict>
    </dict>
</array>
</dict>
</plist>
ArrayCalc V10/ArrayCalc V10.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the current release version of ArrayCalc V10, builds a package and imports it to Munki.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.ArrayCalc V10</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>ArrayCalcV10</string>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps</string>
        <key>pkginfo</key>
        <dict>
            <key>blocking_applications</key>
            <array>
                <string>ArrayCalc V10</string>
            </array>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>category</key>
            <string>Applications</string>
            <key>description</key>
            <string>The d&amp;b ArrayCalc simulation software is the simulation tool for d&amp;b line arrays, column and point source loudspeakers as well as subwoofers. This is a comprehensive toolbox for all tasks associated with acoustic design, performance prediction, alignment, rigging and safety parameters.</string>
            <key>developer</key>
            <string>d&amp;b audiotechnik GmbH &amp; Co</string>
            <key>display_name</key>
            <string>ArrayCalc V10</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
            <key>unattended_uninstall</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.4.3</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.ArrayCalc V10</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%pathname%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
                <key>version_comparison_key</key>
                <string>CFBundleShortVersionString</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>
ArrayCalc V10/ArrayCalc V10.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the current release version of ArrayCalc V10.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.ArrayCalc V10</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>ArrayCalcV10</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.2.0</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>URLTextSearcher</string>
            <key>Arguments</key>
            <dict>
                <key>re_pattern</key>
                <string>/assets/products/downloads/software/arraycalc/dbaudio-software-arraycalc-v10\..*?-mac\.dmg</string>
                <key>url</key>
                <string>https://www.dbaudio.com/global/en/products/software/arraycalc/#tab-downloads</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>URLDownloader</string>
            <key>Arguments</key>
            <dict>
                <key>url</key>
                <string>https://www.dbaudio.com/%match%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
            <key>Arguments</key>
            <dict>
                <key>input_path</key>
                <string>%pathname%/ArrayCalc V10.app</string>
                <key>requirement</key>
                <string>identifier "com.dbaudio.ArrayCalc V10" and anchor apple generic and 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] = G24Y233R69</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>
ArchiveWeb.page/ArchiveWeb.page.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of ArchiveWeb.page and imports it into Munki.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.ArchiveWeb.page</string>
    <key>Input</key>
    <dict>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>NAME</key>
        <string>ArchiveWeb.page</string>
        <key>pkginfo</key>
        <dict>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>ArchiveWeb.page is the latest tool from Webrecorder to turn your browser into a full-featured interactive web archiving system!</string>
            <key>developer</key>
            <string>webrecorderplayer</string>
            <key>display_name</key>
            <string>ArchiveWeb.page</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.ArchiveWeb.page</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%pathname%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>

ArchiveWeb.page/ArchiveWeb.page.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of ArchiveWeb.page.
Set PRERELEASE to a non-empty string to download prereleases, either
via Input in an override or via the -k option,
i.e.: `-k PRERELEASE=yes`</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.ArchiveWeb.page</string>
    <key>Input</key>
    <dict>
        <key>PRERELEASE</key>
        <string></string>
        <key>NAME</key>
        <string>ArchiveWeb.page</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>GitHubReleasesInfoProvider</string>
            <key>Arguments</key>
            <dict>
                <key>asset_regex</key>
                <string>.*dmg$</string>
                <key>github_repo</key>
                <string>webrecorder/archiveweb.page</string>
                <key>include_prereleases</key>
                <string>%PRERELEASE%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>URLDownloader</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
            <key>Arguments</key>
            <dict>
                <key>input_path</key>
                <string>%pathname%/ArchiveWeb.page.app</string>
                <key>requirement</key>
                <string>identifier "net.webrecorder.archivewebpage" and anchor apple generic and 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] = "85A3HR7688"</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>
Apple Mastering Tools/Apple Mastering Tools.pkg.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads and creates a PKG of the latest version of the Apple's Mastering Tools.
    
NOTE:
- This recipe depends on jessepeterson's repo being added for the ModeChanger processor.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.pkg.Apple Mastering Tools</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>Mastering Tools</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.Apple Mastering Tools</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>PlistReader</string>
            <key>Arguments</key>
            <dict>
                <key>info_path</key>
                <string>%RECIPE_CACHE_DIR%/extract/Apple Audio Mastering Tools.dmg/Install Audio Tools.app/Contents/Info.plist</string>
                <key>plist_keys</key>
                <dict>
                    <key>CFBundleShortVersionString</key>
                    <string>version</string>
                    <key>CFBundleIdentifier</key>
                    <string>bundleid</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PkgRootCreator</string>
            <key>Arguments</key>
            <dict>
                <key>pkgroot</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%/</string>
                <key>pkgdirs</key>
                <dict>
                    <key>Applications</key>
                    <string>0775</string>
                    <key>Applications/Utilities</key>
                    <string>0755</string>
                    <key>usr</key>
                    <string>0755</string>
                    <key>usr/local</key>
                    <string>0755</string>
                    <key>usr/local/bin</key>
                    <string>0755</string>
                </dict>
                <key>purge_destination</key>
                <true/>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>Copier</string>
            <key>Arguments</key>
            <dict>
                <key>source_path</key>
                <string>%RECIPE_CACHE_DIR%/extract/Apple Audio Mastering Tools.dmg/Droplets/Audio to WAVE 96K Droplet.app</string>
                <key>destination_path</key>
                <string>%pkgroot%Applications/Utilities/Audio to WAVE 96K Droplet.app</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>Copier</string>
            <key>Arguments</key>
            <dict>
                <key>source_path</key>
                <string>%RECIPE_CACHE_DIR%/extract/Apple Audio Mastering Tools.dmg/Droplets/Audio to WAVE Droplet.app</string>
                <key>destination_path</key>
                <string>%pkgroot%Applications/Utilities/Audio to WAVE Droplet.app</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>Copier</string>
            <key>Arguments</key>
            <dict>
                <key>source_path</key>
                <string>%RECIPE_CACHE_DIR%/extract/Apple Audio Mastering Tools.dmg/Droplets/Master for iTunes Droplet.app</string>
                <key>destination_path</key>
                <string>%pkgroot%Applications/Utilities/Master for iTunes Droplet.app</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>Copier</string>
            <key>Arguments</key>
            <dict>
                <key>source_path</key>
                <string>%RECIPE_CACHE_DIR%/extract/Apple Audio Mastering Tools.dmg/Extras/afclip</string>
                <key>destination_path</key>
                <string>%pkgroot%usr/local/bin/afclip</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>com.github.jessepeterson.munki.UniversalTypeClient6/ModeChanger</string>
            <key>Arguments</key>
            <dict>
                <key>filename</key>
                <string>%pkgroot%usr/local/bin/afclip</string>
                <key>mode</key>
                <string>a+x</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PkgCreator</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_request</key>
                <dict>
                    <key>id</key>
                    <string>%bundleid%</string>
                    <key>options</key>
                    <string>purge_ds_store</string>
                    <key>pkgname</key>
                    <string>%NAME%</string>
                    <key>pkgroot</key>
                    <string>%RECIPE_CACHE_DIR%/%NAME%</string>
                    <key>version</key>
                    <string>%version%</string>
                </dict>
            </dict>
        </dict>
    </array>
</dict>
</plist>

Apple Mastering Tools/Apple Mastering Tools.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of the Apple's Mastering Tools and imports it into Munki.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.Apple Mastering Tools</string>
    <key>Input</key>
    <dict>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>NAME</key>
        <string>Apple Mastering Tools</string>
        <key>pkginfo</key>
        <dict>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>To hear how music will sound after it’s encoded to make important creative choices during the mastering process, download these tools. The Mastered for iTunes droplet is a simple, standalone drag-and-drop tool that automates the creation of iTunes Plus format masters, allowing for a preview of songs using the same world-class technology used to encode the entire catalogue for the iTunes Library.</string>
            <key>developer</key>
            <string>Apple</string>
            <key>display_name</key>
            <string>Apple Mastering Tools</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.pkg.Apple Mastering Tools</string>
    <key>Process</key>
    <array>
		<dict>
			<key>Processor</key>
			<string>MunkiInstallsItemsCreator</string>
			<key>Arguments</key>
			<dict>
				<key>faux_root</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%</string>
				<key>installs_item_paths</key>
				<array>
					<string>/Applications/Utilities/Audio to WAVE 96K Droplet.app</string>
					<string>/Applications/Utilities/Audio to WAVE Droplet.app</string>
					<string>/Applications/Utilities/Master for iTunes Droplet.app</string>
					<string>/usr/local/bin/afclip</string>
				</array>
			</dict>
		</dict>
		<dict>
            <key>Arguments</key>
            <dict>
                <key>additional_pkginfo</key>
                <dict>
                    <key>version</key>
                    <string>%version%</string>
                </dict>
            </dict>
			<key>Processor</key>
			<string>MunkiPkginfoMerger</string>
		</dict>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%pkg_path%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PathDeleter</string>
            <key>Arguments</key>
            <dict>
                <key>path_list</key>
                <array>
                    <string>%RECIPE_CACHE_DIR%/extract</string>
                    <string>%RECIPE_CACHE_DIR%/%NAME%</string>
                </array>
            </dict>
        </dict>
    </array>
</dict>
</plist>

Apple Mastering Tools/Apple Mastering Tools.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of the Apple's Mastering Tools.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.Apple Mastering Tools</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>Mastering Tools</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>URLDownloader</string>
            <key>Arguments</key>
            <dict>
                 <key>url</key>
                 <string>https://www.apple.com/apple-music/apple-digital-masters/docs/apple_audio_mastering_tools_v10.9_greater.zip</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PkgRootCreator</string>
            <key>Arguments</key>
            <dict>
                <key>pkgroot</key>
                <string>%RECIPE_CACHE_DIR%/extract/</string>
                <key>pkgdirs</key>
                <dict/>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>Unarchiver</string>
            <key>Arguments</key>
            <dict>
                <key>archive_path</key>
                <string>%pathname%</string>
                <key>destination_path</key>
                <string>%pkgroot%</string>
                <key>purge_destination</key>
                <true/>
                <key>archive_format</key>
                <string>zip</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
            <key>Arguments</key>
            <dict>
                <key>input_path</key>
                <string>%pkgroot%Apple Audio Mastering Tools.dmg/Droplets/Audio to WAVE 96K Droplet.app</string>
                <key>requirement</key>
                <string>identifier "com.apple.itunes.AudiotoWAVE96kdroplet" and anchor apple generic and 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] = "292CA77D2D"</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
            <key>Arguments</key>
            <dict>
                <key>input_path</key>
                <string>%pkgroot%Apple Audio Mastering Tools.dmg/Droplets/Audio to WAVE Droplet.app</string>
                <key>requirement</key>
                <string>identifier "com.apple.itunes.AudiotoWAVEdroplet" and anchor apple generic and 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] = "292CA77D2D"</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
            <key>Arguments</key>
            <dict>
                <key>input_path</key>
                <string>%pkgroot%Apple Audio Mastering Tools.dmg/Droplets/Master for iTunes Droplet.app</string>
                <key>requirement</key>
                <string>identifier "com.apple.itunes.masterforitunesdroplet" and anchor apple generic and 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] = "292CA77D2D"</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>

Apple AU Lab/Apple AU Lab.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of the Apple's AU Lab and imports it into Munki.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.Apple AU Lab</string>
    <key>Input</key>
    <dict>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>NAME</key>
        <string>Apple AU Lab</string>
        <key>pkginfo</key>
        <dict>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>Apple’s free digital audio mixing application, AU Lab, can be used as a host application for Audio Unit effects, including AURoundTripAAC Audio Unit, one of the new Mastered for iTunes tools. If you don’t already have Logic or another Audio Unit host application, download AU Lab to get started with auditioning your audio, detecting peaks and clipping, and performing double-blind listening tests.</string>
            <key>developer</key>
            <string>Apple</string>
            <key>display_name</key>
            <string>Apple AU Lab</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.Apple AU Lab</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>DmgCreator</string>
            <key>Arguments</key>
            <dict>
                <key>dmg_root</key>
                <string>%pkgroot%</string>
                <key>dmg_path</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%.dmg</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%dmg_path%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PathDeleter</string>
            <key>Arguments</key>
            <dict>
                <key>path_list</key>
                <array>
                    <string>%dmg_path%</string>
                    <string>%pkgroot%</string>
                </array>
            </dict>
        </dict>
    </array>
</dict>
</plist>

Apple AU Lab/Apple AU Lab.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>Description</key>
	<string>Downloads the latest version of the Apple's AU Lab.</string>
	<key>Identifier</key>
	<string>com.github.dataJAR-recipes.download.Apple AU Lab</string>
	<key>Input</key>
	<dict>
		<key>NAME</key>
		<string>AU Lab</string>
	</dict>
	<key>MinimumVersion</key>
	<string>0.6.1</string>
	<key>Process</key>
	<array>
		<dict>
			<key>Processor</key>
			<string>URLDownloader</string>
			<key>Arguments</key>
			<dict>
			     <key>url</key>
			     <string>https://www.apple.com/apple-music/apple-digital-masters/docs/au_lab.zip</string>
			</dict>
		</dict>
		<dict>
			<key>Processor</key>
			<string>EndOfCheckPhase</string>
		</dict>
		<dict>
            <key>Processor</key>
            <string>PkgRootCreator</string>
            <key>Arguments</key>
            <dict>
                <key>pkgroot</key>
                <string>%RECIPE_CACHE_DIR%/Applications/</string>
                <key>pkgdirs</key>
                <dict/>
            </dict>
        </dict>
		<dict>
			<key>Processor</key>
			<string>Unarchiver</string>
			<key>Arguments</key>
			<dict>
				<key>archive_path</key>
				<string>%pathname%</string>
				<key>destination_path</key>
				<string>%pkgroot%</string>
				<key>purge_destination</key>
				<true/>
				<key>archive_format</key>
				<string>zip</string>
			</dict>
		</dict>
		<dict>
			<key>Processor</key>
			<string>CodeSignatureVerifier</string>
			<key>Arguments</key>
			<dict>
				<key>input_path</key>
				<string>%destination_path%/AU Lab.app</string>
				<key>requirement</key>
				<string>identifier "com.apple.audio.aulab" and anchor apple</string>
			</dict>
		</dict>
	</array>
</dict>
</plist>

Apache NetBeans 12/Apache NetBeans 12.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest trial version of Apache NetBeans 12 and imports into Munki.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.Apache NetBeans 12</string>
    <key>Input</key>
    <dict>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>NAME</key>
        <string>ApacheNetBeans12</string>
        <key>pkginfo</key>
        <dict> 
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>Development Environment, Tooling Platform and Application Framework.</string>
            <key>display_name</key>
            <string>Apache NetBeans 12</string>
            <key>name</key>
            <string>%NAME%</string>
			<key>requires</key>
			<array>
				<string>OpenJDK</string>
			</array>
            <key>unattended_install</key>
            <true/>
            <key>unattended_uninstall</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.Apache NetBeans 12</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>PkgCopier</string>
            <key>Arguments</key>
            <dict>
                <key>source_pkg</key>
                <string>%input_path%</string>
                <key>pkg_path</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%.pkg</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>FlatPkgUnpacker</string>
            <key>Arguments</key>
            <dict>
                <key>flat_pkg_path</key>
                <string>%pkg_path%</string>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/pkg_unpack/main</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>FileFinder</string>
            <key>Arguments</key>
            <dict>
                <key>pattern</key>
                <string>%destination_path%/nbide-12.*.pkg</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PkgPayloadUnpacker</string>
            <key>Arguments</key>
            <dict>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/Applications</string>
                <key>pkg_payload_path</key>
                <string>%found_filename%/Payload</string>
                <key>purge_destination</key>
                <string>true</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>FileFinder</string>
            <key>Arguments</key>
            <dict>
                <key>pattern</key>
                <string>%destination_path%/Apache NetBeans 12.*.app</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>Versioner</string>
            <key>Arguments</key>
            <dict>
                <key>input_plist_path</key>
                <string>%found_filename%/Contents/Info.plist</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiPkginfoMerger</string>
            <key>Arguments</key>
            <dict>
                <key>additional_pkginfo</key>
                <dict>
                    <key>version</key>
                    <string>%version%</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiInstallsItemsCreator</string>
            <key>Arguments</key>
            <dict>
                <key>faux_root</key>
                <string>%RECIPE_CACHE_DIR%</string>
                <key>installs_item_paths</key>
                <array>
                    <string>/Applications/Apache NetBeans %version%.app</string>
                </array>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiPkginfoMerger</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%pkg_path%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PathDeleter</string>
            <key>Arguments</key>
            <dict>
                <key>path_list</key>
                <array>
                    <string>%RECIPE_CACHE_DIR%/Applications</string>
                    <string>%RECIPE_CACHE_DIR%/pkg_unpack</string>
                </array>
            </dict>
        </dict>
    </array>
</dict>
</plist>
Apache NetBeans 12/Apache NetBeans 12.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the version of Apache NetBeans 12.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.Apache NetBeans 12</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>ApacheNetBeans12</string>
        <key>BASE_URL</key>
        <string>https://netbeans.apache.org</string>
    </dict>
    <key>MinimumVersion</key>
    <string>1.0.0</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>URLTextSearcher</string>
            <key>Arguments</key>
            <dict>
                <key>url</key>
                <string>%BASE_URL%/download</string>
                <key>re_pattern</key>
                <string>href="(/download/nb12[\d]+/nb12[\d]+.html)"</string>
                <key>result_output_var_name</key>
                <string>match</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>URLTextSearcher</string>
            <key>Arguments</key>
            <dict>
                <key>url</key>
                <string>%BASE_URL%%match%</string>
                <key>re_pattern</key>
                <string>href="(.*\/Apache-NetBeans-12\.[\d].*-bin-macosx\.dmg)"</string>
                <key>result_output_var_name</key>
                <string>match2</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>URLTextSearcher</string>
            <key>Arguments</key>
            <dict>
                <key>url</key>
                <string>%match2%</string>
                <key>re_pattern</key>
                <string>href="(.*\/Apache-NetBeans-12\.[\d].*-bin-macosx\.dmg)"</string>
                <key>result_output_var_name</key>
                <string>url</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>URLDownloader</string>
            <key>Arguments</key>
            <dict>
                <key>filename</key>
                <string>%NAME%.dmg</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
		<dict>   
			<key>Processor</key>   
			<string>CodeSignatureVerifier</string>   
			<key>Arguments</key>   
			<dict>   
				<key>input_path</key>   
				<string>%pathname%/Apache NetBeans 12.*.pkg</string>
				<key>expected_authority_names</key>
				<array>
					<string>Developer ID Installer: The Apache Software Foundation (2GLGAFWEQD)</string>
					<string>Developer ID Certification Authority</string>
					<string>Apple Root CA</string>
				</array>
			</dict>
		</dict>
    </array>
</dict>
</plist>
Apache NetBeans 11/Apache NetBeans 11.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest trial version of Apache NetBeans 11 and imports into Munki.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.Apache NetBeans 11</string>
    <key>Input</key>
    <dict>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>NAME</key>
        <string>ApacheNetBeans11</string>
        <key>pkginfo</key>
        <dict> 
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>Development Environment, Tooling Platform and Application Framework.</string>
            <key>display_name</key>
            <string>Apache NetBeans 11</string>
            <key>name</key>
            <string>%NAME%</string>
			<key>requires</key>
			<array>
				<string>OpenJDK</string>
			</array>
            <key>unattended_install</key>
            <true/>
            <key>unattended_uninstall</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.Apache NetBeans 11</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>PkgCopier</string>
            <key>Arguments</key>
            <dict>
                <key>source_pkg</key>
                <string>%input_path%</string>
                <key>pkg_path</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%.pkg</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>FlatPkgUnpacker</string>
            <key>Arguments</key>
            <dict>
                <key>flat_pkg_path</key>
                <string>%pkg_path%</string>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/pkg_unpack/main</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>FileFinder</string>
            <key>Arguments</key>
            <dict>
                <key>pattern</key>
                <string>%destination_path%/nbide-11.*.pkg</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PkgPayloadUnpacker</string>
            <key>Arguments</key>
            <dict>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/Applications</string>
                <key>pkg_payload_path</key>
                <string>%found_filename%/Payload</string>
                <key>purge_destination</key>
                <string>true</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>FileFinder</string>
            <key>Arguments</key>
            <dict>
                <key>pattern</key>
                <string>%destination_path%/Apache NetBeans 11.*.app</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>Versioner</string>
            <key>Arguments</key>
            <dict>
                <key>input_plist_path</key>
                <string>%found_filename%/Contents/Info.plist</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiPkginfoMerger</string>
            <key>Arguments</key>
            <dict>
                <key>additional_pkginfo</key>
                <dict>
                    <key>version</key>
                    <string>%version%</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiInstallsItemsCreator</string>
            <key>Arguments</key>
            <dict>
                <key>faux_root</key>
                <string>%RECIPE_CACHE_DIR%</string>
                <key>installs_item_paths</key>
                <array>
                    <string>/Applications/Apache NetBeans %version%.app</string>
                </array>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiPkginfoMerger</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%pkg_path%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PathDeleter</string>
            <key>Arguments</key>
            <dict>
                <key>path_list</key>
                <array>
                    <string>%RECIPE_CACHE_DIR%/Applications</string>
                    <string>%RECIPE_CACHE_DIR%/pkg_unpack</string>
                </array>
            </dict>
        </dict>
    </array>
</dict>
</plist>
Apache NetBeans 11/Apache NetBeans 11.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the version of Apache NetBeans 11.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.Apache NetBeans 11</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>ApacheNetBeans11</string>
        <key>BASE_URL</key>
        <string>https://netbeans.apache.org</string>
    </dict>
    <key>MinimumVersion</key>
    <string>1.0.0</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>URLTextSearcher</string>
            <key>Arguments</key>
            <dict>
                <key>url</key>
                <string>%BASE_URL%/download/archive/index.html</string>
                <key>re_pattern</key>
                <string>href="(/download/nb11[\d]+/nb11[\d]+.html)" class="button success">Download</string>
                <key>result_output_var_name</key>
                <string>match</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>URLTextSearcher</string>
            <key>Arguments</key>
            <dict>
                <key>url</key>
                <string>%BASE_URL%%match%</string>
                <key>re_pattern</key>
                <string>href="(.*\/Apache-NetBeans-11\.[\d].*-bin-macosx\.dmg)"</string>
                <key>result_output_var_name</key>
                <string>url</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>URLDownloader</string>
            <key>Arguments</key>
            <dict>
                <key>filename</key>
                <string>%NAME%.dmg</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
		<dict>   
			<key>Processor</key>   
			<string>CodeSignatureVerifier</string>   
			<key>Arguments</key>   
			<dict>   
				<key>input_path</key>   
				<string>%pathname%/Apache NetBeans 11.*.pkg</string>
				<key>expected_authority_names</key>
				<array>
					<string>Developer ID Installer: The Apache Software Foundation (2GLGAFWEQD)</string>
					<string>Developer ID Certification Authority</string>
					<string>Apple Root CA</string>
				</array>
			</dict>
		</dict>
    </array>
</dict>
</plist>
Any Video Converter Free for Mac/AnyVideoConverter.png METASEP

Any Video Converter Free for Mac/Any Video Converter Free for Mac.pkg.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of Zinio Reader and creates a flat PKG.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.pkg.Any Video Converter Free for Mac</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>AnyVideoConverter</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.Any Video Converter Free for Mac</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>PkgRootCreator</string>
            <key>Arguments</key>
            <dict>
                <key>pkgroot</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%</string>
                <key>pkgdirs</key>
                <dict>
                    <key>Applications</key>
                    <string>0775</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>Copier</string>
            <key>Arguments</key>
            <dict>
                <key>source_path</key>
                <string>%pathname%/Any Video Converter.app</string>
                <key>destination_path</key>
                <string>%pkgroot%/Applications/Any Video Converter.app</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PlistReader</string>
            <key>Arguments</key>
            <dict>
                <key>info_path</key>
                <string>%destination_path%</string>
                <key>plist_keys</key>
                <dict>
                    <key>CFBundleIdentifier</key>
                    <string>bundleid</string>
                    <key>CFBundleVersion</key>
                    <string>version</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PkgCreator</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_request</key>
                <dict>
                    <key>pkgname</key>
                    <string>%NAME%-%version%</string>
                    <key>chown</key>
                    <array>
                        <dict>
                            <key>path</key>
                            <string>Applications</string>
                            <key>user</key>
                            <string>root</string>
                            <key>group</key>
                            <string>admin</string>
                        </dict>
                    </array>
                    <key>id</key>
                    <string>%bundleid%</string>
                    <key>options</key>
                    <string>purge_ds_store</string>
                    <key>pkgdir</key>
                    <string>%RECIPE_CACHE_DIR%</string>
                    <key>pkgroot</key>
                    <string>%pkgroot%</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PathDeleter</string>
            <key>Arguments</key>
            <dict>
                <key>path_list</key>
                <array>
                    <string>%pkgroot%</string>                          
                </array>
            </dict>
        </dict>
    </array>
</dict>
</plist>

Any Video Converter Free for Mac/Any Video Converter Free for Mac.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest trial version of Any Video Converter Free for Mac and imports into Munki.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.Any Video Converter Free for Mac</string>
    <key>Input</key>
    <dict>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>NAME</key>
        <string>AnyVideoConverter</string>
        <key>pkginfo</key>
        <dict> 
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>Convert Videos Between Any Formats Freely! Any Video Converter Free is designed with no limitation and zero costs. It lets you effortlessly convert any video files to any format for FREE!</string>
            <key>display_name</key>
            <string>Any Video Converter Free for Mac</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
            <key>unattended_uninstall</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.Any Video Converter Free for Mac</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%pathname%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>
Any Video Converter Free for Mac/Any Video Converter Free for Mac.jss.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the current release version of Any Video Converter Free for Mac and then uploads to the JSS</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.jss.Any Video Converter Free for Mac</string>
    <key>Input</key>
    <dict>
        <key>CATEGORY</key>
        <string>Applications</string>
        <key>GROUP_NAME</key>
        <string>%NAME%-update-smart</string>
        <key>GROUP_TEMPLATE</key>
        <string>SmartGroupTemplate.xml</string>
        <key>NAME</key>
        <string>AnyVideoConverter</string>
        <key>POLICY_CATEGORY</key>
        <string>Testing</string>
        <key>POLICY_TEMPLATE</key>
        <string>PolicyTemplate.xml</string>
        <key>SELF_SERVICE_DESCRIPTION</key>
        <string>Convert Videos Between Any Formats Freely! Any Video Converter Free is designed with no limitation and zero costs. It lets you effortlessly convert any video files to any format for FREE!</string>
        <key>SELF_SERVICE_ICON</key>
        <string>AnyVideoConverter.png</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.pkg.Any Video Converter Free for Mac</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>JSSImporter</string>
            <key>Arguments</key>
            <dict>
                <key>category</key>
                <string>%CATEGORY%</string>
                <key>groups</key>
                <array>
                    <dict>
                        <key>name</key>
                        <string>%GROUP_NAME%</string>
                        <key>smart</key>
                        <true/>
                        <key>template_path</key>
                        <string>%GROUP_TEMPLATE%</string>
                    </dict>
                </array>
                <key>policy_category</key>
                <string>%POLICY_CATEGORY%</string>
                <key>policy_template</key>
                <string>%POLICY_TEMPLATE%</string>
                <key>prod_name</key>
                <string>%NAME%</string>
                <key>self_service_description</key>
                <string>%SELF_SERVICE_DESCRIPTION%</string>
                <key>self_service_icon</key>
                <string>%SELF_SERVICE_ICON%</string>
                <key>version</key>
                <string>%version%</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>

Any Video Converter Free for Mac/Any Video Converter Free for Mac.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Download recipe for the latest trial version of Any Video Converter Free for Mac.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.Any Video Converter Free for Mac</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>AnyVideoConverter</string>
        <key>SPARKLE_FEED_URL</key>
        <string>https://www.any-video-converter.com/products/mac_video_converter_freeware/su_feed_sl.xml</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>SparkleUpdateInfoProvider</string>
            <key>Arguments</key>
            <dict>
                <key>appcast_url</key>
                <string>%SPARKLE_FEED_URL%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>URLDownloader</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
            <key>Arguments</key>
            <dict>
                <key>input_path</key>
                <string>%pathname%/Any Video Converter.app</string>
                <key>requirement</key>
                <string>anchor apple generic and identifier "com.any.videoconverter.converter" 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] = "2PZNZ55XW6")</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>

Andrew Belt/VCV Rack.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of VCV Rack and imports it into Munki.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.VCVRack</string>
    <key>Input</key>
    <dict>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>NAME</key>
        <string>VCVRack</string>
        <key>pkginfo</key>
        <dict>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>VCV Rack is an free and open-source cross-platform software modular synthesizer.</string>
            <key>developer</key>
            <string>Andrew Belt</string>
            <key>display_name</key>
            <string>VCV Rack</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
            <key>unattended_uninstall</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>1.0.0</string>
    <key>ParentRecipe</key>
    <string>com.github.neilmartin83.download.VCVRack</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>MunkiInstallsItemsCreator</string>
            <key>Arguments</key>
            <dict>
                <key>faux_root</key>
                <string>%RECIPE_CACHE_DIR%/</string>
                <key>version_comparison_key</key>
                <string>CFBundleShortVersionString</string>
                <key>installs_item_paths</key>
                <array>
                    <string>/Applications/Rack.app</string>
                </array>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiPkginfoMerger</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>DmgCreator</string>
            <key>Arguments</key>
            <dict>
                <key>dmg_root</key>
                <string>%destination_path%</string>
                <key>dmg_path</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%.dmg</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%dmg_path%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PathDeleter</string>
            <key>Arguments</key>
            <dict>
                <key>path_list</key>
                <array>
                    <string>%destination_path%</string>
                </array>
            </dict>
        </dict>
    </array>
</dict>
</plist>

Anaconda 3/Anaconda3.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the current release version of Anaconda for Python 3 and imports it into Munki.

This differs from other recipes as we pull the version out of a .json file instead of the pkg receipts, as
the pkg receipts are all 0.

This is accomplished via our own custom processor (JSONFileReader) and an installcheck_script</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.Anaconda 3</string>
    <key>Input</key>
    <dict>
        <key>INSTALLER_TYPE</key>
        <string>pkg</string>
        <key>PYTHON_MAJOR_VERSION</key>
        <string>3</string>
        <key>MUNKI_CATALOGS</key>
        <string>testing</string>
        <key>MUNKI_CATEGORY</key>
        <string>Science</string>
        <key>MUNKI_DEVELOPER</key>
        <string>Continuum</string>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%/</string>
        <key>NAME</key>
        <string>Anaconda3</string>
        <key>DISPLAY_NAME</key>
        <string>Anaconda 3</string>
        <key>pkginfo</key>
        <dict>
            <key>catalogs</key>
            <array>
                <string>%MUNKI_CATALOGS%</string>
            </array>
            <key>category</key>
            <string>%MUNKI_CATEGORY%</string>
            <key>description</key>
            <string>Anaconda is a Python distribution which includes over 400 Python packages for science, math, engineering, and data analysis.</string>
            <key>developer</key>
            <string>%MUNKI_DEVELOPER%</string>
            <key>display_name</key>
            <string>%DISPLAY_NAME%</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>postuninstall_script</key>
            <string>#!/bin/bash
rm -rf "/Applications/Anaconda-Navigator.app"</string>
            <key>uninstall_method</key>
            <string>removepackages</string>
            <key>unattended_install</key>
            <true/>
            <key>unattended_uninstall</key>
            <true/>
        </dict>
    </dict>
    <key>ParentRecipe</key>
    <string>com.github.hansen-m.download.Anaconda3</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>FlatPkgUnpacker</string>
            <key>Arguments</key>
            <dict>
                 <key>destination_path</key>
                 <string>%RECIPE_CACHE_DIR%/unpack</string>
                 <key>flat_pkg_path</key>
                 <string>%pathname%</string>
                 <key>purge_destination</key>
                 <true/>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PkgPayloadUnpacker</string>
            <key>Arguments</key>
            <dict>
                 <key>destination_path</key>
                 <string>%RECIPE_CACHE_DIR%/tmp/</string>
                 <key>pkg_payload_path</key>
                 <string>%RECIPE_CACHE_DIR%/unpack/preconda.pkg/Payload</string>
                 <key>purge_destination</key>
                 <true/>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>Unarchiver</string>
            <key>Arguments</key>
            <dict>
                <key>archive_path</key>
                <string>%RECIPE_CACHE_DIR%/tmp/anaconda3/tmp.tar</string>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/tar/</string>
                <key>purge_destination</key>
                <true/>
            </dict>
        </dict>
         <dict>
            <key>Processor</key>
            <string>FileFinder</string>
            <key>Arguments</key>
            <dict>
               <key>pattern</key>
               <string>%RECIPE_CACHE_DIR%/tar/pkgs/anaconda-*.tar.bz2</string>
            </dict>
         </dict>
        <dict>
            <key>Processor</key>
            <string>Unarchiver</string>
            <key>Arguments</key>
            <dict>
                <key>archive_format</key>
                <string>tar</string>
                <key>archive_path</key>
                <string>%found_filename%</string>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/info/</string>
                <key>purge_destination</key>
                <true/>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>com.github.dataJAR-recipes.Shared Processors/JSONFileReader</string>
            <key>Arguments</key>
            <dict>
                <key>json_key</key>
                <string>conda_version</string>
                <key>json_path</key>
                <string>%RECIPE_CACHE_DIR%/info/info/about.json</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiPkginfoMerger</string>
            <key>Arguments</key>
            <dict>
                <key>additional_pkginfo</key>
                <dict>
                    <key>version</key>
                    <string>%json_value%</string>
                    <key>installcheck_script</key>
                    <string>#!/usr/local/munki/munki-python
# pylint: disable = invalid-name

'''
Copyright (c) 2021, dataJAR Ltd.  All rights reserved.
     Redistribution and use in source and binary forms, with or without
     modification, are permitted provided that the following conditions are met:
             * Redistributions of source code must retain the above copyright
               notice, this list of conditions and the following disclaimer.
             * Redistributions in binary form must reproduce the above copyright
               notice, this list of conditions and the following disclaimer in the
               documentation and/or other materials provided with the distribution.
             * Neither data JAR Ltd nor the names of its contributors may be used to
               endorse or promote products derived from this software without specific
               prior written permission.
     THIS SOFTWARE IS PROVIDED BY DATA JAR LTD 'AS IS' AND ANY
     EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
     WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
     DISCLAIMED. IN NO EVENT SHALL DATA JAR LTD BE LIABLE FOR ANY
     DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
     (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
     ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
     (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
     SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
SUPPORT FOR THIS PROGRAM
    This program is distributed 'as is' by DATA JAR LTD.
    For more information or support, please utilise the following resources:
            http://www.datajar.co.uk

DESCRIPTION

See docstring in main()

'''

from distutils.version import LooseVersion
import os
import sys
import subprocess


def main():
    '''
        Get conda version (if installed)

        Exit 1 if conda is installed and newer than what we have in Munki

        Based on:
        https://github.com/autopkg/andrewzirkel-recipes/blob/master/LightspeedRelaySmartAgent/LightspeedRelaySmartAgent.munki.recipe#L46
    '''

    conda_binary = '/opt/anaconda3/bin/conda'
    munki_version = '%json_value%'

    # If the binary exists
    if os.path.isfile(conda_binary):

        try:
            installed_ver = subprocess.check_output([conda_binary, '-V']).split()[1].decode('utf-8')
        except subprocess.CalledProcessError:
            print("Encountered an error when ascertaining conda version, "
                  "proceeding with install...")
            sys.exit(0)

        if LooseVersion(installed_ver) &lt; LooseVersion(munki_version):
            # The Anaconda pkg will not install if it finds an existing install, so we'll use the binary
            print("Older version of conda binary located, updating via binary...")
            try:
                subprocess.check_output([conda_binary, 'update', 'conda', '-y'])
            except subprocess.CalledProcessError:
                print("Encountered an error when update conda via binary...")
            sys.exit(1)
        print("Version of conda binary same or newer than the munki version, skipping...")
        sys.exit(1)

    print("Cannot locate conda binary, proceeding with install...")
    sys.exit(0)

if __name__ == '__main__':
    main()
</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%pathname%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PathDeleter</string>
            <key>Arguments</key>
            <dict>
                <key>path_list</key>
                <array>
                    <string>%RECIPE_CACHE_DIR%/info</string>
                    <string>%RECIPE_CACHE_DIR%/tar</string>
                    <string>%RECIPE_CACHE_DIR%/tmp</string>
                    <string>%RECIPE_CACHE_DIR%/unpack</string>
                </array>
            </dict>
        </dict>
    </array>
</dict>
</plist>

AmazonCorrettoJDK/AmazonCorrettoJava8.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>Identifier</key>
	<string>com.github.dataJAR-recipes.munki.AmazonCorrettoJava8</string>
	<key>Description</key>
	<string>Downloads the current release version of Amazon Coretto 8, builds a package and imports it into Munki. This is based from the tar version rather than the signed pkg version, so that the true version number can be obtained.</string>
	<key>Input</key>
	<dict>
		<key>NAME</key>
		<string>Amazon Coretto 8</string>
		<key>SOFTWARETITLE</key>
		<string>Java</string>
		<key>SOFTWARETYPE</key>
		<string>JDK</string>
		<key>VENDOR</key>
		<string>OpenJDK</string>
		<key>MUNKI_REPO_SUBDIR</key>
        <string>%VENDOR%</string>
        <key>pkginfo</key>
        <dict>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>category</key>
            <string>%SOFTWARETYPE%</string>
            <key>description</key>
            <string>Java is one of the most popular languages in use by AWS customers, and we are committed to supporting Java and keeping it free.</string>
            <key>developer</key>
            <string>%VENDOR%</string>
            <key>display_name</key>
            <string>Amazon Coretto 8</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
            <key>unattended_uninstall</key>
            <true/>
            <key>uninstallable</key>
            <true/>
        </dict>        
	</dict>
	<key>ParentRecipe</key>
	<string>com.github.grahampugh.recipes.pkg.AmazonCorrettoJava8</string>
    <key>Process</key>
    <array>
        <dict>
             <key>Processor</key>
             <string>DeprecationWarning</string>
             <key>Arguments</key>
             <dict>
                 <key>warning_message</key>
                 <string>This recipe has been replaced by - https://github.com/autopkg/dataJAR-recipes/tree/master/Amazon%20Corretto%208</string>
              </dict>
         </dict>
         <dict>   
             <key>Processor</key>   
             <string>StopProcessingIf</string>   
             <key>Arguments</key>   
             <dict>   
                 <key>predicate</key>   
                 <string>TRUEPREDICATE</string>
             </dict>
         </dict>
        <dict>
            <key>Arguments</key>
            <dict>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
        </dict>
    </array>
</dict>
</plist>

Amazon Corretto 8/Amazon Corretto 8.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.Amazon Corretto 8</string>
    <key>Description</key>
    <string>Downloads the current release version of Amazon Coretto 8 and imports it into Munki.</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>Amazon Coretto 8</string>
        <key>SOFTWARETITLE</key>
        <string>Java</string>
        <key>SOFTWARETYPE</key>
        <string>JDK</string>
        <key>VENDOR</key>
        <string>OpenJDK</string>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>%VENDOR%</string>
        <key>pkginfo</key>
        <dict>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>category</key>
            <string>%SOFTWARETYPE%</string>
            <key>description</key>
            <string>Java is one of the most popular languages in use by AWS customers, and we are committed to supporting Java and keeping it free.</string>
            <key>developer</key>
            <string>%VENDOR%</string>
            <key>display_name</key>
            <string>Amazon Coretto 8</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
            <key>unattended_uninstall</key>
            <true/>
            <key>uninstallable</key>
            <true/>
        </dict>
    </dict>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.Amazon Corretto 8</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>FlatPkgUnpacker</string>
            <key>Arguments</key>
            <dict>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/unpack/</string>
                <key>flat_pkg_path</key>
                <string>%pathname%</string>
                <key>purge_destination</key>
                <true/>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PkgPayloadUnpacker</string>
            <key>Arguments</key>
            <dict>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%</string>
                <key>pkg_payload_path</key>
                <string>%RECIPE_CACHE_DIR%/unpack/amazon-corretto-8.jdk.pkg/Payload</string>
                <key>purge_destination</key>
                <true/>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PlistReader</string>
            <key>Arguments</key>
            <dict>
                <key>info_path</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%/Library/Java/JavaVirtualMachines/amazon-corretto-8.jdk/Contents/Info.plist</string>
                <key>plist_keys</key>
                <dict>
                    <key>CFBundleShortVersionString</key>
                    <string>version</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiPkginfoMerger</string>
            <key>Arguments</key>
            <dict>
                <key>additional_pkginfo</key>
                <dict>
                    <key>version</key>
                    <string>%version%</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiInstallsItemsCreator</string>
            <key>Arguments</key>
            <dict>
                <key>faux_root</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%</string>
                <key>installs_item_paths</key>
                <array>
                    <string>/Library/Java/JavaVirtualMachines/amazon-corretto-8.jdk</string>
                </array>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiPkginfoMerger</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%pathname%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
                <key>version_comparison_key</key>
                <string>CFBundleVersion</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PathDeleter</string>
            <key>Arguments</key>
            <dict>
                <key>path_list</key>
                <array>
                    <string>%RECIPE_CACHE_DIR%/%NAME%/</string>
                    <string>%RECIPE_CACHE_DIR%/unpack/</string>
                </array>
            </dict>
        </dict>
    </array>
</dict>
</plist>

Amazon Corretto 8/Amazon Corretto 8.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of Amazon Corretto 8.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.Amazon Corretto 8</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>AmazonCorretto8</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Arguments</key>
            <dict>
                <key>filename</key>
                <string>%NAME%.pkg</string>
                <key>url</key>
                <string>https://corretto.aws/downloads/latest/amazon-corretto-8-x64-macos-jdk.pkg</string>
            </dict>
            <key>Processor</key>
            <string>URLDownloader</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
            <key>Arguments</key>
            <dict>
                <key>input_path</key>
                <string>%pathname%</string>
                <key>expected_authority_names</key>
                <array>
                    <string>Developer ID Installer: AMZN Mobile LLC (94KV3E626L)</string>
                    <string>Developer ID Certification Authority</string>
                    <string>Apple Root CA</string>
                </array>
            </dict>
        </dict>
    </array>
</dict>
</plist>

Aircall/Aircall.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
    <dict>
        <key>Description</key>
        <string>Downloads the latest version of Aircall and imports into Munki</string>
        <key>Identifier</key>
        <string>com.github.dataJAR-recipes.munki.Aircall</string>
        <key>Input</key>
        <dict>
            <key>MUNKI_REPO_SUBDIR</key>
            <string>apps/%NAME%</string>
            <key>NAME</key>
            <string>Aircall</string>
            <key>pkginfo</key>
            <dict>
                <key>catalogs</key>
                <array>
                    <string>testing</string>
                </array>
                <key>description</key>
                <string>Simple to set up. Easy to use. Cloud-based call center software connected to your tools.</string>
                <key>developer</key>
                <string>Aircall.io Inc</string>
                <key>display_name</key>
                <string>Aircall</string>
                <key>name</key>
                <string>%NAME%</string>
                <key>unattended_install</key>
                <true></true>
                <key>unattended_uninstall</key>
                <true></true>
            </dict>
        </dict>
        <key>MinimumVersion</key>
        <string>0.5.0</string>
        <key>ParentRecipe</key>
        <string>com.github.ahousseini-recipes.download.Aircall</string>
        <key>Process</key>
        <array>
        <dict>
            <key>Processor</key>
            <string>Copier</string>
            <key>Arguments</key>
            <dict>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/Applications/Aircall.app</string>
                <key>overwrite</key>
                <true/>
                <key>source_path</key>
                <string>%input_path%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiInstallsItemsCreator</string>
            <key>Arguments</key>
            <dict>
                <key>faux_root</key>
                <string>%RECIPE_CACHE_DIR%</string>
                <key>installs_item_paths</key>
                <array>
                    <string>/Applications/Aircall.app</string>
                </array>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiPkginfoMerger</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>DmgCreator</string>
            <key>Arguments</key>
            <dict>
                <key>dmg_path</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%.dmg</string>
                <key>dmg_root</key>
                <string>%RECIPE_CACHE_DIR%/Applications</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%dmg_path%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PathDeleter</string>
            <key>Arguments</key>
            <dict>
                <key>path_list</key>
                <array>
                    <string>%RECIPE_CACHE_DIR%/Applications</string>
                    <string>%RECIPE_CACHE_DIR%/%NAME%</string>
                </array>
            </dict>
        </dict>
    </array>
</dict>
</plist>
AirParrot 2-Trial/AirParrot 2-Trial.png METASEP

AirParrot 2-Trial/AirParrot 2-Trial.pkg.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of AirParrot 2-Trial and creates a package.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.pkg.AirParrot 2-Trial</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>AirParrot 2-Trial</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.AirParrot 2-Trial</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>AppPkgCreator</string>
        </dict>
    </array>
</dict>
</plist>

AirParrot 2-Trial/AirParrot 2-Trial.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads thev latest ersion of AirParrot 2 and imports into Munki.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.AirParrot 2-Trial</string>
    <key>Input</key>
    <dict>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>NAME</key>
        <string>AirParrot 2</string>
        <key>pkginfo</key>
        <dict>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>AirParrot allows you to wirelessly beam your screen or media files to a variety of media receivers. AirParrot quickly discovers available receivers on your network, and uses Quick Connect® to connect directly to a device running Reflector 2™. Easily share your screen, videos, audio, presentations and so much more.</string>
            <key>display_name</key>
            <string>AirParrot 2</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
            <key>unattended_uninstall</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.2.0</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.AirParrot 2-Trial</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%pathname%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
        </dict>
    </array>
</dict>
</plist>

AirParrot 2-Trial/AirParrot 2-Trial.jss.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>Description</key>
	<string>Downloads the current release version of AirParrot 2-Trial and then uploads to the JSS</string>
	<key>Identifier</key>
	<string>com.github.dataJAR-recipes.jss.AirParrot 2-Trial</string>
	<key>Input</key>
	<dict>
		<key>CATEGORY</key>
		<string>Applications</string>
		<key>GROUP_NAME</key>
		<string>%NAME%-update-smart</string>
		<key>GROUP_TEMPLATE</key>
		<string>SmartGroupTemplate.xml</string>
		<key>NAME</key>
		<string>AirParrot 2-Trial</string>
		<key>POLICY_CATEGORY</key>
		<string>Testing</string>
		<key>POLICY_TEMPLATE</key>
		<string>PolicyTemplate.xml</string>
		<key>SELF_SERVICE_DESCRIPTION</key>
		<string>AirParrot allows you to wirelessly beam your screen or media files to a variety of media receivers. AirParrot quickly discovers available receivers on your network, and uses Quick Connect® to connect directly to a device running Reflector 2™. Easily share your screen, videos, audio, presentations and so much more.</string>
		<key>SELF_SERVICE_ICON</key>
		<string>AirParrot 2-Trial.png</string>
	</dict>
	<key>MinimumVersion</key>
	<string>0.2.0</string>
	<key>ParentRecipe</key>
	<string>com.github.dataJAR-recipes.pkg.AirParrot 2-Trial</string>
	<key>Process</key>
	<array>
		<dict>
			<key>Arguments</key>
			<dict>
				<key>category</key>
				<string>%CATEGORY%</string>
				<key>groups</key>
				<array>
					<dict>
						<key>name</key>
						<string>%GROUP_NAME%</string>
						<key>smart</key>
						<true/>
						<key>template_path</key>
						<string>%GROUP_TEMPLATE%</string>
					</dict>
				</array>
				<key>policy_category</key>
				<string>%POLICY_CATEGORY%</string>
				<key>policy_template</key>
				<string>%POLICY_TEMPLATE%</string>
				<key>prod_name</key>
				<string>%NAME%</string>
				<key>self_service_description</key>
				<string>%SELF_SERVICE_DESCRIPTION%</string>
				<key>self_service_icon</key>
				<string>%SELF_SERVICE_ICON%</string>
				<key>version</key>
				<string>%version%</string>
			</dict>
			<key>Processor</key>
			<string>JSSImporter</string>
		</dict>
	</array>
</dict>
</plist>

AirParrot 2-Trial/AirParrot 2-Trial.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Download recipe the trial version of AirParrot 2.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.AirParrot 2-Trial</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>AirParrot 2</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.2.0</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Arguments</key>
            <dict>
                <key>re_pattern</key>
                <string>https:\/\/download\.airsquirrels\.com\/AirParrot2\/Mac\/AirParrot-\S*\.dmg</string>
                <key>result_output_var_name</key>
                <string>match</string>
                <key>url</key>
                <string>https://www.airsquirrels.com/airparrot/download</string>
            </dict>
            <key>Processor</key>
            <string>URLTextSearcher</string>
        </dict>
        <dict>
            <key>Arguments</key>
            <dict>
                <key>url</key>
                <string>%match%</string>
            </dict>
            <key>Processor</key>
            <string>URLDownloader</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
        <dict>
            <key>Arguments</key>
            <dict>
                <key>input_path</key>
                <string>%pathname%/AirParrot 2.app</string>
                <key>requirement</key>
                <string>identifier "com.squirrels.AirParrot-2" and anchor apple generic and 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] = "67X2M9MT5G"</string>
            </dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
        </dict>
    </array>
</dict>
</plist>

Adobe CC 2019/UninstallSmartGroupTemplate.xml METASEP
<computer_group>
	<name>%group_name%</name>
	<is_smart>true</is_smart>
	<criteria>
		<criterion>
			<name>Application Title</name>
			<priority>0</priority>
			<and_or>and</and_or>
			<search_type>is</search_type>
			<value>%JSS_INVENTORY_NAME%</value>
		</criterion>
		<criterion>
			<name>Application Version</name>
			<priority>1</priority>
			<and_or>and</and_or>
			<search_type>is</search_type>
			<value>%VERSION%</value>
		</criterion>
		<criterion>
			<name>Computer Group</name>
			<priority>2</priority>
			<and_or>and</and_or>
			<search_type>member of</search_type>
			<value>Testing</value>
		</criterion>
	</criteria>
</computer_group>

Adobe CC 2019/UninstallPolicyTemplate.xml METASEP
<policy>
	<general>
		<name>Uninstall Latest %PROD_NAME%</name>
		<enabled>true</enabled>
		<frequency>Ongoing</frequency>
		<category>
			<name>%POLICY_CATEGORY%</name>
		</category>
	</general>
	<scope>
		<!--Scope added by JSSImporter-->
	</scope>
	<package_configuration>
		<!--Package added by JSSImporter-->
	</package_configuration>
	<scripts>
		<!--Scripts added by JSSImporter-->
	</scripts>
	<self_service>
		<use_for_self_service>true</use_for_self_service>
		<install_button_text>Uninstall %VERSION%</install_button_text>
		<self_service_description>%SELF_SERVICE_DESCRIPTION%</self_service_description>
	</self_service>
	<maintenance>
		<recon>true</recon>
	</maintenance>
</policy>

Adobe CC 2019/README.md METASEP
# Import Adobe CC 2019 Title

## About
These recipes are based on: https://github.com/autopkg/adobe-ccp-recipes

But with the death of Creative Cloud Packager (https://macmule.com/2018/10/15/adobe-creative-cloud-2019-the-death-of-creative-cloud-packager-device-licensing/), have been rejigged to work with locally downloaded pkg's.

## Pre-reqs

1. Download the wanted Adobe CC 2019 Titles to your ~/Downloads folder from the Adobe Admin Console, with the naming convention of:

• Adobe*AppName*CC2019

For example:

AdobeAcrobatDCCC2019    
AdobeAfterEffectsCC2019    
AdobeAnimateCC2019    
AdobeAuditionCC2019    
AdobeBridgeCC2019    
AdobeCharacterAnimatorCC2019    
AdobeDimensionCC2019    
AdobeDreamweaverCC2019    
AdobeIllustratorCC2019    
AdobeInCopyCC2019    
AdobeInDesignCC2019    
AdobeLightroomCC2019    
AdobeLightroomClassicCC2019    
AdobeMediaEncoderCC2019    
AdobePhotoshopCC2019    
AdobePreludeCC2019    
AdobePremiereProCC2019    
AdobePremiereRushCC2019    
AdobeXDCC2019

These will need to be unzipped, if your browser does not unzip the downloads from the Adobe Admin Console.

*Please Note:* Keep the name of the unzipped directory the same as the the installer/uninstaller package within. 
Also, these packages should only contain a maximum of the Creative Cloud Desktop App (CCDA) and one other App (e.g. CCDA and Photoshop) only. Most of the Adobe Templates for packages aren't compatible with this.

2. Create the respective munki or jss recipe overrides, & name them the same as the Adobe CC 2019 pkg.

For example:

`AdobeAcrobatDCCC2019.jss.recipe`
`AdobeAcrobatDCCC2019.munki.recipe`

## Usage
With the pre-reqs met, you can run the [AdobeCC2019Importer.py](https://github.com/autopkg/dataJAR-recipes/blob/master/Adobe%20CC%202019/AdobeCC2019Importer.py) script found in this repo.

You will need to pass to [AdobeCC2019Importer.py](https://github.com/autopkg/dataJAR-recipes/blob/master/Adobe%20CC%202019/AdobeCC2019Importer.py) the recipe type, which would be either jss or munki.

For example:

`/path/to/AdobeCC2019Importer.py jss` or `/path/to/AdobeCC2019Importer.py munki`

## Process
[AdobeCC2019Importer.py](https://github.com/autopkg/dataJAR-recipes/blob/master/Adobe%20CC%202019/AdobeCC2019Importer.py) will:

1. Check the running users ~/Downloads folder for folders matching the pattern: Adobe\*CC2019, exiting if nothing found.
2. Creates an empty recipe list at ~/Downloads/adobecc2019_list.txt
3. Check that the Adobe&ast;CC2019 folders contain an sub directory called Build containing a pkg called \*\_Install.pkg, skipping this pkg if not found.
4. If step 3 passes for a pkg, next we look for an override named Adobe\*CC2019.jss.recipe or Adobe\*CC2019.munki.recipe (depending on what option was passed to [AdobeCC2019Importer.py](https://github.com/autopkg/dataJAR-recipes/blob/master/Adobe%20CC%202019/AdobeCC2019Importer.py), skipping this pkg if not found.
5. If step 4 is successful, the Override added to the ~/Downloads/adobecc2019_list.txt recipe list. Steps 3-5 are repeated for all Adobe&ast;CC2019 folders found within ~/Downloads.
6. If any items are added to the ~/Downloads/adobecc2019_list.txt recipe list, this is then ran with a report written to ~/Downloads/adobecc2019_report.plist

## Note
You should be able to periodically downloaded updated packages from the Adobe Admin Console & then run [AdobeCC2019Importer.py](https://github.com/autopkg/dataJAR-recipes/blob/master/Adobe%20CC%202019/AdobeCC2019Importer.py).

With [AdobeCC2019Importer.py](https://github.com/autopkg/dataJAR-recipes/blob/master/Adobe%20CC%202019/AdobeCC2019Importer.py) only importing items which are newer than you have within your JPS or Munki repo.








Adobe CC 2019/Adobe CC 2019 Import.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
    <dict>
        <key>Description</key>
        <string>Import a Creative Cloud Application's pkg into Munki</string>
        <key>Identifier</key>
        <string>com.github.dataJAR-recipes.munki.Import Adobe CC 2019 Title</string>
        <key>Input</key>
        <dict>
            <key>MINIMUM_OS_VERSION</key>
            <string>10.12.0</string>
            <key>MUNKI_CATEGORY</key>
            <string>Applications</string>
            <key>MUNKI_DESCRIPTION</key>
            <string>Some description.</string>
            <key>MUNKI_DEVELOPER</key>
            <string>Adobe</string>
            <key>NAME</key>
            <string>SomeAdobeCC2019Title</string>
            <key>MUNKI_REPO_SUBDIR</key>
            <string>%MUNKI_CATEGORY%/%MUNKI_DEVELOPER%/%MUNKI_NAME%</string>
            <key>pkginfo</key>
            <dict>
                <key>catalogs</key>
                <array>
                    <string>testing</string>
                </array>
                <key>category</key>
                <string>%MUNKI_CATEGORY%</string>
                <key>description</key>
                <string>%MUNKI_DESCRIPTION%</string>
                <key>developer</key>
                <string>%MUNKI_DEVELOPER%</string>
                <key>name</key>
                <string>%NAME%</string>
                <key>RestartAction</key>
                <string>RequireLogout</string>
                <key>unattended_install</key>
                <true/>
                <key>unattended_uninstall</key>
                <true/>
            </dict>
        </dict>
        <key>MinimumVersion</key>
        <string>1.0.0</string>
        <key>Process</key>
        <array>
            <dict>
                <key>Processor</key>
                <string>AdobeCC2019Versioner</string>
            </dict>
            <dict>
                <key>Processor</key>
                <string>DmgCreator</string>
                <key>Arguments</key>
                <dict>
                    <key>dmg_root</key>
                    <string>%pkg_path%</string>
                    <key>dmg_path</key>
                    <string>%RECIPE_CACHE_DIR%/%NAME%_Install-%version%.dmg</string>
                </dict>
            </dict>
            <dict>
                <key>Processor</key>
                <string>DmgCreator</string>
                <key>Arguments</key>
                <dict>
                    <key>dmg_root</key>
                    <string>%uninstaller_pkg_path%</string>
                    <key>dmg_path</key>
                    <string>%RECIPE_CACHE_DIR%/%NAME%_Uninstall-%version%.dmg</string>
                </dict>
            </dict>
            <dict>
                <key>Processor</key>
                <string>MunkiPkginfoMerger</string>
            </dict>
            <dict>
                <key>Processor</key>
                <string>MunkiPkginfoMerger</string>
                <key>Arguments</key>
                <dict>
                    <key>additional_pkginfo</key>
                    <dict>
                        <key>version</key>
                        <string>%version%</string>
                    </dict>
                </dict>
            </dict>
            <dict>
                <key>Processor</key>
                <string>MunkiImporter</string>
                <key>Arguments</key>
                <dict>
                    <key>pkg_path</key>
                    <string>%RECIPE_CACHE_DIR%/%NAME%_Install-%version%.dmg</string>
                    <key>uninstaller_pkg_path</key>
                    <string>%RECIPE_CACHE_DIR%/%NAME%_Uninstall-%version%.dmg</string>
                    <key>repo_subdirectory</key>
                    <string>%MUNKI_REPO_SUBDIR%</string>
                </dict>
            </dict>
        </array>
    </dict>
</plist>

Adobe CC 2019/Adobe CC 2019 Import.jss.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
    <dict>
        <key>Description</key>
        <string>Import a Creative Cloud Application's pkg into a JSS.</string>
        <key>Identifier</key>
        <string>com.github.dataJAR-recipes.jss.Import Adobe CC 2019 Title</string>
        <key>Input</key>
        <dict>
            <key>NAME</key>
            <string>SomeAdobeCC2019Title</string>
            <key>MINIMUM_OS_VERSION</key>
            <string>10.12.0</string>
        	<key>SELF_SERVICE_DESCRIPTION</key>
            <string>Some description.</string>
            <key>CATEGORY</key>
            <string>Productivity</string>
            <key>GROUP_NAME</key>
            <string>%NAME%-update-smart</string>
            <key>GROUP_TEMPLATE</key>
            <string>SmartGroupTemplate.xml</string>
            <key>POLICY_CATEGORY</key>
            <string>Testing</string>
            <key>POLICY_TEMPLATE</key>
            <string>PolicyTemplate.xml</string>
            <key>UNINSTALL_CATEGORY</key>
            <string>Uninstallers</string>
            <key>UNINSTALL_GROUP_NAME</key>
            <string>%NAME%-uninstall</string>
            <key>UNINSTALL_GROUP_TEMPLATE</key>
            <string>UninstallSmartGroupTemplate.xml</string>
            <key>UNINSTALL_POLICY_CATEGORY</key>
            <string>Testing</string>
            <key>UNINSTALL_POLICY_TEMPLATE</key>
            <string>UninstallPolicyTemplate.xml</string>
            <key>SELF_SERVICE_ICON</key>
            <string></string>
        </dict>
        <key>MinimumVersion</key>
        <string>1.0.0</string>
        <key>Process</key>
        <array>
        	<dict>
                <key>Processor</key>
                <string>AdobeCC2019Versioner</string>
            </dict>
            <dict>
                <key>Processor</key>
                <string>Copier</string>
                <key>Arguments</key>
                <dict>
                    <key>source_path</key>
                    <string>%pkg_path%</string>
                    <key>destination_path</key>
                    <string>%RECIPE_CACHE_DIR%/%NAME%_Install-%version%.pkg</string>
                </dict>
            </dict>
            <dict>
                <key>Processor</key>
                <string>JSSImporter</string>
                <key>Arguments</key>
                <dict>
                    <key>category</key>
                    <string>%CATEGORY%</string>
                    <key>groups</key>
                    <array>
                        <dict>
                            <key>name</key>
                            <string>%GROUP_NAME%</string>
                            <key>smart</key>
                            <true/>
                            <key>template_path</key>
                            <string>%GROUP_TEMPLATE%</string>
                        </dict>
                    </array>
                    <key>jss_inventory_name</key>
                    <string>%jss_inventory_name%</string>
                    <key>pkg_path</key>
                    <string>%destination_path%</string>
                    <key>policy_category</key>
                    <string>%POLICY_CATEGORY%</string>
                    <key>policy_template</key>
                    <string>%POLICY_TEMPLATE%</string>
                    <key>prod_name</key>
                    <string>%NAME%</string>
                    <key>self_service_description</key>
                    <string>%SELF_SERVICE_DESCRIPTION%</string>
                    <key>self_service_icon</key>
                    <string>%SELF_SERVICE_ICON%</string>
                </dict>
            </dict>
            <dict>
                <key>Processor</key>
                <string>PathDeleter</string>
                <key>Arguments</key>
                <dict>
                    <key>path_list</key>
                    <string>%destination_path%</string>
                </dict>
            </dict>
            <dict>
                <key>Processor</key>
                <string>Copier</string>
                <key>Arguments</key>
                <dict>
                    <key>source_path</key>
                    <string>%uninstaller_pkg_path%</string>
                    <key>destination_path</key>
                    <string>%RECIPE_CACHE_DIR%/%NAME%_Uninstall-%version%.pkg</string>
                </dict>
            </dict>
            <dict>
                <key>Processor</key>
                <string>JSSImporter</string>
                <key>Arguments</key>
                <dict>
                    <key>category</key>
                    <string>%UNINSTALL_CATEGORY%</string>
                    <key>groups</key>
                    <array>
                        <dict>
                            <key>name</key>
                            <string>%UNINSTALL_GROUP_NAME%</string>
                            <key>smart</key>
                            <true/>
                            <key>template_path</key>
                            <string>%UNINSTALL_GROUP_TEMPLATE%</string>
                        </dict>
                    </array>
                    <key>jss_inventory_name</key>
                    <string>%jss_inventory_name%</string>
                    <key>pkg_path</key>
                    <string>%destination_path%</string>
                    <key>policy_category</key>
                    <string>%UNINSTALL_POLICY_CATEGORY%</string>
                    <key>policy_template</key>
                    <string>%UNINSTALL_POLICY_TEMPLATE%</string>
                    <key>prod_name</key>
                    <string>%NAME%</string>
                    <key>self_service_icon</key>
                    <string>%SELF_SERVICE_ICON%</string>
                </dict>
            </dict>
            <dict>
                <key>Processor</key>
                <string>PathDeleter</string>
                <key>Arguments</key>
                <dict>
                    <key>path_list</key>
                    <string>%destination_path%</string>
                </dict>
            </dict>
        </array>
    </dict>
</plist>
Adobe 2021/UninstallSmartGroupTemplate.xml METASEP
<computer_group>
	<name>%group_name%</name>
	<is_smart>true</is_smart>
	<criteria>
		<criterion>
			<name>Application Title</name>
			<priority>0</priority>
			<and_or>and</and_or>
			<search_type>is</search_type>
			<value>%JSS_INVENTORY_NAME%</value>
		</criterion>
		<criterion>
			<name>Application Version</name>
			<priority>1</priority>
			<and_or>and</and_or>
			<search_type>is</search_type>
			<value>%VERSION%</value>
		</criterion>
		<criterion>
			<name>Computer Group</name>
			<priority>2</priority>
			<and_or>and</and_or>
			<search_type>member of</search_type>
			<value>Testing</value>
		</criterion>
	</criteria>
</computer_group>

Adobe 2021/UninstallPolicyTemplate.xml METASEP
<policy>
	<general>
		<name>Uninstall Latest %PROD_NAME%</name>
		<enabled>true</enabled>
		<frequency>Ongoing</frequency>
		<category>
			<name>%POLICY_CATEGORY%</name>
		</category>
	</general>
	<scope>
		<!--Scope added by JSSImporter-->
	</scope>
	<package_configuration>
		<!--Package added by JSSImporter-->
	</package_configuration>
	<scripts>
		<!--Scripts added by JSSImporter-->
	</scripts>
	<self_service>
		<use_for_self_service>true</use_for_self_service>
		<install_button_text>Uninstall %VERSION%</install_button_text>
		<self_service_description>%SELF_SERVICE_DESCRIPTION%</self_service_description>
	</self_service>
	<maintenance>
		<recon>true</recon>
	</maintenance>
</policy>

Adobe 2021/README.md METASEP
# Import Adobe 2021 Title

## About
These recipes are based on: https://github.com/autopkg/adobe-ccp-recipes

But with the death of Creative Cloud Packager (https://macmule.com/2018/10/15/adobe-creative-cloud-2019-the-death-of-creative-cloud-packager-device-licensing/), have been rejigged to work with locally downloaded pkgs.

***Please Note:*** Imports have now been tested with all titles Adobe have released for 2021

***Please Note:*** Munki support has been added for Adobe's new Intel-only and Apple Silicon-only packages, please see section *[Adobe and Apple Silicon](https://github.com/autopkg/dataJAR-recipes/blob/master/Adobe%202021/README.md#adobe-and-apple-silicon)* below

## Pre-reqs

1) Build the wanted Adobe 2021 titles from the Adobe Admin Console.

*Please Note:* These should be of the **Managed Package** variety, as a Self Service package does not create the required `_Uninstall.pkg` which is needed by the [Adobe2021Versioner.py](https://github.com/autopkg/dataJAR-recipes/blob/master/Adobe%202021/Adobe2021Versioner.py) processor. See [this issue](https://github.com/autopkg/dataJAR-recipes/issues/39) for more info.

2) For each Adobe package title, use the naming convention of:

Adobe*AppName*2021

For example:

- AdobeAcrobatDC2021   
- AdobeAfterEffects2021   
- AdobeAnimate2021    
- AdobeAudition2021   
- AdobeBridge2021   
- AdobeCharacterAnimator2021  
- AdobeDimension2021    
- AdobeDreamweaver2021  
- AdobeIllustrator2021    
- AdobeInCopy2021   
- AdobeInDesign2021  
- AdobeLightroom2021  
- AdobeLightroomClassic2021   
- AdobeMediaEncoder2021   
- AdobePhotoshop2021    
- AdobePrelude2021   
- AdobePremierePro2021   
- AdobePremiereRush2021   
- AdobeXD2021

With the latest commit, we can also accept a naming convention that starts with Adobe and has 2021 somewhere in the name. For example:

- AdobeAcrobatDC2021
- AdobeAcrobatDC2021-Intel
- AdobeAcrobatDC2021-ARM

3) Mount the Adobe downloader DMG and run the download application. Once downloaded, unzip the file if your browser does not auto unzip the download. This must be in your `~/Downloads` folder.

*Please Note:* Keep the name of the unzipped directory the same as the the installer/uninstaller package within.

Also, these packages should only contain a maximum of the Creative Cloud Desktop App (CCDA) and only **one** other App (e.g. CCDA and Photoshop). Most of the Adobe-supplied Templates for packages aren't compatible with this.

4) Create the respective munki or jss recipe overrides. The override name **must** be the same as the Adobe 2021 pkg. 

For example:

`AdobeAcrobatDC2021.jss.recipe`
`AdobeAcrobatDC2021.munki.recipe`

*Please Note:* The [Adobe2021Importer.py](https://github.com/autopkg/dataJAR-recipes/blob/master/Adobe%202021/Adobe2021Importer.py) script assumes your autopkg overrides live in `~/Library/AutoPkg/RecipeOverrides`.

5) The `NAME` input variable must also match the Adobe package title. For Munki admins, the "MUNKI_NAME" input can be used to specify a different Munki Name for the import.

## Usage

With the pre-reqs met, you can run the [Adobe2021Importer.py](https://github.com/autopkg/dataJAR-recipes/blob/master/Adobe%202021/Adobe2021Importer.py) script found in this repo.

You will need to pass to [Adobe2021Importer.py](https://github.com/autopkg/dataJAR-recipes/blob/master/Adobe%202021/Adobe2021Importer.py) the recipe type, which would be either jss or munki.

For example:

`/path/to/Adobe2021Importer.py jss` or `/path/to/Adobe2021Importer.py munki`

## Process
[Adobe2021Importer.py](https://github.com/autopkg/dataJAR-recipes/blob/master/Adobe%202021/Adobe2021Importer.py) will:

1. Check the running users ~/Downloads folder for folders matching the pattern: Adobe&ast;2021&ast;, exiting if nothing found.
2. Create an empty recipe list at ~/Downloads/adobe2021_list.txt
3. Check that the Adobe&ast;2021&ast; folder/s contain a sub directory called Build containing a pkg called \*\_Install.pkg, skipping this pkg if not found.
4. If step 3 passes for a pkg, next we look for an override named Adobe&ast;2021&ast;.jss.recipe or Adobe&ast;2021&ast;.munki.recipe in ~/Library/AutoPkg/RecipeOverrides (depending on what option was passed to [Adobe2021Importer.py](https://github.com/autopkg/dataJAR-recipes/blob/master/Adobe%202021/Adobe2021Importer.py), skipping this pkg if not found.
5. If step 4 is successful, the Override added to the ~/Downloads/adobecc2021_list.txt recipe list. Steps 3-5 are repeated for all Adobe&ast;2021&ast; folders found within ~/Downloads.
6. If any items are added to the ~/Downloads/adobe2021_list.txt recipe list, this is then ran with a report written to ~/Downloads/adobe2021_report.plist

## Adobe and Apple Silicon

Adobe have started to release titles that support Apple Silicon devices. In order to facility this, they have the administrator specify the type of *package* that is created from the Admin console. 

**Note:** Although you can specify an Apple Silicon / arm64 package, the content for the majority of Apps are still Intel-only and will require Rosetta 2 to be installed on devices even for this packages to install.

The Munki support is achieved through the use of the built in support for the `supported_architectures` pkginfo key ([More Info](https://github.com/munki/munki/wiki/Supported-Pkginfo-Keys)). In order for this to work correctly on Apple Silicon devices, you must make sure to be running Munki v5.2.1 or newer. You will need to create two packages per Adobe 2021 title, one with the Intel option selected, and one with Apple Silicon/arm64 selected. These both need to be imported into your Munki repo with the same Munki name, and with the appropriate `supported_architectures` value/s set.

In order to support this, we've had to make some changes to the Munki parent recipe, the [Adobe2021Versioner.py](https://github.com/autopkg/dataJAR-recipes/blob/master/Adobe%202021/Adobe2021Versioner.py) processor and the [Adobe2021Importer.py](https://github.com/autopkg/dataJAR-recipes/blob/master/Adobe%202021/Adobe2021Importer.py) script. The core changes have been detailed below:

- Package names are now more flexible, and will search for packages starting with "Adobe" and contains "2021". This allows you to create packages with the architecture type at the end.
- As the NAME input is used by versioner to find the packages, this must always match the name of the packages you create
	- To specify a NAME for Munki, add the "MUNKI_NAME" option to the recipe Input, and use this in the pkginfo Input (see committed changes to the parent Munki recipe).  
	- If offering both an Intel and arm64 package for the same install, ensure that the supported_architectures key is set correctly (see below) and use the same MUNKI_NAME for the two recipes.    
- In order to import the "same" App version packages for the Intel and ARM installs, We have needed to add the `force_munkiimport` `true` key to the main Input.
	- This may result in duplicate imports if the admin's download folder is not cleared up after each run, or the name isn't changed away from starting with Adobe (e.g. change from "AdobeMediaEncoder2021-ARM" to "OFF-AdobeMediaEncoder2021-ARM
- [Adobe2021Versioner.py](https://github.com/autopkg/dataJAR-recipes/blob/master/Adobe%202021/Adobe2021Versioner.py) will now look for the "ProcessorArchitecture" key within each Adobe install package. 
	- If this has a value of "x64" it's for Intel Macs. It will set the pkginfo key `supported_architectures` to an array of `x86_64` (e.g. Intel Macs only). It will also rename the install and uninstall disk image to include the word "Intel" 
	- If this has a value of "arm64" it's for Apple Silicon Macs. It will set the pkginfo key `supported_architectures` to an array of `arm64` (e.g. Apple Silicon Macs only). It will also rename the install and uninstall disk image to include the word "ARM"
	- **Note:** Apple Silicon devices must be running Munki v5.2.1 or newer for the architecture type to be detected properly
	- **Note:** Although Adobe supply arm64 installers for for all of their 2021 suite, most of these packages will still deploy an Intel version of the software and so will need Rosetta 2 installed. It seems the installers will also fail without Rosetta 2, even with the "arm64" packages.

If you find any problems, please log an Issue on this repo.

Adobe 2021/Adobe 2021 Import.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
    <dict>
        <key>Description</key>
        <string>Import a Creative Cloud Application's pkg into Munki
        Please Review the changes to this recipe here
        https://github.com/autopkg/dataJAR-recipes/blob/master/Adobe%202021/README.md</string>
        <key>Identifier</key>
        <string>com.github.dataJAR-recipes.munki.Import Adobe 2021 Title</string>
        <key>Input</key>
        <dict>
            <key>force_munkiimport</key>
            <true/>
            <key>MINIMUM_OS_VERSION</key>
            <string>10.14.0</string>
            <key>MUNKI_CATEGORY</key>
            <string>Applications</string>
            <key>MUNKI_DESCRIPTION</key>
            <string>Some description.</string>
            <key>MUNKI_DEVELOPER</key>
            <string>Adobe</string>
            <key>MUNKI_NAME</key>
            <string>SomeAdobe2021Title</string>
            <key>NAME</key>
            <string>SomeAdobe2021Title - must match package name</string>
            <key>MUNKI_REPO_SUBDIR</key>
            <string>%MUNKI_CATEGORY%/%MUNKI_DEVELOPER%/%NAME%</string>
            <key>pkginfo</key>
            <dict>
                <key>catalogs</key>
                <array>
                    <string>testing</string>
                </array>
                <key>category</key>
                <string>%MUNKI_CATEGORY%</string>
                <key>description</key>
                <string>%MUNKI_DESCRIPTION%</string>
                <key>developer</key>
                <string>%MUNKI_DEVELOPER%</string>
                <key>name</key>
                <string>%MUNKI_NAME%</string>
                <key>RestartAction</key>
                <string>RequireLogout</string>
            </dict>
        </dict>
        <key>MinimumVersion</key>
        <string>1.0.0</string>
        <key>Process</key>
        <array>
            <dict>
                <key>Processor</key>
                <string>Adobe2021Versioner</string>
            </dict>
            <dict>
                <key>Processor</key>
                <string>DmgCreator</string>
                <key>Arguments</key>
                <dict>
                    <key>dmg_root</key>
                    <string>%pkg_path%</string>
                    <key>dmg_path</key>
                    <string>%RECIPE_CACHE_DIR%/%NAME%_Install%architecture_type%-%version%.dmg</string>
                </dict>
            </dict>
            <dict>
                <key>Processor</key>
                <string>DmgCreator</string>
                <key>Arguments</key>
                <dict>
                    <key>dmg_root</key>
                    <string>%uninstaller_pkg_path%</string>
                    <key>dmg_path</key>
                    <string>%RECIPE_CACHE_DIR%/%NAME%_Uninstall%architecture_type%-%version%.dmg</string>
                </dict>
            </dict>
            <dict>
                <key>Processor</key>
                <string>MunkiPkginfoMerger</string>
            </dict>
            <dict>
                <key>Processor</key>
                <string>MunkiPkginfoMerger</string>
                <key>Arguments</key>
                <dict>
                    <key>additional_pkginfo</key>
                    <dict>
                        <key>version</key>
                        <string>%version%</string>
                        <key>installer_type</key>
                        <string></string>
                    </dict>
                </dict>
            </dict>
            <dict>
                <key>Processor</key>
                <string>MunkiImporter</string>
                <key>Arguments</key>
                <dict>
                    <key>pkg_path</key>
                    <string>%RECIPE_CACHE_DIR%/%NAME%_Install%architecture_type%-%version%.dmg</string>
                    <key>uninstaller_pkg_path</key>
                    <string>%RECIPE_CACHE_DIR%/%NAME%_Uninstall%architecture_type%-%version%.dmg</string>
                    <key>repo_subdirectory</key>
                    <string>%MUNKI_REPO_SUBDIR%</string>
                </dict>
            </dict>
        </array>
    </dict>
</plist>

Adobe 2021/Adobe 2021 Import.jss.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
    <dict>
        <key>Description</key>
        <string>Import a Creative Cloud Application's pkg into a JSS.</string>
        <key>Identifier</key>
        <string>com.github.dataJAR-recipes.jss.Import Adobe 2021 Title</string>
        <key>Input</key>
        <dict>
            <key>NAME</key>
            <string>SomeAdobe2021Title</string>
            <key>MINIMUM_OS_VERSION</key>
            <string>10.14.0</string>
        	<key>SELF_SERVICE_DESCRIPTION</key>
            <string>Some description.</string>
            <key>CATEGORY</key>
            <string>Productivity</string>
            <key>GROUP_NAME</key>
            <string>%NAME%-update-smart</string>
            <key>GROUP_TEMPLATE</key>
            <string>SmartGroupTemplate.xml</string>
            <key>POLICY_CATEGORY</key>
            <string>Testing</string>
            <key>POLICY_TEMPLATE</key>
            <string>PolicyTemplate.xml</string>
            <key>UNINSTALL_CATEGORY</key>
            <string>Uninstallers</string>
            <key>UNINSTALL_GROUP_NAME</key>
            <string>%NAME%-uninstall</string>
            <key>UNINSTALL_GROUP_TEMPLATE</key>
            <string>UninstallSmartGroupTemplate.xml</string>
            <key>UNINSTALL_POLICY_CATEGORY</key>
            <string>Testing</string>
            <key>UNINSTALL_POLICY_TEMPLATE</key>
            <string>UninstallPolicyTemplate.xml</string>
            <key>SELF_SERVICE_ICON</key>
            <string></string>
        </dict>
        <key>MinimumVersion</key>
        <string>1.0.0</string>
        <key>Process</key>
        <array>
        	<dict>
                <key>Processor</key>
                <string>Adobe2021Versioner</string>
            </dict>
            <dict>
                <key>Processor</key>
                <string>Copier</string>
                <key>Arguments</key>
                <dict>
                    <key>source_path</key>
                    <string>%pkg_path%</string>
                    <key>destination_path</key>
                    <string>%RECIPE_CACHE_DIR%/%NAME%_Install-%version%.pkg</string>
                </dict>
            </dict>
            <dict>
                <key>Processor</key>
                <string>JSSImporter</string>
                <key>Arguments</key>
                <dict>
                    <key>category</key>
                    <string>%CATEGORY%</string>
                    <key>groups</key>
                    <array>
                        <dict>
                            <key>name</key>
                            <string>%GROUP_NAME%</string>
                            <key>smart</key>
                            <true/>
                            <key>template_path</key>
                            <string>%GROUP_TEMPLATE%</string>
                        </dict>
                    </array>
                    <key>jss_inventory_name</key>
                    <string>%jss_inventory_name%</string>
                    <key>pkg_path</key>
                    <string>%destination_path%</string>
                    <key>policy_category</key>
                    <string>%POLICY_CATEGORY%</string>
                    <key>policy_template</key>
                    <string>%POLICY_TEMPLATE%</string>
                    <key>prod_name</key>
                    <string>%NAME%</string>
                    <key>self_service_description</key>
                    <string>%SELF_SERVICE_DESCRIPTION%</string>
                    <key>self_service_icon</key>
                    <string>%SELF_SERVICE_ICON%</string>
                </dict>
            </dict>
            <dict>
                <key>Processor</key>
                <string>PathDeleter</string>
                <key>Arguments</key>
                <dict>
                    <key>path_list</key>
                    <string>%destination_path%</string>
                </dict>
            </dict>
            <dict>
                <key>Processor</key>
                <string>Copier</string>
                <key>Arguments</key>
                <dict>
                    <key>source_path</key>
                    <string>%uninstaller_pkg_path%</string>
                    <key>destination_path</key>
                    <string>%RECIPE_CACHE_DIR%/%NAME%_Uninstall-%version%.pkg</string>
                </dict>
            </dict>
            <dict>
                <key>Processor</key>
                <string>JSSImporter</string>
                <key>Arguments</key>
                <dict>
                    <key>category</key>
                    <string>%UNINSTALL_CATEGORY%</string>
                    <key>groups</key>
                    <array>
                        <dict>
                            <key>name</key>
                            <string>%UNINSTALL_GROUP_NAME%</string>
                            <key>smart</key>
                            <true/>
                            <key>template_path</key>
                            <string>%UNINSTALL_GROUP_TEMPLATE%</string>
                        </dict>
                    </array>
                    <key>jss_inventory_name</key>
                    <string>%jss_inventory_name%</string>
                    <key>pkg_path</key>
                    <string>%destination_path%</string>
                    <key>policy_category</key>
                    <string>%UNINSTALL_POLICY_CATEGORY%</string>
                    <key>policy_template</key>
                    <string>%UNINSTALL_POLICY_TEMPLATE%</string>
                    <key>prod_name</key>
                    <string>%NAME%</string>
                    <key>self_service_icon</key>
                    <string>%SELF_SERVICE_ICON%</string>
                </dict>
            </dict>
            <dict>
                <key>Processor</key>
                <string>PathDeleter</string>
                <key>Arguments</key>
                <dict>
                    <key>path_list</key>
                    <string>%destination_path%</string>
                </dict>
            </dict>
        </array>
    </dict>
</plist>
Adobe 2020/UninstallSmartGroupTemplate.xml METASEP
<computer_group>
	<name>%group_name%</name>
	<is_smart>true</is_smart>
	<criteria>
		<criterion>
			<name>Application Title</name>
			<priority>0</priority>
			<and_or>and</and_or>
			<search_type>is</search_type>
			<value>%JSS_INVENTORY_NAME%</value>
		</criterion>
		<criterion>
			<name>Application Version</name>
			<priority>1</priority>
			<and_or>and</and_or>
			<search_type>is</search_type>
			<value>%VERSION%</value>
		</criterion>
		<criterion>
			<name>Computer Group</name>
			<priority>2</priority>
			<and_or>and</and_or>
			<search_type>member of</search_type>
			<value>Testing</value>
		</criterion>
	</criteria>
</computer_group>

Adobe 2020/UninstallPolicyTemplate.xml METASEP
<policy>
	<general>
		<name>Uninstall Latest %PROD_NAME%</name>
		<enabled>true</enabled>
		<frequency>Ongoing</frequency>
		<category>
			<name>%POLICY_CATEGORY%</name>
		</category>
	</general>
	<scope>
		<!--Scope added by JSSImporter-->
	</scope>
	<package_configuration>
		<!--Package added by JSSImporter-->
	</package_configuration>
	<scripts>
		<!--Scripts added by JSSImporter-->
	</scripts>
	<self_service>
		<use_for_self_service>true</use_for_self_service>
		<install_button_text>Uninstall %VERSION%</install_button_text>
		<self_service_description>%SELF_SERVICE_DESCRIPTION%</self_service_description>
	</self_service>
	<maintenance>
		<recon>true</recon>
	</maintenance>
</policy>

Adobe 2020/README.md METASEP
# Import Adobe 2020 Title

## About
These recipes are based on: https://github.com/autopkg/adobe-ccp-recipes

But with the death of Creative Cloud Packager (https://macmule.com/2018/10/15/adobe-creative-cloud-2019-the-death-of-creative-cloud-packager-device-licensing/), have been rejigged to work with locally downloaded pkgs.

## Pre-reqs

1) Build the wanted Adobe 2020 titles from the Adobe Admin Console.

*Please Note:* These should be of the **Managed Install** variety, as a Self Service package does not create the required `_Uninstall.pkg` which is needed by the [Adobe2020Versioner.py](https://github.com/autopkg/dataJAR-recipes/blob/master/Adobe%202020/Adobe2020Versioner.py) processor. See [this issue](https://github.com/autopkg/dataJAR-recipes/issues/39) for more info.

2) For each Adobe package title, use the naming convention of:

Adobe*AppName*2020

For example:

- AdobeAcrobatDC2020    
- AdobeAfterEffects2020   
- AdobeAnimate2020    
- AdobeAudition2020   
- AdobeBridge2020   
- AdobeCharacterAnimator2020   
- AdobeDimension2020    
- AdobeDreamweaver2020   
- AdobeIllustrator2020    
- AdobeInCopy2020   
- AdobeInDesign2020  
- AdobeLightroom2020  
- AdobeLightroomClassic2020   
- AdobeMediaEncoder2020   
- AdobePhotoshop2020    
- AdobePrelude2020   
- AdobePremierePro2020   
- AdobePremiereRush2020   
- AdobeXD2020

3) Mount the Adobe downloader DMG and run the download application. Once downloaded, unzip the file if your browser does not auto unzip the downloads from the Adobe Admin Console. This must be in your `~/Downloads` folder.

*Please Note:* Keep the name of the unzipped directory the same as the the installer/uninstaller package within.

Also, these packages should only contain a maximum of the Creative Cloud Desktop App (CCDA) and only **one** other App (e.g. CCDA and Photoshop). Most of the Adobe Templates for packages aren't compatible with this.

4) Create the respective munki or jss recipe overrides. The override name **must** be the same as the Adobe 2020 pkg. 

For example:

`AdobeAcrobatDC2020.jss.recipe`
`AdobeAcrobatDC2020.munki.recipe`

*Please Note:* The [Adobe2020Importer.py](https://github.com/autopkg/dataJAR-recipes/blob/master/Adobe%202020/Adobe2020Importer.py) script assumes your autopkg overrides live in `~/Library/AutoPkg/RecipeOverrides`.

5) The `NAME` input variable must also match the Adobe package title.

## Usage

With the pre-reqs met, you can run the [Adobe2020Importer.py](https://github.com/autopkg/dataJAR-recipes/blob/master/Adobe%202020/Adobe2020Importer.py) script found in this repo.

You will need to pass to [Adobe2020Importer.py](https://github.com/autopkg/dataJAR-recipes/blob/master/Adobe%202020/Adobe2020Importer.py) the recipe type, which would be either jss or munki.

For example:

`/path/to/Adobe2020Importer.py jss` or `/path/to/Adobe2020Importer.py munki`

## Process
[Adobe2020Importer.py](https://github.com/autopkg/dataJAR-recipes/blob/master/Adobe%202020/Adobe2020Importer.py) will:

1. Check the running users ~/Downloads folder for folders matching the pattern: Adobe&ast;2020, exiting if nothing found.
2. Create an empty recipe list at ~/Downloads/adobe2020_list.txt
3. Check that the Adobe&ast;2020 folders contain a sub directory called Build containing a pkg called \*\_Install.pkg, skipping this pkg if not found.
4. If step 3 passes for a pkg, next we look for an override named Adobe&ast;2020.jss.recipe or Adobe&ast;2020.munki.recipe in ~/Library/AutoPkg/RecipeOverrides (depending on what option was passed to [Adobe2020Importer.py](https://github.com/autopkg/dataJAR-recipes/blob/master/Adobe%202020/Adobe2020Importer.py), skipping this pkg if not found.
5. If step 4 is successful, the Override added to the ~/Downloads/adobecc2020_list.txt recipe list. Steps 3-5 are repeated for all Adobe&ast;2020 folders found within ~/Downloads.
6. If any items are added to the ~/Downloads/adobe2020_list.txt recipe list, this is then ran with a report written to ~/Downloads/adobe2020_report.plist

## Note

You should be able to periodically download updated packages from the Adobe Admin Console, completing the pre-req steps, and then run [Adobe2020Importer.py](https://github.com/autopkg/dataJAR-recipes/blob/master/Adobe%202020/Adobe2020Importer.py).

[Adobe2020Importer.py](https://github.com/autopkg/dataJAR-recipes/blob/master/Adobe%202020/Adobe2020Importer.py) will only import items which are newer than you have within your JPS or Munki repo.








Adobe 2020/Adobe 2020 Import.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
    <dict>
        <key>Description</key>
        <string>Import a Creative Cloud Application's pkg into Munki</string>
        <key>Identifier</key>
        <string>com.github.dataJAR-recipes.munki.Import Adobe 2020 Title</string>
        <key>Input</key>
        <dict>
            <key>MINIMUM_OS_VERSION</key>
            <string>10.14.0</string>
            <key>MUNKI_CATEGORY</key>
            <string>Applications</string>
            <key>MUNKI_DESCRIPTION</key>
            <string>Some description.</string>
            <key>MUNKI_DEVELOPER</key>
            <string>Adobe</string>
            <key>NAME</key>
            <string>SomeAdobe2020Title</string>
            <key>MUNKI_REPO_SUBDIR</key>
            <string>%MUNKI_CATEGORY%/%MUNKI_DEVELOPER%/%NAME%</string>
            <key>pkginfo</key>
            <dict>
                <key>catalogs</key>
                <array>
                    <string>testing</string>
                </array>
                <key>category</key>
                <string>%MUNKI_CATEGORY%</string>
                <key>description</key>
                <string>%MUNKI_DESCRIPTION%</string>
                <key>developer</key>
                <string>%MUNKI_DEVELOPER%</string>
                <key>name</key>
                <string>%NAME%</string>
                <key>RestartAction</key>
                <string>RequireLogout</string>
                <key>unattended_install</key>
                <true/>
                <key>unattended_uninstall</key>
                <true/>
            </dict>
        </dict>
        <key>MinimumVersion</key>
        <string>1.0.0</string>
        <key>Process</key>
        <array>
            <dict>
                <key>Processor</key>
                <string>Adobe2020Versioner</string>
            </dict>
            <dict>
                <key>Processor</key>
                <string>DmgCreator</string>
                <key>Arguments</key>
                <dict>
                    <key>dmg_root</key>
                    <string>%pkg_path%</string>
                    <key>dmg_path</key>
                    <string>%RECIPE_CACHE_DIR%/%NAME%_Install-%version%.dmg</string>
                </dict>
            </dict>
            <dict>
                <key>Processor</key>
                <string>DmgCreator</string>
                <key>Arguments</key>
                <dict>
                    <key>dmg_root</key>
                    <string>%uninstaller_pkg_path%</string>
                    <key>dmg_path</key>
                    <string>%RECIPE_CACHE_DIR%/%NAME%_Uninstall-%version%.dmg</string>
                </dict>
            </dict>
            <dict>
                <key>Processor</key>
                <string>MunkiPkginfoMerger</string>
            </dict>
            <dict>
                <key>Processor</key>
                <string>MunkiPkginfoMerger</string>
                <key>Arguments</key>
                <dict>
                    <key>additional_pkginfo</key>
                    <dict>
                        <key>version</key>
                        <string>%version%</string>
                        <key>installer_type</key>
                        <string></string>
                    </dict>
                </dict>
            </dict>
            <dict>
                <key>Processor</key>
                <string>MunkiImporter</string>
                <key>Arguments</key>
                <dict>
                    <key>pkg_path</key>
                    <string>%RECIPE_CACHE_DIR%/%NAME%_Install-%version%.dmg</string>
                    <key>uninstaller_pkg_path</key>
                    <string>%RECIPE_CACHE_DIR%/%NAME%_Uninstall-%version%.dmg</string>
                    <key>repo_subdirectory</key>
                    <string>%MUNKI_REPO_SUBDIR%</string>
                </dict>
            </dict>
        </array>
    </dict>
</plist>

Adobe 2020/Adobe 2020 Import.jss.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
    <dict>
        <key>Description</key>
        <string>Import a Creative Cloud Application's pkg into a JSS.</string>
        <key>Identifier</key>
        <string>com.github.dataJAR-recipes.jss.Import Adobe 2020 Title</string>
        <key>Input</key>
        <dict>
            <key>NAME</key>
            <string>SomeAdobe2020Title</string>
            <key>MINIMUM_OS_VERSION</key>
            <string>10.14.0</string>
        	<key>SELF_SERVICE_DESCRIPTION</key>
            <string>Some description.</string>
            <key>CATEGORY</key>
            <string>Productivity</string>
            <key>GROUP_NAME</key>
            <string>%NAME%-update-smart</string>
            <key>GROUP_TEMPLATE</key>
            <string>SmartGroupTemplate.xml</string>
            <key>POLICY_CATEGORY</key>
            <string>Testing</string>
            <key>POLICY_TEMPLATE</key>
            <string>PolicyTemplate.xml</string>
            <key>UNINSTALL_CATEGORY</key>
            <string>Uninstallers</string>
            <key>UNINSTALL_GROUP_NAME</key>
            <string>%NAME%-uninstall</string>
            <key>UNINSTALL_GROUP_TEMPLATE</key>
            <string>UninstallSmartGroupTemplate.xml</string>
            <key>UNINSTALL_POLICY_CATEGORY</key>
            <string>Testing</string>
            <key>UNINSTALL_POLICY_TEMPLATE</key>
            <string>UninstallPolicyTemplate.xml</string>
            <key>SELF_SERVICE_ICON</key>
            <string></string>
        </dict>
        <key>MinimumVersion</key>
        <string>1.0.0</string>
        <key>Process</key>
        <array>
        	<dict>
                <key>Processor</key>
                <string>Adobe2020Versioner</string>
            </dict>
            <dict>
                <key>Processor</key>
                <string>Copier</string>
                <key>Arguments</key>
                <dict>
                    <key>source_path</key>
                    <string>%pkg_path%</string>
                    <key>destination_path</key>
                    <string>%RECIPE_CACHE_DIR%/%NAME%_Install-%version%.pkg</string>
                </dict>
            </dict>
            <dict>
                <key>Processor</key>
                <string>JSSImporter</string>
                <key>Arguments</key>
                <dict>
                    <key>category</key>
                    <string>%CATEGORY%</string>
                    <key>groups</key>
                    <array>
                        <dict>
                            <key>name</key>
                            <string>%GROUP_NAME%</string>
                            <key>smart</key>
                            <true/>
                            <key>template_path</key>
                            <string>%GROUP_TEMPLATE%</string>
                        </dict>
                    </array>
                    <key>jss_inventory_name</key>
                    <string>%jss_inventory_name%</string>
                    <key>pkg_path</key>
                    <string>%destination_path%</string>
                    <key>policy_category</key>
                    <string>%POLICY_CATEGORY%</string>
                    <key>policy_template</key>
                    <string>%POLICY_TEMPLATE%</string>
                    <key>prod_name</key>
                    <string>%NAME%</string>
                    <key>self_service_description</key>
                    <string>%SELF_SERVICE_DESCRIPTION%</string>
                    <key>self_service_icon</key>
                    <string>%SELF_SERVICE_ICON%</string>
                </dict>
            </dict>
            <dict>
                <key>Processor</key>
                <string>PathDeleter</string>
                <key>Arguments</key>
                <dict>
                    <key>path_list</key>
                    <string>%destination_path%</string>
                </dict>
            </dict>
            <dict>
                <key>Processor</key>
                <string>Copier</string>
                <key>Arguments</key>
                <dict>
                    <key>source_path</key>
                    <string>%uninstaller_pkg_path%</string>
                    <key>destination_path</key>
                    <string>%RECIPE_CACHE_DIR%/%NAME%_Uninstall-%version%.pkg</string>
                </dict>
            </dict>
            <dict>
                <key>Processor</key>
                <string>JSSImporter</string>
                <key>Arguments</key>
                <dict>
                    <key>category</key>
                    <string>%UNINSTALL_CATEGORY%</string>
                    <key>groups</key>
                    <array>
                        <dict>
                            <key>name</key>
                            <string>%UNINSTALL_GROUP_NAME%</string>
                            <key>smart</key>
                            <true/>
                            <key>template_path</key>
                            <string>%UNINSTALL_GROUP_TEMPLATE%</string>
                        </dict>
                    </array>
                    <key>jss_inventory_name</key>
                    <string>%jss_inventory_name%</string>
                    <key>pkg_path</key>
                    <string>%destination_path%</string>
                    <key>policy_category</key>
                    <string>%UNINSTALL_POLICY_CATEGORY%</string>
                    <key>policy_template</key>
                    <string>%UNINSTALL_POLICY_TEMPLATE%</string>
                    <key>prod_name</key>
                    <string>%NAME%</string>
                    <key>self_service_icon</key>
                    <string>%SELF_SERVICE_ICON%</string>
                </dict>
            </dict>
            <dict>
                <key>Processor</key>
                <string>PathDeleter</string>
                <key>Arguments</key>
                <dict>
                    <key>path_list</key>
                    <string>%destination_path%</string>
                </dict>
            </dict>
        </array>
    </dict>
</plist>

ActivInspire/ActivInspire.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest trial version of ActivInspire and imports into Munki.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.ActivInspire</string>
    <key>Input</key>
    <dict>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>NAME</key>
        <string>ActivInspire</string>
        <key>pkginfo</key>
        <dict> 
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>ActivInspire helps teachers bring lessons to life with rich, powerful activities that grab students attention, blending real-time assessment and real-world experience into the learning process.</string>
            <key>display_name</key>
            <string>ActivInspire</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>requires</key>
			<array>
				<string>AdobeFlashPlayer</string>
			</array>
            <key>unattended_install</key>
            <true/>
            <key>unattended_uninstall</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.ActivInspire</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%pathname%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>
ActivInspire/ActivInspire.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the version of ActivInspire.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.ActivInspire</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>ActivInspire</string>
    </dict>
    <key>MinimumVersion</key>
    <string>1.0.0</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>URLTextSearcher</string>
            <key>Arguments</key>
            <dict>
                <key>url</key>
                <string>https://www.activsoftware.co.uk/update/Inspire/updatemac.txt</string>
                <key>re_pattern</key>
                <string>http:\/\/www\.activsoftware\.co\.uk\/update\/Inspire\/update\/mac\/ActivInspire_Application_v[\S].*_MAC\.dmg</string>
                <key>result_output_var_name</key>
                <string>url</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>URLDownloader</string>
            <key>Arguments</key>
            <dict>
                <key>filename</key>
                <string>%NAME%.dmg</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
		<dict>   
			<key>Processor</key>   
			<string>CodeSignatureVerifier</string>   
			<key>Arguments</key>   
			<dict>   
				<key>input_path</key>   
				<string>%pathname%/ActivInspire_Application_*_MAC.pkg</string>
				<key>expected_authority_names</key>
				<array>
					<string>Developer ID Installer: Promethean (PQ96WVYU2E)</string>
					<string>Developer ID Certification Authority</string>
					<string>Apple Root CA</string>
				</array>
			</dict>
		</dict>
    </array>
</dict>
</plist>
ActivDriver/ActivDriver.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest trial version of ActivDriver and imports into Munki.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.ActivDriver</string>
    <key>Input</key>
    <dict>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>NAME</key>
        <string>ActivDriver</string>
        <key>pkginfo</key>
        <dict>
            <key>RestartAction</key>
            <string>RequireRestart</string>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>ActivDriver is required for the following products: ActivBoard, ActivPanel, ActivWall, ActivHub (Student Response Devices, ActivSlate, ActivRemote) and ActivEngage2.</string>
            <key>display_name</key>
            <string>ActivDriver</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <false/>
            <key>unattended_uninstall</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.ActivDriver</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%pathname%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>
ActivDriver/ActivDriver.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the version of ActivDriver.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.ActivDriver</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>ActivDriver</string>
    </dict>
    <key>MinimumVersion</key>
    <string>1.0.0</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>URLDownloader</string>
            <key>Arguments</key>
            <dict>
                <key>filename</key>
                <string>%NAME%.dmg</string>
                <key>url</key>
                <string>https://support.prometheanworld.com/sfc/servlet.shepherd/document/download/0696f00000DQjuoAAD?operationContext=S1</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
		<dict>   
			<key>Processor</key>   
			<string>CodeSignatureVerifier</string>   
			<key>Arguments</key>   
			<dict>   
				<key>input_path</key>   
				<string>%pathname%/ActivDriver.pkg</string>
				<key>expected_authority_names</key>
				<array>
					<string>Developer ID Installer: Promethean (PQ96WVYU2E)</string>
					<string>Developer ID Certification Authority</string>
					<string>Apple Root CA</string>
				</array>
			</dict>
		</dict>
    </array>
</dict>
</plist>
Acronis Files Connect/AcronisFilesConnect.png METASEP

Acronis Files Connect/Acronis Files Connect.pkg.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of Acronis Files Connect and creates a versioned PKG.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.pkg.Acronis Files Connect</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>Acronis Files Connect</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.Acronis Files Connect</string>
    <key>Process</key>
    <array>
		<dict>
            <key>Processor</key>
            <string>PlistReader</string>
            <key>Arguments</key>
            <dict>
                <key>info_path</key>
                <string>%destination_path%</string>
                <key>plist_keys</key>
                <dict>
                    <key>CFBundleIdentifier</key>
                    <string>bundleid</string>
                    <key>CFBundleShortVersionString</key>
                    <string>version</string>
                </dict>
            </dict>
		</dict>
        <dict>
            <key>Processor</key>
            <string>PkgCreator</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_request</key>
                <dict>
                    <key>pkgname</key>
                    <string>%NAME%-%version%</string>
                    <key>chown</key>
                    <array>
                        <dict>
                            <key>path</key>
                            <string>Applications</string>
                            <key>user</key>
                            <string>root</string>
                            <key>group</key>
                            <string>admin</string>
                        </dict>
                    </array>
                    <key>id</key>
                    <string>%bundleid%</string>
                    <key>options</key>
                    <string>purge_ds_store</string>
                    <key>pkgdir</key>
                    <string>%RECIPE_CACHE_DIR%</string>
                    <key>pkgroot</key>
                    <string>%pkgroot%</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PathDeleter</string>
            <key>Arguments</key>
            <dict>
                <key>path_list</key>
                <array>
                    <string>%pkgroot%</string>
                    <string>%RECIPE_CACHE_DIR%/unzip</string>                         
                </array>
            </dict>
        </dict>
    </array>
</dict>
</plist>

Acronis Files Connect/Acronis Files Connect.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of Acronis Files Connect and imports it into Munki.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.Acronis Files Connect</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>Acronis Files Connect</string>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>pkginfo</key>
        <dict>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>When Mac users try to access Windows file servers and NAS devices, they typically suffer from poor performance, data integrity issues, slow searches, and many other disruptive problems. Acronis Files Connect solves these problems.</string>
            <key>developer</key>
            <string>Acronis International GmbH</string>
            <key>display_name</key>
            <string>Acronis Files Connect</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
            <key>unattended_uninstall</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.Acronis Files Connect</string>
    <key>Process</key>
    <array>
        <dict>  
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%RECIPE_CACHE_DIR%/unzip/Acronis Files Connect.dmg</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>

Acronis Files Connect/Acronis Files Connect.jss.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the current release version of Acronis Files Connect and then uploads to the JSS</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.jss.Acronis Files Connect</string>
    <key>Input</key>
    <dict>
        <key>CATEGORY</key>
        <string>Applications</string>
        <key>GROUP_NAME</key>
        <string>%NAME%-update-smart</string>
        <key>GROUP_TEMPLATE</key>
        <string>SmartGroupTemplate.xml</string>
        <key>NAME</key>
        <string>Acronis Files Connect</string>
        <key>POLICY_CATEGORY</key>
        <string>Testing</string>
        <key>POLICY_TEMPLATE</key>
        <string>PolicyTemplate.xml</string>
        <key>SELF_SERVICE_DESCRIPTION</key>
        <string>When Mac users try to access Windows file servers and NAS devices, they typically suffer from poor performance, data integrity issues, slow searches, and many other disruptive problems. Acronis Files Connect solves these problems.</string>
        <key>SELF_SERVICE_ICON</key>
        <string>AcronisFilesConnect.png</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.pkg.Acronis Files Connect</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>JSSImporter</string>
            <key>Arguments</key>
            <dict>
                <key>category</key>
                <string>%CATEGORY%</string>
                <key>groups</key>
                <array>
                    <dict>
                        <key>name</key>
                        <string>%GROUP_NAME%</string>
                        <key>smart</key>
                        <true/>
                        <key>template_path</key>
                        <string>%GROUP_TEMPLATE%</string>
                    </dict>
                </array>
                <key>pkg_path</key>
                <string>%pkg_path%</string>
                <key>policy_category</key>
                <string>%POLICY_CATEGORY%</string>
                <key>policy_template</key>
                <string>%POLICY_TEMPLATE%</string>
                <key>prod_name</key>
                <string>Acronis Files Connect</string>
                <key>self_service_description</key>
                <string>%SELF_SERVICE_DESCRIPTION%</string>
                <key>self_service_icon</key>
                <string>%SELF_SERVICE_ICON%</string>
                <key>version</key>
                <string>%version%</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>
Acronis Files Connect/Acronis Files Connect.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads latest version of Acronis Files Connect.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.Acronis Files Connect</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>Acronis Files Connect</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>URLTextSearcher</string>
            <key>Arguments</key>
            <dict>
                <key>re_pattern</key>
                <string>http://www.grouplogic.com/files/aac/AcronisFilesConnectMacClient.zip</string>
                <key>result_output_var_name</key>
                <string>url</string>
                <key>url</key>
                <string>https://support.grouplogic.com/?page_id=63</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>URLDownloader</string>
            <key>Arguments</key>
            <dict>
                <key>filename</key>
                <string>%NAME%.zip</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>Unarchiver</string>
            <key>Arguments</key>
            <dict>
                <key>archive_path</key>
                <string>%pathname%</string>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/unzip/</string>
                <key>purge_destination</key>
                <true/>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PkgRootCreator</string>
            <key>Arguments</key>
            <dict>
                <key>pkgroot</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%</string>
                <key>pkgdirs</key>
                <dict>
                    <key>Applications</key>
                    <string>0775</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>Copier</string>
            <key>Arguments</key>
            <dict>
                <key>source_path</key>
                <string>%destination_path%/Acronis Files Connect.dmg/Acronis Files Connect.app</string>
                <key>destination_path</key>
                <string>%pkgroot%/Applications/Acronis Files Connect.app</string>
                <key>overwrite</key>
                <true/>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
            <key>Arguments</key>
            <dict>
                <key>input_path</key>
                <string>%destination_path%</string>
                <key>requirement</key>
                <string>identifier "com.acronis.AcronisFilesConnect" and anchor apple generic and 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] = ZU2TV78AA6</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>
Abstract/Abstract.png METASEP

Abstract/Abstract.pkg.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>Description</key>
	<string>Downloads the latest version of Abstract and creates a package.</string>
	<key>Identifier</key>
	<string>com.github.dataJAR-recipes.pkg.Abstract</string>
	<key>Input</key>
	<dict>
		<key>NAME</key>
		<string>Abstract</string>
	</dict>
	<key>MinimumVersion</key>
	<string>0.6.1</string>
	<key>ParentRecipe</key>
	<string>com.github.dataJAR-recipes.download.Abstract</string>
	<key>Process</key>
	<array>
		<dict>
			<key>Arguments</key>
			<dict>
				<key>pkgdirs</key>
				<dict>
					<key>Applications</key>
					<string>0775</string>
				</dict>
				<key>pkgroot</key>
				<string>%RECIPE_CACHE_DIR%/%NAME%</string>
			</dict>
			<key>Processor</key>
			<string>PkgRootCreator</string>
		</dict>
		<dict>
			<key>Arguments</key>
			<dict>
				<key>destination_path</key>
				<string>%pkgroot%/Applications/Abstract.app</string>
				<key>source_path</key>
				<string>%RECIPE_CACHE_DIR%/downloads/%NAME%.dmg/Abstract.app</string>
			</dict>
			<key>Processor</key>
			<string>Copier</string>
		</dict>
		<dict>
			<key>Arguments</key>
			<dict>
				<key>dmg_path</key>
				<string>%RECIPE_CACHE_DIR%/downloads/%NAME%.dmg</string>
			</dict>
			<key>Processor</key>
			<string>AppDmgVersioner</string>
		</dict>
		<dict>
			<key>Arguments</key>
			<dict>
				<key>pkg_request</key>
				<dict>
					<key>chown</key>
					<array>
						<dict>
							<key>group</key>
							<string>admin</string>
							<key>path</key>
							<string>Applications</string>
							<key>user</key>
							<string>root</string>
						</dict>
					</array>
					<key>id</key>
					<string>%bundleid%</string>
					<key>options</key>
					<string>purge_ds_store</string>
					<key>pkgname</key>
					<string>%NAME%-%version%</string>
					<key>pkgroot</key>
					<string>%RECIPE_CACHE_DIR%/%NAME%</string>
					<key>version</key>
					<string>%version%</string>
				</dict>
			</dict>
			<key>Processor</key>
			<string>PkgCreator</string>
		</dict>
	</array>
</dict>
</plist>

Abstract/Abstract.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the current release version of Abstract and imports into Munki.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.Abstract</string>
    <key>Input</key>
    <dict>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>NAME</key>
        <string>Abstract</string>
        <key>pkginfo</key>
        <dict>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
           	<key>category</key>
			<string>Productivity</string>
			<key>developer</key>
			<string>Elastic Projects</string>
            <key>description</key>
            <string>Abstract is a platform for modern design teams to work together.</string>
            <key>display_name</key>
            <string>Abstract</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.3.1</string>
    <key>ParentRecipe</key>
	<string>com.github.dataJAR-recipes.download.Abstract</string>
    <key>Process</key>
	<array>
		<dict>
			<key>Arguments</key>
			<dict>
				<key>pkg_path</key>
				<string>%RECIPE_CACHE_DIR%/downloads/%NAME%.dmg</string>
				<key>repo_subdirectory</key>
				<string>%MUNKI_REPO_SUBDIR%</string>
				<key>version_comparison_key</key>
				<string>CFBundleShortVersionString</string>
			</dict>
			<key>Processor</key>
			<string>MunkiImporter</string>
		</dict>
    </array>
</dict>
</plist>
Abstract/Abstract.jss.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>Description</key>
	<string>Downloads the current release version of Abstract and then uploads to the JSS</string>
	<key>Identifier</key>
	<string>com.github.dataJAR-recipes.jss.Abstract</string>
	<key>Input</key>
	<dict>
		<key>CATEGORY</key>
		<string>Productivity</string>
		<key>GROUP_NAME</key>
		<string>%NAME%-update-smart</string>
		<key>GROUP_TEMPLATE</key>
		<string>SmartGroupTemplate.xml</string>
		<key>NAME</key>
		<string>Abstract</string>
		<key>POLICY_CATEGORY</key>
		<string>Testing</string>
		<key>POLICY_TEMPLATE</key>
		<string>PolicyTemplate.xml</string>
		<key>SELF_SERVICE_DESCRIPTION</key>
		<string>Abstract is a platform for modern design teams to work together.</string>
		<key>SELF_SERVICE_ICON</key>
		<string>Abstract.png</string>
	</dict>
	<key>MinimumVersion</key>
	<string>0.6.1</string>
	<key>ParentRecipe</key>
	<string>com.github.dataJAR-recipes.pkg.Abstract</string>
	<key>Process</key>
	<array>
		<dict>
			<key>Arguments</key>
			<dict>
				<key>category</key>
				<string>%CATEGORY%</string>
				<key>groups</key>
				<array>
					<dict>
						<key>name</key>
						<string>%GROUP_NAME%</string>
						<key>smart</key>
						<true/>
						<key>template_path</key>
						<string>%GROUP_TEMPLATE%</string>
					</dict>
				</array>
				<key>policy_category</key>
				<string>%POLICY_CATEGORY%</string>
				<key>policy_template</key>
				<string>%POLICY_TEMPLATE%</string>
				<key>prod_name</key>
				<string>%NAME%</string>
				<key>self_service_description</key>
				<string>%SELF_SERVICE_DESCRIPTION%</string>
				<key>self_service_icon</key>
				<string>%SELF_SERVICE_ICON%</string>
			</dict>
			<key>Processor</key>
			<string>JSSImporter</string>
		</dict>
	</array>
</dict>
</plist>

Abstract/Abstract.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Download recipe for the latest version of Abstract.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.Abstract</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>Abstract</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>Process</key>
    <array>
		<dict>
			<key>Processor</key>
			<string>URLTextSearcher</string>
			<key>Arguments</key>
			<dict>
				<key>url</key>
				<string>https://api.goabstract.com/releases/latest</string>
				<key>re_pattern</key>
				<string>(https://downloads.goabstract.com/mac/Abstract-[\S]+\.dmg)</string>
				<key>result_output_var_name</key>
				<string>url</string>
			</dict>
		</dict>
        <dict>
        	<key>Arguments</key>
			<dict>
				<key>filename</key>
				<string>%NAME%.dmg</string>
			</dict>
            <key>Processor</key>
            <string>URLDownloader</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
		<dict>
			<key>Arguments</key>
			<dict>
				<key>input_path</key>
				<string>%RECIPE_CACHE_DIR%/downloads/%NAME%.dmg/Abstract.app</string>
                <key>requirement</key>
                <string>identifier "com.elasticprojects.abstract-desktop" and anchor apple generic and 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] = "77MZLZE47D"</string>
            </dict>
			<key>Processor</key>
			<string>CodeSignatureVerifier</string>
		</dict>
    </array>
</dict>
</plist>

AWSCLI/AWSCLISmartGroupTemplate.xml METASEP
<computer_group>
	<name>%group_name%</name>
	<is_smart>true</is_smart>
	<criteria>
		<criterion>
			<name>AWS CLI Tools Version</name>
			<priority>0</priority>
			<and_or>and</and_or>
			<search_type>is not</search_type>
			<value>%VERSION%</value>
		</criterion>
		<criterion>
			<name>AWS CLI Tools Version</name>
			<priority>1</priority>
			<and_or>and</and_or>
			<search_type>is not</search_type>
			<value>Not Installed</value>
		</criterion>
		<criterion>
			<name>Computer Group</name>
			<priority>2</priority>
			<and_or>and</and_or>
			<search_type>member of</search_type>
			<value>Testing</value>
		</criterion>
	</criteria>
</computer_group>

AWSCLI/AWSCLIExtensionAttribute.xml METASEP
<computer_extension_attribute>
  <name>AWS CLI Tools Version</name>
  <description>Returns the version number of AWS CLI Tools if installed, if not returns "Not Installed"</description>
  <dataType>string</dataType>
  <input_type>
		<type>script</type>
		<platform>Mac</platform>
		<script>#!/bin/bash

if [ -e "/usr/local/aws/bin/aws" ]
then
	awsVersion=$(/usr/local/aws/bin/aws --version 2>&amp;1 | /usr/bin/awk -F ' ' '/aws-cli/{ print $1}' | /usr/bin/awk -F / '{ print $2 }')
else
	awsVersion="Not Installed"
fi

echo "&lt;result&gt;$awsVersion&lt;/result&gt;"
</script>
	</input_type>
	<inventory_display>Extension Attributes</inventory_display>
	<recon_display>Extension Attributes</recon_display>
</computer_extension_attribute>
AWSCLI/AWSCLI.png METASEP

AWSCLI/AWSCLI.jss.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>Description</key>
	<string>Downloads the latest version of AWS CLI tools and makes a pkg of it then uploads it to the JSS.</string>
	<key>Identifier</key>
	<string>com.github.dataJAR-recipes.jss.AWSCLI</string>
	<key>Input</key>
	<dict>
		<key>CATEGORY</key>
		<string>Productivity</string>
		<key>GROUP_NAME</key>
		<string>%NAME%-update-smart</string>
		<key>GROUP_TEMPLATE</key>
		<string>AWSCLISmartGroupTemplate.xml</string>
		<key>NAME</key>
		<string>AWSCLI</string>
		<key>POLICY_CATEGORY</key>
		<string>Testing</string>
		<key>POLICY_TEMPLATE</key>
		<string>PolicyTemplate.xml</string>
		<key>SELF_SERVICE_DESCRIPTION</key>
		<string>The AWS Command Line Interface (CLI) is a unified tool to manage your AWS services. With just one tool to download and configure, you can control multiple AWS services from the command line and automate them through scripts.</string>
		<key>SELF_SERVICE_ICON</key>
		<string>AWSCLI.png</string>
	</dict>
	<key>MinimumVersion</key>
	<string>0.4.0</string>
	<key>ParentRecipe</key>
	<string>com.github.homebysix.pkg.AWSCLI</string>
	<key>Process</key>
	<array>
        <dict>
            <key>Arguments</key>
            <dict>
                <key>warning_message</key>
                <string>This recipe has been deprecated.</string>
             </dict>
           	<key>Processor</key>
            <string>DeprecationWarning</string>
        </dict>
		<dict>
			<key>Arguments</key>
			<dict>
				<key>category</key>
				<string>%CATEGORY%</string>
				<key>extension_attributes</key>
				<array>
					<dict>
						<key>ext_attribute_path</key>
						<string>AWSCLIExtensionAttribute.xml</string>
					</dict>
				</array>
				<key>groups</key>
				<array>
					<dict>
						<key>name</key>
						<string>%GROUP_NAME%</string>
						<key>smart</key>
						<true/>
						<key>template_path</key>
						<string>%GROUP_TEMPLATE%</string>
					</dict>
				</array>
				<key>policy_category</key>
				<string>%POLICY_CATEGORY%</string>
				<key>policy_template</key>
				<string>%POLICY_TEMPLATE%</string>
				<key>prod_name</key>
				<string>%NAME%</string>
				<key>self_service_description</key>
				<string>%SELF_SERVICE_DESCRIPTION%</string>
				<key>self_service_icon</key>
				<string>%SELF_SERVICE_ICON%</string>
			</dict>
			<key>Processor</key>
			<string>JSSImporter</string>
		</dict>
	</array>
</dict>
</plist>

ARRIRAWConverter 4/ARRIRAWConverter 4.pkg.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Create a pkg of the latest version of ARRIRAWConverter 4, used as .app contains nop usefult version information</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.pkg.ARRIRAWConverter 4</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>ARRIRAWConverter4</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.ARRIRAWConverter 4</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>com.github.homebysix.VersionSplitter/VersionSplitter</string>
            <key>Arguments</key>
            <dict>
                <key>version</key>
                <string>%found_filename%</string>
                <key>index</key>
                <integer>1</integer>
                <key>split_on</key>
                <string>ARRIRAWConverter_</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>com.github.homebysix.VersionSplitter/VersionSplitter</string>
            <key>Arguments</key>
            <dict>
                <key>version</key>
                <string>%version%</string>
                <key>index</key>
                <integer>0</integer>
                <key>split_on</key>
                <string>_OS_X_</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PkgRootCreator</string>
            <key>Arguments</key>
            <dict>
                <key>pkgroot</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%</string>
                <key>pkgdirs</key>
                <dict>
                    <key>Applications</key>
                    <string>0775</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>Copier</string>
            <key>Arguments</key>
            <dict>
                <key>destination_path</key>
                <string>%pkgroot%/Applications/ARRIRAWConverter.app</string>
                <key>source_path</key>
                <string>%found_filename%/ARRIRAWConverter.app</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PkgCreator</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_request</key>
                <dict>
                    <key>pkgname</key>
                    <string>%NAME%-%version%</string>
                    <key>chown</key>
                    <array>
                        <dict>
                            <key>path</key>
                            <string>Applications</string>
                            <key>user</key>
                            <string>root</string>
                            <key>group</key>
                            <string>admin</string>
                        </dict>
                    </array>
                    <key>id</key>
                    <string>com.arri.ARRIRAWConverter</string>
                    <key>options</key>
                    <string>purge_ds_store</string>
                    <key>pkgdir</key>
                    <string>%RECIPE_CACHE_DIR%</string>
                    <key>pkgroot</key>
                    <string>%pkgroot%</string>
                    <key>version</key>
                    <string>%version%</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PathDeleter</string>
            <key>Arguments</key>
            <dict>
                <key>path_list</key>
                <array>
                    <string>%RECIPE_CACHE_DIR%/%NAME%</string>
                    <string>%RECIPE_CACHE_DIR%/unzipped</string>
                </array>
            </dict>
        </dict>
    </array>
</dict>
</plist>

ARRIRAWConverter 4/ARRIRAWConverter 4.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest trial version of ARRIRAWConverter 4 and imports into Munki.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.ARRIRAWConverter 4</string>
    <key>Input</key>
    <dict>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>NAME</key>
        <string>ARRIRAWConverter4</string>
        <key>pkginfo</key>
        <dict>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>The ARRIRAW Converter (ARC) is ARRI`s free reference tool for processing MXF/ARRIRAW or ARRIRAW files to render images of optimal quality. It contains ARRI`s Software Development Kit (SDK) which is also used in the postproduction tools Adobe, Autodesk, Blackmagic, Colorfront, FilmLight, Filmmaster, Nablet AVID AMA PlugIn, The Foundry, and many others.</string>
            <key>display_name</key>
            <string>ARRIRAWConverter 4</string>
            <key>maximum_os_version</key>
            <string>10.15.7</string>
            <key>minimum_os_version</key>
            <string>10.13</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
            <key>unattended_uninstall</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.pkg.ARRIRAWConverter 4</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%pkg_path%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>
ARRIRAWConverter 4/ARRIRAWConverter 4.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest ARRIRAWConverter 4 disk image.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.ARRIRAWConverter 4</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>ARRIRAWConverter4</string>
    </dict>
    <key>MinimumVersion</key>
    <string>1.0.0</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>URLTextSearcher</string>
            <key>Arguments</key>
            <dict>
                <key>re_pattern</key>
                <string>/resource/blob/239046/54879a39243b796f00d68ec687306418/arriraw-converter-gui-4-.*?-osx-.*?-data\.zip</string>
                <key>result_output_var_name</key>
                <string>match</string>
                <key>url</key>
                <string>https://www.arri.com/en/learn-help/learn-help-camera-system/tools/arriraw-converter</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>URLDownloader</string>
            <key>Arguments</key>
            <dict>
                <key>filename</key>
                <string>%NAME%.zip</string>
                <key>url</key>
                <string>https://www.arri.com%match%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>Unarchiver</string>
            <key>Arguments</key>
            <dict>
                <key>archive_path</key>
                <string>%pathname%</string>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/unzipped/</string>
                <key>purge_destination</key>
                <true/>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PkgRootCreator</string>
            <key>Arguments</key>
            <dict>
                <key>pkgroot</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%</string>
                <key>pkgdirs</key>
                <dict>
                    <key>Applications</key>
                    <string>0775</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>FileFinder</string>
            <key>Arguments</key>
            <dict>
                <key>pattern</key>
                <string>%RECIPE_CACHE_DIR%/unzipped/*/*.dmg</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
            <key>Arguments</key>
            <dict>
                <key>input_path</key>
                <string>%found_filename%/ARRIRAWConverter.app</string>
                <key>requirement</key>
                <string>identifier "com.arri.ARRIRAWConverter" and anchor apple generic and 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] = "34E6756YB7"</string>
                <key>strict_verification</key>
                <true />
            </dict>
        </dict>
    </array>
</dict>
</plist>
AMS Neve GenesysControl plugin/AMS Neve GenesysControl plugin.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of AMS Neve GenesysControl plugin and imports into Munki.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.AMS Neve GenesysControl plugin</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>AMS Neve GenesysControl plugin</string>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>pkginfo</key>
        <dict>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>This exciting DAW plugin for the iconic Neve Genesys and Genesys Black consoles gives DAW users the ability to connect to and control the console’s analogue hardware and also automate the EQ and Dynamics processing parameters, fader levels, channel strip settings and more.</string>
            <key>display_name</key>
            <string>AMS Neve GenesysControl plugin</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.2.0</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.AMS Neve GenesysControl plugin</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%pkg_path%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>
AMS Neve GenesysControl plugin/AMS Neve GenesysControl plugin.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads latest version of the AMS Neve GenesysControl plugin</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.AMS Neve GenesysControl plugin</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>AMS Neve GenesysControl plugin</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.2.0</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>DeprecationWarning</string>
            <key>Arguments</key>
            <dict>
                <key>warning_message</key>
                <string>These recipes have been replaced with: https://github.com/autopkg/dataJAR-recipes/tree/master/Zevrix%20LinkOptimizer%206</string>
             </dict>
        </dict>
        <dict>   
            <key>Processor</key>   
            <string>StopProcessingIf</string>   
            <key>Arguments</key>   
            <dict>   
                <key>predicate</key>   
                <string>TRUEPREDICATE</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>URLTextSearcher</string>
            <key>Arguments</key>
            <dict>
                <key>url</key>
                <string>https://www.ams-neve.com/genesyscontrol-plugin-199-w.asp</string>
                <key>re_pattern</key>
                <string>http://ams-neve\.info/ftp/web/Genesys/GenesysControlInstallerMac_\d_\d*\.zip</string>
                <key>result_output_var_name</key>
                <string>url</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>URLDownloader</string>
            <key>Arguments</key>
            <dict>
                <key>filename</key>
                <string>%NAME%.zip</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>Unarchiver</string>
            <key>Arguments</key>
            <dict>
                <key>archive_path</key>
                <string>%pathname%</string>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/pkg_unzip</string>
                <key>purge_destination</key>
                <true/>
                <key>archive_format</key>
                <string>zip</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>FileFinder</string>
            <key>Arguments</key>
            <dict>
                <key>pattern</key>
                <string>%destination_path%/GenesysControlInstaller*.pkg</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PkgCopier</string>
            <key>Arguments</key>
            <dict>
                <key>source_pkg</key>
                <string>%found_filename%</string>
                <key>pkg_path</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%.pkg</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>FlatPkgUnpacker</string>
            <key>Arguments</key>
            <dict>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/pkg_unpack</string>
                <key>flat_pkg_path</key>
                <string>%pkg_path%</string>
                <key>purge_destination</key>
                <string>true</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PkgPayloadUnpacker</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_payload_path</key>
                <string>%destination_path%/AAX.pkg/Payload</string>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/aaxpkg_unpack</string>
                <key>purge_destination</key>
                <string>true</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
            <key>Arguments</key>
            <dict>
                <key>input_path</key>
                <string>%destination_path%/GenesysControl.aaxplugin</string>
                <key>requirement</key>
                <string>identifier "com.AMSNeve.GenesysControl" and certificate leaf = H"8eee15e441a44455f2ddad0b222a640a73dbf8c0"</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PathDeleter</string>
            <key>Arguments</key>
            <dict>
                <key>path_list</key>
                <array>
                    <string>%RECIPE_CACHE_DIR%/aaxpkg_unpack</string>
                    <string>%RECIPE_CACHE_DIR%/pkg_unpack</string>
                    <string>%RECIPE_CACHE_DIR%/pkg_unzip</string>
                </array>
            </dict>
        </dict>
    </array>
</dict>
</plist>
AMS Neve GenesysControl plugin - 10.15+/AMS Neve GenesysControl Plugin - 10.15+.pkg.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of AMS Neve GenesysControl Plugin for macOS 10.15+ and creates a pkg.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.pkg.AMS Neve GenesysControl Plugin - 10.15+</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>AMSNeveGenesysControlPlugin</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.2.0</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.AMS Neve GenesysControl Plugin - 10.15+</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>PkgRootCreator</string>
            <key>Arguments</key>
            <dict>
                <key>pkgroot</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%</string>
                <key>pkgdirs</key>
                <dict>
                    <key>Library</key>
                    <string>0755</string>
                    <key>Library/Application Support</key>
                    <string>0755</string>
                    <key>Library/Application Support/Avid</key>
                    <string>0775</string>
                    <key>Library/Application Support/Avid/Audio</key>
                    <string>0775</string>
                    <key>Library/Application Support/Avid/Audio/Plug-Ins</key>
                    <string>0775</string>
                    <key>Library/Audio</key>
                    <string>0755</string>
                    <key>Library/Audio/Plug-Ins</key>
                    <string>0755</string>
                    <key>Library/Audio/Plug-Ins/VST</key>
                    <string>0755</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>Copier</string>
            <key>Arguments</key>
            <dict>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%/Library/Application Support/Avid/Audio/Plug-Ins/GenesysControl.aaxplugin</string>
                <key>source_path</key>
                <string>%found_filename%/GenesysControl.aaxplugin</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>Copier</string>
            <key>Arguments</key>
            <dict>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%/Library/Audio/Plug-Ins/VST/GenesysControl.vst</string>
                <key>source_path</key>
                <string>%found_filename%/GenesysControl.aaxplugin</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PlistReader</string>
            <key>Arguments</key>
            <dict>
                <key>info_path</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%/Library/Application Support/Avid/Audio/Plug-Ins/GenesysControl.aaxplugin/Contents/Info.plist</string>
                <key>plist_keys</key>
                <dict>
                	<key>CFBundleIdentifier</key>
                	<string>bundleid</string>
                    <key>CFBundleShortVersionString</key>
                    <string>version</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PkgCreator</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_request</key>
                <dict>
                    <key>pkgname</key>
                    <string>%NAME%-%version%</string>
                    <key>chown</key>
                    <array>
                        <dict>
                            <key>path</key>
                            <string>Library</string>
                            <key>user</key>
                            <string>root</string>
                            <key>group</key>
                            <string>admin</string>
                        </dict>
                    </array>
                    <key>id</key>
                    <string>%bundleid%</string>
                    <key>options</key>
                    <string>purge_ds_store</string>
                    <key>pkgdir</key>
                    <string>%RECIPE_CACHE_DIR%</string>
                    <key>pkgroot</key>
                    <string>%pkgroot%</string>
                    <key>version</key>
                    <string>%version%</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PathDeleter</string>
            <key>Arguments</key>
            <dict>
                <key>path_list</key>
                <array>
                    <string>%RECIPE_CACHE_DIR%/unzip</string>
                </array>
            </dict>
        </dict>
    </array>
</dict>
</plist>
AMS Neve GenesysControl plugin - 10.15+/AMS Neve GenesysControl Plugin - 10.15+.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of AMS Neve GenesysControl Plugin for macOS 10.15+ and imports into Munki.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.AMS Neve GenesysControl Plugin - 10.15+</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>AMSNeveGenesysControlPlugin</string>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>pkginfo</key>
        <dict>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>This exciting DAW plugin for the iconic Neve Genesys and Genesys Black consoles gives DAW users the ability to connect to and control the console’s analogue hardware and also automate the EQ and Dynamics processing parameters, fader levels, channel strip settings and more.</string>
            <key>display_name</key>
            <string>AMS Neve GenesysControl plugin</string>
            <key>minimum_os_version</key>
            <string>10.15</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
            <key>unattended_uninstall</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.2.0</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.pkg.AMS Neve GenesysControl Plugin - 10.15+</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>MunkiInstallsItemsCreator</string>
            <key>Arguments</key>
            <dict>
                <key>faux_root</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%</string>
                <key>installs_item_paths</key>
                <array>
                    <string>/Library/Application Support/Avid/Audio/Plug-Ins/GenesysControl.aaxplugin</string>
                </array>
                <key>version_comparison_key</key>
                <string>CFBundleShortVersionString</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiPkginfoMerger</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PlistReader</string>
            <key>Arguments</key>
            <dict>
                <key>info_path</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%/Library/Application Support/Avid/Audio/Plug-Ins/GenesysControl.aaxplugin/Contents/Info.plist</string>
                <key>plist_keys</key>
                <dict>
                    <key>CFBundleShortVersionString</key>
                    <string>version</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiPkginfoMerger</string>
            <key>Arguments</key>
            <dict>
                <key>additional_pkginfo</key>
                <dict>
                    <key>version</key>
                    <string>%version%</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%pkg_path%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>
AMS Neve GenesysControl plugin - 10.15+/AMS Neve GenesysControl Plugin - 10.15+.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads latest version of the AMS Neve GenesysControl Plugin for macOS - 10.15+</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.AMS Neve GenesysControl Plugin - 10.15+</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>AMSNeveGenesysControlPlugin</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.2.0</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>URLTextSearcher</string>
            <key>Arguments</key>
            <dict>
                <key>re_pattern</key>
                <string>(http://ams-neve\.info/ftp/web/Genesys/GenesysControlInstallerMac.*?\.zip).*?GenesysControl plugin Installer \(Mac OSX, Catalina\+\)</string>
                <key>result_output_var_name</key>
                <string>url</string>
                <key>url</key>
                <string>https://www.ams-neve.com/consoles/genesyscontrol-plugin/</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>URLDownloader</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>Unarchiver</string>
            <key>Arguments</key>
            <dict>
                <key>archive_path</key>
                <string>%pathname%</string>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/unzip</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>FileFinder</string>
            <key>Arguments</key>
            <dict>
                <key>pattern</key>
                <string>%RECIPE_CACHE_DIR%/unzip/*.dmg</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
            <key>Arguments</key>
            <dict>
                <key>input_path</key>
                <string>%found_filename%/GenesysControl.aaxplugin</string>
                <key>requirement</key>
                <string>identifier "com.AMSNeve.GenesysControl" and anchor apple generic and 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] = MFS334BU6V</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>
AMS Neve GenesysControl Plugin - 10.11-10.14/AMS Neve GenesysControl Plugin - 10.11-10.14.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of AMS Neve GenesysControl Plugin for macOS - 10.11-10.14 and imports into Munki.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.AMS Neve GenesysControl Plugin - 10.11-10.14</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>AMSNeveGenesysControlPlugin</string>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>pkginfo</key>
        <dict>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>This exciting DAW plugin for the iconic Neve Genesys and Genesys Black consoles gives DAW users the ability to connect to and control the console’s analogue hardware and also automate the EQ and Dynamics processing parameters, fader levels, channel strip settings and more.</string>
            <key>display_name</key>
            <string>AMS Neve GenesysControl plugin</string>
            <key>maximum_os_version</key>
            <string>10.14.6</string>
            <key>minimum_os_version</key>
            <string>10.11</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
            <key>unattended_uninstall</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.2.0</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.AMS Neve GenesysControl Plugin - 10.11-10.14</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>MunkiInstallsItemsCreator</string>
            <key>Arguments</key>
            <dict>
                <key>faux_root</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%</string>
                <key>installs_item_paths</key>
                <array>
                    <string>/Library/Application Support/Avid/Audio/Plug-Ins/GenesysControl.aaxplugin</string>
                </array>
                <key>version_comparison_key</key>
                <string>CFBundleShortVersionString</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiPkginfoMerger</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PlistReader</string>
            <key>Arguments</key>
            <dict>
                <key>info_path</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%/Library/Application Support/Avid/Audio/Plug-Ins/GenesysControl.aaxplugin/Contents/Info.plist</string>
                <key>plist_keys</key>
                <dict>
                    <key>CFBundleShortVersionString</key>
                    <string>version</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiPkginfoMerger</string>
            <key>Arguments</key>
            <dict>
                <key>additional_pkginfo</key>
                <dict>
                    <key>version</key>
                    <string>%version%</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%found_filename%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PathDeleter</string>
            <key>Arguments</key>
            <dict>
                <key>path_list</key>
                <array>
                    <string>%RECIPE_CACHE_DIR%/%NAME%</string>
                    <string>%RECIPE_CACHE_DIR%/unpack</string>
                </array>
            </dict>
        </dict>
    </array>
</dict>
</plist>
AMS Neve GenesysControl Plugin - 10.11-10.14/AMS Neve GenesysControl Plugin - 10.11-10.14.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads latest version of the AMS Neve GenesysControl plugin for macOS - 10.11-10.14</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.AMS Neve GenesysControl Plugin - 10.11-10.14</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>AMSNeveGenesysControlPlugin</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.2.0</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>URLTextSearcher</string>
            <key>Arguments</key>
            <dict>
                <key>re_pattern</key>
                <string>(http://ams-neve\.info/ftp/web/Genesys/GenesysControlInstallerMac.*?\.zip).*?GenesysControl Plugin Installer \(Mac OSX, up to Mojave\)</string>
                <key>result_output_var_name</key>
                <string>url</string>
                <key>url</key>
                <string>https://www.ams-neve.com/consoles/genesyscontrol-plugin/</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>URLDownloader</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>Unarchiver</string>
            <key>Arguments</key>
            <dict>
                <key>archive_path</key>
                <string>%pathname%</string>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>FileFinder</string>
            <key>Arguments</key>
            <dict>
                <key>pattern</key>
                <string>%RECIPE_CACHE_DIR%/GenesysControlInstaller*.pkg</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>FlatPkgUnpacker</string>
            <key>Arguments</key>
            <dict>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/unpack</string>
                <key>flat_pkg_path</key>
                <string>%found_filename%</string>
                <key>purge_destination</key>
                <true/>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PkgPayloadUnpacker</string>
            <key>Arguments</key>
            <dict>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%/Library/Application Support/Avid/Audio/Plug-ins/</string>
                <key>pkg_payload_path</key>
                <string>%RECIPE_CACHE_DIR%/unpack/AAX.pkg/Payload</string>
                <key>purge_destination</key>
                <true/>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
            <key>Arguments</key>
            <dict>
                <key>input_path</key>
                <string>%RECIPE_CACHE_DIR%/%NAME%/Library/Application Support/Avid/Audio/Plug-ins/GenesysControl.aaxplugin</string>
                <key>requirement</key>
                <string>identifier "com.AMSNeve.GenesysControl" and certificate leaf = H"8eee15e441a44455f2ddad0b222a640a73dbf8c0"</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>
AJA U-TAP Updater/AJA U-TAP Updater.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the current release version of AJA U-TAP Updater, builds a package and imports it to Munki.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.AJA U-TAP Updater</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>AJAU-TAPUpdater</string>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps</string>
        <key>pkginfo</key>
        <dict>
            <key>blocking_applications</key>
            <array>
                <string>AJA U-TAP Updater</string>
            </array>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>category</key>
            <string>Applications</string>
            <key>description</key>
            <string>U-TAP SDI Simple USB 3.0
 
Powered 3G-SDI Capture</string>
            <key>developer</key>
            <string>AJA Video Systems, Inc</string>
            <key>display_name</key>
            <string>AJA U-TAP Updater</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
            <key>unattended_uninstall</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.4.3</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.AJA U-TAP Updater</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%found_filename%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PathDeleter</string>
            <key>Arguments</key>
            <dict>
                <key>path_list</key>
                <array>
                    <string>%RECIPE_CACHE_DIR%/unzip/</string>
                </array>
            </dict>
        </dict>
    </array>
</dict>
</plist>
AJA U-TAP Updater/AJA U-TAP Updater.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the current release version of AJA U-TAP Updater.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.AJA U-TAP Updater</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>AJAU-TAPUpdater</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.2.0</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>URLTextSearcher</string>
            <key>Arguments</key>
            <dict>
                <key>re_pattern</key>
                <string>\/support\\\/files\\\/8089\\\/en\\/(AJA_U-TAP_Updater_macOS_v.*?\.zip)</string>
                <key>url</key>
                <string>https://www.aja.com/products/u-tap-sdi#support</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>URLDownloader</string>
            <key>Arguments</key>
            <dict>
                <key>url</key>
                <string>https://www.aja.com/assets/support/files/8089/en/%match%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>Unarchiver</string>
            <key>Arguments</key>
            <dict>
                <key>archive_path</key>
                <string>%pathname%</string>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/unzip</string>
                <key>purge_destination</key>
                <true/>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>FileFinder</string>
            <key>Arguments</key>
            <dict>
                <key>pattern</key>
                <string>%RECIPE_CACHE_DIR%/unzip/AJA_U-TAP_Updater_*.dmg</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
            <key>Arguments</key>
            <dict>
                <key>input_path</key>
                <string>%found_filename%/AJA U-TAP Updater.app</string>
                <key>requirement</key>
                <string>identifier "com.aja.utapconfig" and anchor apple generic and 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] = "9VB857J7CD"</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>
A+ Suite/A+ Suite.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of A+Suite and imports into Munki</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.A+ Suite</string>
    <key>Input</key>
    <dict>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>NAME</key>
        <string>A+Suite</string>
        <key>pkginfo</key>
        <dict>
            <key>RestartAction</key>
            <string>RequireRestart</string>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>Provides teachers with a range of interactive software to realize the full potential of their AVer visualizers.</string>
            <key>developer</key>
            <string>AVer</string>
            <key>display_name</key>
            <string>A+Suite</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_uninstall</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.5.0</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.A+ Suite</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>Copier</string>
            <key>Arguments</key>
            <dict>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/</string>
                <key>source_path</key>
                <string>%RECIPE_CACHE_DIR%/unzip/*.pkg</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>FileFinder</string>
            <key>Arguments</key>
            <dict>
                <key>pattern</key>
                <string>%RECIPE_CACHE_DIR%/*.pkg</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%found_filename%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>PathDeleter</string>
            <key>Arguments</key>
            <dict>
                <key>path_list</key>
                <array>
                    <string>%RECIPE_CACHE_DIR%/unzip</string>
                </array>
            </dict>
        </dict>
    </array>
</dict>
</plist>
A+ Suite/A+ Suite.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of A+ Suite</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.A+ Suite</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>A+Suite</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.5.0</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>URLTextSearcher</string>
            <key>Arguments</key>
            <dict>
                <key>re_pattern</key>
                <string>/downloads/A\+Suite_v.*?_Mac.*?.zip</string>
                <key>url</key>
                <string>https://www.averusa.com/education/support/aplus-suite</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>URLDownloader</string>
            <key>Arguments</key>
            <dict>
                <key>url</key>
                <string>https://www.averusa.com/education%match%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>Unarchiver</string>
            <key>Arguments</key>
            <dict>
                <key>archive_path</key>
                <string>%pathname%</string>
                <key>destination_path</key>
                <string>%RECIPE_CACHE_DIR%/unzip</string>
                <key>purge_destination</key>
                <true/>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
            <key>Arguments</key>
            <dict>
                <key>input_path</key>
                <string>%RECIPE_CACHE_DIR%/unzip/*.pkg</string>
                <key>expected_authority_names</key>
                <array>
                    <string>Developer ID Installer: AVer Information Inc. (B6T3WCD59Q)</string>
                    <string>Developer ID Certification Authority</string>
                    <string>Apple Root CA</string>
                </array>
            </dict>
        </dict>
    </array>
</dict>
</plist>
4K Video Downloader/4KVideoDownloader.png METASEP

4K Video Downloader/4K Video Downloader.pkg.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of 4K Video Downloader and makes a package.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.pkg.4K Video Downloader</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>4KVideoDownloader</string>
    </dict>
    <key>MinimumVersion</key>
    <string>1.0.0</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.4K Video Downloader</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>AppPkgCreator</string>
            <key>Arguments</key>
            <dict>
                <key>app_path</key>
                <string>%pathname%/4K Video Downloader.app</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>

4K Video Downloader/4K Video Downloader.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of 4K Video Downloader and imports it into Munki.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.munki.4K Video Downloader</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>4KVideoDownloader</string>
        <key>MUNKI_REPO_SUBDIR</key>
        <string>apps/%NAME%</string>
        <key>pkginfo</key>
        <dict>
            <key>catalogs</key>
            <array>
                <string>testing</string>
            </array>
            <key>description</key>
            <string>4K Video Downloader allows downloading videos, playlists, channels and subtitles from YouTube, Facebook, Vimeo and other video sites in high quality.</string>
            <key>developer</key>
            <string>Open Media LLC</string>
            <key>display_name</key>
            <string>4K Video Downloader</string>
            <key>name</key>
            <string>%NAME%</string>
            <key>unattended_install</key>
            <true/>
            <key>unattended_uninstall</key>
            <true/>
        </dict>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.download.4K Video Downloader</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>MunkiPkginfoMerger</string>
            <key>Arguments</key>
            <dict>
                <key>additional_pkginfo</key>
                <dict>
                    <key>version</key>
                    <string>%version%</string>
                </dict>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>MunkiImporter</string>
            <key>Arguments</key>
            <dict>
                <key>pkg_path</key>
                <string>%pathname%</string>
                <key>repo_subdirectory</key>
                <string>%MUNKI_REPO_SUBDIR%</string>
                <key>version_comparison_key</key>
                <string>CFBundleVersion</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>

4K Video Downloader/4K Video Downloader.jss.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads the latest version of 4K Video Downloader and then uploads to the JSS.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.jss.4K Video Downloader</string>
    <key>Input</key>
    <dict>
        <key>CATEGORY</key>
        <string>Media</string>
        <key>GROUP_NAME</key>
        <string>%NAME%-update-smart</string>
        <key>GROUP_TEMPLATE</key>
        <string>SmartGroupTemplate.xml</string>
        <key>NAME</key>
        <string>4KVideoDownloader</string>
        <key>POLICY_CATEGORY</key>
        <string>Testing</string>
        <key>POLICY_TEMPLATE</key>
        <string>PolicyTemplate.xml</string>
        <key>SELF_SERVICE_DESCRIPTION</key>
        <string>4K Video Downloader allows downloading videos, playlists, channels and subtitles from YouTube, Facebook, Vimeo and other video sites in high quality.</string>
        <key>SELF_SERVICE_ICON</key>
        <string>4KVideoDownloader.png</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>ParentRecipe</key>
    <string>com.github.dataJAR-recipes.pkg.4K Video Downloader</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>JSSImporter</string>
            <key>Arguments</key>
            <dict>
                <key>category</key>
                <string>%CATEGORY%</string>
                <key>groups</key>
                <array>
                    <dict>
                        <key>name</key>
                        <string>%GROUP_NAME%</string>
                        <key>smart</key>
                        <true/>
                        <key>template_path</key>
                        <string>%GROUP_TEMPLATE%</string>
                    </dict>
                </array>
                <key>pkg_path</key>
                <string>%pkg_path%</string>
                <key>policy_category</key>
                <string>%POLICY_CATEGORY%</string>
                <key>policy_template</key>
                <string>%POLICY_TEMPLATE%</string>
                <key>prod_name</key>
                <string>4K Video Downloader</string>
                <key>self_service_description</key>
                <string>%SELF_SERVICE_DESCRIPTION%</string>
                <key>self_service_icon</key>
                <string>%SELF_SERVICE_ICON%</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>
4K Video Downloader/4K Video Downloader.download.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Description</key>
    <string>Downloads latest version of 4K Video Downloader.</string>
    <key>Identifier</key>
    <string>com.github.dataJAR-recipes.download.4K Video Downloader</string>
    <key>Input</key>
    <dict>
        <key>NAME</key>
        <string>4KVideoDownloader</string>
    </dict>
    <key>MinimumVersion</key>
    <string>0.6.1</string>
    <key>Process</key>
    <array>
        <dict>
            <key>Processor</key>
            <string>URLTextSearcher</string>
            <key>Arguments</key>
            <dict>
                <key>url</key>
                <string>https://www.4kdownload.com/products/product-videodownloader</string>
                <key>re_pattern</key>
                <string>https:\/\/dl\.4kdownload\.com\/app\/4kvideodownloader_.*?.dmg\?source=website</string>
                <key>result_output_var_name</key>
                <string>match</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>URLDownloader</string>
            <key>Arguments</key>
            <dict>
                <key>filename</key>
                <string>%NAME%.dmg</string>
                <key>url</key>
                <string>%match%</string>
            </dict>
        </dict>
        <dict>
            <key>Processor</key>
            <string>EndOfCheckPhase</string>
        </dict>
        <dict>
            <key>Processor</key>
            <string>CodeSignatureVerifier</string>
            <key>Arguments</key>
            <dict>
                <key>input_path</key>
                <string>%pathname%/4K Video Downloader.app</string>
                <key>requirement</key>
                <string>identifier "com.openmedia.4kvideodownloader" and anchor apple generic and 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] = GHQ37VJF83</string>
            </dict>
        </dict>
        <dict>
            <key>Arguments</key>
            <dict>
                <key>input_plist_path</key>
                <string>%pathname%/4K Video Downloader.app/Contents/Info.plist</string>
                <key>plist_version_key</key>
                <string>CFBundleVersion</string>
            </dict>
            <key>Processor</key>
            <string>Versioner</string>
        </dict>
    </array>
</dict>
</plist>

ngrok/ngrokVersioner.py METASEP
#!/usr/local/autopkg/python
# pylint: disable = invalid-name

'''
Copyright (c) 2021, dataJAR Ltd.  All rights reserved.
     Redistribution and use in source and binary forms, with or without
     modification, are permitted provided that the following conditions are met:
             * Redistributions of source code must retain the above copyright
               notice, this list of conditions and the following disclaimer.
             * Redistributions in binary form must reproduce the above copyright
               notice, this list of conditions and the following disclaimer in the
               documentation and/or other materials provided with the distribution.
             * Neither data JAR Ltd nor the names of its contributors may be used to
               endorse or promote products derived from this software without specific
               prior written permission.
     THIS SOFTWARE IS PROVIDED BY DATA JAR LTD 'AS IS' AND ANY
     EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
     WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
     DISCLAIMED. IN NO EVENT SHALL DATA JAR LTD BE LIABLE FOR ANY
     DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
     (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
     ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
     (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
     SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
SUPPORT FOR THIS PROGRAM
    This program is distributed 'as is' by DATA JAR LTD.
    For more information or support, please utilise the following resources:
            http://www.datajar.co.uk
DESCRIPTION
See docstring for ngrokVersioner class
'''

# Standard Imports
from __future__ import absolute_import
import subprocess
import os

# AutoPkg imports
# pylint: disable = import-error
from autopkglib import Processor, ProcessorError


__all__ = ['ngrokVersioner']
__version__ = '1.0'


# pylint: disable = too-few-public-methods
class ngrokVersioner(Processor):
    '''
        Returns the version from the ngrok binary

        Raising if the key is not found.
    '''

    description = __doc__
    input_variables = {
        'binary_path': {
            'required': True,
            'description': ('Path to the ngrok binary.'),
        },
    }

    output_variables = {
        'version': {
            'description': ('Version of the ngrok binary.'),
        },
    }

    def main(self):
        '''
            See docstring for ngrokVersioner class
        '''

        # var declaration
        version = None

        # Progress notification
        self.output("Looking for: {}".format(self.env['binary_path']))

        # If binary exists
        if os.path.isfile(self.env['binary_path']):
            # Get binary version, from: https://www.ngrok.com/doc/9.54.0/Use.htm#Help_command
            # raise if we error
            try:
                version = subprocess.check_output([self.env['binary_path'], '-v']
                                                 ).split()[2].decode('utf-8')
            except subprocess.CalledProcessError:
                raise ProcessorError("Encountered an error when trying to get the "
                                     "ngrok binary version...")
        # Raise if binary is missing
        else:
            raise ProcessorError("Cannot access ngrok binary at path: {}"
                                 .format(self.env['binary_path']))

        # We should only get here if we have passed the above, but this is belt and braces
        if version:
            self.env['version'] = version
            self.output("version: {}".format(
                self.env['version']))
        else:
            raise ProcessorError("version is None")


if __name__ == '__main__':
    PROCESSOR = ngrokVersioner()

VMware Fusion 8/VMwareFusion8URLProvider.py METASEP
#!/usr/bin/python
#
# Copyright 2014 Justin Rummel, 
#
# Updates added 2018 by macmule:
# https://github.com/autopkg/justinrummel-recipes/pull/7
# https://github.com/autopkg/justinrummel-recipes/pull/14
#
# Thanks fuzzylogiq & Sterling
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

import urllib, urllib2, gzip

from xml.etree import ElementTree
from StringIO import StringIO
from autopkglib import Processor, ProcessorError
from distutils.version import LooseVersion

__all__ = ["VMwareFusion8URLProvider"]


# variables
VMWARE_BASE_URL = 'https://softwareupdate.vmware.com/cds/vmw-desktop/'
FUSION = 'fusion.xml'
MAJOR_VERSION = '8' # lock version in

class VMwareFusion8URLProvider(Processor):
    description = "Provides URL to the latest VMware Fusion update release."
    input_variables = {
        "product_name": {
            "required": False,
            "description":
                "Default is '%s'." % FUSION,
        },
        "base_url": {
            "required": False,
            "description": "Default is '%s." % VMWARE_BASE_URL,
        },
    }
    output_variables = {
        "url": {
            "description": "URL to the latest VMware Fusion update release.",
        },
        "version": {
            "description": "Version to the latest VMware Fusion update release.",
        },
    }

    __doc__ = description

    def core_metadata(self, base_url, product_name, major_version):
        request = urllib2.Request(base_url+product_name)
        # print base_url

        try:
            vsus = urllib2.urlopen(request)
        except URLError, e:
            print e.reason

        data = vsus.read()
        # print data

        try:
            metaList = ElementTree.fromstring(data)
        except ExpatData:
            print "Unable to parse XML data from string"

        versions = []
        for metadata in metaList:
            version = metadata.find("version")
            if (major_version == 'latest' or
                    major_version == version.text.split('.')[0]):
                versions.append(version.text)
        if len(versions) == 0:
            raise ProcessorError("Could not find any versions for the \
                                  major_version '%s'." % major_version)
        versions.sort(key=LooseVersion)
        self.latest = versions[-1]
        # print latest

        urls = []
        for metadata in metaList:
            url = metadata.find("url")
            urls.append(url.text)

        matching = [s for s in urls if self.latest in s]
        core = [s for s in matching if "core" in s]
        # print core[0]

        vsus.close()

        request = urllib2.Request(base_url+core[0])

        try:
            vLatest = urllib2.urlopen(request)
        except URLError, e:
            print e.reason

        buf = StringIO(vLatest.read())
        f = gzip.GzipFile(fileobj=buf)
        data = f.read()
        # print data

        try:
            metadataResponse = ElementTree.fromstring(data)
        except ExpatData:
            print "Unable to parse XML data from string"

        relativePath = metadataResponse.find("bulletin/componentList/component/relativePath")
        # print core[0].replace("metadata.xml.gz", relativePath.text)
        return base_url+core[0].replace("metadata.xml.gz", relativePath.text)

    def main(self):
        # Determine product_name, and base_url.
        product_name = self.env.get("product_name", FUSION)
        base_url = self.env.get("base_url", VMWARE_BASE_URL)
        major_version = self.env.get("major_version", MAJOR_VERSION)

        self.env["url"] = self.core_metadata(base_url, product_name,
                                             major_version)
        self.output("Found URL %s" % self.env["url"])
        self.env["version"] = self.latest
        self.output("Found Version %s" % self.env["version"])

if __name__ == "__main__":
    processor = VMwareFusion8URLProvider()
    processor.execute_shell()

VMware Fusion 12/DittoCopier.py METASEP
#!/usr/local/autopkg/python
#
# Copyright 2010 Per Olofsson
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
"""See docstring for Copier class"""

import glob
import os.path
import shutil
import subprocess

from autopkglib import ProcessorError
from autopkglib.DmgMounter import DmgMounter

__all__ = ["DittoCopier"]


class DittoCopier(DmgMounter):
    """Copies source_path to destination_path. Uses the shell tool ditto in place of python's shutil.copy"""

    description = __doc__
    input_variables = {
        "source_path": {
            "required": True,
            "description": (
                "Path to a file or directory to copy. "
                "Can point to a path inside a .dmg which will be mounted. "
                "This path may also contain basic globbing characters such as "
                "the wildcard '*', but only the first result will be "
                "returned."
            ),
        },
        "destination_path": {"required": True, "description": "Path to destination."}
    }
    output_variables = {}

    __doc__ = description

    def copy(self, source_item, dest_item):
        """Copies source_item to dest_item, overwriting if necessary"""
        # Remove destination if needed.
        if os.path.exists(dest_item) and overwrite:
            try:
                if os.path.isdir(dest_item) and not os.path.islink(dest_item):
                    shutil.rmtree(dest_item)
                else:
                    os.unlink(dest_item)
            except OSError as err:
                raise ProcessorError(f"Can't remove {dest_item}: {err.strerror}")

        # Copy file or directory.
        try:
            subprocess.run(['ditto', source_item, dest_item], stdout=subprocess.PIPE)
            self.output(f"Copied {source_item} to {dest_item}")
        except BaseException as err:
            raise ProcessorError(f"Can't copy {source_item} to {dest_item}: {err}")

    def main(self):
        source_path = self.env["source_path"]
        # Check if we're trying to copy something inside a dmg.
        (dmg_path, dmg, dmg_source_path) = self.parsePathForDMG(source_path)
        self.output(
            f"Parsed dmg results: dmg_path: {dmg_path}, dmg: {dmg}, "
            f"dmg_source_path: {dmg_source_path}",
            verbose_level=2,
        )
        try:
            if dmg:
                # Mount dmg and copy path inside.
                mount_point = self.mount(dmg_path)
                source_path = os.path.join(mount_point, dmg_source_path)
            # process path with glob.glob
            matches = glob.glob(source_path)
            if len(matches) == 0:
                raise ProcessorError(
                    f"Error processing path '{source_path}' with glob. "
                )
            matched_source_path = matches[0]
            if len(matches) > 1:
                self.output(
                    f"WARNING: Multiple paths match 'source_path' glob '{source_path}':"
                )
                for match in matches:
                    self.output(f"  - {match}")

            if [c for c in "*?[]!" if c in source_path]:
                self.output(
                    f"Using path '{matched_source_path}' matched from "
                    f"globbed '{source_path}'."
                )

            # do the copy
            self.copy(
                matched_source_path,
                self.env["destination_path"],
            )
        finally:
            if dmg:
                self.unmount(dmg_path)


if __name__ == "__main__":
    PROCESSOR = Copier()
    PROCESSOR.execute_shell()
VMware Fusion 11/DittoCopier.py METASEP
#!/usr/local/autopkg/python
#
# Copyright 2010 Per Olofsson
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
"""See docstring for Copier class"""

import glob
import os.path
import shutil
import subprocess

from autopkglib import ProcessorError
from autopkglib.DmgMounter import DmgMounter

__all__ = ["DittoCopier"]


class DittoCopier(DmgMounter):
    """Copies source_path to destination_path. Uses the shell tool ditto in place of python's shutil.copy"""

    description = __doc__
    input_variables = {
        "source_path": {
            "required": True,
            "description": (
                "Path to a file or directory to copy. "
                "Can point to a path inside a .dmg which will be mounted. "
                "This path may also contain basic globbing characters such as "
                "the wildcard '*', but only the first result will be "
                "returned."
            ),
        },
        "destination_path": {"required": True, "description": "Path to destination."}
    }
    output_variables = {}

    __doc__ = description

    def copy(self, source_item, dest_item):
        """Copies source_item to dest_item, overwriting if necessary"""
        # Remove destination if needed.
        if os.path.exists(dest_item) and overwrite:
            try:
                if os.path.isdir(dest_item) and not os.path.islink(dest_item):
                    shutil.rmtree(dest_item)
                else:
                    os.unlink(dest_item)
            except OSError as err:
                raise ProcessorError(f"Can't remove {dest_item}: {err.strerror}")

        # Copy file or directory.
        try:
            subprocess.run(['ditto', source_item, dest_item], stdout=subprocess.PIPE)
            self.output(f"Copied {source_item} to {dest_item}")
        except BaseException as err:
            raise ProcessorError(f"Can't copy {source_item} to {dest_item}: {err}")

    def main(self):
        source_path = self.env["source_path"]
        # Check if we're trying to copy something inside a dmg.
        (dmg_path, dmg, dmg_source_path) = self.parsePathForDMG(source_path)
        self.output(
            f"Parsed dmg results: dmg_path: {dmg_path}, dmg: {dmg}, "
            f"dmg_source_path: {dmg_source_path}",
            verbose_level=2,
        )
        try:
            if dmg:
                # Mount dmg and copy path inside.
                mount_point = self.mount(dmg_path)
                source_path = os.path.join(mount_point, dmg_source_path)
            # process path with glob.glob
            matches = glob.glob(source_path)
            if len(matches) == 0:
                raise ProcessorError(
                    f"Error processing path '{source_path}' with glob. "
                )
            matched_source_path = matches[0]
            if len(matches) > 1:
                self.output(
                    f"WARNING: Multiple paths match 'source_path' glob '{source_path}':"
                )
                for match in matches:
                    self.output(f"  - {match}")

            if [c for c in "*?[]!" if c in source_path]:
                self.output(
                    f"Using path '{matched_source_path}' matched from "
                    f"globbed '{source_path}'."
                )

            # do the copy
            self.copy(
                matched_source_path,
                self.env["destination_path"],
            )
        finally:
            if dmg:
                self.unmount(dmg_path)


if __name__ == "__main__":
    PROCESSOR = Copier()
    PROCESSOR.execute_shell()

VMware Fusion 10/VMwareFusion10URLProvider.py METASEP
#!/usr/bin/python
#
# Copyright 2014 Justin Rummel, 
#
# Updates added 2018 by macmule:
# https://github.com/autopkg/justinrummel-recipes/pull/7
# https://github.com/autopkg/justinrummel-recipes/pull/14
#
# Thanks fuzzylogiq & Sterling
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

import urllib, urllib2, gzip

from xml.etree import ElementTree
from StringIO import StringIO
from autopkglib import Processor, ProcessorError
from distutils.version import LooseVersion

__all__ = ["VMwareFusion10URLProvider"]


# variables
VMWARE_BASE_URL = 'https://softwareupdate.vmware.com/cds/vmw-desktop/'
FUSION = 'fusion.xml'
MAJOR_VERSION = '10' # lock version in

class VMwareFusion10URLProvider(Processor):
    description = "Provides URL to the latest VMware Fusion update release."
    input_variables = {
        "product_name": {
            "required": False,
            "description":
                "Default is '%s'." % FUSION,
        },
        "base_url": {
            "required": False,
            "description": "Default is '%s." % VMWARE_BASE_URL,
        },
    }
    output_variables = {
        "url": {
            "description": "URL to the latest VMware Fusion update release.",
        },
        "version": {
            "description": "Version to the latest VMware Fusion update release.",
        },
    }

    __doc__ = description

    def core_metadata(self, base_url, product_name, major_version):
        request = urllib2.Request(base_url+product_name)
        # print base_url

        try:
            vsus = urllib2.urlopen(request)
        except URLError, e:
            print e.reason

        data = vsus.read()
        # print data

        try:
            metaList = ElementTree.fromstring(data)
        except ExpatData:
            print "Unable to parse XML data from string"

        versions = []
        for metadata in metaList:
            version = metadata.find("version")
            if (major_version == 'latest' or
                    major_version == version.text.split('.')[0]):
                versions.append(version.text)
        if len(versions) == 0:
            raise ProcessorError("Could not find any versions for the \
                                  major_version '%s'." % major_version)
        versions.sort(key=LooseVersion)
        self.latest = versions[-1]
        # print latest

        urls = []
        for metadata in metaList:
            url = metadata.find("url")
            urls.append(url.text)

        matching = [s for s in urls if self.latest in s]
        core = [s for s in matching if "core" in s]
        # print core[0]

        vsus.close()

        request = urllib2.Request(base_url+core[0])

        try:
            vLatest = urllib2.urlopen(request)
        except URLError, e:
            print e.reason

        buf = StringIO(vLatest.read())
        f = gzip.GzipFile(fileobj=buf)
        data = f.read()
        # print data

        try:
            metadataResponse = ElementTree.fromstring(data)
        except ExpatData:
            print "Unable to parse XML data from string"

        relativePath = metadataResponse.find("bulletin/componentList/component/relativePath")
        # print core[0].replace("metadata.xml.gz", relativePath.text)
        return base_url+core[0].replace("metadata.xml.gz", relativePath.text)

    def main(self):
        # Determine product_name, and base_url.
        product_name = self.env.get("product_name", FUSION)
        base_url = self.env.get("base_url", VMWARE_BASE_URL)
        major_version = self.env.get("major_version", MAJOR_VERSION)

        self.env["url"] = self.core_metadata(base_url, product_name,
                                             major_version)
        self.output("Found URL %s" % self.env["url"])
        self.env["version"] = self.latest
        self.output("Found Version %s" % self.env["version"])

if __name__ == "__main__":
    processor = VMwareFusion10URLProvider()
    processor.execute_shell()

Traffic/TrafficXMLParser.py METASEP
#!/usr/bin/python

# Copyright 2020 dataJAR
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

# pylint: disable=import-error, too-few-public-methods

"""See docstring for TrafficXMLParser class"""

from __future__ import absolute_import
import os
from xml.etree import ElementTree

from autopkglib import Processor, ProcessorError


__all__ = ["TrafficXMLParser"]
__version__ = '1.1'


class TrafficXMLParser(Processor):
    """Parses /META-INF/AIR/application.xml from the copied .air installer"""
    description = __doc__
    input_variables = {
        "app_xml": {
            "required": True,
            "description": "Path to the application.xml."
        },
    }

    output_variables = {
        "bundleid": {
            "description":
                "Bundled ID.",
        },
        "version": {
            "description": "The value of CFBundleShortVersionString for the app bundle."
        },
    }

    def main(self):
        """Parses /META-INF/AIR/application.xml from the copied .air installer"""
        if not os.path.exists(self.env["app_xml"]):
            raise ProcessorError("application.xml not found at %s" % self.env["app_xml"])
        else:
            tree = ElementTree.parse(self.env["app_xml"])
            for b_id in tree.iterfind('{http://ns.adobe.com/air/application/24.0}id'):
                self.env["bundleid"] = b_id.text
            for ver_num in tree.iterfind('{http://ns.adobe.com/air/application/24.0}versionNumber'):
                self.env["version"] = ver_num.text

            self.output("bundleid: %s" % self.env["bundleid"])
            self.output("version: %s" % self.env["version"])


if __name__ == "__main__":
    PROCESSOR = TrafficXMLParser()

Shared Processors/TempFileFinder.py METASEP
#!/usr/local/autopkg/python
#
# Copyright 2013 Jesse Peterson
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

#
# Temp as waiting PR merging and release including PR - https://github.com/autopkg/autopkg/pull/742
#

"""See docstring for TempFileFinder class"""


import os.path
from glob import glob

from autopkglib import ProcessorError
from autopkglib.DmgMounter import DmgMounter

__all__ = ["TempFileFinder"]


class TempFileFinder(DmgMounter):
    """Finds a filename for use in other Processors.

    Currently only supports glob filename patterns.

    Requires version 0.2.3.
    """

    input_variables = {
        "pattern": {
            "description": "Shell glob pattern to match files by",
            "required": True,
        },
        "find_method": {
            "description": (
                "Type of pattern to match. Currently only "
                'supported type is "glob" (also the default)'
            ),
            "default": "glob",
            "required": False,
        },
    }
    output_variables = {
        "found_filename": {"description": "Full path of found filename"},
        "dmg_found_filename": {"description": "DMG-relative path of found filename"},
        "found_basename": {"description": "Basename of found filename"},
    }

    description = __doc__

    def globfind(self, pattern):
        """If multiple files are found the last alphanumerically sorted found
        file is returned"""

        glob_matches = glob(pattern, recursive=True)

        if len(glob_matches) < 1:
            raise ProcessorError("No matching filename found")

        glob_matches.sort()

        return glob_matches[-1]

    def main(self):
        pattern = self.env.get("pattern")

        method = self.env.get("find_method")

        if method != "glob":
            raise ProcessorError(f"Unsupported find_method: {method}")

        source_path = pattern

        # Check if we're trying to copy something inside a dmg.
        (dmg_path, dmg, dmg_source_path) = self.parsePathForDMG(source_path)
        try:
            if dmg:
                # Mount dmg and copy path inside.
                mount_point = self.mount(dmg_path)
                source_path = os.path.join(mount_point, dmg_source_path)
            # process path with globbing
            match = self.globfind(source_path)
            self.env["found_filename"] = match
            self.output(
                f"Found file match: '{self.env['found_filename']}' from globbed '{source_path}'"
            )

            if dmg and match.startswith(mount_point):
                self.env["dmg_found_filename"] = match[len(mount_point) :].lstrip("/")
                self.output(
                    f"DMG-relative file match: '{self.env['dmg_found_filename']}'"
                )

            if match.endswith('/'):
                self.env["found_basename"] = os.path.basename(match.rstrip("/"))
            else:
                self.env["found_basename"] = os.path.basename(match)
            self.output(
                f"Basename match: '{self.env['found_basename']}'"
            )

        finally:
            if dmg:
                self.unmount(dmg_path)


if __name__ == "__main__":
    PROCESSOR = TempFileFinder()
    PROCESSOR.execute_shell()
Shared Processors/JSONFileReader.py METASEP
#!/usr/local/autopkg/python
# pylint: disable = invalid-name

'''
Copyright (c) 2020, dataJAR Ltd.  All rights reserved.
     Redistribution and use in source and binary forms, with or without
     modification, are permitted provided that the following conditions are met:
             * Redistributions of source code must retain the above copyright
               notice, this list of conditions and the following disclaimer.
             * Redistributions in binary form must reproduce the above copyright
               notice, this list of conditions and the following disclaimer in the
               documentation and/or other materials provided with the distribution.
             * Neither data JAR Ltd nor the names of its contributors may be used to
               endorse or promote products derived from this software without specific
               prior written permission.
     THIS SOFTWARE IS PROVIDED BY DATA JAR LTD 'AS IS' AND ANY
     EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
     WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
     DISCLAIMED. IN NO EVENT SHALL DATA JAR LTD BE LIABLE FOR ANY
     DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
     (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
     ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
     (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
     SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
SUPPORT FOR THIS PROGRAM
    This program is distributed 'as is' by DATA JAR LTD.
    For more information or support, please utilise the following resources:
            http://www.datajar.co.uk
DESCRIPTION
See docstring for JSONFileReader class
'''

# Standard Imports
from __future__ import absolute_import
import json
import os

# AutoPkg imports
# pylint: disable = import-error
from autopkglib import Processor, ProcessorError


__all__ = ['JSONFileReader']
__version__ = '1.0'


# pylint: disable = too-few-public-methods
class JSONFileReader(Processor):
    '''
        Parses a JSON file, returning the value of the supplied key.

        Raising if the key is not found.
    '''

    description = __doc__
    input_variables = {
        'json_key': {
            'required': True,
            'description': ('Key to look for, and return the value of'),
        },
        'json_path': {
            'required': True,
            'description': ('Path to the JSON file'),
        },
    }

    output_variables = {
        'json_value': {
            'description': ('Value of the JSON key'),
        },
    }

    def main(self):
        '''
            See docstring for JSONFileReader class
        '''

        # Progress notification
        self.output("Looking for: {}".format(self.env['json_path']))

        if os.path.isfile(self.env['json_path']):

            # Read in JSON file
            with open(self.env['json_path']) as json_file:

                # Try to parse json_path as json, raise if an issue
                try:
                    load_json = json.load(json_file)
                except json.JSONDecodeError as err_msg:
                    raise ProcessorError("Failed to parse {}: {}".format(self.env['json_path'],
                                                                         err_msg))
                # Look for value of key json_key, raise if an issue
                try:
                    self.env['json_value'] = load_json[self.env['json_key']]
                except KeyError:
                    raise ProcessorError("Cannot find key {} within json file: {}"
                                         .format(self.env['json_key'], self.env['json_path']))
        else:
            raise ProcessorError("Cannot access JSON file at path: {}"
                                 .format(self.env['json_path']))

        self.output("json_value: {}".format(self.env['json_value']))


if __name__ == '__main__':
    PROCESSOR = JSONFileReader()

Shared Processors/DistributionPkgInfo.py METASEP
#!/usr/bin/python

# Copyright 2020 dataJAR
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

# pylint: disable=import-error, too-few-public-methods

"""See docstring for DistributionPkgInfo class"""

from __future__ import absolute_import
from __future__ import print_function
import os
import subprocess
from xml.etree import ElementTree

from autopkglib import Processor, ProcessorError


__all__ = ["DistributionPkgInfo"]
__version__ = '1.1.1'


class DistributionPkgInfo(Processor):
    """Parses a distribution pkg to pull the info, other formats to be added later"""

    description = __doc__
    input_variables = {
        "pkg_path": {
            "required": True,
            "description": ("Path to the Pkg.."),
        },
    }

    output_variables = {
        "pkg_id": {
            "description": ("The package ID.."),
        },
        "version": {
            "description": ("The version of the pkg from it's info"),
        },
    }

    # pylint: disable=too-many-branches
    def main(self):
        """Cobbled together from various sources, should extract information from a
           Distribution pkg"""
        # Build dir as needed,pinched with <3 from:
        # https://github.com/autopkg/autopkg/blob/master/Code/autopkglib/FlatPkgUnpacker.py#L72
        # Extract pkg info, pinched with <3 from:
        # https://github.com/munki/munki/blob/master/code/client/munkilib/pkgutils.py#L374
        self.env["abspkgpath"] = os.path.join(self.env["pkg_path"])
        file_path = os.path.join(self.env["RECIPE_CACHE_DIR"], "downloads")
        cmd_toc = ['/usr/bin/xar', '-tf', self.env["abspkgpath"]]
        proc = subprocess.Popen(cmd_toc, bufsize=-1, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
        (toc, err) = proc.communicate()
        toc = toc.decode("utf-8") .strip().split('\n')

        if proc.returncode == 0:
            # Walk trough the TOC entries
            if not os.path.exists(file_path):
                os.mkdir(file_path)

            for toc_entry in [item for item in toc
                              if item.startswith('Distribution')]:
                cmd_extract = ['/usr/bin/xar', '-xf', self.env["abspkgpath"], \
                               toc_entry, '-C', file_path]
                _ = subprocess.call(cmd_extract)
        else:
            raise ProcessorError("pkg not found at pkg_path")

        dist_path = os.path.join(file_path, "Distribution")

        version = None
        pkg_id = None

        if not os.path.exists(dist_path):
            raise ProcessorError("Cannot find Distribution")
        else:
            tree = ElementTree.parse(dist_path)
            _ = tree.getroot()
            try:
                for elem in tree.iter(tag='product'):
                    version = elem.get("version")
                for elem in tree.iter(tag='pkg-ref'):
                    pkg_id = elem.get("id")
            except ElementTree.ParseError as err:
                print(("Can't parse distribution file %s: %s"
                       % ('dist_path', err.strerror)))

        if not pkg_id:
            raise ProcessorError("cannot get pkg_id")
        else:
            self.env["pkg_id"] = pkg_id

        if not version:
            raise ProcessorError("cannot get version")
        else:
            self.env["version"] = version
            os.remove(dist_path)

if __name__ == '__main__':
    PROCESSOR = DistributionPkgInfo()

MacTeX Ghostscript/GhostscriptVersioner.py METASEP
#!/usr/local/autopkg/python
# pylint: disable = invalid-name

'''
Copyright (c) 2021, dataJAR Ltd.  All rights reserved.
     Redistribution and use in source and binary forms, with or without
     modification, are permitted provided that the following conditions are met:
             * Redistributions of source code must retain the above copyright
               notice, this list of conditions and the following disclaimer.
             * Redistributions in binary form must reproduce the above copyright
               notice, this list of conditions and the following disclaimer in the
               documentation and/or other materials provided with the distribution.
             * Neither data JAR Ltd nor the names of its contributors may be used to
               endorse or promote products derived from this software without specific
               prior written permission.
     THIS SOFTWARE IS PROVIDED BY DATA JAR LTD 'AS IS' AND ANY
     EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
     WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
     DISCLAIMED. IN NO EVENT SHALL DATA JAR LTD BE LIABLE FOR ANY
     DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
     (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
     ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
     (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
     SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
SUPPORT FOR THIS PROGRAM
    This program is distributed 'as is' by DATA JAR LTD.
    For more information or support, please utilise the following resources:
            http://www.datajar.co.uk
DESCRIPTION
See docstring for GhostscriptVersioner class
'''

# Standard Imports
from __future__ import absolute_import
import subprocess
import os

# AutoPkg imports
# pylint: disable = import-error
from autopkglib import Processor, ProcessorError


__all__ = ['GhostscriptVersioner']
__version__ = '1.0'


# pylint: disable = too-few-public-methods
class GhostscriptVersioner(Processor):
    '''
        Returns the version from the Ghostscript binary

        Raising if the key is not found.
    '''

    description = __doc__
    input_variables = {
        'binary_path': {
            'required': True,
            'description': ('Path to the Ghostscript binary.'),
        },
    }

    output_variables = {
        'version': {
            'description': ('Version of the Ghostscript binary.'),
        },
    }

    def main(self):
        '''
            See docstring for GhostscriptVersioner class
        '''

        # var declaration
        version = None

        # Progress notification
        self.output("Looking for: {}".format(self.env['binary_path']))

        # If binary exists
        if os.path.isfile(self.env['binary_path']):
            # Get binary version, from: https://www.ghostscript.com/doc/9.54.0/Use.htm#Help_command
            # raise if we error
            try:
                version = subprocess.check_output([self.env['binary_path'], '-v']
                                                 ).split()[2].decode('utf-8')
            except subprocess.CalledProcessError:
                raise ProcessorError("Encountered an error when trying to get the "
                                     "Ghostscript binary version...")
        # Raise if binary is missing
        else:
            raise ProcessorError("Cannot access Ghostscript binary at path: {}"
                                 .format(self.env['binary_path']))

        # We should only get here if we have passed the above, but this is belt and braces
        if version:
            self.env['version'] = version
            self.output("version: {}".format(
                self.env['version']))
        else:
            raise ProcessorError("version is None")


if __name__ == '__main__':
    PROCESSOR = GhostscriptVersioner()

BrowserStackLocal/BrowserStackLocalBinaryVersioner.py METASEP
#!/usr/local/autopkg/python
# pylint: disable = invalid-name

'''
Copyright (c) 2021, dataJAR Ltd.  All rights reserved.
     Redistribution and use in source and binary forms, with or without
     modification, are permitted provided that the following conditions are met:
             * Redistributions of source code must retain the above copyright
               notice, this list of conditions and the following disclaimer.
             * Redistributions in binary form must reproduce the above copyright
               notice, this list of conditions and the following disclaimer in the
               documentation and/or other materials provided with the distribution.
             * Neither data JAR Ltd nor the names of its contributors may be used to
               endorse or promote products derived from this software without specific
               prior written permission.
     THIS SOFTWARE IS PROVIDED BY DATA JAR LTD 'AS IS' AND ANY
     EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
     WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
     DISCLAIMED. IN NO EVENT SHALL DATA JAR LTD BE LIABLE FOR ANY
     DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
     (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
     ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
     (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
     SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
SUPPORT FOR THIS PROGRAM
    This program is distributed 'as is' by DATA JAR LTD.
    For more information or support, please utilise the following resources:
            http://www.datajar.co.uk
DESCRIPTION
See docstring for BrowserStackLocalBinaryVersioner class
'''

# Standard Imports
from __future__ import absolute_import
import subprocess
import os

# AutoPkg imports
# pylint: disable = import-error
from autopkglib import Processor, ProcessorError


__all__ = ['BrowserStackLocalBinaryVersioner']
__version__ = '1.0'


# pylint: disable = too-few-public-methods
class BrowserStackLocalBinaryVersioner(Processor):
    '''
        Returns the version from the BrowserStackLocal binary

        Raising if the key is not found.
    '''

    description = __doc__
    input_variables = {
        'binary_path': {
            'required': True,
            'description': ('Path to the BrowserStackLocal binary.'),
        },
    }

    output_variables = {
        'version': {
            'description': ('Version of the BrowserStackLocal binary.'),
        },
    }

    def main(self):
        '''
            See docstring for BrowserStackLocalBinaryVersioner class
        '''

        # var declaration
        version = None

        # Progress notification
        self.output("Looking for: {}".format(self.env['binary_path']))

        # If binary exists
        if os.path.isfile(self.env['binary_path']):
            # Get binary version, from: https://www.browserstack.com/local-testing/binary-params
            # raise if we error
            try:
                version = subprocess.check_output([self.env['binary_path'], '--version']
                    ).split()[3].decode('utf-8')
            except subprocess.CalledProcessError:
                raise ProcessorError("Encountered an error when trying to get the "
                                     "BrowserStackLocal binary version...")
        # Raise if binary is missing
        else:
            raise ProcessorError("Cannot access BrowserStackLocal binary at path: {}"
                                 .format(self.env['binary_path']))

        # We should only get here if we have passed the above, but this is belt and braces
        if version:
            self.env['version'] = version
            self.output("version: {}".format(
                self.env['version']))
        else:
            raise ProcessorError("version is None")


if __name__ == '__main__':
    PROCESSOR = BrowserStackLocalBinaryVersioner()

Adobe CC 2019/AdobeCC2019Versioner.py METASEP
#!/usr/bin/python

# Copyright 2021 dataJAR
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

# pylint: disable=import-error

"""See docstring for AdobeCC2019Versioner class"""

from __future__ import absolute_import
import glob
import json
import os
import re
import zipfile
from xml.etree import ElementTree

try:
    from plistlib import loads as load_plist
except ImportError:
    from FoundationPlist import readPlistFromString as load_plist
from autopkglib import Processor, ProcessorError


__all__ = ['AdobeCC2019Versioner']
__version__ = ['1.2.1']


class AdobeCC2019Versioner(Processor):
    """Parses generated Adobe Admin Console CC 2019 pkgs for
       detailed application path and bundle version info"""

    description = __doc__
    input_variables = {

    }

    output_variables = {
        'additional_pkginfo': {
            'description':
                'Some pkginfo fields extracted from the Adobe metadata.',
        },
        'jss_inventory_name': {
            'description': 'Application title for jamf pro smart group criteria.',
        },
        'version': {
            'description': ('The value of CFBundleShortVersionString for the app bundle. '
                            'This may match user_facing_version, but it may also be more '
                            'specific and add another version component.'),
        },
    }


    def main(self):
        """Find the Adobe*_Install.pkg in the Downloads dir based on the name"""

        download_path = os.path.expanduser('~/Downloads')
        self.env['PKG'] = os.path.join(download_path, self.env['NAME'], \
                            'Build', self.env['NAME'] + '_Install.pkg')
        self.output('pkg %s' % self.env['PKG'])
        self.env['uninstaller_pkg_path'] = glob.glob(os.path.join\
        (os.path.dirname(self.env['PKG']), '*_Uninstall.pkg'))[0]

        self.process_installer()


    def process_installer(self):
        '''
        Determine a pkginfo, version and jss inventory name from the created package.

        Inputs:
            PKG: Path to the pkg
        Outputs:
            app_json/proxy_xml: The path of the files that within the pkg's
        '''

        install_lang = None

        option_xml_path = os.path.join(self.env['PKG'], 'Contents', 'Resources', 'optionXML.xml')
        self.output('Processing %s' % option_xml_path)
        option_xml = ElementTree.parse(option_xml_path)

        for hd_media in option_xml.findall('.//HDMedias/HDMedia'):
            if hd_media.findtext('MediaType') == 'Product':
                install_lang = hd_media.findtext('installLang')
                self.env['sap_code'] = hd_media.findtext('SAPCode')
                self.output('SAP Code: %s' % self.env['sap_code'])
                self.env['target_folder'] = hd_media.findtext('TargetFolderName')

        if install_lang is None:
            for ribs_media in option_xml.findall('.//Medias/Media'):
                install_lang = ribs_media.findtext('installLang')
                self.env['sap_code'] = ribs_media.findtext('SAPCode')
                self.output('SAP Code: %s' % self.env['sap_code'])
                self.env['target_folder'] = ribs_media.findtext('TargetFolderName')

        self.env['app_json'] = os.path.join(self.env['PKG'], 'Contents/Resources/HD', \
                                       self.env['target_folder'], 'Application.json')

        # If Application.json exists, we're looking at a HD installer
        if os.path.exists(self.env['app_json']):
            if not self.env['sap_code'] is 'APRO':
                self.output('Installer is HyperDrive')
                self.output('app_json: %s' % self.env['app_json'])
                self.process_hd_installer()
        else:
            # If not a HD installer Acrobat is a 'current' title with a
            # RIBS PKG installer we can extract needed metadata from
            self.env['proxy_xml'] = os.path.join(self.env['PKG'], 'Contents/Resources/Setup', \
                                                      self.env['target_folder'], 'proxy.xml')
            if not os.path.exists(self.env['proxy_xml']):
                raise ProcessorError('APRO selected, proxy.xml not found at: %s' \
                                                          % self.env['proxy_xml'])
            else:
                self.process_apro_installer()


    def process_apro_installer(self):
        '''
        Process APRO installer -
            proxy_xml: Path to proxy_xml if pkg is APRO
        '''

        self.output('Processing Acrobat installer')
        self.output('proxy_xml: %s' % self.env['proxy_xml'])

        tree = ElementTree.parse(self.env['proxy_xml'])
        root = tree.getroot()

        app_bundle_text = root.findtext\
                      ('./ThirdPartyComponent/Metadata/Properties/Property[@name=\'path\']')
        app_bundle = app_bundle_text.split('/')[1]
        self.output('app_bundle: %s' % app_bundle)

        app_path_text = root.findtext('./InstallDir/Platform')
        self.output('app_path_text: %s' % app_path_text)

        app_path = app_path_text.split('/')[1]
        self.output('app_path: %s' % app_path)

        installed_path = os.path.join('/Applications', app_path, app_bundle)
        self.output('installed_path: %s' % installed_path)

        app_version = root.findtext('./InstallerProperties/Property[@name=\'ProductVersion\']')
        self.output('app_version: %s' % app_version)

        self.env['display_name'] = app_path + ' CC 2019'
        self.output('display_name: %s' % self.env['display_name'])

        self.env['vers_compare_key'] = 'CFBundleShortVersionString'
        self.output('vers_compare_key: %s' % self.env['vers_compare_key'])

        app_bundle_id = 'com.adobe.Acrobat.Pro'
        self.output('app_bundle_id: %s' % app_bundle_id)

        self.create_pkginfo(app_bundle, app_bundle_id, app_version, installed_path)


    # pylint: disable=too-many-branches
    def process_hd_installer(self):
        '''
        Process HD installer -
            app_json: Path to the Application JSON from within the PKG
        '''

        #pylint: disable=too-many-locals, too-many-statements
        self.output('Processing HD installer')
        with open(self.env['app_json']) as json_file:
            load_json = json.load(json_file)

            # AppLaunch is not always in the same format, but is splittable
            if 'AppLaunch' in load_json:  # Bridge CC is HD but does not have AppLaunch
                app_launch = load_json['AppLaunch']
                self.output('app_launch: %s' % app_launch)
                app_details = list(re.split('/', app_launch))
                if app_details[2].endswith('.app'):
                    app_bundle = app_details[2]
                    app_path = app_details[1]
                else:
                    app_bundle = app_details[1]
                    app_path = list(re.split('/', (load_json['InstallDir']['value'])))[1]
                self.output('app_bundle: %s' % app_bundle)
                self.output('app_path: %s' % app_path)

                installed_path = os.path.join('/Applications', app_path, app_bundle)
                self.output('installed_path: %s' % installed_path)

                if not app_path.endswith('CC') and not app_path.endswith('CC 2019'):
                    self.env['display_name'] = app_path + ' CC 2019'
                elif app_path.endswith('CC') and not app_path.endswith('CC 2019'):
                    self.env['display_name'] = app_path + ' 2019'
                else:
                    self.env['display_name'] = app_path
                self.output('display_name: %s' % self.env['display_name'])

                zip_file = load_json['Packages']['Package'][0]['PackageName']
                self.output('zip_file: %s' % zip_file)

                zip_path = os.path.join(self.env['PKG'], 'Contents/Resources/HD', \
                                    self.env['target_folder'], zip_file + '.zip')
                self.output('zip_path: %s' % zip_path)

                with zipfile.ZipFile(zip_path, mode='r') as myzip:
                    with myzip.open(zip_file + '.pimx') as mytxt:
                        txt = mytxt.read()
                        tree = ElementTree.fromstring(txt)
                        # Loop through .pmx's Assets, look for target=[INSTALLDIR],
                        # then grab Assets Source.
                        # Break when found .app/Contents/Info.plist
                        for elem in tree.findall('Assets'):
                            for i in  elem.getchildren():
                                if i.attrib['target'].upper().startswith('[INSTALLDIR]'):
                                    bundle_location = i.attrib['source']
                                    self.output('bundle_location: %s' % bundle_location)
                                else:
                                    continue
                                if not bundle_location.startswith('[StagingFolder]'):
                                    continue
                                elif bundle_location.endswith('Icons') or \
                                         bundle_location.endswith('AMT'):
                                    continue
                                else:
                                    bundle_location = bundle_location[16:]
                                    if bundle_location.endswith('.app'):
                                        zip_bundle = os.path.join('1', bundle_location, \
                                                                 'Contents/Info.plist')
                                    else:
                                        zip_bundle = os.path.join('1', bundle_location, \
                                                     app_bundle, 'Contents/Info.plist')
                                    try:
                                        with myzip.open(zip_bundle) as myplist:
                                            plist = myplist.read()
                                            data = load_plist(plist)
                                            if self.env['sap_code'] == 'LTRM':
                                                self.env['vers_compare_key'] = 'CFBundleVersion'
                                            else:
                                                self.env['vers_compare_key'] = \
                                                  'CFBundleShortVersionString'
                                            self.output('vers_compare_key: %s' % \
                                                   self.env['vers_compare_key'])
                                            app_version = data[self.env['vers_compare_key']]
                                            app_bundle_id = data['CFBundleIdentifier']
                                            self.output('app_bundle_id: %s' % app_bundle_id)
                                            self.output('staging_folder: %s' % bundle_location)
                                            self.output('staging_folder_path: %s' % zip_bundle)
                                            self.output('app_version: %s' % app_version)
                                            self.output('app_bundle: %s' % app_bundle)
                                            break
                                    except zipfile.BadZipfile:
                                        continue

                # Now we have the deets, let's use them
                self.create_pkginfo(app_bundle, app_bundle_id, app_version, installed_path)


    def create_pkginfo(self, app_bundle, app_bundle_id, app_version, installed_path):
        """Create pkginfo with found details

        Args:
              app_bundle (str): Bundle name
              app_version (str): Bundle version
              installed_path (str): The path where the installed item will be installed.
        """

        self.env['jss_inventory_name'] = app_bundle
        self.env['pkg_path'] = self.env['PKG']
        self.env['version'] = app_version

        pkginfo = {
            'display_name': self.env['display_name'],
            'minimum_os_version': self.env['MINIMUM_OS_VERSION']
        }

        if 'pkginfo' not in self.env or 'installs' not in self.env['pkginfo']:
            pkginfo['installs'] = [{
                self.env['vers_compare_key']: self.env['version'],
                'path': installed_path,
                'type': 'application',
                'version_comparison_key': self.env['vers_compare_key'],
                'CFBundleIdentifier': app_bundle_id,
            }]

        self.env['additional_pkginfo'] = pkginfo
        self.output('additional_pkginfo: %s' % self.env['additional_pkginfo'])


if __name__ == '__main__':
    PROCESSOR = AdobeCC2019Versioner()

Adobe CC 2019/AdobeCC2019Importer.py METASEP
#!/usr/bin/python

'''
Copyright (c) 2020, dataJAR Ltd.  All rights reserved.

     Redistribution and use in source and binary forms, with or without
     modification, are permitted provided that the following conditions are met:
             * Redistributions of source code must retain the above copyright
               notice, this list of conditions and the following disclaimer.
             * Redistributions in binary form must reproduce the above copyright
               notice, this list of conditions and the following disclaimer in the
               documentation and/or other materials provided with the distribution.
             * Neither data JAR Ltd nor the names of its contributors may be used to
               endorse or promote products derived from this software without specific
               prior written permission.

     THIS SOFTWARE IS PROVIDED BY DATA JAR LTD "AS IS" AND ANY
     EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
     WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
     DISCLAIMED. IN NO EVENT SHALL DATA JAR LTD BE LIABLE FOR ANY
     DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
     (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
     ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
     (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
     SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

SUPPORT FOR THIS PROGRAM

    This program is distributed "as is" by DATA JAR LTD.

DESCRIPTION

Imports Adobe CC 2019 titles found in running users ~/Downloads
'''

from __future__ import absolute_import
from __future__ import print_function
import argparse
import glob
import os
import subprocess
import sys

__version__ = '1.1'


def main():
    '''Gimme some main'''

    adobe_folders = []

    for some_item in os.listdir(DOWNLOADS_PATH):
        some_path = os.path.join(DOWNLOADS_PATH, some_item)
        if os.path.isdir(some_path):
            if some_item.startswith('Adobe') and some_item.endswith('CC2019'):
                adobe_folders.append(some_item)

    if not len(adobe_folders):
        print('No Adobe*CC2019 folders found in %s, exiting...' % DOWNLOADS_PATH)
        sys.exit(1)

    if len(adobe_folders) == 1:
        print('1 Adobe CC 2019 folder found, creating recipe list...')
    else:
        print('%s Adobe CC 2019 folder found, creating recipe list...' % len(adobe_folders))

    open(ADOBE_LIST, 'w').close()
    pkg_checker(adobe_folders)


def pkg_checker(adobe_folders):
    '''Check that we have the Install_pkg's & proceed if we do'''

    found_pkgs = 0

    print('Looking for pkgs...')

    for adobe_folder in sorted(adobe_folders):
        try:
            install_pkg = glob.glob(os.path.join(DOWNLOADS_PATH, adobe_folder, \
                                               'Build', '*_Install.pkg'))[0]
            print('Found {0}...'.format(install_pkg))
            if os.path.exists(install_pkg):
                create_list(adobe_folder)
                found_pkgs += 1
            else:
                print('Cannot find pkg ({0}), for {1}... Skipping...'.format\
                                               (install_pkg, adobe_folder))
        except IndexError as err_msg:
            print('Skipping {0}, as cannot find Install.pkg: {1}...'.format(adobe_folder, err_msg))

    if found_pkgs == 0:
        print('No pkgs found, exiting...')
        sys.exit(1)
    else:
        run_list()


def create_list(adobe_folder):
    ''' Create recipe list '''

    library_dir = os.path.expanduser('~/Library/')
    override_path = os.path.join(library_dir, 'AutoPkg', 'RecipeOverrides', \
                                                         adobe_folder + '.' \
                                                 + RECIPE_TYPE + '.recipe')
    override_name = 'local.' + RECIPE_TYPE + '.' + adobe_folder

    if not os.path.isfile(override_path):
        print('Skipping {0}, as cannot find override...'.format(override_path))

    list_file = open(ADOBE_LIST, 'a+')
    list_file.write(override_name + '\n')
    list_file.close()


def run_list():
    '''Run recipe list'''

    if os.path.exists(ADOBE_LIST):
        print('Running recipe_list: `{0}`'.format(ADOBE_LIST))
        print()
        cmd_args = ['/usr/local/bin/autopkg', 'run', '-v', '--recipe-list', ADOBE_LIST, \
                                                         '--report-plist', REPORT_PATH]
        print('Running `{0}`...'.format(cmd_args))
        subprocess.call(cmd_args)
    else:
        print('Recipe list not populated, make sure you have the needed overrides in place....')


if __name__ == '__main__':

    # Try to locate autopkg
    if not os.path.exists('/usr/local/bin/autopkg'):
        print('Cannot find autopkg')
        sys.exit(1)

    # Parse recipe type argument
    PARSER = argparse.ArgumentParser()
    PARSER.add_argument('type', type=str, help='Recipe type, either "munki" or "jss"')
    PARSER_ARGS = PARSER.parse_args()
    RECIPE_TYPE = PARSER_ARGS.type.lower()

    # Constants
    DOWNLOADS_PATH = os.path.expanduser('~/Downloads/')
    ADOBE_LIST = os.path.join(DOWNLOADS_PATH + 'adobecc2019_list.txt')
    REPORT_PATH = os.path.join(DOWNLOADS_PATH + 'adobecc2019_report.plist')

    main()

Adobe 2021/Adobe2021Versioner.py METASEP
#!/usr/local/autopkg/python
# pylint: disable = invalid-name
'''
Copyright (c) 2021, dataJAR Ltd.  All rights reserved.
     Redistribution and use in source and binary forms, with or without
     modification, are permitted provided that the following conditions are met:
             * Redistributions of source code must retain the above copyright
               notice, this list of conditions and the following disclaimer.
             * Redistributions in binary form must reproduce the above copyright
               notice, this list of conditions and the following disclaimer in the
               documentation and/or other materials provided with the distribution.
             * Neither data JAR Ltd nor the names of its contributors may be used to
               endorse or promote products derived from this software without specific
               prior written permission.
     THIS SOFTWARE IS PROVIDED BY DATA JAR LTD 'AS IS' AND ANY
     EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
     WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
     DISCLAIMED. IN NO EVENT SHALL DATA JAR LTD BE LIABLE FOR ANY
     DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
     (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
     ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
     (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
     SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
SUPPORT FOR THIS PROGRAM
    This program is distributed 'as is' by DATA JAR LTD.
    For more information or support, please utilise the following resources:
            http://www.datajar.co.uk

DESCRIPTION

See docstring for AdobeCC2021Versioner class

'''

# Standard Imports
from __future__ import absolute_import
import json
import os
import re
import xml
import zipfile
from xml.etree import ElementTree


# AutoPkg imports
# pylint: disable = import-error
try:
    from plistlib import loads as load_plist
except ImportError:
    from FoundationPlist import readPlistFromString as load_plist
from autopkglib import Processor, ProcessorError


# Define class
__all__ = ['Adobe2021Versioner']
__version__ = ['1.4.10']


# Class def
class Adobe2021Versioner(Processor):
    '''
       Parses generated Adobe Admin Console 2021 pkgs for
       detailed application path and bundle version info.
    '''

    description = __doc__

    input_variables = {

    }

    output_variables = {
        'additional_pkginfo': {
            'description':
                'Some pkginfo fields extracted from the Adobe metadata.',
        },
        'jss_inventory_name': {
            'description': 'Application title for jamf pro smart group criteria.',
        },
        'version': {
            'description': ('The value of CFBundleShortVersionString for the app bundle. '
                            'This may match user_facing_version, but it may also be more '
                            'specific and add another version component.'),
        },
        'architecture_type': {
            'description': ('The value of ProcessorArchitecture for the package. '
                            'This is either -Intel or -ARM to add with renaming the '
                            'package disk image'),
        },
    }


    def main(self):
        '''
            Find the Adobe*_Install.pkg in the Downloads dir based on the name, raise
            if corresponding *_Uninstall.pkg is missing.

            Then determine a pkginfo, version and jss inventory name from the Adobe*_Install.pkg
        '''

        # var declaration
        download_path = os.path.expanduser('~/Downloads')
        install_lang = None

        # Path to Adobe*_Install.pkg in the titles Downloads folder
        self.env['PKG'] = (os.path.join(download_path, self.env['NAME'], 'Build',
                                        self.env['NAME'] + '_Install.pkg'))
        self.output("install_pkg {}".format(self.env['PKG']))

        # Path to Adobe*_Uninstall.pkg n the titles Downloads folder
        self.env['uninstaller_pkg_path'] = (os.path.join(download_path, self.env['NAME'], 'Build',
                                                         self.env['NAME'] + '_Uninstall.pkg'))
        self.output("uninstall_pkg {}".format(self.env['uninstaller_pkg_path']))

        # Path to titles optionXML.xml
        option_xml_path = os.path.join(self.env['PKG'], 'Contents', 'Resources', 'optionXML.xml')
        self.output("Processing {}".format(option_xml_path))

        # Try to parse option_xml, raise if an issue
        try:
            option_xml = ElementTree.parse(option_xml_path)
        except xml.etree.ElementTree.ParseError as err_msg:
            raise ProcessorError("Failed to read {}: {}".format(option_xml_path, err_msg))

        # Check to see if HDMedia keys set
        for hd_media in option_xml.findall('.//HDMedias/HDMedia'):
            # If we have HDMedia, set vars
            if hd_media.findtext('MediaType') == 'Product':
                install_lang = hd_media.findtext('installLang')
                self.env['sap_code'] = hd_media.findtext('SAPCode')
                self.env['target_folder'] = hd_media.findtext('TargetFolderName')

        # Check for Processor Architecture
        self.env['architecture_type'] = option_xml.findtext('ProcessorArchitecture')

        # If no HDMedia is found, then install_lang will be none
        if install_lang is None:
            # Get vars for RIBS media
            for ribs_media in option_xml.findall('.//Medias/Media'):
                install_lang = ribs_media.findtext('installLang')
                self.env['sap_code'] = ribs_media.findtext('SAPCode')
                self.env['target_folder'] = ribs_media.findtext('TargetFolderName')

        # Display progress
        self.output("sap_code: {}".format(self.env['sap_code']))
        self.output("target_folder: {}".format(self.env['target_folder']))
        self.output("architecture_type: {}".format(self.env['architecture_type']))

        # Get app_json var
        self.env['app_json'] = os.path.join(self.env['PKG'], 'Contents/Resources/HD', \
                                       self.env['target_folder'], 'Application.json')

        # If Application.json exists, we're looking at a HD installer
        if os.path.exists(self.env['app_json']):
            if not self.env['sap_code'] == 'APRO':
                # Process HD installer
                self.process_hd_installer_pt1()
        else:
            # If not a HD installer Acrobat is a 'current' title with a
            # RIBS PKG installer we can extract needed metadata from
            self.env['proxy_xml'] = (os.path.join(self.env['PKG'], 'Contents/Resources/Setup',
                                                  self.env['target_folder'], 'proxy.xml'))
            # If proxy_xml does not exist, raise
            if not os.path.exists(self.env['proxy_xml']):
                raise ProcessorError("APRO selected, proxy.xml not found at: {}"
                                     .format(self.env['proxy_xml']))
            # Else, process the APRO (Acrobat) installer
            self.process_apro_installer()


    def process_apro_installer(self):
        '''
            Process APRO (Acrobat) installer
        '''

        # Progress notification
        self.output("Processing Acrobat installer")
        self.output("proxy_xml: {}".format(self.env['proxy_xml']))

        # Try to parse proxy_xml, raise if an issue
        try:
            parse_xml = ElementTree.parse(self.env['proxy_xml'])
        except xml.etree.ElementTree.ParseError as err_msg:
            raise ProcessorError("Failed to read {}: {}".format(self.env['proxy_xml'],
                                                                err_msg))

        # Get root of xml
        root = parse_xml.getroot()

        # Get app_bundle
        app_bundle_text = (root.findtext
                           ('./ThirdPartyComponent/Metadata/Properties/Property[@name=\'path\']'))
        self.env['app_bundle'] = app_bundle_text.split('/')[1]
        self.output("app_bundle: {}".format(self.env['app_bundle']))

        # Get app_path
        app_path_text = root.findtext('./InstallDir/Platform')
        self.env['app_path'] = app_path_text.split('/')[1]
        self.output("app_path: {}".format(self.env['app_path']))

        # Get generic keys
        self.get_generic_keys()

        # Get app_version
        self.env['app_version'] = (root.findtext
                                   ('./InstallerProperties/Property[@name=\'ProductVersion\']'))
        self.output("app_version: {}".format(self.env['app_version']))

        # Get vers_compare_key
        self.env['vers_compare_key'] = 'CFBundleShortVersionString'
        self.output("vers_compare_key: {}".format(self.env['vers_compare_key']))

        # Set bundle id
        self.env['app_bundle_id'] = 'com.adobe.Acrobat.Pro'
        self.output("app_bundle_id: {}".format(self.env['app_bundle_id']))

        # Create pkginfo with found details
        self.create_pkginfo()


    def process_hd_installer_pt1(self):
        '''
            Process HD installer - part 1
        '''

        # Progress notification
        self.output("Processing HD installer")

        # Read in app_json file
        with open(self.env['app_json']) as json_file:

            # Try to parse app_json as json, raise if an issue
            try:
                load_json = json.load(json_file)
            except json.JSONDecodeError as err_msg:
                raise ProcessorError("Failed to parse {}: {}".format(self.env['app_json'],
                                                                     err_msg))

            # Get app_launch
            app_launch = load_json['AppLaunch']
            self.output("app_launch: {}".format(app_launch))

            # Get app_details, app_bundle and app_path
            app_details = list(re.split('/', app_launch))
            if app_details[2].endswith('.app'):
                app_bundle = app_details[2]
                app_path = app_details[1]
            else:
                app_bundle = app_details[1]
                app_path = list(re.split('/', (load_json['InstallDir']['value'])))[1]

            # Get app_bundle
            self.env['app_bundle'] = app_bundle
            self.output("app_bundle: {}".format(self.env['app_bundle']))

            # Get app_path
            self.env['app_path'] = app_path
            self.output("app_path: {}".format(self.env['app_path']))

            # Get generic keys
            self.get_generic_keys()

            # 2nd part of process
            self.process_hd_installer_pt2(load_json)


    def process_hd_installer_pt2(self, load_json):
        '''
            Process HD installer - part 2
        '''

        # Get name of the zip_file were to open
        zip_file = load_json['Packages']['Package'][0]['PackageName']
        self.output("zip_file: {}".format(zip_file))

        # Get pimx_dir
        if zip_file.endswith('-LearnPanel'):
            zip_file = load_json['Packages']['Package'][1]['PackageName']
            pimx_dir = '2'
        else:
            pimx_dir = '1'
        self.output("pimx_dir: {}".format(pimx_dir))

        # Get zip_path
        zip_path = (os.path.join(self.env['PKG'], 'Contents/Resources/HD',
                                 self.env['target_folder'], zip_file + '.zip'))
        self.output("zip_path: {}".format(zip_path))

        # Open zip file, raise if fails
        try:
            with zipfile.ZipFile(zip_path, mode='r') as my_zip:
                # Read in pimx file
                with my_zip.open(zip_file + '.pimx') as my_txt:
                    # Read in pimx file
                    pimx_txt = my_txt.read()
                    # Try to parse pimx file as XML, raise exception if fails
                    try:
                        xml_tree = ElementTree.fromstring(pimx_txt)
                        # Try to read info.plist from within zip_bundle
                        self.read_info_plist(my_zip, pimx_dir, xml_tree, zip_path)
                    # If we cannot read in the pimx
                    except xml.etree.ElementTree.ParseError as err_msg:
                        self.output("Parsing {} failed with: {}, checking {}"
                                    .format(zip_file, err_msg, self.env['app_json']))
                        # Read in values from app_json
                        self.parse_app_json(load_json)
        except zipfile.BadZipfile as err_msg:
            raise ProcessorError("Failed to open {}: {}".format(zip_path, err_msg))

        # Now we have the deets, let's use them
        self.create_pkginfo()


    def get_generic_keys(self):
        '''
            Generic keys to get regardless of title
        '''

        # Progress notification
        self.env['installed_path'] = os.path.join('/Applications', self.env['app_path'],
                                                  self.env['app_bundle'])
        self.output("installed_path: {}".format(self.env['installed_path']))

        # Get display_name
        if not self.env['app_path'].endswith('CC') and not self.env['app_path'].endswith('2021'):
            self.env['display_name'] = self.env['app_path'] + ' 2021'
        elif self.env['app_path'].endswith('CC') and not self.env['app_path'].endswith('2021'):
            self.env['display_name'] = self.env['app_path'] + ' 2021'
        else:
            self.env['display_name'] = self.env['app_path']

        # Progress notification
        self.output("display_name: {}".format(self.env['display_name']))


    def read_info_plist(self, my_zip, pimx_dir, xml_tree, zip_path):
        '''
            Try to read info.plist from within zip_bundle
        '''

        # Loop through .pmx's Assets, look for target=[INSTALLDIR],
        # then grab Assets Source.
        # Break when found .app/Contents/Info.plist
        for xml_elem in xml_tree.findall('Assets'):
            for xml_item in  xml_elem.getchildren():
                # Below special tweak for the non-Classic Lightroom bundle
                if (xml_item.attrib['target'].upper().startswith('[INSTALLDIR]') and
                        not xml_item.attrib['target'].endswith('Icons')):
                    # Get bundle_location
                    bundle_location = xml_item.attrib['source']
                    self.output("bundle_location: {}".format(bundle_location))
                else:
                    continue
                # Amend bundle_location as needed
                if not bundle_location.startswith('[StagingFolder]'):
                    continue
                if bundle_location.endswith('Icons') or \
                         bundle_location.endswith('AMT'):
                    continue
                bundle_location = bundle_location[16:]
                # Create zip_bundle
                if bundle_location.endswith('.app'):
                    zip_bundle = (os.path.join(pimx_dir, bundle_location,
                                               'Contents/Info.plist'))
                else:
                    zip_bundle = (os.path.join(pimx_dir, bundle_location,
                                               self.env['app_bundle'],
                                               'Contents/Info.plist'))
                # Try to read info.plist from within zip_bundle
                try:
                    with my_zip.open(zip_bundle) as my_plist:
                        info_plist = my_plist.read()
                        data = load_plist(info_plist)
                        # If the App is Lightroom (Classic or non-Classic)
                        # we need to compare a different value in Info.plist
                        if self.env['sap_code'] == 'LTRM' or \
                             self.env['sap_code'] == 'LRCC':
                            self.env['vers_compare_key'] = 'CFBundleVersion'
                        else:
                            self.env['vers_compare_key'] = (
                                'CFBundleShortVersionString')

                        # Get version from info.plist
                        app_version = data[self.env['vers_compare_key']]

                        # Get bundleid from info.plist
                        self.env['app_bundle_id'] = data['CFBundleIdentifier']

                        # Progress notifications
                        self.output("vers_compare_key: {}"
                                    .format(self.env['vers_compare_key']))
                        self.output("app_bundle_id: {}"
                                    .format(self.env['app_bundle_id']))
                        self.output("staging_folder: {}"
                                    .format(bundle_location))
                        self.output("staging_folder_path: {}"
                                    .format(zip_bundle))
                        self.env['app_version'] = app_version
                        self.output("app_version: {}".format(self.env['app_version']))
                        break

                # If we cannot read the zip file
                except zipfile.BadZipfile as err_msg:
                    raise ProcessorError("Failed to open {}: {}"
                                         .format(zip_path, err_msg))


    # pylint: disable = too-many-branches, too-many-statements
    def parse_app_json(self, load_json):
        '''
            Read in values from app_json
        '''

        # We'll override this later if needed
        self.env['vers_compare_key'] = 'CFBundleShortVersionString'

        # Get app_version, cautiously for now for only certain apps
        if self.env['sap_code'] == 'AICY':
            self.env['app_version'] = load_json['ProductVersion']
            self.env['app_bundle_id'] = 'com.adobe.InCopy'
        elif self.env['sap_code'] == 'CHAR':
            self.env['app_version'] = load_json['CodexVersion']
            self.env['app_bundle_id'] = 'com.adobe.Character-Animator.application'
        elif self.env['sap_code'] == 'DRWV':
            self.env['app_version'] = load_json['ProductVersion']
            self.env['app_bundle_id'] = 'com.adobe.dreamweaver-18.1'
        elif self.env['sap_code'] == 'ESHR':
            self.env['app_version'] = load_json['CodexVersion']
            self.env['app_bundle_id'] = 'com.adobe.dimension'
        elif self.env['sap_code'] == 'FLPR':
            self.env['app_version'] = load_json['CodexVersion']
            self.env['app_bundle_id'] = 'com.adobe.Adobe-Animate-2021.application'
        elif self.env['sap_code'] == 'IDSN':
            self.env['app_version'] = load_json['ProductVersion']
            self.env['app_bundle_id'] = 'com.adobe.InDesign'
        elif self.env['sap_code'] == 'ILST':
            self.env['app_version'] = load_json['CodexVersion']
            self.env['app_bundle_id'] = 'com.adobe.illustrator'
        elif self.env['sap_code'] == 'KBRG':
            self.env['app_version'] = load_json['ProductVersion']
            self.env['app_bundle_id'] = 'com.adobe.bridge11'
        elif self.env['sap_code'] == 'LTRM':
            self.env['app_version'] = load_json['CodexVersion']
            self.env['app_bundle_id'] = 'com.adobe.LightroomClassicCC7'
            self.env['vers_compare_key'] = 'CFBundleVersion'
        elif self.env['sap_code'] == 'PHSP':
            self.env['app_version'] = load_json['CodexVersion']
            self.env['app_bundle_id'] = 'com.adobe.Photoshop'
        elif self.env['sap_code'] == 'SBSTA':
            self.env['app_version'] = load_json['CodexVersion']
            self.env['app_bundle_id'] = 'com.adobe.adobe-substance-3d-sampler'
        elif self.env['sap_code'] == 'SBSTD':
            self.env['app_version'] = load_json['CodexVersion']
            self.env['app_bundle_id'] = 'com.adobe.substance-3d-designer'
        elif self.env['sap_code'] == 'SBSTP':
            self.env['app_version'] = load_json['CodexVersion']
            self.env['app_bundle_id'] = 'com.adobe.Adobe-Substance-3D-Painter'
        elif self.env['sap_code'] == 'SPRK':
            self.env['app_version'] = load_json['ProductVersion']
            self.env['app_bundle_id'] = 'com.adobe.xd'
        elif self.env['sap_code'] == 'STGR':
            self.env['app_version'] = load_json['CodexVersion']
            self.env['app_bundle_id'] = 'com.adobe.stager'
        else:
            raise ProcessorError("Checking app_json for version details but sap code {}, "
                                 "is not within the known list of apps which we know to "
                                 "check via their Application.json".format(self.env['sap_code']))
        self.output("app_version: {}".format(self.env['app_version']))

        # Get app_bundle
        for app_launch in load_json['AppLaunch'].split('/'):
            if app_launch.endswith('.app'):
                app_bundle = ('/Applications/' + app_launch.split('.app')[0] + '/' + app_launch)
        self.output("app_bundle: {}".format(app_bundle))


    def create_pkginfo(self):
        '''
            Create pkginfo with found details
        '''

        # More var declaration
        self.env['jss_inventory_name'] = self.env['app_bundle']
        self.env['pkg_path'] = self.env['PKG']
        self.env['version'] = self.env['app_version']

        # Get minimum_os_version from override
        # https://github.com/autopkg/dataJAR-recipes/issues/138
        pkginfo = {
            'minimum_os_version': self.env['MINIMUM_OS_VERSION']
        }

        # Allow the user to provide a display_name string that prevents CreativeCloudVersioner
        # from overriding it.
        if 'pkginfo' not in self.env or 'display_name' not in self.env['pkginfo']:
            pkginfo['display_name'] = self.env['display_name']

        # Create pkginfo is missing from installs array
        if 'pkginfo' not in self.env or 'installs' not in self.env['pkginfo']:
            pkginfo['installs'] = [{
                self.env['vers_compare_key']: self.env['version'],
                'path': self.env['installed_path'],
                'type': 'application',
                'version_comparison_key': self.env['vers_compare_key'],
                'CFBundleIdentifier': self.env['app_bundle_id'],
            }]

        # Set Processor Architecture info
        if self.env['architecture_type'] == "x64":
            pkginfo['supported_architectures'] = [
                'x86_64',
            ]
            self.env['architecture_type'] = '-Intel'
        elif self.env['architecture_type'] == "arm64":
            pkginfo['supported_architectures'] = [
                'arm64',
            ]
            self.env['architecture_type'] = '-ARM'

        # Notify of additional_pkginfo
        self.env['additional_pkginfo'] = pkginfo
        self.output("additional_pkginfo: {}".format(self.env['additional_pkginfo']))


if __name__ == '__main__':
    PROCESSOR = Adobe2021Versioner()

Adobe 2021/Adobe2021Importer.py METASEP
#!/usr/local/autopkg/python
'''
Copyright (c) 2020, dataJAR Ltd.  All rights reserved.
     Redistribution and use in source and binary forms, with or without
     modification, are permitted provided that the following conditions are met:
             * Redistributions of source code must retain the above copyright
               notice, this list of conditions and the following disclaimer.
             * Redistributions in binary form must reproduce the above copyright
               notice, this list of conditions and the following disclaimer in the
               documentation and/or other materials provided with the distribution.
             * Neither data JAR Ltd nor the names of its contributors may be used to
               endorse or promote products derived from this software without specific
               prior written permission.
     THIS SOFTWARE IS PROVIDED BY DATA JAR LTD 'AS IS' AND ANY
     EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
     WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
     DISCLAIMED. IN NO EVENT SHALL DATA JAR LTD BE LIABLE FOR ANY
     DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
     (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
     ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
     (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
     SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
SUPPORT FOR THIS PROGRAM
    This program is distributed 'as is' by DATA JAR LTD.
    For more information or support, please utilise the following resources:
            http://www.datajar.co.uk

DESCRIPTION

Imports Adobe 2021 titles found in running users ~/Downloads

'''

# Standard Imports
from __future__ import absolute_import
from __future__ import print_function
import argparse
import glob
import os
import subprocess
import sys


# Version
__version__ = '1.2'


# Functions
def main():
    '''
        Look within DOWNLOADS_PATH for Adobe*2021* items, add to adobe_folders list if found
    '''

    # Progress notification
    print("Looking for {} folders ...".format(os.path.join(DOWNLOADS_PATH, 'Adobe*2021*')))

    # Create empty list
    adobe_folders = []

    # Look within DOWNLOADS_PATH for Adobe*2021 items, add to adobe_folders list if found
    for some_item in os.listdir(DOWNLOADS_PATH):
        some_path = os.path.join(DOWNLOADS_PATH, some_item)
        if os.path.isdir(some_path):
            if some_item.startswith('Adobe') and '2021' in (some_item):
                adobe_folders.append(some_item)

    # If no folders are found, exit
    if not adobe_folders:
        print("No Adobe*2021 folders found in {}, exiting...".format(DOWNLOADS_PATH))
        sys.exit(1)

    # If 1 or moe folders are found, notify and proceed.
    if len(adobe_folders) == 1:
        print("1 Adobe 2021 folder found, creating recipe list...")
    else:
        print("{} Adobe 2021 folder found, creating recipe list...".format(len(adobe_folders)))

    # Check for pkg's
    pkg_checker(sorted(adobe_folders))


def pkg_checker(adobe_folders):
    '''
        Check that we have the Install_pkg's & Uninstall_pkg's needed, proceed if we do
    '''

    # Progress notification
    print("Looking for pkgs...")

    # count var
    found_pkgs = 0

    # For each folder within adobe_folders, look for *_Install.pkg and *_Uninstall.pkg,
    for adobe_folder in adobe_folders:

        # var declaration
        install_pkg = None
        uninstall_pkg = None
        adobe_build_folder_path = os.path.join(DOWNLOADS_PATH, adobe_folder, 'Build')

        # Look for *_Install.pkg
        try:
            install_pkg = glob.glob(os.path.join(adobe_build_folder_path, '*_Install.pkg'))[0]
            print("Found {}...".format(install_pkg))
        except IndexError:
            print("Cannot find *_Install.pkg within: {}...".format(adobe_build_folder_path))

        # Look for *_Uninstall.pkg
        try:
            uninstall_pkg = glob.glob(os.path.join(adobe_build_folder_path, '*_Install.pkg'))[0]
            print("Found {}...".format(uninstall_pkg))
        except IndexError:
            print("Cannot find *_Uninstall.pkg within: {}...".format(adobe_build_folder_path))

        # If we can find both *_Install.pkg and *_Uninstall.pkg, add to ADOBE_LIST
        if install_pkg and uninstall_pkg:
            # Increment count
            found_pkgs += 1
            # Append to ADOBE_LIST
            create_list(adobe_folder, found_pkgs)
        else:
            print("Cannot find both an *_Install.pkg and *_Uninstall.pkg for {}... "
                  "Skipping...".format(adobe_folder))

    # If we did not find any pkg pairs to import
    if found_pkgs == 0:
        print("ERROR: No Adobe 2021 pkg pairs found, exiting...")
        sys.exit(1)
    # Else, run the recipe list ADOBE_LIST
    else:
        run_list()


def create_list(adobe_folder, found_pkgs):
    '''
        Create recipe list
    '''

    # Create an empty file at ADOBE_List, if this is the 1st found pkg
    if found_pkgs == 1:
        open(ADOBE_LIST, 'w').close()

    # var declaration
    library_dir = os.path.expanduser('~/Library/')
    override_path = os.path.join(library_dir, 'AutoPkg', 'RecipeOverrides', \
                                                         adobe_folder + '.' \
                                                 + RECIPE_TYPE + '.recipe')
    override_name = 'local.' + RECIPE_TYPE + '.' + adobe_folder

    # If we cannot find the override
    if not os.path.isfile(override_path):
        print("Skipping {}, as cannot find override...".format(override_path))
        return

    # Append to ADOBE_LIST
    list_file = open(ADOBE_LIST, 'a+')
    list_file.write(override_name + '\n')
    list_file.close()


def run_list():
    '''
        Run recipe list
    '''

    # Notify we're starting
    print("Running recipe_list: `{}`".format(ADOBE_LIST))
    print()

    # The subprocess command
    cmd_args = ['/usr/local/bin/autopkg', 'run', '-v', '--recipe-list', ADOBE_LIST,
                '--report-plist', REPORT_PATH]

    # Notify what command we're about to run.
    print('Running `{}`...'.format(cmd_args))

    # Run the command
    subprocess.call(cmd_args)


if __name__ == '__main__':

    # Parse recipe type argument
    PARSER = argparse.ArgumentParser()
    PARSER.add_argument('type', type=str, help='Recipe type, either "munki" or "jss"')
    ARG_PARSER = PARSER.parse_args()
    RECIPE_TYPE = ARG_PARSER.type.lower()

    # Constants
    DOWNLOADS_PATH = os.path.expanduser('~/Downloads/')
    ADOBE_LIST = os.path.join(DOWNLOADS_PATH + 'adobe2021_list.txt')
    REPORT_PATH = os.path.join(DOWNLOADS_PATH + 'adobe2021_report.plist')

    # Call main def
    main()

Adobe 2020/Adobe2020Versioner.py METASEP
#!/usr/local/autopkg/python
'''
Copyright (c) 2020, dataJAR Ltd.  All rights reserved.
     Redistribution and use in source and binary forms, with or without
     modification, are permitted provided that the following conditions are met:
             * Redistributions of source code must retain the above copyright
               notice, this list of conditions and the following disclaimer.
             * Redistributions in binary form must reproduce the above copyright
               notice, this list of conditions and the following disclaimer in the
               documentation and/or other materials provided with the distribution.
             * Neither data JAR Ltd nor the names of its contributors may be used to
               endorse or promote products derived from this software without specific
               prior written permission.
     THIS SOFTWARE IS PROVIDED BY DATA JAR LTD 'AS IS' AND ANY
     EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
     WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
     DISCLAIMED. IN NO EVENT SHALL DATA JAR LTD BE LIABLE FOR ANY
     DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
     (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
     ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
     (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
     SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
SUPPORT FOR THIS PROGRAM
    This program is distributed 'as is' by DATA JAR LTD.
    For more information or support, please utilise the following resources:
            http://www.datajar.co.uk

DESCRIPTION

See docstring for AdobeCC2020Versioner class

'''

# Standard Imports
from __future__ import absolute_import
import json
import os
import re
import xml
import zipfile
from xml.etree import ElementTree


# AutoPkg imports
# pylint: disable = import-error
try:
    from plistlib import loads as load_plist
except ImportError:
    from FoundationPlist import readPlistFromString as load_plist
from autopkglib import Processor, ProcessorError


# Define class
__all__ = ['Adobe2020Versioner']
__version__ = ['1.4.1']


# Class def
class Adobe2020Versioner(Processor):
    '''
       Parses generated Adobe Admin Console 2020 pkgs for
       detailed application path and bundle version info.
    '''

    description = __doc__

    input_variables = {

    }

    output_variables = {
        'additional_pkginfo': {
            'description':
                'Some pkginfo fields extracted from the Adobe metadata.',
        },
        'jss_inventory_name': {
            'description': 'Application title for jamf pro smart group criteria.',
        },
        'version': {
            'description': ('The value of CFBundleShortVersionString for the app bundle. '
                            'This may match user_facing_version, but it may also be more '
                            'specific and add another version component.'),
        },
    }


    def main(self):
        '''
            Find the Adobe*_Install.pkg in the Downloads dir based on the name, raise
            if corresponding *_Uninstall.pkg is missing.

            Then determine a pkginfo, version and jss inventory name from the Adobe*_Install.pkg
        '''

        # var declaration
        download_path = os.path.expanduser('~/Downloads')
        install_lang = None

        # Path to Adobe*_Install.pkg in the titles Downloads folder
        self.env['PKG'] = (os.path.join(download_path, self.env['NAME'], 'Build',
                                        self.env['NAME'] + '_Install.pkg'))
        self.output("install_pkg {}".format(self.env['PKG']))

        # Path to Adobe*_Uninstall.pkg n the titles Downloads folder
        self.env['uninstaller_pkg_path'] = (os.path.join(download_path, self.env['NAME'], 'Build',
                                                         self.env['NAME'] + '_Uninstall.pkg'))
        self.output("uninstall_pkg {}".format(self.env['uninstaller_pkg_path']))

        # Path to titles optionXML.xml
        option_xml_path = os.path.join(self.env['PKG'], 'Contents', 'Resources', 'optionXML.xml')
        self.output("Processing {}".format(option_xml_path))

        # Try to parse option_xml, raise if an issue
        try:
            option_xml = ElementTree.parse(option_xml_path)
        except xml.etree.ElementTree.ParseError as err_msg:
            raise ProcessorError("Failed to read {}: {}".format(option_xml_path, err_msg))

        # Check to see if HDMedia keys set
        for hd_media in option_xml.findall('.//HDMedias/HDMedia'):
            # If we have HDMedia, set vars
            if hd_media.findtext('MediaType') == 'Product':
                install_lang = hd_media.findtext('installLang')
                self.env['sap_code'] = hd_media.findtext('SAPCode')
                self.env['target_folder'] = hd_media.findtext('TargetFolderName')

        # If no HDMedia is found, then install_lang will be none
        if install_lang is None:
            # Get vars for RIBS media
            for ribs_media in option_xml.findall('.//Medias/Media'):
                install_lang = ribs_media.findtext('installLang')
                self.env['sap_code'] = ribs_media.findtext('SAPCode')
                self.env['target_folder'] = ribs_media.findtext('TargetFolderName')

        # Display progress
        self.output("sap_code: {}".format(self.env['sap_code']))
        self.output("target_folder: {}".format(self.env['target_folder']))

        # Get app_json var
        self.env['app_json'] = os.path.join(self.env['PKG'], 'Contents/Resources/HD', \
                                       self.env['target_folder'], 'Application.json')

        # If Application.json exists, we're looking at a HD installer
        if os.path.exists(self.env['app_json']):
            if not self.env['sap_code'] == 'APRO':
                # Process HD installer
                self.process_hd_installer_pt1()
        else:
            # If not a HD installer Acrobat is a 'current' title with a
            # RIBS PKG installer we can extract needed metadata from
            self.env['proxy_xml'] = (os.path.join(self.env['PKG'], 'Contents/Resources/Setup',
                                                  self.env['target_folder'], 'proxy.xml'))
            # If proxy_xml does not exist, raise
            if not os.path.exists(self.env['proxy_xml']):
                raise ProcessorError("APRO selected, proxy.xml not found at: {}"
                                     .format(self.env['proxy_xml']))
            # Else, process the APRO (Acrobat) installer
            self.process_apro_installer()


    def process_apro_installer(self):
        '''
            Process APRO (Acrobat) installer
        '''

        # Progress notification
        self.output("Processing Acrobat installer")
        self.output("proxy_xml: {}".format(self.env['proxy_xml']))

        # Try to parse proxy_xml, raise if an issue
        try:
            parse_xml = ElementTree.parse(self.env['proxy_xml'])
        except xml.etree.ElementTree.ParseError as err_msg:
            raise ProcessorError("Failed to read {}: {}".format(self.env['proxy_xml'],
                                                                err_msg))

        # Get root of xml
        root = parse_xml.getroot()

        # Get app_bundle
        app_bundle_text = (root.findtext
                           ('./ThirdPartyComponent/Metadata/Properties/Property[@name=\'path\']'))
        self.env['app_bundle'] = app_bundle_text.split('/')[1]
        self.output("app_bundle: {}".format(self.env['app_bundle']))

        # Get app_path
        app_path_text = root.findtext('./InstallDir/Platform')
        self.env['app_path'] = app_path_text.split('/')[1]
        self.output("app_path: {}".format(self.env['app_path']))

        # Get generic keys
        self.get_generic_keys()

        # Get app_version
        self.env['app_version'] = root.findtext('./InstallerProperties/Property[@name=\'ProductVersion\']')
        self.output("app_version: {}".format(self.env['app_version']))

        # Get vers_compare_key
        self.env['vers_compare_key'] = 'CFBundleShortVersionString'
        self.output("vers_compare_key: {}".format(self.env['vers_compare_key']))

        # Set bundle id
        self.env['app_bundle_id'] = 'com.adobe.Acrobat.Pro'
        self.output("app_bundle_id: {}".format(self.env['app_bundle_id']))

        # Create pkginfo with found details
        self.create_pkginfo()


    def process_hd_installer_pt1(self):
        '''
            Process HD installer - part 1
        '''

        # Progress notification
        self.output("Processing HD installer")

        # Read in app_json file
        with open(self.env['app_json']) as json_file:

            # Try to parse app_json as json, raise if an issue
            try:
                load_json = json.load(json_file)
            except json.JSONDecodeError as err_msg:
                raise ProcessorError("Failed to parse {}: {}".format(self.env['app_json'],
                                                                     err_msg))

            # Get app_launch
            app_launch = load_json['AppLaunch']
            self.output("app_launch: {}".format(app_launch))

            # Get app_details, app_bundle and app_path
            app_details = list(re.split('/', app_launch))
            if app_details[2].endswith('.app'):
                app_bundle = app_details[2]
                app_path = app_details[1]
            else:
                app_bundle = app_details[1]
                app_path = list(re.split('/', (load_json['InstallDir']['value'])))[1]

            # Get app_bundle
            self.env['app_bundle'] = app_bundle
            self.output("app_bundle: {}".format(self.env['app_bundle']))

            # Get app_path
            self.env['app_path'] = app_path
            self.output("app_path: {}".format(self.env['app_path']))

            # Get generic keys
            self.get_generic_keys()

            # 2nd part of process
            self.process_hd_installer_pt2(load_json)


    def process_hd_installer_pt2(self, load_json):
        '''
            Process HD installer - part 2
        '''

        # Get name of the zip_file were to open
        zip_file = load_json['Packages']['Package'][0]['PackageName']
        self.output("zip_file: {}".format(zip_file))

        # Get pimx_dir
        if zip_file.endswith('-LearnPanel'):
            zip_file = load_json['Packages']['Package'][1]['PackageName']
            pimx_dir = '2'
        else:
            pimx_dir = '1'
        self.output("pimx_dir: {}".format(pimx_dir))

        # Get zip_path
        zip_path = (os.path.join(self.env['PKG'], 'Contents/Resources/HD',
                                 self.env['target_folder'], zip_file + '.zip'))
        self.output("zip_path: {}".format(zip_path))

        # Open zip file, raise if fails
        try:
            with zipfile.ZipFile(zip_path, mode='r') as my_zip:
                # Read in pimx file
                with my_zip.open(zip_file + '.pimx') as my_txt:
                    # Read in pimx file
                    pimx_txt = my_txt.read()
                    # Try to parse pimx file as XML, raise exception if fails
                    try:
                        xml_tree = ElementTree.fromstring(pimx_txt)
                        # Try to read info.plist from within zip_bundle
                        self.read_info_plist(my_zip, pimx_dir, xml_tree, zip_path)
                    # If we cannot read in the pimx
                    except xml.etree.ElementTree.ParseError as err_msg:
                        self.output("Parsing {} failed with: {}, checking {}"
                                    .format(zip_file, err_msg, self.env['app_json']))
                        # Read in values from app_json
                        self.parse_app_json(load_json)
        except zipfile.BadZipfile as err_msg:
            raise ProcessorError("Failed to open {}: {}".format(zip_path, err_msg))

        # Now we have the deets, let's use them
        self.create_pkginfo()


    def get_generic_keys(self):
        '''
            Generic keys to get regardless of title
        '''

        # Progress notification
        self.env['installed_path'] = os.path.join('/Applications', self.env['app_path'],
                                                  self.env['app_bundle'])
        self.output("installed_path: {}".format(self.env['installed_path']))

        # Get display_name
        if not self.env['app_path'].endswith('CC') and not self.env['app_path'].endswith('2020'):
            self.env['display_name'] = self.env['app_path'] + ' 2020'
        elif self.env['app_path'].endswith('CC') and not self.env['app_path'].endswith('2020'):
            self.env['display_name'] = self.env['app_path'] + ' 2020'
        else:
            self.env['display_name'] = self.env['app_path']

        # Progress notification
        self.output("display_name: {}".format(self.env['display_name']))


    def read_info_plist(self, my_zip, pimx_dir, xml_tree, zip_path):
        '''
            Try to read info.plist from within zip_bundle
        '''

        # Loop through .pmx's Assets, look for target=[INSTALLDIR],
        # then grab Assets Source.
        # Break when found .app/Contents/Info.plist
        for xml_elem in xml_tree.findall('Assets'):
            for xml_item in  xml_elem.getchildren():
                # Below special tweak for the non-Classic Lightroom bundle
                if (xml_item.attrib['target'].upper().startswith('[INSTALLDIR]') and
                        not xml_item.attrib['target'].endswith('Icons')):
                    # Get bundle_location
                    bundle_location = xml_item.attrib['source']
                    self.output("bundle_location: {}".format(bundle_location))
                else:
                    continue
                # Amend bundle_location as needed
                if not bundle_location.startswith('[StagingFolder]'):
                    continue
                if bundle_location.endswith('Icons') or \
                         bundle_location.endswith('AMT'):
                    continue
                bundle_location = bundle_location[16:]
                # Create zip_bundle
                if bundle_location.endswith('.app'):
                    zip_bundle = (os.path.join(pimx_dir, bundle_location,
                                               'Contents/Info.plist'))
                else:
                    zip_bundle = (os.path.join(pimx_dir, bundle_location,
                                               self.env['app_bundle'],
                                               'Contents/Info.plist'))
                # Try to read info.plist from within zip_bundle
                try:
                    with my_zip.open(zip_bundle) as my_plist:
                        info_plist = my_plist.read()
                        data = load_plist(info_plist)
                        # If the App is Lightroom (Classic or non-Classic)
                        # we need to compare a different value in Info.plist
                        if self.env['sap_code'] == 'LTRM' or \
                             self.env['sap_code'] == 'LRCC':
                            self.env['vers_compare_key'] = 'CFBundleVersion'
                        else:
                            self.env['vers_compare_key'] = (
                                'CFBundleShortVersionString')

                        # Get version from info.plist
                        app_version = data[self.env['vers_compare_key']]

                        # Get bundleid from info.plist
                        self.env['app_bundle_id'] = data['CFBundleIdentifier']

                        # Progress notifications
                        self.output("vers_compare_key: {}"
                                    .format(self.env['vers_compare_key']))
                        self.output("app_bundle_id: {}"
                                    .format(self.env['app_bundle_id']))
                        self.output("staging_folder: {}"
                                    .format(bundle_location))
                        self.output("staging_folder_path: {}"
                                    .format(zip_bundle))
                        self.env['app_version'] = app_version
                        self.output("app_version: {}".format(self.env['app_version']))
                        break

                # If we cannot read the zip file
                except zipfile.BadZipfile as err_msg:
                    raise ProcessorError("Failed to open {}: {}"
                                         .format(zip_path, err_msg))


    def parse_app_json(self, load_json):
        '''
            Read in values from app_json
        '''

        # Get vers_compare_key
        self.env['vers_compare_key'] = 'CFBundleShortVersionString'

        # Get app_version, cautiously for now for only certain apps
        if self.env['sap_code'] == 'KBRG':
            self.env['app_version'] = load_json['ProductVersion']
            self.env['app_bundle_id'] = 'com.adobe.bridge10'
        elif self.env['sap_code'] == 'ESHR':
            self.env['app_version'] = load_json['CodexVersion']
            self.env['app_bundle_id'] = 'com.adobe.dimension'
        else:
            raise ProcessorError("Checking app_json for version details but sap code {},"
                                 "is neither ESHR nor KBRG".format(self.env['sap_code']))
        self.output("app_version: {}".format(self.env['app_version']))

        # Get app_bundle
        for app_launch in load_json['AppLaunch'].split('/'):
            if app_launch.endswith('.app'):
                app_bundle = ('/Applications/' + app_launch.split('.app')[0] + '/' + app_launch)
        self.output("app_bundle: {}".format(app_bundle))


    def create_pkginfo(self):
        '''
            Create pkginfo with found details
        '''

        # More var declaration
        self.env['jss_inventory_name'] = self.env['app_bundle']
        self.env['pkg_path'] = self.env['PKG']
        self.env['version'] = self.env['app_version']

        # Get minimum_os_version from override
        # https://github.com/autopkg/dataJAR-recipes/issues/138
        pkginfo = {
            'minimum_os_version': self.env['MINIMUM_OS_VERSION']
        }

        # Allow the user to provide a display_name string that prevents CreativeCloudVersioner
        # from overriding it.
        if 'pkginfo' not in self.env or 'display_name' not in self.env['pkginfo']:
            pkginfo['display_name'] = self.env['display_name']

        # Create pkginfo is missing from installs array
        if 'pkginfo' not in self.env or 'installs' not in self.env['pkginfo']:
            pkginfo['installs'] = [{
                self.env['vers_compare_key']: self.env['version'],
                'path': self.env['installed_path'],
                'type': 'application',
                'version_comparison_key': self.env['vers_compare_key'],
                'CFBundleIdentifier': self.env['app_bundle_id'],
            }]

        # Notify of additional_pkginfo
        self.env['additional_pkginfo'] = pkginfo
        self.output("additional_pkginfo: {}".format(self.env['additional_pkginfo']))


if __name__ == '__main__':
    PROCESSOR = Adobe2020Versioner()

Adobe 2020/Adobe2020Importer.py METASEP
#!/usr/bin/python
'''
Copyright (c) 2020, dataJAR Ltd.  All rights reserved.
     Redistribution and use in source and binary forms, with or without
     modification, are permitted provided that the following conditions are met:
             * Redistributions of source code must retain the above copyright
               notice, this list of conditions and the following disclaimer.
             * Redistributions in binary form must reproduce the above copyright
               notice, this list of conditions and the following disclaimer in the
               documentation and/or other materials provided with the distribution.
             * Neither data JAR Ltd nor the names of its contributors may be used to
               endorse or promote products derived from this software without specific
               prior written permission.
     THIS SOFTWARE IS PROVIDED BY DATA JAR LTD 'AS IS' AND ANY
     EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
     WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
     DISCLAIMED. IN NO EVENT SHALL DATA JAR LTD BE LIABLE FOR ANY
     DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
     (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
     ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
     (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
     SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
SUPPORT FOR THIS PROGRAM
    This program is distributed 'as is' by DATA JAR LTD.
    For more information or support, please utilise the following resources:
            http://www.datajar.co.uk

DESCRIPTION

Imports Adobe 2020 titles found in running users ~/Downloads

'''

from __future__ import absolute_import
from __future__ import print_function
import argparse
import glob
import os
import subprocess
import sys


__version__ = '1.1'


def main():
    '''Gimme some main'''

    adobe_folders = []

    for some_item in os.listdir(DOWNLOADS_PATH):
        some_path = os.path.join(DOWNLOADS_PATH, some_item)
        if os.path.isdir(some_path):
            if some_item.startswith('Adobe') and some_item.endswith('2020'):
                adobe_folders.append(some_item)

    if not len(adobe_folders):
        print('No Adobe*2020 folders found in %s, exiting...' % DOWNLOADS_PATH)
        sys.exit(1)

    if len(adobe_folders) == 1:
        print('1 Adobe 2020 folder found, creating recipe list...')
    else:
        print('%s Adobe 2020 folder found, creating recipe list...' % len(adobe_folders))

    open(ADOBE_LIST, 'w').close()
    pkg_checker(adobe_folders)


def pkg_checker(adobe_folders):
    ''' Check that we have the Install_pkg's & proceed if we do'''

    found_pkgs = 0

    print('Looking for pkgs...')

    for adobe_folder in sorted(adobe_folders):
        try:
            install_pkg = glob.glob(os.path.join(DOWNLOADS_PATH, adobe_folder, \
                                               'Build', '*_Install.pkg'))[0]
            print('Found {0}...'.format(install_pkg))
            if os.path.exists(install_pkg):
                create_list(adobe_folder)
                found_pkgs += 1
            else:
                print('Cannot find pkg ({0}), for {1}... Skipping...'.format\
                                               (install_pkg, adobe_folder))
        except IndexError as err_msg:
            print('Skipping {0}, as cannot find Install.pkg: {1}...'.format(adobe_folder, err_msg))

    if found_pkgs == 0:
        print('No pkgs found, exiting...')
        sys.exit(1)
    else:
        run_list()


def create_list(adobe_folder):
    ''' Create recipe list '''

    library_dir = os.path.expanduser('~/Library/')
    override_path = os.path.join(library_dir, 'AutoPkg', 'RecipeOverrides', \
                                                         adobe_folder + '.' \
                                                 + RECIPE_TYPE + '.recipe')
    override_name = 'local.' + RECIPE_TYPE + '.' + adobe_folder

    if not os.path.isfile(override_path):
        print('Skipping {0}, as cannot find override...'.format(override_path))
        return

    list_file = open(ADOBE_LIST, 'a+')
    list_file.write(override_name + '\n')
    list_file.close()


def run_list():
    '''Run recipe list'''

    if os.path.exists(ADOBE_LIST):
        print('Running recipe_list: `{0}`'.format(ADOBE_LIST))
        print()
        cmd_args = ['/usr/local/bin/autopkg', 'run', '-v', '--recipe-list', ADOBE_LIST, \
                                                         '--report-plist', REPORT_PATH]
        print('Running `{0}`...'.format(cmd_args))
        subprocess.call(cmd_args)
    else:
        print('Recipe list not populated, make sure you have the needed overrides in place....')


if __name__ == '__main__':

    # Try to locate autopkg
    if not os.path.exists('/usr/local/bin/autopkg'):
        print('Cannot find autopkg')
        sys.exit(1)

    # Parse recipe type argument
    PARSER = argparse.ArgumentParser()
    PARSER.add_argument('type', type=str, help='Recipe type, either "munki" or "jss"')
    ARG_PARSER = PARSER.parse_args()
    RECIPE_TYPE = ARG_PARSER.type.lower()

    # Constants
    DOWNLOADS_PATH = os.path.expanduser('~/Downloads/')
    ADOBE_LIST = os.path.join(DOWNLOADS_PATH + 'adobe2020_list.txt')
    REPORT_PATH = os.path.join(DOWNLOADS_PATH + 'adobe2020_report.plist')

    main()

SmartGroupTemplate.xml METASEP
<computer_group>
	<name>%group_name%</name>
	<is_smart>true</is_smart>
	<criteria>
		<criterion>
			<name>Application Title</name>
			<priority>0</priority>
			<and_or>and</and_or>
			<search_type>is</search_type>
			<value>%JSS_INVENTORY_NAME%</value>
		</criterion>
		<criterion>
			<name>Application Version</name>
			<priority>1</priority>
			<and_or>and</and_or>
			<search_type>is not</search_type>
			<value>%VERSION%</value>
		</criterion>
		<criterion>
			<name>Computer Group</name>
			<priority>2</priority>
			<and_or>and</and_or>
			<search_type>member of</search_type>
			<value>Testing</value>
		</criterion>
	</criteria>
</computer_group>

ScriptTemplate.xml METASEP
<script>
	<name>TestScript.sh</name>
	<category>Testing</category>
	<filename>TestScript.sh</filename>
	<info />
	<notes />
	<priority>After</priority>
	<parameters />
	<os_requirements />
</script>

README.md METASEP
# dataJAR-recipes

Elegant and powerful Apple services for education and business. https://www.datajar.co.uk

PolicyTemplate.xml METASEP
<policy>
	<general>
		<name>Install Latest %PROD_NAME%</name>
		<enabled>true</enabled>
		<frequency>Ongoing</frequency>
		<category>
			<name>%POLICY_CATEGORY%</name>
		</category>
	</general>
	<scope>
		<!--Scope added by JSSImporter-->
	</scope>
	<package_configuration>
		<!--Package added by JSSImporter-->
	</package_configuration>
	<scripts>
		<!--Scripts added by JSSImporter-->
	</scripts>
	<self_service>
		<use_for_self_service>true</use_for_self_service>
		<install_button_text>Install %VERSION%</install_button_text>
		<self_service_description>%SELF_SERVICE_DESCRIPTION%</self_service_description>
	</self_service>
	<maintenance>
		<recon>true</recon>
	</maintenance>
</policy>

CFBundleVersionSmartGroupTemplate.xml METASEP
<computer_group>
	<name>%group_name%</name>
	<is_smart>true</is_smart>
	<criteria>
		<criterion>
			<name>Application Title</name>
			<priority>0</priority>
			<and_or>and</and_or>
			<search_type>is</search_type>
			<value>%JSS_INVENTORY_NAME%</value>
		</criterion>
		<criterion>
			<name>%NAME%Version</name>
			<priority>1</priority>
			<and_or>and</and_or>
			<search_type>is not</search_type>
			<value>%VERSION%</value>
		</criterion>
		<criterion>
			<name>%NAME%Version</name>
			<priority>2</priority>
			<and_or>and</and_or>
			<search_type>is not</search_type>
			<value></value>
		</criterion>
		<criterion>
			<name>Computer Group</name>
			<priority>3</priority>
			<and_or>and</and_or>
			<search_type>member of</search_type>
			<value>Testing</value>
		</criterion>
	</criteria>
</computer_group>

CFBundleVersionExtensionAttribute.xml METASEP
<computer_extension_attribute>
	<name>%NAME%Version</name>
	<description />
	<data_type>String</data_type>
	<input_type>
		<type>script</type>
		<platform>Mac</platform>
		<script>#!/bin/assh
CFBundleVersion=""
if [ -f "/Applications/%NAME%.app/Contents/Info.plist" ]; then
    CFBundleVersion=$(defaults read "/Applications/%NAME%.app/Contents/Info.plist" CFBundleVersion)
fi
echo "&lt;result&gt;$CFBundleVersion&lt;/result&gt;"
exit 0
        </script>
	</input_type>
	<inventory_display>Extension Attributes</inventory_display>
	<recon_display>Extension Attributes</recon_display>
</computer_extension_attribute>

Adobe Admin Console Packages/README.md METASEP
# IN BETA #

### Adobe Admin Console Packages
#### Requirements
1. An Adobe Admin Console Package created, downloaded, the .app ran, and the .zip uncompressed in ~/Downloads
2. An override for the munki recipe, suffixed the Adobe Admin Console Package name, with "munki" within the name
3. cd to the dir
4. ./AdobeAdminConsolePackagesImporter.py munki

| Variable | Generated How? | Usage |
|:---:|:---:|---|
|aacp_application_bundle|`aacp_installdir_maxpath` after regex applied to get the path alone.|Used to generate `aacp_application_full_path`|
|aacp_application_architecture_type|`optionXML.xml`, the value of the `ProcessorArchitecture` element.|Raises if not found or not either arm64 or x64. x64 is later converted to x86_64.|
|aacp_application_description|`Application.json`, the short description found within ["ProductDescription"]["Tagline"]["Language"] where ["locale"] == `installLang`, failsover to the `app_description` key in `AdobeAutoPkgApplicationData.json`.|Description of title.|
|aacp_application_full_path|os.path.join('/Applications', self.env['aacp_application_path'], self.env['aacp_application_bundle'])|Full path to titles .app.|
|aacp_application_install_lang|optionXML.xml, either: within .//HDMedias/HDMedia/ where MediaType = Product, then the value for `installLang` from the parent element. Or, if RIBS media. Then .//Medias/Media and the value for the `installLang` from the within the parent element.|Used to pull the description for the title.|
|aacp_application_json_path|Path to the tiles `Application.json` file.|Processed for metadata.|
|aacp_application_major_version|`optionXML.xml`, either: within .//HDMedias/HDMedia/ where MediaType = Product, then the value for `baseVersion` from the parent element. Or, if RIBS media. Then .//Medias/Media and the value for the `ProdVersion` from the within the parent element.|The major version of a title the installer is for.|
|aacp_application_path|`aacp_installdir_value` after regex applied to get the path alone.|Used to generate `aacp_application_full_path`|
|aacp_application_sap_code|optionXML.xml, either: within .//HDMedias/HDMedia/ where MediaType = Product, then the value for `SAPCode` from the parent element. Or, if RIBS media. Then .//Medias/Media and the value for the `SAPCode` from the within the parent element.|Used to identify which title the installer is for.|
|aacp_target_folder|optionXML.xml, either: within .//HDMedias/HDMedia/ where MediaType = Product, then the value for `TargetFolderName` from the parent element. Or, if RIBS media. Then .//Medias/Media and the value for the `TargetFolderName` from the within the parent element.|The name of the folder within the PKG to check additional files for metadata. Will be a folder within: ./Contents/Resources/HD  for a HD installer, and the following for a RIBS installer: ./Contents/Resources/Setup|
|aacp_application_version|`Application.json`, the value is taken from the key defined by `app_json_version_key` within the `AdobeAutoPkgApplicationData.json` for the matching `aacp_sap_code` and `aacp_base_version`.|Titles version.|
|aacp_blocking_applications|A sorted set of the titles conflicting processes, collated from ['ConflictingProcesses']['ConflictingProcess'] within the `Application.json`.|Used to identify which processes cannot be running during the titles installation.|
|aacp_install_pkg_path|Full path to the `*_Install.pkg`|For import, and for checking files within for metadata.|
|aacp_json_path|os.path.join(self.env['aacp_parent_dir'], 'AdobeAutoPkgApplicationData.json').|Contains details of items to read in per `aacp_sap_code`, per `aacp_base_version`. To be updated with new major releases to drive `AdobeAdminConsolePackagesVersioner`|
|aacp_option_xml_path|Path to the tiles `optionXML.xml` file.|Processed for metadata.|
|aacp_parent_dir|Path to directory which the AdobeAdminConsolePackagesVersioner exists.|To create the full path to `AdobeAutoPkgApplicationData.json`.|
|aacp_proxy_xml_path|Acroabat only, path to the tiles `proxy.xml` file.|Processed for metadata.|
|aacp_uninstall_pkg_path|Full path to the `*_Uninstall.pkg` |For importing.|
|aacp_version_json|dict from `AdobeAutoPkgApplicationData.json`, which matches the `aacp_application_sap_code` and `aacp_application_major_version`.|More items for mmetadata.|

Adobe Admin Console Packages/AdobeAutoPkgApplicationData.json METASEP
[{
		"sap_code": "AME",
		"versions": {
			"15.0": {
				"app_bundle_id": "com.adobe.ame.application.15",
				"app_json_version_key": "CodexVersion",
				"app_path": "/Applications/Adobe Media Encoder 2021/Adobe Media Encoder 2021.app",
				"app_description": "Quickly output video files for virtually any screen.",
				"display_name": "Adobe Media Encoder 2021",
				"minos_regex": "macChecks={minOSVersion:\\\"(.*?)\\\"",
				"version_comparison_key": "CFBundleShortVersionString"
			},
			"22.0": {
				"app_bundle_id": "com.adobe.ame.application.22",
				"app_json_version_key": "CodexVersion",
				"app_path": "/Applications/Adobe Media Encoder 2022/Adobe Media Encoder 2022.app",
				"app_description": "Quickly output video files for virtually any screen.",
				"display_name": "Adobe Media Encoder 2022",
				"minos_regex": "macChecks={minOSVersion:\\\"(.*?)\\\"",
				"version_comparison_key": "CFBundleShortVersionString"
			}
		}
	},
	{
		"sap_code": "AEFT",
		"versions": {
			"18.0": {
				"app_bundle_id": "com.adobe.AfterEffects",
				"app_json_version_key": "CodexVersion",
				"app_path": "/Applications/Adobe After Effects 2021/Adobe After Effects 2021.app",
				"app_description": "Industry Standard motion graphics & visual effects.",
				"display_name": "Adobe After Effects 2021",
				"minos_regex": "macChecks={minOSVersion:\\\"(.*?)\\\"",
				"version_comparison_key": "CFBundleShortVersionString"
			},
			"22.0": {
				"app_bundle_id": "com.adobe.AfterEffects",
				"app_json_version_key": "CodexVersion",
				"app_path": "/Applications/Adobe After Effects 2022/Adobe After Effects 2022.app",
				"app_description": "Industry Standard motion graphics & visual effects.",
				"display_name": "Adobe After Effects 2022",
				"minos_regex": "macChecks={minOSVersion:\\\"(.*?)\\\"",
				"version_comparison_key": "CFBundleShortVersionString"
			}
		}
	},
	{
		"sap_code": "AICY",
		"versions": {
			"16.0": {
				"app_bundle_id": "com.adobe.InCopy",
				"app_json_version_key": "ProductVersion",
				"app_path": "/Applications/Adobe InCopy 2021/Adobe InCopy 2021.app",
				"app_description": "Collaborate with copywriters and editors.",
				"display_name": "Adobe InCopy 2021",
				"minos_regex": "macChecks={minOSVersion:\\\"(.*?)\\\"",
				"version_comparison_key": "CFBundleShortVersionString"
			},
			"17.0": {
				"app_bundle_id": "com.adobe.InCopy",
				"app_json_version_key": "ProductVersion",
				"app_path": "/Applications/Adobe InCopy 2022/Adobe InCopy 2022.app",
				"app_description": "Collaborate with copywriters and editors.",
				"display_name": "Adobe InCopy 2022",
				"minos_regex": "macChecks={minOSVersion:\\\"(.*?)\\\"",
				"version_comparison_key": "CFBundleShortVersionString"
			}
		}
	},
	{
		"sap_code": "APRO",
		"versions": {
			"21.0": {
				"additional_blocking_applications": ["Acrobat Distiller", "Adobe Acrobat", "Acrobat Reader"],
				"app_bundle_id": "com.adobe.Acrobat.Pro",
				"app_json_version_key": "ProductVersion",
				"app_path": "/Applications/Adobe Acrobat DC/Adobe Acrobat.app",
				"app_description": "The complete PDF solution for a mobile, connected world.",
				"display_name": "Adobe Acrobat DC",
				"minos_version": "10.13.0",
				"version_comparison_key": "CFBundleShortVersionString"
			}
		}
	},
	{
		"sap_code": "AUDT",
		"versions": {
			"14.0": {
				"app_bundle_id": "com.adobe.Audition",
				"app_json_version_key": "CodexVersion",
				"app_path": "/Applications/Adobe Audition 2021/Adobe Audition 2021.app",
				"app_description": "Collaborate with copywriters and editors.",
				"display_name": "Adobe Audition 2021",
				"minos_regex": "macChecks={minOSVersion:\\\"(.*?)\\\"",
				"version_comparison_key": "CFBundleShortVersionString"
			},
			"22.0": {
				"app_bundle_id": "com.adobe.Audition",
				"app_json_version_key": "CodexVersion",
				"app_path": "/Applications/Adobe Audition 2022/Adobe Audition 2022.app",
				"app_description": "Bring stories to life with audio.",
				"display_name": "Adobe Audition 2022",
				"minos_regex": "macChecks={minOSVersion:\\\"(.*?)\\\"",
				"version_comparison_key": "CFBundleShortVersionString"
			}
		}
	},
	{
		"sap_code": "CHAR",
		"versions": {
			"4.0": {
				"app_bundle_id": "com.adobe.Character-Animator.application",
				"app_json_version_key": "CodexVersion",
				"app_path": "/Applications/Adobe Character Animator 2021/Adobe Character Animator 2021.app",
				"app_description": "Animate in real time.",
				"display_name": "Adobe Character Animator 2021",
				"minos_regex": "macChecks={minOSVersion:\"(.*?)\"",
				"version_comparison_key": "CFBundleShortVersionString"
			},
			"22.0": {
				"app_bundle_id": "com.adobe.Character-Animator.application",
				"app_json_version_key": "CodexVersion",
				"app_path": "/Applications/Adobe Character Animator 2022/Adobe Character Animator 2022.app",
				"app_description": "Animate in real time.",
				"display_name": "Adobe Character Animator 2022",
				"minos_regex": "macChecks={minOSVersion:\"(.*?)\"",
				"version_comparison_key": "CFBundleShortVersionString"
			}
		}
	},
	{
		"sap_code": "DRWV",
		"versions": {
			"21.0": {
				"app_bundle_id": "com.adobe.dreamweaver-18.1",
				"app_json_version_key": "ProductVersion",
				"app_path": "/Applications/Adobe Dreamweaver 2021/Adobe Dreamweaver 2021.app",
				"app_description": "Design and develop modern, responsive web sites.",
				"display_name": "Adobe Dreamweaver 2021",
				"minos_regex": "macChecks={minOSVersion:\\\"(.*?)\\\"",
				"version_comparison_key": "CFBundleShortVersionString"
			}
		}
	},
	{
		"sap_code": "ESHR",
		"versions": {
			"3.0": {
				"app_bundle_id": "com.adobe.dimension",
				"app_json_version_key": "CodexVersion",
				"app_path": "/Applications/Adobe Dimension/Adobe Dimension.app",
				"app_description": "Design with 3D from concept to reality.",
				"display_name": "Adobe Dimension",
				"minos_regex": "macChecks={minOSVersion:\\\"(.*?)\\\"",
				"version_comparison_key": "CFBundleShortVersionString"
			}
		}
	},
	{
		"sap_code": "FLPR",
		"versions": {
			"21.0": {
				"app_bundle_id": "com.adobe.Adobe-Animate-2021.application",
				"app_json_version_key": "CodexVersion",
				"app_path": "/Applications/Adobe Animate 2021/Adobe Animate 2021.app",
				"app_description": "A new age for animation. Any platform, device and style.",
				"display_name": "Adobe Animate 2021",
				"minos_regex": "macChecks={minOSVersion:\"(.*?)\"",
				"version_comparison_key": "CFBundleShortVersionString"
			},
			"22.0": {
				"app_bundle_id": "com.adobe.Adobe-Animate-2022.application",
				"app_json_version_key": "CodexVersion",
				"app_path": "/Applications/Adobe Animate 2022/Adobe Animate 2022.app",
				"app_description": "A new age for animation. Any platform, device and style.",
				"display_name": "Adobe Animate 2022",
				"minos_regex": "macChecks={minOSVersion:\"(.*?)\"",
				"version_comparison_key": "CFBundleShortVersionString"
			}
		}
	},
	{
		"sap_code": "KBRG",
		"versions": {
			"11.0": {
				"app_bundle_id": "com.adobe.bridge11",
				"app_json_version_key": "ProductVersion",
				"app_path": "/Applications/Adobe Bridge 2021/Adobe Bridge 2021.app",
				"app_description": "Centralize your creative assets.",
				"display_name": "Adobe Bridge 2021",
				"minos_regex": "macChecks={minOSVersion:\\\"(.*?)\\\"",
				"version_comparison_key": "CFBundleShortVersionString"
			},
			"12.0": {
				"app_bundle_id": "com.adobe.bridge12",
				"app_json_version_key": "ProductVersion",
				"app_path": "/Applications/Adobe Bridge 2022/Adobe Bridge 2022.app",
				"app_description": "Centralize your creative assets.",
				"display_name": "Adobe Bridge 2022",
				"minos_regex": "macChecks={minOSVersion:\\\"(.*?)\\\"",
				"version_comparison_key": "CFBundleShortVersionString"
			}
		}
	},
	{
		"sap_code": "IDSN",
		"versions": {
			"16.0": {
				"app_bundle_id": "com.adobe.InDesign",
				"app_json_version_key": "ProductVersion",
				"app_path": "/Applications/Adobe InDesign 2021/Adobe InDesign 2021.app",
				"app_description": "Design and publish elegant layouts.",
				"display_name": "Adobe InDesign 2021",
				"minos_regex": "macChecks={minOSVersion:\\\"(.*?)\\\"",
				"version_comparison_key": "CFBundleShortVersionString"
			},
			"17.0": {
				"app_bundle_id": "com.adobe.InDesign",
				"app_json_version_key": "ProductVersion",
				"app_path": "/Applications/Adobe InDesign 2022/Adobe InDesign 2022.app",
				"app_description": "Design and publish elegant layouts.",
				"display_name": "Adobe InDesign 2022",
				"minos_regex": "macChecks={minOSVersion:\\\"(.*?)\\\"",
				"version_comparison_key": "CFBundleShortVersionString"
			}
		}
	},
	{
		"sap_code": "ILST",
		"versions": {
			"25.0": {
				"app_bundle_id": "com.adobe.illustrator",
				"app_json_version_key": "CodexVersion",
				"app_path": "/Applications/Adobe Illustrator 2021/Adobe Illustrator.app",
				"app_description": "Create stunning illustrations and graphics.",
				"display_name": "Adobe Illustrator 2021",
				"minos_regex": "macChecks={minOSVersion:\\\"(.*?)\\\"",
				"version_comparison_key": "CFBundleShortVersionString"
			},
			"26.0": {
				"app_bundle_id": "com.adobe.illustrator",
				"app_json_version_key": "CodexVersion",
				"app_path": "/Applications/Adobe Illustrator 2022/Adobe Illustrator.app",
				"app_description": "Create stunning illustrations and graphics.",
				"display_name": "Adobe Illustrator 2022",
				"minos_regex": "macChecks={minOSVersion:\\\"(.*?)\\\"",
				"version_comparison_key": "CFBundleShortVersionString"
			}
		}
	},
	{
		"sap_code": "LRCC",
		"versions": {
			"1.0": {
				"app_bundle_id": "com.adobe.lightroomCC",
				"app_json_version_key": "CodexVersion",
				"app_path": "/Applications/Adobe Lightroom CC/Adobe Lightroom.app",
				"app_description": "The cloud-based photo service.",
				"display_name": "Adobe Lightroom CC",
				"minos_regex": "macChecks={minOSVersion:\"(.*?)\"",
				"version_comparison_key": "CFBundleVersion"
			}
		}
	},
	{
		"sap_code": "LTRM",
		"versions": {
			"8.3": {
				"app_bundle_id": "com.adobe.LightroomClassicCC7",
				"app_json_version_key": "CodexVersion",
				"app_path": "/Applications/Adobe Lightroom Classic/Adobe Lightroom Classic.app",
				"app_description": "Desktop focused photo editing app.",
				"display_name": "Adobe Lightroom Classic",
				"minos_regex": "macChecks={minOSVersion:\"(.*?)\"",
				"version_comparison_key": "CFBundleShortVersionString"
			}
		}
	},
	{
		"sap_code": "PHSP",
		"versions": {
			"22.0": {
				"app_bundle_id": "com.adobe.Photoshop",
				"app_json_version_key": "CodexVersion",
				"app_path": "/Applications/Adobe Photoshop 2021/Adobe Photoshop 2021.app",
				"app_description": "Create beautiful graphics, photos and art anywhere.",
				"display_name": "Adobe Photoshop 2021",
				"minos_regex": "macChecks={minOSVersion:\\\"(.*?)\\\"",
				"unsupported_versions_dict": {
					"22.2": "Adobe Photoshop 22.2 is incompatible as it the optionXML and/or Application.json do not contain the needed metadata. Please use a newer version, this might need to be non-universal."
				},
				"version_comparison_key": "CFBundleShortVersionString"
			},
			"23.0": {
				"app_bundle_id": "com.adobe.Photoshop",
				"app_json_version_key": "CodexVersion",
				"app_path": "/Applications/Adobe Photoshop 2022/Adobe Photoshop 2022.app",
				"app_description": "Create beautiful graphics, photos and art anywhere.",
				"display_name": "Adobe Photoshop 2022",
				"minos_regex": "macChecks={minOSVersion:\\\"(.*?)\\\"",
				"version_comparison_key": "CFBundleShortVersionString"
			}
		}
	},
	{
		"sap_code": "PPRO",
		"versions": {
			"15.0": {
				"app_bundle_id": "com.adobe.PremierePro.15",
				"app_json_version_key": "CodexVersion",
				"app_path": "/Applications/Adobe Premiere Pro 2021/Adobe Premiere Pro 2021.app",
				"app_description": "Edit and craft polished films and video.",
				"display_name": "Adobe Premiere Pro 2021",
				"minos_regex": "macChecks={minOSVersion:\\\"(.*?)\\\"",
				"version_comparison_key": "CFBundleShortVersionString"
			},
			"22.0": {
				"app_bundle_id": "com.adobe.PremierePro.22",
				"app_json_version_key": "CodexVersion",
				"app_path": "/Applications/Adobe Premiere Pro 2022/Adobe Premiere Pro 2022.app",
				"app_description": "Edit and craft polished films and video.",
				"display_name": "Adobe Premiere Pro 2022",
				"minos_regex": "macChecks={minOSVersion:\\\"(.*?)\\\"",
				"version_comparison_key": "CFBundleShortVersionString"
			}
		}
	},
	{
		"sap_code": "RUSH",
		"versions": {
			"1.5": {
				"app_bundle_id": "com.adobe.PremiereRush1.5",
				"app_json_version_key": "CodexVersion",
				"app_path": "/Applications/Adobe Premiere Rush/Adobe Premiere Rush.app",
				"app_description": "Create and share online videos anywhere.",
				"display_name": "Adobe Premiere Rush",
				"minos_regex": "macChecks={minOSVersion:\\\"(.*?)\\\"",
				"version_comparison_key": "CFBundleShortVersionString"
			},
			"2.0": {
				"app_bundle_id": "com.adobe.PremiereRush%version%",
				"app_json_version_key": "CodexVersion",
				"app_path": "/Applications/Adobe Premiere Rush 2.0/Adobe Premiere Rush.app",
				"app_description": "Create and share online videos anywhere.",
				"display_name": "Adobe Premiere Rush",
				"minos_regex": "macChecks={minOSVersion:\\\"(.*?)\\\"",
				"version_comparison_key": "CFBundleShortVersionString"
			}
		}
	},
	{
		"sap_code": "SBSTA",
		"versions": {
			"3.0.0": {
				"app_bundle_id": "com.adobe.adobe-substance-3d-sampler",
				"app_json_version_key": "CodexVersion",
				"app_path": "/Applications/Adobe Substance 3D Sampler/Adobe Substance 3D Sampler.app",
				"app_description": "Create 3D materials and lights from real life images.",
				"display_name": "Adobe Substance 3D Sampler",
				"minos_regex": "macChecks={minOSVersion:\\\"(.*?)\\\"",
				"version_comparison_key": "CFBundleShortVersionString"
			}
		}
	},
	{
		"sap_code": "SBSTD",
		"versions": {
			"11.2.0": {
				"app_bundle_id": "com.adobe.substance-3d-designer",
				"app_json_version_key": "CodexVersion",
				"app_path": "/Applications/Adobe Substance 3D Designer/Adobe Substance 3D Designer.app",
				"app_description": "Design parametric 3D assets with full control.",
				"display_name": "Adobe Substance 3D Designer",
				"minos_regex": "macChecks={minOSVersion:\\\"(.*?)\\\"",
				"version_comparison_key": "CFBundleShortVersionString"
			}
		}
	},
	{
		"sap_code": "SBSTP",
		"versions": {
			"7.2.0": {
				"app_bundle_id": "com.adobe.Adobe-Substance-3D-Painter",
				"app_json_version_key": "CodexVersion",
				"app_path": "/Applications/Adobe Substance 3D Painter/Adobe Substance 3D Painter.app",
				"app_description": "Texture 3D models in real time.",
				"display_name": "Adobe Substance 3D Painter",
				"minos_regex": "macChecks={minOSVersion:\\\"(.*?)\\\"",
				"version_comparison_key": "CFBundleShortVersionString"
			}
		}
	},
	{
		"sap_code": "SPRK",
		"versions": {
			"18.0.12": {
				"app_bundle_id": "com.adobe.xd",
				"app_json_version_key": "ProductVersion",
				"app_path": "/Applications/Adobe XD/Adobe XD.app",
				"app_description": "Design, prototype and share user experiences.",
				"display_name": "Adobe XD",
				"minos_regex": "macChecks={minOSVersion:\\\"(.*?)\\\"",
				"version_comparison_key": "CFBundleShortVersionString"
			}
		}
	},
	{
		"sap_code": "STGR",
		"versions": {
			"1.0.0": {
				"app_bundle_id": "com.adobe.stager",
				"app_json_version_key": "CodexVersion",
				"app_path": "/Applications/Adobe Substance 3D Stager/Adobe Substance 3D Stager.app",
				"app_description": "Compose and render photorealistic 3D scenes.",
				"display_name": "Adobe Substance 3D Stager",
				"minos_regex": "macChecks={minOSVersion:\\\"(.*?)\\\"",
				"version_comparison_key": "CFBundleShortVersionString"
			}
		}
	}
]
Adobe Admin Console Packages/Adobe Admin Console Packages Import.munki.recipe METASEP
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
    <dict>
        <key>Description</key>
        <string>Import Adobe Admin Console Packages into Munki, please review: 
https://github.com/autopkg/dataJAR-recipes/blob/master/Adobe%20Admin%20Console%20Packages/README.md</string>
        <key>Identifier</key>
        <string>com.github.dataJAR-recipes.munki.Import Adobe Admin Console Packages</string>
        <key>Input</key>
        <dict>
            <key>MUNKI_CATEGORY</key>
            <string>Applications</string>
            <key>MUNKI_DEVELOPER</key>
            <string>Adobe</string>
            <key>MUNKI_NAME</key>
            <string>SomeAdobeTitle</string>
            <key>NAME</key>
            <string>SomeAdobeTitle - must match package name</string>
            <key>MUNKI_REPO_SUBDIR</key>
            <string>%MUNKI_CATEGORY%/%MUNKI_DEVELOPER%/%NAME%</string>
            <key>pkginfo</key>
            <dict>
                <key>catalogs</key>
                <array>
                    <string>testing</string>
                </array>
                <key>category</key>
                <string>%MUNKI_CATEGORY%</string>
                <key>description</key>
                <string>%MUNKI_DESCRIPTION%</string>
                <key>developer</key>
                <string>%MUNKI_DEVELOPER%</string>
                <key>name</key>
                <string>%MUNKI_NAME%</string>
            </dict>
        </dict>
        <key>MinimumVersion</key>
        <string>1.0.0</string>
        <key>Process</key>
        <array>
            <dict>
                <key>Processor</key>
                <string>AdobeAdminConsolePackagesVersioner</string>
            </dict>
            <dict>
                <key>Processor</key>
                <string>DmgCreator</string>
                <key>Arguments</key>
                <dict>
                    <key>dmg_path</key>
                    <string>%RECIPE_CACHE_DIR%/%NAME%_Install-%aacp_application_architecture_type%-%version%.dmg</string>
                    <key>dmg_root</key>
                    <string>%aacp_install_pkg_path%</string>
                </dict>
            </dict>
            <dict>
                <key>Processor</key>
                <string>DmgCreator</string>
                <key>Arguments</key>
                <dict>
                    <key>dmg_path</key>
                    <string>%RECIPE_CACHE_DIR%/%NAME%_Uninstall-%aacp_application_architecture_type%-%version%.dmg</string>
                    <key>dmg_root</key>
                    <string>%aacp_uninstall_pkg_path%</string>
                </dict>
            </dict>
            <dict>
                <key>Processor</key>
                <string>MunkiPkginfoMerger</string>
            </dict>
            <dict>
                <key>Processor</key>
                <string>MunkiPkginfoMerger</string>
                <key>Arguments</key>
                <dict>
                    <key>additional_pkginfo</key>
                    <dict>
                        <key>installer_type</key>
                        <string/>
                        <key>version</key>
                        <string>%version%</string>
                    </dict>
                </dict>
            </dict>
            <dict>
                <key>Processor</key>
                <string>MunkiImporter</string>
                <key>Arguments</key>
                <dict>
                    <key>pkg_path</key>
                    <string>%RECIPE_CACHE_DIR%/%NAME%_Install-%aacp_application_architecture_type%-%version%.dmg</string>
                    <key>repo_subdirectory</key>
                    <string>%MUNKI_REPO_SUBDIR%</string>
                    <key>uninstaller_pkg_path</key>
                    <string>%RECIPE_CACHE_DIR%/%NAME%_Uninstall-%aacp_application_architecture_type%-%version%.dmg</string>
                </dict>
            </dict>
        </array>
    </dict>
</plist>
Adobe Admin Console Packages/AdobeAdminConsolePackagesImporter.py METASEP
#!/usr/local/autopkg/python
# pylint: disable = invalid-name
'''
Copyright (c) 2022, dataJAR Ltd.  All rights reserved.
     Redistribution and use in source and binary forms, with or without
     modification, are permitted provided that the following conditions are met:
             * Redistributions of source code must retain the above copyright
               notice, this list of conditions and the following disclaimer.
             * Redistributions in binary form must reproduce the above copyright
               notice, this list of conditions and the following disclaimer in the
               documentation and/or other materials provided with the distribution.
             * Neither data JAR Ltd nor the names of its contributors may be used to
               endorse or promote products derived from this software without specific
               prior written permission.
     THIS SOFTWARE IS PROVIDED BY DATA JAR LTD 'AS IS' AND ANY
     EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
     WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
     DISCLAIMED. IN NO EVENT SHALL DATA JAR LTD BE LIABLE FOR ANY
     DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
     (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
     ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
     (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
     SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
SUPPORT FOR THIS PROGRAM
    This program is distributed 'as is' by DATA JAR LTD.
    For more information or support, please utilise the following resources:
            http://www.datajar.co.uk

DESCRIPTION

Imports Adobe Admin Console Packages

'''

# Standard Imports
import argparse
import glob
import os
import plistlib
import subprocess
import sys
import yaml

# pylint: disable = import-error
from CoreFoundation import CFPreferencesCopyAppValue


# Version
__version__ = '1.0'


# Functions
def main():
    '''
        Check passed arguments before proceeding
    '''

    # Setup arparse
    parser = argparse.ArgumentParser()
    parser.add_argument('type', type=str, help="Recipe type, for example: \"munki\" or \"jss\"")
    arg_parser = parser.parse_args()

    # Retrieve passed arguments, and assign to variables
    recipe_type = arg_parser.type.lower()
    packages_path = os.path.expanduser('~/Downloads/')

    # Check that packages_path exists
    if not os.path.exists(packages_path):
        print(f"ERROR: Cannot locate directory, {packages_path}... exiting...")
        sys.exit(1)

    # Check that packages_path is a directory
    if not os.path.isdir(packages_path):
        print(f"ERROR: {packages_path} is a not a directory... exiting...")
        sys.exit(1)

    # Check for Adobe* dirs
    look_for_dirs(packages_path, recipe_type)


def look_for_dirs(packages_path, recipe_type):
    '''
        Look for dirs starting with Adobe*, in packages_path
    '''

    # Progress notification
    print(f"Looking in {packages_path} for Adobe* folders ...")

    # Create empty list
    adobe_folders = []

    # Look within packages_path for Adobe* items, add to adobe_folders list if found
    for some_item in os.listdir(packages_path):
        some_path = os.path.join(packages_path, some_item)
        if os.path.isdir(some_path):
            if some_item.startswith('Adobe'):
                adobe_folders.append(some_item)

    # If no folders are found, exit
    if not adobe_folders:
        print(f"No Adobe* folders found in {packages_path}, exiting...")
        sys.exit(1)

    # If 1 or more folders are found, notify and proceed.
    if len(adobe_folders) == 1:
        print("1 Adobe folder found...")
    else:
        print(f"{len(adobe_folders)} Adobe folders found...")

    # Get the override_dirs
    try:
        override_dirs = CFPreferencesCopyAppValue('RECIPE_OVERRIDE_DIRS',
                                                  'com.github.autopkg').split()
    except AttributeError:
        override_dirs = os.path.join(os.path.expanduser('~/Library/'), 'AutoPkg',
                                     'RecipeOverrides').split()
    print(f"Override dirs: {override_dirs}")

    # Check for pkg's
    pkg_checker(sorted(adobe_folders), override_dirs, packages_path, recipe_type)


def pkg_checker(adobe_folders, override_dirs, packages_path, recipe_type):
    '''
        Check that we have the Install_pkg's & Uninstall_pkg's needed, proceed if we do
    '''

    # Progress notification
    print("Looking for pkgs...")

    # Count var
    found_pkgs = 0

    # For each folder within adobe_folders, look for *_Install.pkg and *_Uninstall.pkg,
    for adobe_folder in adobe_folders:

        # Var declaration
        install_pkg = None
        uninstall_pkg = None
        adobe_build_folder_path = os.path.join(packages_path, adobe_folder, 'Build')
        recipe_list_path = os.path.join(packages_path + 'adobe_admin_console_recipes_list.txt')
        report_path = os.path.join(packages_path + 'adobe_admin_console_recipes_report.plist')

        # Progress notification
        print(f"Checking {adobe_build_folder_path}...")

        if not os.path.isdir(adobe_build_folder_path):
            print(f"No Build dir at {adobe_build_folder_path}... skipping...")
        else:
            print(f"Found Build dir at {adobe_build_folder_path}...")
            # Look for *_Install.pkg
            try:
                install_pkg = glob.glob(os.path.join(adobe_build_folder_path, '*_Install.pkg'))[0]
                print(f"Found {install_pkg}...")
            except IndexError:
                print(f"Cannot find *_Install.pkg within: {adobe_build_folder_path}...")

            # Look for *_Uninstall.pkg
            try:
                uninstall_pkg = glob.glob(os.path.join(adobe_build_folder_path,
                                                       '*_Uninstall.pkg'))[0]
                print(f"Found {uninstall_pkg}...")
            except IndexError:
                print("Cannot find *_Uninstall.pkg within: {adobe_build_folder_path}...")

            # If we can find both *_Install.pkg and *_Uninstall.pkg, add to recipe_list_path
            if install_pkg and uninstall_pkg:
                # Increment count
                found_pkgs += 1
                # Append to recipe_list_path
                create_list(adobe_folder, found_pkgs, override_dirs, recipe_list_path, recipe_type)
            else:
                print(f"ERROR: Cannot find {adobe_folder}, these recipes need packages of the "
                       "Managed Package variety, which include _Install and _Uninstall packages"
                       ".... skipping...")

    # If we did not find any pkg pairs to import, exit
    if found_pkgs == 0:
        print("ERROR: No Adobe pkg pairs found, exiting...")
        sys.exit(1)

    # Run recipe list
    run_list(recipe_list_path, report_path)


def create_list(adobe_folder, found_pkgs, override_dirs, recipe_list_path, recipe_type):
    '''
        Create recipe list
    '''

    # Var declaration
    override_path = None

    # Look for recipes in override_dirs
    for override_dir in override_dirs:
        recipe_files = os.listdir(override_dir)
        for recipe_file in recipe_files:
            if recipe_file.startswith(adobe_folder) and recipe_type in recipe_file:
                override_path = os.path.join(override_dir, recipe_file)

    if not override_path:
        # Return when we cannot find a matching override
        print(f"Cannot find override starting with: {adobe_folder}, skipping...")
        return
    print(f"Found override at: {override_path}, proceeding...")

    # Create an empty file at recipe_list_path, if this is the 1st found pkg
    if found_pkgs == 1:
        with open(recipe_list_path, 'w', encoding='utf-8') as new_file:
            new_file.write('')

    # Retrieve override name from file
    # Borrowed with <3 from:
    # https://github.com/autopkg/autopkg/blob/405c913deab15042819e2f77f1587a805b7c1ada/Code/autopkglib/__init__.py#L341-L359
    if override_path.endswith(".yaml"):
        try:
            # try to read it as yaml
            with open (override_path, 'rb') as read_file:
                recipe_dict = yaml.load(read_file, Loader=yaml.FullLoader)
            override_name =  recipe_dict["Identifier"]
        # pylint: disable = broad-except
        except Exception as err_msg:
            print(f"ERROR: yaml error for {override_path}: {err_msg}")
            return
    try:
        # try to read it as a plist
        with open (override_path, 'rb') as read_file:
            recipe_dict = plistlib.load(read_file)
        override_name = recipe_dict["Identifier"]
    # pylint: disable = broad-except
    except Exception as err_msg:
        print(f"ERROR: plist error for {override_path}: {err_msg}")
        return

    print(f"Adding {override_path}, to {recipe_list_path} with identifier: {override_name}...")

    # Append to recipe_list_path
    with open(recipe_list_path, 'a+', encoding='utf-8') as list_file:
        list_file.write(override_name + '\n')


def run_list(recipe_list_path, report_path):
    '''
        Run recipe list
    '''

    # Check that the recipe_list file has content before proceeding
    with open (recipe_list_path, encoding='utf-8') as recipe_list_file:
        content_test = recipe_list_file.readlines()
        if not content_test:
            print(f"{recipe_list_path} is empty, no overrides found... exiting ...")
            sys.exit(1)

    # Notify we're starting
    print(f"Running recipe_list: `{recipe_list_path}`")

    # The subprocess command
    cmd_args = ['/usr/local/bin/autopkg', 'run', '-vv', '--recipe-list', recipe_list_path,
                '--report-plist', report_path]

    # Notify what command we're about to run.
    print(f"Running: `{cmd_args}`...")

    # Run the command
    subprocess.call(cmd_args)



if __name__ == '__main__':

    # Gimme some main
    main()

Adobe Admin Console Packages/AdobeAdminConsolePackagesPkgInfoCreator.py METASEP

#!/usr/local/autopkg/python
# pylint: disable = invalid-name
'''
Copyright (c) 2022, dataJAR Ltd.  All rights reserved.
     Redistribution and use in source and binary forms, with or without
     modification, are permitted provided that the following conditions are met:
             * Redistributions of source code must retain the above copyright
               notice, this list of conditions and the following disclaimer.
             * Redistributions in binary form must reproduce the above copyright
               notice, this list of conditions and the following disclaimer in the
               documentation and/or other materials provided with the distribution.
             * Neither data JAR Ltd nor the names of its contributors may be used to
               endorse or promote products derived from this software without specific
               prior written permission.
     THIS SOFTWARE IS PROVIDED BY DATA JAR LTD 'AS IS' AND ANY
     EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
     WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
     DISCLAIMED. IN NO EVENT SHALL DATA JAR LTD BE LIABLE FOR ANY
     DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
     (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
     ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
     (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
     SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
SUPPORT FOR THIS PROGRAM
    This program is distributed 'as is' by DATA JAR LTD.
    For more information or support, please utilise the following resources:
            http://www.datajar.co.uk

DESCRIPTION

Generates installation information for Adobe Admin Console Packages
'''

# Standard Imports
import json
import os
import re
import xml
from xml.etree import ElementTree


# AutoPkg imports
# pylint: disable = import-error
from autopkglib import (Processor,
                        ProcessorError)


# Define class
__all__ = ['AdobeAdminConsolePackagesPkgInfoCreator']
__version__ = ['1.0']


# Class def
class AdobeAdminConsolePackagesPkgInfoCreator(Processor):
    '''
       Parses generated Adobe Admin Console Packages to generate installation information.
    '''

    description = __doc__

    input_variables = {
    }

    output_variables = {
        'aacp_application_path': {
            'description': 'aacp_installdir_value after regex applied to get the path alone.',
        },
        'aacp_application_architecture_type': {
            'description': 'The architecture type for the title, either arm64 or x86_64',
        },
        'aacp_application_install_lang': {
            'description': 'The titles installation langauage.',
        },
        'aacp_application_json_path': {
            'description': 'Path to the tiles Application.json file.',
        },
        'aacp_application_major_version': {
            'description': 'The major version of the title.',
        },
        'aacp_blocking_applications': {
            'description': 'Sorted set of the conflicting processes.',
        },
        'aacp_application_description': {
            'description': 'Short description of the title.',
        },
        'aacp_application_sap_code': {
            'description': 'The titles sap code.',
        },
        'aacp_install_pkg_path': {
            'description': 'Path to the Adobe*_Install.pkg.',
        },
        'aacp_json_path': {
            'description': 'Path to AdobeAutoPkgApplicationData.json.',
        },
        'aacp_matched_json': {
            'description': ('dict from AdobeAutoPkgApplicationData.json, which matches the '
                            '"aacp_application_sap_code" and "aacp_application_major_version".'),
        },
        'aacp_option_xml_path': {
            'description': 'Path to the tiles optionXML.xml file.',
        },
        'aacp_parent_dir': {
            'description': 'Path to parent directory of this processor.',
        },
        'aacp_proxy_xml_path': {
            'description': 'Acrobat only, path to proxy.xml.',
        },
        'aacp_target_folder': {
            'description': 'The name of the folder within the pkg to check files for metadata.',
        },
        'aacp_uninstall_pkg_path': {
            'description': 'Path to the Adobe*_Uninstall.pkg.',
        },
        'additional_pkginfo': {
            'description':
                'Additonal pkginfo fields extracted from the Adobe metadata.',
        },
        'version': {
            'description': 'The titles version.',
        }
    }


    def main(self):
        '''
            Find the Adobe*_Install.pkg in the Downloads dir based on the name, raise
            if corresponding *_Uninstall.pkg is missing.
        '''

        # Progress notification
        self.output("Starting versioner process...")

        # Get set packages_path
        self.env['aacp_packages_path'] = os.path.expanduser('~/Downloads/')
        self.output(f"aacp_packages_path: {self.env['aacp_packages_path']}")

        # Check that packages_path exists
        if not os.path.exists(self.env['aacp_packages_path']):
            raise ProcessorError(f"ERROR: Cannot locate directory, "
                                 f"{self.env['aacp_packages_path']}... exiting...")

        # Check that packages_path is a directory
        if not os.path.isdir(self.env['aacp_packages_path']):
            raise ProcessorError(f"ERROR: {self.env['aacp_packages_path']} is a not a "
                                  "directory... exiting...")

        # Path to Adobe*_Install.pkg
        self.env['aacp_install_pkg_path'] = (os.path.join(self.env['aacp_packages_path'],
                                                          self.env['NAME'], 'Build',
                                                          self.env['NAME'] + '_Install.pkg'))

        # Check that the path exists, raise if not
        if not os.path.exists(self.env['aacp_install_pkg_path']):
            raise ProcessorError(f"ERROR: Cannot find "
                                 f"{self.env['aacp_install_pkg_path']}... exiting...")
        self.output(f"aacp_install_pkg_path: {self.env['aacp_install_pkg_path']}")

        # Path to Adobe*_Uninstall.pkg
        self.env['aacp_uninstall_pkg_path'] = (os.path.join(self.env['aacp_packages_path'],
                                                            self.env['NAME'], 'Build',
                                                            self.env['NAME'] + '_Uninstall.pkg'))

        # Check that the path exists, raise if not
        if not os.path.exists(self.env['aacp_uninstall_pkg_path']):
            raise ProcessorError(f"ERROR: Cannot find {self.env['aacp_uninstall_pkg_path']}, these "
                                 f"recipes need packages of the Managed Package variety, which "
                                 f"include _Install and _Uninstall packages.... exiting...")
        self.output(f"aacp_uninstall_pkg_path {self.env['aacp_uninstall_pkg_path']}")

        # Process the titles optionXML.xml
        self.process_optionxml_xml()


    def process_optionxml_xml(self):
        '''
            Process the titles optionXML.xml
        '''

        # Var declaration
        self.env['aacp_application_install_lang'] = None

        # Path to titles optionXML.xml
        self.env['aacp_option_xml_path'] = os.path.join(self.env['aacp_install_pkg_path'],
                                                        'Contents', 'Resources', 'optionXML.xml')
        if not os.path.exists(self.env['aacp_option_xml_path']):
            raise ProcessorError(f"ERROR: Cannot find {self.env['aacp_option_xml_path']}... "
                                  "exiting...")
        self.output(f"aacp_option_xml_path: {self.env['aacp_option_xml_path']}")

        # Progress notification
        self.output(f"Processing: {self.env['aacp_option_xml_path']}...")

        # Try to parse option_xml, raise if an issue
        try:
            option_xml = ElementTree.parse(self.env['aacp_option_xml_path'])
        except xml.etree.ElementTree.ParseError as err_msg:
            raise ProcessorError from err_msg

        # Check to see if HDMedia keys set
        for hd_media in option_xml.findall('.//HDMedias/HDMedia'):
            # If we have HDMedia, set vars
            if hd_media.findtext('MediaType') == 'Product':
                self.env['aacp_application_install_lang'] = hd_media.findtext('installLang')
                self.env['aacp_application_sap_code'] = hd_media.findtext('SAPCode')
                self.env['aacp_target_folder'] = hd_media.findtext('TargetFolderName')
                self.env['aacp_application_major_version'] = hd_media.findtext('baseVersion')

        # If no HDMedia is found, then self.env['aacp_application_install_lang'] will be none
        if not self.env['aacp_application_install_lang']:
            # Get vars for RIBS media
            for ribs_media in option_xml.findall('.//Medias/Media'):
                self.env['aacp_application_install_lang'] = ribs_media.findtext('installLang')
                self.env['aacp_application_sap_code'] = ribs_media.findtext('SAPCode')
                self.env['aacp_target_folder'] = ribs_media.findtext('TargetFolderName')
                self.env['aacp_application_major_version'] = ribs_media.findtext('prodVersion')

        # Check for Processor Architecture
        self.env['aacp_application_architecture_type'] = (
            option_xml.findtext('ProcessorArchitecture').lower())
        if not self.env['aacp_application_architecture_type'] in ['arm64', 'macuniversal', 'x64']:
            raise ProcessorError(f"architecture_type: "
                                 f"{self.env['aacp_application_architecture_type']},"
                                 f" is neither arm64, macuniversal nor x64... exiting...")
        if self.env['aacp_application_architecture_type'] == 'x64':
            self.env['aacp_application_architecture_type'] = 'x86_64'

        # Display progress
        self.output(f"aacp_application_sap_code: {self.env['aacp_application_sap_code']}")
        self.output(f"aacp_target_folder: {self.env['aacp_target_folder']}")
        self.output(f"aacp_application_architecture_type: "
                    f"{self.env['aacp_application_architecture_type']}")
        self.output(f"aacp_application_install_lang: {self.env['aacp_application_install_lang']}")
        self.output(f"aacp_application_major_version: {self.env['aacp_application_major_version']}")

        # If the we're looking at Acrobat, then we need to process things differently
        if self.env['aacp_application_sap_code'] == 'APRO':
            self.process_apro_installer()
        else:
            # Set application_json_path
            self.env['aacp_application_json_path'] = os.path.join(self.env['aacp_install_pkg_path'],
                                                                  'Contents/Resources/HD',
                                                                  self.env['aacp_target_folder'],
                                                                  'Application.json')
            # Process HD installer
            self.process_hd_installer()


    def process_apro_installer(self):
        '''
            Process APRO (Acrobat) installer
        '''

        # Progress notification
        self.output("Processing Acrobat installer")
        self.env['aacp_proxy_xml_path'] = (os.path.join(self.env['aacp_install_pkg_path'],
                                                        'Contents/Resources/Setup',
                                                        self.env['aacp_target_folder'],
                                                        'proxy.xml'))
        self.output(f"aacp_proxy_xml_path: {self.env['aacp_proxy_xml_path']}")

        # Try to parse proxy_xml, raise if an issue
        try:
            parse_xml = ElementTree.parse(self.env['aacp_proxy_xml_path'])
        except xml.etree.ElementTree.ParseError as err_msg:
            raise ProcessorError from err_msg

        # Get root of xml
        root = parse_xml.getroot()

        # Get app_version
        self.env['version'] = (root.findtext
                                   ('./InstallerProperties/Property[@name=\'ProductVersion\']'))
        self.output(f"version: {self.env['version']}")

        # Set to []
        self.env['aacp_blocking_applications'] = []

        # 2nd part of process
        self.process_adobe_autopkg_application_data(None)


    def process_hd_installer(self):
        '''
            Process HD installer
        '''

        # Var declaration
        blocking_applications = []

        # Progress notification
        self.output(f"Processing {self.env['aacp_application_json_path']}...")

        # Read in app_json file
        with open(self.env['aacp_application_json_path'], encoding='utf-8') as json_file:
            # Try to parse app_json as json, raise if an issue
            try:
                load_json = json.load(json_file)
            except json.JSONDecodeError as err_msg:
                raise ProcessorError from err_msg

            # Get description
            tag_lines = load_json["ProductDescription"]["Tagline"]["Language"]
            for tag_line in tag_lines:
                if tag_line['locale'] == self.env['aacp_application_install_lang']:
                    self.env['aacp_application_description'] = tag_line['value']
                    # Add a . if missing from the end
                    if not self.env['aacp_application_description'].endswith('.'):
                        self.env['aacp_application_description'] = (
                                            self.env['aacp_application_description'] + '.')
                    self.output(f"aacp_application_description: "
                                f"{self.env['aacp_application_description']}")

            # Get conflicting processes
            conflicting_processes = load_json['ConflictingProcesses']['ConflictingProcess']
            for conflicting_process in conflicting_processes:
                # Only add if forceKillAllowed is False
                if not conflicting_process['forceKillAllowed']:
                    blocking_applications.append(conflicting_process['ProcessDisplayName'])
            if blocking_applications:
                self.env['aacp_blocking_applications'] = sorted(set(blocking_applications))
                self.output(f"aacp_blocking_applications: "
                            f"{self.env['aacp_blocking_applications']}")

            # 2nd part of process
            self.process_adobe_autopkg_application_data(load_json)


    def process_adobe_autopkg_application_data(self, load_json):
        '''
           Get more details from AdobeAutoPkgApplicationData.json
        '''

        # var declaration
        self.env['aacp_matched_json'] = None

        # Get this scripts parent directory
        self.env['aacp_parent_dir'] = os.path.dirname(os.path.realpath(__file__))
        self.output(f"aacp_parent_dir: {self.env['aacp_parent_dir']}")

        # Get the path to AdobeAutoPkgApplicationData.json
        self.env['aacp_json_path'] = os.path.join(self.env['aacp_parent_dir'],
                                                  'AdobeAutoPkgApplicationData.json')
        self.output(f"aacp_json_path: {self.env['aacp_json_path']}")

        # Progress notification
        self.output(f"Processing {self.env['aacp_json_path']}...")

        # Read in AdobeAutoPkgApplicationData.json file
        with open(self.env['aacp_json_path'], encoding='utf-8') as json_file:
            # Try to parse app_json as json, raise if an issue
            try:
                self.env['aacp_autopkg_json'] = json.load(json_file)
            except json.JSONDecodeError as err_msg:
                raise ProcessorError from err_msg

        # Get applications dict from the json
        for application_data in self.env['aacp_autopkg_json']:
            if application_data['sap_code'] == self.env['aacp_application_sap_code']:
                for aacp_version_json in application_data['versions'].keys():
                    try:
                        if aacp_version_json == self.env['aacp_application_major_version']:
                            self.env['aacp_matched_json'] = (application_data['versions']
                                                 [self.env['aacp_application_major_version']])
                            self.output(f"aacp_matched_json: {self.env['aacp_matched_json']}")
                    except KeyError as err_msg:
                        raise ProcessorError(f"Cannot find details for "
                                             f"{self.env['aacp_application_sap_code']} "
                                             f"with version: "
                                             f"{self.env['aacp_application_major_version']},"
                                             f" in {self.env['aacp_json_path']}... "
                                             f"exiting...") from err_msg

        # If we found a match
        if self.env['aacp_matched_json']:
            self.process_matched_json(load_json)
        else:
            raise ProcessorError("Cannot find details for "
                                f"{self.env['aacp_application_sap_code']} "
                                f"with version: {self.env['aacp_application_major_version']},"
                                f" in {self.env['aacp_json_path']}...")


    def process_matched_json(self, load_json):
        '''
            Get metadata with the aid of self.env['aacp_matched_json']
        '''
        # Applications version, if not APRO
        if not self.env['aacp_application_sap_code'] == 'APRO':
            self.env['version'] = load_json[self.env['aacp_matched_json']['app_json_version_key']]
            self.output(f"version: {self.env['version']}")

        # If the version is unsupported
        if 'unsupported_versions_dict' in self.env['aacp_matched_json']:
            self.output(f"unsupported_versions_dict: {self.env['aacp_matched_json']"
                        f"['unsupported_versions_dict']}")
            for unsupported_version in self.env['aacp_matched_json']['unsupported_versions_dict']:
                if unsupported_version == self.env['version']:
                    raise ProcessorError(f"{self.env['aacp_matched_json']['unsupported_versions_dict']"
                                         f"[unsupported_version]}")

        # Applications bundle id
        self.env['aacp_application_bundle_id'] = self.env['aacp_matched_json']['app_bundle_id']
        self.output(f"aacp_application_bundle_id: {self.env['aacp_application_bundle_id']}")

        # Applications minimum os, if APRO get from self.env['aacp_matched_json']
        if not self.env['aacp_application_sap_code'] == 'APRO':
            self.env['aacp_application_minimum_os'] = (re.search(self.env['aacp_matched_json']
                                                                 ['minos_regex'],
                                                                 load_json['SystemRequirement']
                                                                 ['CheckCompatibility']
                                                                 ['Content'])[1])
            self.output(f"aacp_application_minimum_os: {self.env['aacp_application_minimum_os']}")
        else:
            self.env['aacp_application_minimum_os'] = self.env['aacp_matched_json']['minos_version']

        # Applications version comparison key
        self.env['aacp_version_compare_key'] = (self.env['aacp_matched_json']
                                                ['version_comparison_key'])
        self.output(f"aacp_version_compare_key: {self.env['aacp_version_compare_key']}")

        # Applications display name
        self.env['aacp_application_display_name'] = self.env['aacp_matched_json']['display_name']
        self.output(f"aacp_application_display_name: {self.env['aacp_application_display_name']}")

        # Full path to the application bundle on disk, as per Terminal etc, not Finder
        self.env['aacp_application_full_path'] = self.env['aacp_matched_json']['app_path']

        # Get description if missing:
        if not 'aacp_application_description' in self.env:
            self.env['aacp_application_description'] = (self.env['aacp_matched_json']
                                                        ['app_description'])
            self.output(f"aacp_application_description: description missing, set from "
                        f"aacp_matched_json: "
                        f"{self.env['aacp_application_description']}")
        # Add a . if missing from the end
        if not self.env['aacp_application_description'].endswith('.'):
            self.env['aacp_application_description'] = (self.env['aacp_application_description']
                                                        + '.')

        # Get additional_blocking_applications
        if 'additional_blocking_applications' in self.env['aacp_matched_json']:
            for additional_blocking_application in (self.env['aacp_matched_json']
                                                    ['additional_blocking_applications']):
                self.env['aacp_blocking_applications'].append(additional_blocking_application)
            self.env['aacp_blocking_applications'] = (
                sorted(set(self.env['aacp_blocking_applications'])))
            self.output(f"aacp_blocking_applications updated: "
                        f"{self.env['aacp_blocking_applications']}")

        # Now we have the deets, let's use them
infile
#!/usr/local/autopkg/python
# pylint: disable = invalid-name
'''
Copyright (c) 2022, dataJAR Ltd.  All rights reserved.
     Redistribution and use in source and binary forms, with or without
     modification, are permitted provided that the following conditions are met:
             * Redistributions of source code must retain the above copyright
               notice, this list of conditions and the following disclaimer.
             * Redistributions in binary form must reproduce the above copyright
               notice, this list of conditions and the following disclaimer in the
               documentation and/or other materials provided with the distribution.
             * Neither data JAR Ltd nor the names of its contributors may be used to
               endorse or promote products derived from this software without specific
               prior written permission.
     THIS SOFTWARE IS PROVIDED BY DATA JAR LTD 'AS IS' AND ANY
     EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
     WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
     DISCLAIMED. IN NO EVENT SHALL DATA JAR LTD BE LIABLE FOR ANY
     DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
     (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
     ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
     (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
     SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
SUPPORT FOR THIS PROGRAM
    This program is distributed 'as is' by DATA JAR LTD.
    For more information or support, please utilise the following resources:
            http://www.datajar.co.uk

DESCRIPTION

Generates installation information for Adobe Admin Console Packages
'''

# Standard Imports
import json
import os
import re
import xml
from xml.etree import ElementTree


# AutoPkg imports
# pylint: disable = import-error
from autopkglib import (Processor,
                        ProcessorError)


# Define class
__all__ = ['AdobeAdminConsolePackagesPkgInfoCreator']
__version__ = ['1.0']


# Class def
class AdobeAdminConsolePackagesPkgInfoCreator(Processor):
    '''
       Parses generated Adobe Admin Console Packages to generate installation information.
    '''

    description = __doc__

    input_variables = {
    }

    output_variables = {
        'aacp_application_path': {
            'description': 'aacp_installdir_value after regex applied to get the path alone.',
        },
        'aacp_application_architecture_type': {
            'description': 'The architecture type for the title, either arm64 or x86_64',
        },
        'aacp_application_install_lang': {
            'description': 'The titles installation langauage.',
        },
        'aacp_application_json_path': {
            'description': 'Path to the tiles Application.json file.',
        },
        'aacp_application_major_version': {
            'description': 'The major version of the title.',
        },
        'aacp_blocking_applications': {
            'description': 'Sorted set of the conflicting processes.',
        },
        'aacp_application_description': {
            'description': 'Short description of the title.',
        },
        'aacp_application_sap_code': {
            'description': 'The titles sap code.',
        },
        'aacp_install_pkg_path': {
            'description': 'Path to the Adobe*_Install.pkg.',
        },
        'aacp_json_path': {
            'description': 'Path to AdobeAutoPkgApplicationData.json.',
        },
        'aacp_matched_json': {
            'description': ('dict from AdobeAutoPkgApplicationData.json, which matches the '
                            '"aacp_application_sap_code" and "aacp_application_major_version".'),
        },
        'aacp_option_xml_path': {
            'description': 'Path to the tiles optionXML.xml file.',
        },
        'aacp_parent_dir': {
            'description': 'Path to parent directory of this processor.',
        },
        'aacp_proxy_xml_path': {
            'description': 'Acrobat only, path to proxy.xml.',
        },
        'aacp_target_folder': {
            'description': 'The name of the folder within the pkg to check files for metadata.',
        },
        'aacp_uninstall_pkg_path': {
            'description': 'Path to the Adobe*_Uninstall.pkg.',
        },
        'additional_pkginfo': {
            'description':
                'Additonal pkginfo fields extracted from the Adobe metadata.',
        },
        'version': {
            'description': 'The titles version.',
        }
    }


    def main(self):
        '''
            Find the Adobe*_Install.pkg in the Downloads dir based on the name, raise
            if corresponding *_Uninstall.pkg is missing.
        '''

        # Progress notification
        self.output("Starting versioner process...")

        # Get set packages_path
        self.env['aacp_packages_path'] = os.path.expanduser('~/Downloads/')
        self.output(f"aacp_packages_path: {self.env['aacp_packages_path']}")

        # Check that packages_path exists
        if not os.path.exists(self.env['aacp_packages_path']):
            raise ProcessorError(f"ERROR: Cannot locate directory, "
                                 f"{self.env['aacp_packages_path']}... exiting...")

        # Check that packages_path is a directory
        if not os.path.isdir(self.env['aacp_packages_path']):
            raise ProcessorError(f"ERROR: {self.env['aacp_packages_path']} is a not a "
                                  "directory... exiting...")

        # Path to Adobe*_Install.pkg
        self.env['aacp_install_pkg_path'] = (os.path.join(self.env['aacp_packages_path'],
                                                          self.env['NAME'], 'Build',
                                                          self.env['NAME'] + '_Install.pkg'))

        # Check that the path exists, raise if not
        if not os.path.exists(self.env['aacp_install_pkg_path']):
            raise ProcessorError(f"ERROR: Cannot find "
                                 f"{self.env['aacp_install_pkg_path']}... exiting...")
        self.output(f"aacp_install_pkg_path: {self.env['aacp_install_pkg_path']}")

        # Path to Adobe*_Uninstall.pkg
        self.env['aacp_uninstall_pkg_path'] = (os.path.join(self.env['aacp_packages_path'],
                                                            self.env['NAME'], 'Build',
                                                            self.env['NAME'] + '_Uninstall.pkg'))

        # Check that the path exists, raise if not
        if not os.path.exists(self.env['aacp_uninstall_pkg_path']):
            raise ProcessorError(f"ERROR: Cannot find {self.env['aacp_uninstall_pkg_path']}, these "
                                 f"recipes need packages of the Managed Package variety, which "
                                 f"include _Install and _Uninstall packages.... exiting...")
        self.output(f"aacp_uninstall_pkg_path {self.env['aacp_uninstall_pkg_path']}")

        # Process the titles optionXML.xml
        self.process_optionxml_xml()


    def process_optionxml_xml(self):
        '''
            Process the titles optionXML.xml
        '''

        # Var declaration
        self.env['aacp_application_install_lang'] = None

        # Path to titles optionXML.xml
        self.env['aacp_option_xml_path'] = os.path.join(self.env['aacp_install_pkg_path'],
                                                        'Contents', 'Resources', 'optionXML.xml')
        if not os.path.exists(self.env['aacp_option_xml_path']):
            raise ProcessorError(f"ERROR: Cannot find {self.env['aacp_option_xml_path']}... "
                                  "exiting...")
        self.output(f"aacp_option_xml_path: {self.env['aacp_option_xml_path']}")

        # Progress notification
        self.output(f"Processing: {self.env['aacp_option_xml_path']}...")

        # Try to parse option_xml, raise if an issue
        try:
            option_xml = ElementTree.parse(self.env['aacp_option_xml_path'])
        except xml.etree.ElementTree.ParseError as err_msg:
            raise ProcessorError from err_msg

        # Check to see if HDMedia keys set
        for hd_media in option_xml.findall('.//HDMedias/HDMedia'):
            # If we have HDMedia, set vars
            if hd_media.findtext('MediaType') == 'Product':
                self.env['aacp_application_install_lang'] = hd_media.findtext('installLang')
                self.env['aacp_application_sap_code'] = hd_media.findtext('SAPCode')
                self.env['aacp_target_folder'] = hd_media.findtext('TargetFolderName')
                self.env['aacp_application_major_version'] = hd_media.findtext('baseVersion')

        # If no HDMedia is found, then self.env['aacp_application_install_lang'] will be none
        if not self.env['aacp_application_install_lang']:
            # Get vars for RIBS media
            for ribs_media in option_xml.findall('.//Medias/Media'):
                self.env['aacp_application_install_lang'] = ribs_media.findtext('installLang')
                self.env['aacp_application_sap_code'] = ribs_media.findtext('SAPCode')
                self.env['aacp_target_folder'] = ribs_media.findtext('TargetFolderName')
                self.env['aacp_application_major_version'] = ribs_media.findtext('prodVersion')

        # Check for Processor Architecture
        self.env['aacp_application_architecture_type'] = (
            option_xml.findtext('ProcessorArchitecture').lower())
        if not self.env['aacp_application_architecture_type'] in ['arm64', 'macuniversal', 'x64']:
            raise ProcessorError(f"architecture_type: "
                                 f"{self.env['aacp_application_architecture_type']},"
                                 f" is neither arm64, macuniversal nor x64... exiting...")
        if self.env['aacp_application_architecture_type'] == 'x64':
            self.env['aacp_application_architecture_type'] = 'x86_64'

        # Display progress
        self.output(f"aacp_application_sap_code: {self.env['aacp_application_sap_code']}")
        self.output(f"aacp_target_folder: {self.env['aacp_target_folder']}")
        self.output(f"aacp_application_architecture_type: "
                    f"{self.env['aacp_application_architecture_type']}")
        self.output(f"aacp_application_install_lang: {self.env['aacp_application_install_lang']}")
        self.output(f"aacp_application_major_version: {self.env['aacp_application_major_version']}")

        # If the we're looking at Acrobat, then we need to process things differently
        if self.env['aacp_application_sap_code'] == 'APRO':
            self.process_apro_installer()
        else:
            # Set application_json_path
            self.env['aacp_application_json_path'] = os.path.join(self.env['aacp_install_pkg_path'],
                                                                  'Contents/Resources/HD',
                                                                  self.env['aacp_target_folder'],
                                                                  'Application.json')
            # Process HD installer
            self.process_hd_installer()


    def process_apro_installer(self):
        '''
            Process APRO (Acrobat) installer
        '''

        # Progress notification
        self.output("Processing Acrobat installer")
        self.env['aacp_proxy_xml_path'] = (os.path.join(self.env['aacp_install_pkg_path'],
                                                        'Contents/Resources/Setup',
                                                        self.env['aacp_target_folder'],
                                                        'proxy.xml'))
        self.output(f"aacp_proxy_xml_path: {self.env['aacp_proxy_xml_path']}")

        # Try to parse proxy_xml, raise if an issue
        try:
            parse_xml = ElementTree.parse(self.env['aacp_proxy_xml_path'])
        except xml.etree.ElementTree.ParseError as err_msg:
            raise ProcessorError from err_msg

        # Get root of xml
        root = parse_xml.getroot()

        # Get app_version
        self.env['version'] = (root.findtext
                                   ('./InstallerProperties/Property[@name=\'ProductVersion\']'))
        self.output(f"version: {self.env['version']}")

        # Set to []
        self.env['aacp_blocking_applications'] = []

        # 2nd part of process
        self.process_adobe_autopkg_application_data(None)


    def process_hd_installer(self):
        '''
            Process HD installer
        '''

        # Var declaration
        blocking_applications = []

        # Progress notification
        self.output(f"Processing {self.env['aacp_application_json_path']}...")

        # Read in app_json file
        with open(self.env['aacp_application_json_path'], encoding='utf-8') as json_file:
            # Try to parse app_json as json, raise if an issue
            try:
                load_json = json.load(json_file)
            except json.JSONDecodeError as err_msg:
                raise ProcessorError from err_msg

            # Get description
            tag_lines = load_json["ProductDescription"]["Tagline"]["Language"]
            for tag_line in tag_lines:
                if tag_line['locale'] == self.env['aacp_application_install_lang']:
                    self.env['aacp_application_description'] = tag_line['value']
                    # Add a . if missing from the end
                    if not self.env['aacp_application_description'].endswith('.'):
                        self.env['aacp_application_description'] = (
                                            self.env['aacp_application_description'] + '.')
                    self.output(f"aacp_application_description: "
                                f"{self.env['aacp_application_description']}")

            # Get conflicting processes
            conflicting_processes = load_json['ConflictingProcesses']['ConflictingProcess']
            for conflicting_process in conflicting_processes:
                # Only add if forceKillAllowed is False
                if not conflicting_process['forceKillAllowed']:
                    blocking_applications.append(conflicting_process['ProcessDisplayName'])
            if blocking_applications:
                self.env['aacp_blocking_applications'] = sorted(set(blocking_applications))
                self.output(f"aacp_blocking_applications: "
                            f"{self.env['aacp_blocking_applications']}")

            # 2nd part of process
            self.process_adobe_autopkg_application_data(load_json)


    def process_adobe_autopkg_application_data(self, load_json):
        '''
           Get more details from AdobeAutoPkgApplicationData.json
        '''

        # var declaration
        self.env['aacp_matched_json'] = None

        # Get this scripts parent directory
        self.env['aacp_parent_dir'] = os.path.dirname(os.path.realpath(__file__))
        self.output(f"aacp_parent_dir: {self.env['aacp_parent_dir']}")

        # Get the path to AdobeAutoPkgApplicationData.json
        self.env['aacp_json_path'] = os.path.join(self.env['aacp_parent_dir'],
                                                  'AdobeAutoPkgApplicationData.json')
        self.output(f"aacp_json_path: {self.env['aacp_json_path']}")

        # Progress notification
        self.output(f"Processing {self.env['aacp_json_path']}...")

        # Read in AdobeAutoPkgApplicationData.json file
        with open(self.env['aacp_json_path'], encoding='utf-8') as json_file:
            # Try to parse app_json as json, raise if an issue
            try:
                self.env['aacp_autopkg_json'] = json.load(json_file)
            except json.JSONDecodeError as err_msg:
                raise ProcessorError from err_msg

        # Get applications dict from the json
        for application_data in self.env['aacp_autopkg_json']:
            if application_data['sap_code'] == self.env['aacp_application_sap_code']:
                for aacp_version_json in application_data['versions'].keys():
                    try:
                        if aacp_version_json == self.env['aacp_application_major_version']:
                            self.env['aacp_matched_json'] = (application_data['versions']
                                                 [self.env['aacp_application_major_version']])
                            self.output(f"aacp_matched_json: {self.env['aacp_matched_json']}")
                    except KeyError as err_msg:
                        raise ProcessorError(f"Cannot find details for "
                                             f"{self.env['aacp_application_sap_code']} "
                                             f"with version: "
                                             f"{self.env['aacp_application_major_version']},"
                                             f" in {self.env['aacp_json_path']}... "
                                             f"exiting...") from err_msg

        # If we found a match
        if self.env['aacp_matched_json']:
            self.process_matched_json(load_json)
        else:
            raise ProcessorError("Cannot find details for "
                                f"{self.env['aacp_application_sap_code']} "
                                f"with version: {self.env['aacp_application_major_version']},"
                                f" in {self.env['aacp_json_path']}...")


    def process_matched_json(self, load_json):
        '''
            Get metadata with the aid of self.env['aacp_matched_json']
        '''
        # Applications version, if not APRO
        if not self.env['aacp_application_sap_code'] == 'APRO':
            self.env['version'] = load_json[self.env['aacp_matched_json']['app_json_version_key']]
            self.output(f"version: {self.env['version']}")

        # If the version is unsupported
        if 'unsupported_versions_dict' in self.env['aacp_matched_json']:
            self.output(f"unsupported_versions_dict: {self.env['aacp_matched_json']"
                        f"['unsupported_versions_dict']}")
            for unsupported_version in self.env['aacp_matched_json']['unsupported_versions_dict']:
                if unsupported_version == self.env['version']:
                    raise ProcessorError(f"{self.env['aacp_matched_json']['unsupported_versions_dict']"
                                         f"[unsupported_version]}")

        # Applications bundle id
        self.env['aacp_application_bundle_id'] = self.env['aacp_matched_json']['app_bundle_id']
        self.output(f"aacp_application_bundle_id: {self.env['aacp_application_bundle_id']}")

        # Applications minimum os, if APRO get from self.env['aacp_matched_json']
        if not self.env['aacp_application_sap_code'] == 'APRO':
            self.env['aacp_application_minimum_os'] = (re.search(self.env['aacp_matched_json']
                                                                 ['minos_regex'],
                                                                 load_json['SystemRequirement']
                                                                 ['CheckCompatibility']
                                                                 ['Content'])[1])
            self.output(f"aacp_application_minimum_os: {self.env['aacp_application_minimum_os']}")
        else:
            self.env['aacp_application_minimum_os'] = self.env['aacp_matched_json']['minos_version']

        # Applications version comparison key
        self.env['aacp_version_compare_key'] = (self.env['aacp_matched_json']
                                                ['version_comparison_key'])
        self.output(f"aacp_version_compare_key: {self.env['aacp_version_compare_key']}")

        # Applications display name
        self.env['aacp_application_display_name'] = self.env['aacp_matched_json']['display_name']
        self.output(f"aacp_application_display_name: {self.env['aacp_application_display_name']}")

        # Full path to the application bundle on disk, as per Terminal etc, not Finder
        self.env['aacp_application_full_path'] = self.env['aacp_matched_json']['app_path']

        # Get description if missing:
        if not 'aacp_application_description' in self.env:
            self.env['aacp_application_description'] = (self.env['aacp_matched_json']
                                                        ['app_description'])
            self.output(f"aacp_application_description: description missing, set from "
                        f"aacp_matched_json: "
                        f"{self.env['aacp_application_description']}")
        # Add a . if missing from the end
        if not self.env['aacp_application_description'].endswith('.'):
            self.env['aacp_application_description'] = (self.env['aacp_application_description']
                                                        + '.')

        # Get additional_blocking_applications
        if 'additional_blocking_applications' in self.env['aacp_matched_json']:
            for additional_blocking_application in (self.env['aacp_matched_json']
                                                    ['additional_blocking_applications']):
                self.env['aacp_blocking_applications'].append(additional_blocking_application)
            self.env['aacp_blocking_applications'] = (
                sorted(set(self.env['aacp_blocking_applications'])))
            self.output(f"aacp_blocking_applications updated: "
                        f"{self.env['aacp_blocking_applications']}")

        # Now we have the deets, let's use them
        self.create_pkginfo()


    def create_pkginfo(self):
        '''
            Create pkginfo with found details
        '''

        # var declaration
        pkginfo = {}

        # Set pkginfo variables
        if (self.env['aacp_application_architecture_type'] and
            not self.env['aacp_application_architecture_type'] == 'macuniversal'):
            pkginfo['supported_architectures'] = [self.env['aacp_application_architecture_type']]

        if self.env['aacp_application_description']:
            pkginfo['description'] = self.env['aacp_application_description']

        if self.env['aacp_application_display_name']:
            pkginfo['display_name'] = self.env['aacp_application_display_name']

        if self.env['aacp_blocking_applications']:
            pkginfo['blocking_applications'] = self.env['aacp_blocking_applications']

        if self.env['aacp_application_minimum_os']:
            pkginfo['minimum_os_version'] = self.env['aacp_application_minimum_os']

        # Check for any var replacements
        for some_key in self.env:
            # only process the keys beginning with aacp_ and those not ending _json
            if some_key.startswith('aacp_') and not some_key.endswith('_json'):
infile
#!/usr/local/autopkg/python
# pylint: disable = invalid-name
'''
Copyright (c) 2022, dataJAR Ltd.  All rights reserved.
     Redistribution and use in source and binary forms, with or without
     modification, are permitted provided that the following conditions are met:
             * Redistributions of source code must retain the above copyright
               notice, this list of conditions and the following disclaimer.
             * Redistributions in binary form must reproduce the above copyright
               notice, this list of conditions and the following disclaimer in the
               documentation and/or other materials provided with the distribution.
             * Neither data JAR Ltd nor the names of its contributors may be used to
               endorse or promote products derived from this software without specific
               prior written permission.
     THIS SOFTWARE IS PROVIDED BY DATA JAR LTD 'AS IS' AND ANY
     EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
     WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
     DISCLAIMED. IN NO EVENT SHALL DATA JAR LTD BE LIABLE FOR ANY
     DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
     (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
     ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
     (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
     SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
SUPPORT FOR THIS PROGRAM
    This program is distributed 'as is' by DATA JAR LTD.
    For more information or support, please utilise the following resources:
            http://www.datajar.co.uk

DESCRIPTION

Generates installation information for Adobe Admin Console Packages
'''

# Standard Imports
import json
import os
import re
import xml
from xml.etree import ElementTree


# AutoPkg imports
# pylint: disable = import-error
from autopkglib import (Processor,
                        ProcessorError)


# Define class
__all__ = ['AdobeAdminConsolePackagesPkgInfoCreator']
__version__ = ['1.0']


# Class def
class AdobeAdminConsolePackagesPkgInfoCreator(Processor):
    '''
       Parses generated Adobe Admin Console Packages to generate installation information.
    '''

    description = __doc__

    input_variables = {
    }

    output_variables = {
        'aacp_application_path': {
            'description': 'aacp_installdir_value after regex applied to get the path alone.',
        },
        'aacp_application_architecture_type': {
            'description': 'The architecture type for the title, either arm64 or x86_64',
        },
        'aacp_application_install_lang': {
            'description': 'The titles installation langauage.',
        },
        'aacp_application_json_path': {
            'description': 'Path to the tiles Application.json file.',
        },
        'aacp_application_major_version': {
            'description': 'The major version of the title.',
        },
        'aacp_blocking_applications': {
            'description': 'Sorted set of the conflicting processes.',
        },
        'aacp_application_description': {
            'description': 'Short description of the title.',
        },
        'aacp_application_sap_code': {
            'description': 'The titles sap code.',
        },
        'aacp_install_pkg_path': {
            'description': 'Path to the Adobe*_Install.pkg.',
        },
        'aacp_json_path': {
            'description': 'Path to AdobeAutoPkgApplicationData.json.',
        },
        'aacp_matched_json': {
            'description': ('dict from AdobeAutoPkgApplicationData.json, which matches the '
                            '"aacp_application_sap_code" and "aacp_application_major_version".'),
        },
        'aacp_option_xml_path': {
            'description': 'Path to the tiles optionXML.xml file.',
        },
        'aacp_parent_dir': {
            'description': 'Path to parent directory of this processor.',
        },
        'aacp_proxy_xml_path': {
            'description': 'Acrobat only, path to proxy.xml.',
        },
        'aacp_target_folder': {
            'description': 'The name of the folder within the pkg to check files for metadata.',
        },
        'aacp_uninstall_pkg_path': {
            'description': 'Path to the Adobe*_Uninstall.pkg.',
        },
        'additional_pkginfo': {
            'description':
                'Additonal pkginfo fields extracted from the Adobe metadata.',
        },
        'version': {
            'description': 'The titles version.',
        }
    }


    def main(self):
        '''
            Find the Adobe*_Install.pkg in the Downloads dir based on the name, raise
            if corresponding *_Uninstall.pkg is missing.
        '''

        # Progress notification
        self.output("Starting versioner process...")

        # Get set packages_path
        self.env['aacp_packages_path'] = os.path.expanduser('~/Downloads/')
        self.output(f"aacp_packages_path: {self.env['aacp_packages_path']}")

        # Check that packages_path exists
        if not os.path.exists(self.env['aacp_packages_path']):
            raise ProcessorError(f"ERROR: Cannot locate directory, "
                                 f"{self.env['aacp_packages_path']}... exiting...")

        # Check that packages_path is a directory
        if not os.path.isdir(self.env['aacp_packages_path']):
            raise ProcessorError(f"ERROR: {self.env['aacp_packages_path']} is a not a "
                                  "directory... exiting...")

        # Path to Adobe*_Install.pkg
        self.env['aacp_install_pkg_path'] = (os.path.join(self.env['aacp_packages_path'],
                                                          self.env['NAME'], 'Build',
                                                          self.env['NAME'] + '_Install.pkg'))

        # Check that the path exists, raise if not
        if not os.path.exists(self.env['aacp_install_pkg_path']):
            raise ProcessorError(f"ERROR: Cannot find "
                                 f"{self.env['aacp_install_pkg_path']}... exiting...")
        self.output(f"aacp_install_pkg_path: {self.env['aacp_install_pkg_path']}")

        # Path to Adobe*_Uninstall.pkg
        self.env['aacp_uninstall_pkg_path'] = (os.path.join(self.env['aacp_packages_path'],
                                                            self.env['NAME'], 'Build',
                                                            self.env['NAME'] + '_Uninstall.pkg'))

        # Check that the path exists, raise if not
        if not os.path.exists(self.env['aacp_uninstall_pkg_path']):
            raise ProcessorError(f"ERROR: Cannot find {self.env['aacp_uninstall_pkg_path']}, these "
                                 f"recipes need packages of the Managed Package variety, which "
                                 f"include _Install and _Uninstall packages.... exiting...")
        self.output(f"aacp_uninstall_pkg_path {self.env['aacp_uninstall_pkg_path']}")

        # Process the titles optionXML.xml
        self.process_optionxml_xml()


    def process_optionxml_xml(self):
        '''
            Process the titles optionXML.xml
        '''

        # Var declaration
        self.env['aacp_application_install_lang'] = None

        # Path to titles optionXML.xml
        self.env['aacp_option_xml_path'] = os.path.join(self.env['aacp_install_pkg_path'],
                                                        'Contents', 'Resources', 'optionXML.xml')
        if not os.path.exists(self.env['aacp_option_xml_path']):
            raise ProcessorError(f"ERROR: Cannot find {self.env['aacp_option_xml_path']}... "
                                  "exiting...")
        self.output(f"aacp_option_xml_path: {self.env['aacp_option_xml_path']}")

        # Progress notification
        self.output(f"Processing: {self.env['aacp_option_xml_path']}...")

        # Try to parse option_xml, raise if an issue
        try:
            option_xml = ElementTree.parse(self.env['aacp_option_xml_path'])
        except xml.etree.ElementTree.ParseError as err_msg:
            raise ProcessorError from err_msg

        # Check to see if HDMedia keys set
        for hd_media in option_xml.findall('.//HDMedias/HDMedia'):
            # If we have HDMedia, set vars
            if hd_media.findtext('MediaType') == 'Product':
                self.env['aacp_application_install_lang'] = hd_media.findtext('installLang')
                self.env['aacp_application_sap_code'] = hd_media.findtext('SAPCode')
                self.env['aacp_target_folder'] = hd_media.findtext('TargetFolderName')
                self.env['aacp_application_major_version'] = hd_media.findtext('baseVersion')

        # If no HDMedia is found, then self.env['aacp_application_install_lang'] will be none
        if not self.env['aacp_application_install_lang']:
            # Get vars for RIBS media
            for ribs_media in option_xml.findall('.//Medias/Media'):
                self.env['aacp_application_install_lang'] = ribs_media.findtext('installLang')
                self.env['aacp_application_sap_code'] = ribs_media.findtext('SAPCode')
                self.env['aacp_target_folder'] = ribs_media.findtext('TargetFolderName')
                self.env['aacp_application_major_version'] = ribs_media.findtext('prodVersion')

        # Check for Processor Architecture
        self.env['aacp_application_architecture_type'] = (
            option_xml.findtext('ProcessorArchitecture').lower())
        if not self.env['aacp_application_architecture_type'] in ['arm64', 'macuniversal', 'x64']:
            raise ProcessorError(f"architecture_type: "
                                 f"{self.env['aacp_application_architecture_type']},"
                                 f" is neither arm64, macuniversal nor x64... exiting...")
        if self.env['aacp_application_architecture_type'] == 'x64':
            self.env['aacp_application_architecture_type'] = 'x86_64'

        # Display progress
        self.output(f"aacp_application_sap_code: {self.env['aacp_application_sap_code']}")
        self.output(f"aacp_target_folder: {self.env['aacp_target_folder']}")
        self.output(f"aacp_application_architecture_type: "
                    f"{self.env['aacp_application_architecture_type']}")
        self.output(f"aacp_application_install_lang: {self.env['aacp_application_install_lang']}")
        self.output(f"aacp_application_major_version: {self.env['aacp_application_major_version']}")

        # If the we're looking at Acrobat, then we need to process things differently
        if self.env['aacp_application_sap_code'] == 'APRO':
            self.process_apro_installer()
        else:
            # Set application_json_path
            self.env['aacp_application_json_path'] = os.path.join(self.env['aacp_install_pkg_path'],
                                                                  'Contents/Resources/HD',
                                                                  self.env['aacp_target_folder'],
                                                                  'Application.json')
            # Process HD installer
            self.process_hd_installer()


    def process_apro_installer(self):
        '''
            Process APRO (Acrobat) installer
        '''

        # Progress notification
        self.output("Processing Acrobat installer")
        self.env['aacp_proxy_xml_path'] = (os.path.join(self.env['aacp_install_pkg_path'],
                                                        'Contents/Resources/Setup',
                                                        self.env['aacp_target_folder'],
                                                        'proxy.xml'))
        self.output(f"aacp_proxy_xml_path: {self.env['aacp_proxy_xml_path']}")

        # Try to parse proxy_xml, raise if an issue
        try:
            parse_xml = ElementTree.parse(self.env['aacp_proxy_xml_path'])
        except xml.etree.ElementTree.ParseError as err_msg:
            raise ProcessorError from err_msg

        # Get root of xml
        root = parse_xml.getroot()

        # Get app_version
        self.env['version'] = (root.findtext
                                   ('./InstallerProperties/Property[@name=\'ProductVersion\']'))
        self.output(f"version: {self.env['version']}")

        # Set to []
        self.env['aacp_blocking_applications'] = []

        # 2nd part of process
        self.process_adobe_autopkg_application_data(None)


    def process_hd_installer(self):
        '''
            Process HD installer
        '''

        # Var declaration
        blocking_applications = []

        # Progress notification
        self.output(f"Processing {self.env['aacp_application_json_path']}...")

        # Read in app_json file
        with open(self.env['aacp_application_json_path'], encoding='utf-8') as json_file:
            # Try to parse app_json as json, raise if an issue
            try:
                load_json = json.load(json_file)
            except json.JSONDecodeError as err_msg:
                raise ProcessorError from err_msg

            # Get description
            tag_lines = load_json["ProductDescription"]["Tagline"]["Language"]
            for tag_line in tag_lines:
                if tag_line['locale'] == self.env['aacp_application_install_lang']:
                    self.env['aacp_application_description'] = tag_line['value']
                    # Add a . if missing from the end
                    if not self.env['aacp_application_description'].endswith('.'):
                        self.env['aacp_application_description'] = (
                                            self.env['aacp_application_description'] + '.')
                    self.output(f"aacp_application_description: "
                                f"{self.env['aacp_application_description']}")

            # Get conflicting processes
            conflicting_processes = load_json['ConflictingProcesses']['ConflictingProcess']
            for conflicting_process in conflicting_processes:
                # Only add if forceKillAllowed is False
                if not conflicting_process['forceKillAllowed']:
                    blocking_applications.append(conflicting_process['ProcessDisplayName'])
            if blocking_applications:
                self.env['aacp_blocking_applications'] = sorted(set(blocking_applications))
                self.output(f"aacp_blocking_applications: "
                            f"{self.env['aacp_blocking_applications']}")

            # 2nd part of process
infile
#!/usr/local/autopkg/python
# pylint: disable = invalid-name
'''
Copyright (c) 2022, dataJAR Ltd.  All rights reserved.
     Redistribution and use in source and binary forms, with or without
     modification, are permitted provided that the following conditions are met:
             * Redistributions of source code must retain the above copyright
               notice, this list of conditions and the following disclaimer.
             * Redistributions in binary form must reproduce the above copyright
               notice, this list of conditions and the following disclaimer in the
               documentation and/or other materials provided with the distribution.
             * Neither data JAR Ltd nor the names of its contributors may be used to
               endorse or promote products derived from this software without specific
               prior written permission.
     THIS SOFTWARE IS PROVIDED BY DATA JAR LTD 'AS IS' AND ANY
     EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
     WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
     DISCLAIMED. IN NO EVENT SHALL DATA JAR LTD BE LIABLE FOR ANY
     DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
     (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
     ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
     (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
     SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
SUPPORT FOR THIS PROGRAM
    This program is distributed 'as is' by DATA JAR LTD.
    For more information or support, please utilise the following resources:
            http://www.datajar.co.uk

DESCRIPTION

Generates installation information for Adobe Admin Console Packages
'''

# Standard Imports
import json
import os
import re
import xml
from xml.etree import ElementTree


# AutoPkg imports
# pylint: disable = import-error
from autopkglib import (Processor,
                        ProcessorError)


# Define class
__all__ = ['AdobeAdminConsolePackagesPkgInfoCreator']
__version__ = ['1.0']


# Class def
class AdobeAdminConsolePackagesPkgInfoCreator(Processor):
    '''
       Parses generated Adobe Admin Console Packages to generate installation information.
    '''

    description = __doc__

    input_variables = {
    }

    output_variables = {
        'aacp_application_path': {
            'description': 'aacp_installdir_value after regex applied to get the path alone.',
        },
        'aacp_application_architecture_type': {
            'description': 'The architecture type for the title, either arm64 or x86_64',
        },
        'aacp_application_install_lang': {
            'description': 'The titles installation langauage.',
        },
        'aacp_application_json_path': {
            'description': 'Path to the tiles Application.json file.',
        },
        'aacp_application_major_version': {
            'description': 'The major version of the title.',
        },
        'aacp_blocking_applications': {
            'description': 'Sorted set of the conflicting processes.',
        },
        'aacp_application_description': {
            'description': 'Short description of the title.',
        },
        'aacp_application_sap_code': {
            'description': 'The titles sap code.',
        },
        'aacp_install_pkg_path': {
            'description': 'Path to the Adobe*_Install.pkg.',
        },
        'aacp_json_path': {
            'description': 'Path to AdobeAutoPkgApplicationData.json.',
        },
        'aacp_matched_json': {
            'description': ('dict from AdobeAutoPkgApplicationData.json, which matches the '
                            '"aacp_application_sap_code" and "aacp_application_major_version".'),
        },
        'aacp_option_xml_path': {
            'description': 'Path to the tiles optionXML.xml file.',
        },
        'aacp_parent_dir': {
            'description': 'Path to parent directory of this processor.',
        },
        'aacp_proxy_xml_path': {
            'description': 'Acrobat only, path to proxy.xml.',
        },
        'aacp_target_folder': {
            'description': 'The name of the folder within the pkg to check files for metadata.',
        },
        'aacp_uninstall_pkg_path': {
            'description': 'Path to the Adobe*_Uninstall.pkg.',
        },
        'additional_pkginfo': {
            'description':
                'Additonal pkginfo fields extracted from the Adobe metadata.',
        },
        'version': {
            'description': 'The titles version.',
        }
    }


    def main(self):
        '''
            Find the Adobe*_Install.pkg in the Downloads dir based on the name, raise
            if corresponding *_Uninstall.pkg is missing.
        '''

        # Progress notification
        self.output("Starting versioner process...")

        # Get set packages_path
        self.env['aacp_packages_path'] = os.path.expanduser('~/Downloads/')
        self.output(f"aacp_packages_path: {self.env['aacp_packages_path']}")

        # Check that packages_path exists
        if not os.path.exists(self.env['aacp_packages_path']):
            raise ProcessorError(f"ERROR: Cannot locate directory, "
                                 f"{self.env['aacp_packages_path']}... exiting...")

        # Check that packages_path is a directory
        if not os.path.isdir(self.env['aacp_packages_path']):
            raise ProcessorError(f"ERROR: {self.env['aacp_packages_path']} is a not a "
                                  "directory... exiting...")

        # Path to Adobe*_Install.pkg
        self.env['aacp_install_pkg_path'] = (os.path.join(self.env['aacp_packages_path'],
                                                          self.env['NAME'], 'Build',
                                                          self.env['NAME'] + '_Install.pkg'))

        # Check that the path exists, raise if not
        if not os.path.exists(self.env['aacp_install_pkg_path']):
            raise ProcessorError(f"ERROR: Cannot find "
                                 f"{self.env['aacp_install_pkg_path']}... exiting...")
        self.output(f"aacp_install_pkg_path: {self.env['aacp_install_pkg_path']}")

        # Path to Adobe*_Uninstall.pkg
        self.env['aacp_uninstall_pkg_path'] = (os.path.join(self.env['aacp_packages_path'],
                                                            self.env['NAME'], 'Build',
                                                            self.env['NAME'] + '_Uninstall.pkg'))

        # Check that the path exists, raise if not
        if not os.path.exists(self.env['aacp_uninstall_pkg_path']):
            raise ProcessorError(f"ERROR: Cannot find {self.env['aacp_uninstall_pkg_path']}, these "
                                 f"recipes need packages of the Managed Package variety, which "
                                 f"include _Install and _Uninstall packages.... exiting...")
        self.output(f"aacp_uninstall_pkg_path {self.env['aacp_uninstall_pkg_path']}")

        # Process the titles optionXML.xml
infile
#!/usr/local/autopkg/python
# pylint: disable = invalid-name
'''
Copyright (c) 2022, dataJAR Ltd.  All rights reserved.
     Redistribution and use in source and binary forms, with or without
     modification, are permitted provided that the following conditions are met:
             * Redistributions of source code must retain the above copyright
               notice, this list of conditions and the following disclaimer.
             * Redistributions in binary form must reproduce the above copyright
               notice, this list of conditions and the following disclaimer in the
               documentation and/or other materials provided with the distribution.
             * Neither data JAR Ltd nor the names of its contributors may be used to
               endorse or promote products derived from this software without specific
               prior written permission.
     THIS SOFTWARE IS PROVIDED BY DATA JAR LTD 'AS IS' AND ANY
     EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
     WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
     DISCLAIMED. IN NO EVENT SHALL DATA JAR LTD BE LIABLE FOR ANY
     DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
     (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
     ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
     (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
     SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
SUPPORT FOR THIS PROGRAM
    This program is distributed 'as is' by DATA JAR LTD.
    For more information or support, please utilise the following resources:
            http://www.datajar.co.uk

DESCRIPTION

Generates installation information for Adobe Admin Console Packages
'''

# Standard Imports
import json
import os
import re
import xml
from xml.etree import ElementTree


# AutoPkg imports
# pylint: disable = import-error
from autopkglib import (Processor,
                        ProcessorError)


# Define class
__all__ = ['AdobeAdminConsolePackagesPkgInfoCreator']
__version__ = ['1.0']


# Class def
class AdobeAdminConsolePackagesPkgInfoCreator(Processor):
    '''
       Parses generated Adobe Admin Console Packages to generate installation information.
    '''

    description = __doc__

    input_variables = {
    }

    output_variables = {
        'aacp_application_path': {
            'description': 'aacp_installdir_value after regex applied to get the path alone.',
        },
        'aacp_application_architecture_type': {
            'description': 'The architecture type for the title, either arm64 or x86_64',
        },
        'aacp_application_install_lang': {
            'description': 'The titles installation langauage.',
        },
        'aacp_application_json_path': {
            'description': 'Path to the tiles Application.json file.',
        },
        'aacp_application_major_version': {
            'description': 'The major version of the title.',
        },
        'aacp_blocking_applications': {
            'description': 'Sorted set of the conflicting processes.',
        },
        'aacp_application_description': {
            'description': 'Short description of the title.',
        },
        'aacp_application_sap_code': {
            'description': 'The titles sap code.',
        },
        'aacp_install_pkg_path': {
            'description': 'Path to the Adobe*_Install.pkg.',
        },
        'aacp_json_path': {
            'description': 'Path to AdobeAutoPkgApplicationData.json.',
        },
        'aacp_matched_json': {
            'description': ('dict from AdobeAutoPkgApplicationData.json, which matches the '
                            '"aacp_application_sap_code" and "aacp_application_major_version".'),
        },
        'aacp_option_xml_path': {
            'description': 'Path to the tiles optionXML.xml file.',
        },
        'aacp_parent_dir': {
            'description': 'Path to parent directory of this processor.',
        },
        'aacp_proxy_xml_path': {
            'description': 'Acrobat only, path to proxy.xml.',
        },
        'aacp_target_folder': {
            'description': 'The name of the folder within the pkg to check files for metadata.',
        },
        'aacp_uninstall_pkg_path': {
            'description': 'Path to the Adobe*_Uninstall.pkg.',
        },
        'additional_pkginfo': {
            'description':
                'Additonal pkginfo fields extracted from the Adobe metadata.',
        },
        'version': {
            'description': 'The titles version.',
        }
    }


    def main(self):
        '''
            Find the Adobe*_Install.pkg in the Downloads dir based on the name, raise
            if corresponding *_Uninstall.pkg is missing.
        '''

        # Progress notification
        self.output("Starting versioner process...")

        # Get set packages_path
        self.env['aacp_packages_path'] = os.path.expanduser('~/Downloads/')
        self.output(f"aacp_packages_path: {self.env['aacp_packages_path']}")

        # Check that packages_path exists
        if not os.path.exists(self.env['aacp_packages_path']):
            raise ProcessorError(f"ERROR: Cannot locate directory, "
                                 f"{self.env['aacp_packages_path']}... exiting...")

        # Check that packages_path is a directory
        if not os.path.isdir(self.env['aacp_packages_path']):
            raise ProcessorError(f"ERROR: {self.env['aacp_packages_path']} is a not a "
                                  "directory... exiting...")

        # Path to Adobe*_Install.pkg
        self.env['aacp_install_pkg_path'] = (os.path.join(self.env['aacp_packages_path'],
                                                          self.env['NAME'], 'Build',
                                                          self.env['NAME'] + '_Install.pkg'))

        # Check that the path exists, raise if not
        if not os.path.exists(self.env['aacp_install_pkg_path']):
            raise ProcessorError(f"ERROR: Cannot find "
                                 f"{self.env['aacp_install_pkg_path']}... exiting...")
        self.output(f"aacp_install_pkg_path: {self.env['aacp_install_pkg_path']}")

        # Path to Adobe*_Uninstall.pkg
        self.env['aacp_uninstall_pkg_path'] = (os.path.join(self.env['aacp_packages_path'],
                                                            self.env['NAME'], 'Build',
                                                            self.env['NAME'] + '_Uninstall.pkg'))

        # Check that the path exists, raise if not
        if not os.path.exists(self.env['aacp_uninstall_pkg_path']):
            raise ProcessorError(f"ERROR: Cannot find {self.env['aacp_uninstall_pkg_path']}, these "
                                 f"recipes need packages of the Managed Package variety, which "
                                 f"include _Install and _Uninstall packages.... exiting...")
        self.output(f"aacp_uninstall_pkg_path {self.env['aacp_uninstall_pkg_path']}")

        # Process the titles optionXML.xml
        self.process_optionxml_xml()


    def process_optionxml_xml(self):
        '''
            Process the titles optionXML.xml
        '''

        # Var declaration
        self.env['aacp_application_install_lang'] = None

        # Path to titles optionXML.xml
        self.env['aacp_option_xml_path'] = os.path.join(self.env['aacp_install_pkg_path'],
                                                        'Contents', 'Resources', 'optionXML.xml')
        if not os.path.exists(self.env['aacp_option_xml_path']):
            raise ProcessorError(f"ERROR: Cannot find {self.env['aacp_option_xml_path']}... "
                                  "exiting...")
        self.output(f"aacp_option_xml_path: {self.env['aacp_option_xml_path']}")

        # Progress notification
        self.output(f"Processing: {self.env['aacp_option_xml_path']}...")

        # Try to parse option_xml, raise if an issue
        try:
            option_xml = ElementTree.parse(self.env['aacp_option_xml_path'])
        except xml.etree.ElementTree.ParseError as err_msg:
            raise ProcessorError from err_msg

        # Check to see if HDMedia keys set
        for hd_media in option_xml.findall('.//HDMedias/HDMedia'):
            # If we have HDMedia, set vars
            if hd_media.findtext('MediaType') == 'Product':
                self.env['aacp_application_install_lang'] = hd_media.findtext('installLang')
                self.env['aacp_application_sap_code'] = hd_media.findtext('SAPCode')
                self.env['aacp_target_folder'] = hd_media.findtext('TargetFolderName')
                self.env['aacp_application_major_version'] = hd_media.findtext('baseVersion')

        # If no HDMedia is found, then self.env['aacp_application_install_lang'] will be none
        if not self.env['aacp_application_install_lang']:
            # Get vars for RIBS media
            for ribs_media in option_xml.findall('.//Medias/Media'):
                self.env['aacp_application_install_lang'] = ribs_media.findtext('installLang')
                self.env['aacp_application_sap_code'] = ribs_media.findtext('SAPCode')
                self.env['aacp_target_folder'] = ribs_media.findtext('TargetFolderName')
                self.env['aacp_application_major_version'] = ribs_media.findtext('prodVersion')

        # Check for Processor Architecture
        self.env['aacp_application_architecture_type'] = (
            option_xml.findtext('ProcessorArchitecture').lower())
        if not self.env['aacp_application_architecture_type'] in ['arm64', 'macuniversal', 'x64']:
            raise ProcessorError(f"architecture_type: "
                                 f"{self.env['aacp_application_architecture_type']},"
                                 f" is neither arm64, macuniversal nor x64... exiting...")
        if self.env['aacp_application_architecture_type'] == 'x64':
            self.env['aacp_application_architecture_type'] = 'x86_64'

        # Display progress
        self.output(f"aacp_application_sap_code: {self.env['aacp_application_sap_code']}")
        self.output(f"aacp_target_folder: {self.env['aacp_target_folder']}")
        self.output(f"aacp_application_architecture_type: "
                    f"{self.env['aacp_application_architecture_type']}")
        self.output(f"aacp_application_install_lang: {self.env['aacp_application_install_lang']}")
        self.output(f"aacp_application_major_version: {self.env['aacp_application_major_version']}")

        # If the we're looking at Acrobat, then we need to process things differently
        if self.env['aacp_application_sap_code'] == 'APRO':
infile
#!/usr/local/autopkg/python
# pylint: disable = invalid-name
'''
Copyright (c) 2022, dataJAR Ltd.  All rights reserved.
     Redistribution and use in source and binary forms, with or without
     modification, are permitted provided that the following conditions are met:
             * Redistributions of source code must retain the above copyright
               notice, this list of conditions and the following disclaimer.
             * Redistributions in binary form must reproduce the above copyright
               notice, this list of conditions and the following disclaimer in the
               documentation and/or other materials provided with the distribution.
             * Neither data JAR Ltd nor the names of its contributors may be used to
               endorse or promote products derived from this software without specific
               prior written permission.
     THIS SOFTWARE IS PROVIDED BY DATA JAR LTD 'AS IS' AND ANY
     EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
     WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
     DISCLAIMED. IN NO EVENT SHALL DATA JAR LTD BE LIABLE FOR ANY
     DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
     (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
     ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
     (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
     SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
SUPPORT FOR THIS PROGRAM
    This program is distributed 'as is' by DATA JAR LTD.
    For more information or support, please utilise the following resources:
            http://www.datajar.co.uk

DESCRIPTION

Generates installation information for Adobe Admin Console Packages
'''

# Standard Imports
import json
import os
import re
import xml
from xml.etree import ElementTree


# AutoPkg imports
# pylint: disable = import-error
from autopkglib import (Processor,
                        ProcessorError)


# Define class
__all__ = ['AdobeAdminConsolePackagesPkgInfoCreator']
__version__ = ['1.0']


# Class def
class AdobeAdminConsolePackagesPkgInfoCreator(Processor):
    '''
       Parses generated Adobe Admin Console Packages to generate installation information.
    '''

    description = __doc__

    input_variables = {
    }

    output_variables = {
        'aacp_application_path': {
            'description': 'aacp_installdir_value after regex applied to get the path alone.',
        },
        'aacp_application_architecture_type': {
            'description': 'The architecture type for the title, either arm64 or x86_64',
        },
        'aacp_application_install_lang': {
            'description': 'The titles installation langauage.',
        },
        'aacp_application_json_path': {
            'description': 'Path to the tiles Application.json file.',
        },
        'aacp_application_major_version': {
            'description': 'The major version of the title.',
        },
        'aacp_blocking_applications': {
            'description': 'Sorted set of the conflicting processes.',
        },
        'aacp_application_description': {
            'description': 'Short description of the title.',
        },
        'aacp_application_sap_code': {
            'description': 'The titles sap code.',
        },
        'aacp_install_pkg_path': {
            'description': 'Path to the Adobe*_Install.pkg.',
        },
        'aacp_json_path': {
            'description': 'Path to AdobeAutoPkgApplicationData.json.',
        },
        'aacp_matched_json': {
            'description': ('dict from AdobeAutoPkgApplicationData.json, which matches the '
                            '"aacp_application_sap_code" and "aacp_application_major_version".'),
        },
        'aacp_option_xml_path': {
            'description': 'Path to the tiles optionXML.xml file.',
        },
        'aacp_parent_dir': {
            'description': 'Path to parent directory of this processor.',
        },
        'aacp_proxy_xml_path': {
            'description': 'Acrobat only, path to proxy.xml.',
        },
        'aacp_target_folder': {
            'description': 'The name of the folder within the pkg to check files for metadata.',
        },
        'aacp_uninstall_pkg_path': {
            'description': 'Path to the Adobe*_Uninstall.pkg.',
        },
        'additional_pkginfo': {
            'description':
                'Additonal pkginfo fields extracted from the Adobe metadata.',
        },
        'version': {
            'description': 'The titles version.',
        }
    }


    def main(self):
        '''
            Find the Adobe*_Install.pkg in the Downloads dir based on the name, raise
            if corresponding *_Uninstall.pkg is missing.
        '''

        # Progress notification
        self.output("Starting versioner process...")

        # Get set packages_path
        self.env['aacp_packages_path'] = os.path.expanduser('~/Downloads/')
        self.output(f"aacp_packages_path: {self.env['aacp_packages_path']}")

        # Check that packages_path exists
        if not os.path.exists(self.env['aacp_packages_path']):
            raise ProcessorError(f"ERROR: Cannot locate directory, "
                                 f"{self.env['aacp_packages_path']}... exiting...")

        # Check that packages_path is a directory
        if not os.path.isdir(self.env['aacp_packages_path']):
            raise ProcessorError(f"ERROR: {self.env['aacp_packages_path']} is a not a "
                                  "directory... exiting...")

        # Path to Adobe*_Install.pkg
        self.env['aacp_install_pkg_path'] = (os.path.join(self.env['aacp_packages_path'],
                                                          self.env['NAME'], 'Build',
                                                          self.env['NAME'] + '_Install.pkg'))

        # Check that the path exists, raise if not
        if not os.path.exists(self.env['aacp_install_pkg_path']):
            raise ProcessorError(f"ERROR: Cannot find "
                                 f"{self.env['aacp_install_pkg_path']}... exiting...")
        self.output(f"aacp_install_pkg_path: {self.env['aacp_install_pkg_path']}")

        # Path to Adobe*_Uninstall.pkg
        self.env['aacp_uninstall_pkg_path'] = (os.path.join(self.env['aacp_packages_path'],
                                                            self.env['NAME'], 'Build',
                                                            self.env['NAME'] + '_Uninstall.pkg'))

        # Check that the path exists, raise if not
        if not os.path.exists(self.env['aacp_uninstall_pkg_path']):
            raise ProcessorError(f"ERROR: Cannot find {self.env['aacp_uninstall_pkg_path']}, these "
                                 f"recipes need packages of the Managed Package variety, which "
                                 f"include _Install and _Uninstall packages.... exiting...")
        self.output(f"aacp_uninstall_pkg_path {self.env['aacp_uninstall_pkg_path']}")

        # Process the titles optionXML.xml
        self.process_optionxml_xml()


    def process_optionxml_xml(self):
        '''
            Process the titles optionXML.xml
        '''

        # Var declaration
        self.env['aacp_application_install_lang'] = None

        # Path to titles optionXML.xml
        self.env['aacp_option_xml_path'] = os.path.join(self.env['aacp_install_pkg_path'],
                                                        'Contents', 'Resources', 'optionXML.xml')
        if not os.path.exists(self.env['aacp_option_xml_path']):
            raise ProcessorError(f"ERROR: Cannot find {self.env['aacp_option_xml_path']}... "
                                  "exiting...")
        self.output(f"aacp_option_xml_path: {self.env['aacp_option_xml_path']}")

        # Progress notification
        self.output(f"Processing: {self.env['aacp_option_xml_path']}...")

        # Try to parse option_xml, raise if an issue
        try:
            option_xml = ElementTree.parse(self.env['aacp_option_xml_path'])
        except xml.etree.ElementTree.ParseError as err_msg:
            raise ProcessorError from err_msg

        # Check to see if HDMedia keys set
        for hd_media in option_xml.findall('.//HDMedias/HDMedia'):
            # If we have HDMedia, set vars
            if hd_media.findtext('MediaType') == 'Product':
                self.env['aacp_application_install_lang'] = hd_media.findtext('installLang')
                self.env['aacp_application_sap_code'] = hd_media.findtext('SAPCode')
                self.env['aacp_target_folder'] = hd_media.findtext('TargetFolderName')
                self.env['aacp_application_major_version'] = hd_media.findtext('baseVersion')

        # If no HDMedia is found, then self.env['aacp_application_install_lang'] will be none
        if not self.env['aacp_application_install_lang']:
            # Get vars for RIBS media
            for ribs_media in option_xml.findall('.//Medias/Media'):
                self.env['aacp_application_install_lang'] = ribs_media.findtext('installLang')
                self.env['aacp_application_sap_code'] = ribs_media.findtext('SAPCode')
                self.env['aacp_target_folder'] = ribs_media.findtext('TargetFolderName')
                self.env['aacp_application_major_version'] = ribs_media.findtext('prodVersion')

        # Check for Processor Architecture
        self.env['aacp_application_architecture_type'] = (
            option_xml.findtext('ProcessorArchitecture').lower())
        if not self.env['aacp_application_architecture_type'] in ['arm64', 'macuniversal', 'x64']:
            raise ProcessorError(f"architecture_type: "
                                 f"{self.env['aacp_application_architecture_type']},"
                                 f" is neither arm64, macuniversal nor x64... exiting...")
        if self.env['aacp_application_architecture_type'] == 'x64':
            self.env['aacp_application_architecture_type'] = 'x86_64'

        # Display progress
        self.output(f"aacp_application_sap_code: {self.env['aacp_application_sap_code']}")
        self.output(f"aacp_target_folder: {self.env['aacp_target_folder']}")
        self.output(f"aacp_application_architecture_type: "
                    f"{self.env['aacp_application_architecture_type']}")
        self.output(f"aacp_application_install_lang: {self.env['aacp_application_install_lang']}")
        self.output(f"aacp_application_major_version: {self.env['aacp_application_major_version']}")

        # If the we're looking at Acrobat, then we need to process things differently
        if self.env['aacp_application_sap_code'] == 'APRO':
            self.process_apro_installer()
        else:
            # Set application_json_path
            self.env['aacp_application_json_path'] = os.path.join(self.env['aacp_install_pkg_path'],
                                                                  'Contents/Resources/HD',
                                                                  self.env['aacp_target_folder'],
                                                                  'Application.json')
            # Process HD installer
infile
#!/usr/local/autopkg/python
# pylint: disable = invalid-name
'''
Copyright (c) 2022, dataJAR Ltd.  All rights reserved.
     Redistribution and use in source and binary forms, with or without
     modification, are permitted provided that the following conditions are met:
             * Redistributions of source code must retain the above copyright
               notice, this list of conditions and the following disclaimer.
             * Redistributions in binary form must reproduce the above copyright
               notice, this list of conditions and the following disclaimer in the
               documentation and/or other materials provided with the distribution.
             * Neither data JAR Ltd nor the names of its contributors may be used to
               endorse or promote products derived from this software without specific
               prior written permission.
     THIS SOFTWARE IS PROVIDED BY DATA JAR LTD 'AS IS' AND ANY
     EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
     WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
     DISCLAIMED. IN NO EVENT SHALL DATA JAR LTD BE LIABLE FOR ANY
     DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
     (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
     ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
     (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
     SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
SUPPORT FOR THIS PROGRAM
    This program is distributed 'as is' by DATA JAR LTD.
    For more information or support, please utilise the following resources:
            http://www.datajar.co.uk

DESCRIPTION

Generates installation information for Adobe Admin Console Packages
'''

# Standard Imports
import json
import os
import re
import xml
from xml.etree import ElementTree


# AutoPkg imports
# pylint: disable = import-error
from autopkglib import (Processor,
                        ProcessorError)


# Define class
__all__ = ['AdobeAdminConsolePackagesPkgInfoCreator']
__version__ = ['1.0']


# Class def
class AdobeAdminConsolePackagesPkgInfoCreator(Processor):
    '''
       Parses generated Adobe Admin Console Packages to generate installation information.
    '''

    description = __doc__

    input_variables = {
    }

    output_variables = {
        'aacp_application_path': {
            'description': 'aacp_installdir_value after regex applied to get the path alone.',
        },
        'aacp_application_architecture_type': {
            'description': 'The architecture type for the title, either arm64 or x86_64',
        },
        'aacp_application_install_lang': {
            'description': 'The titles installation langauage.',
        },
        'aacp_application_json_path': {
            'description': 'Path to the tiles Application.json file.',
        },
        'aacp_application_major_version': {
            'description': 'The major version of the title.',
        },
        'aacp_blocking_applications': {
            'description': 'Sorted set of the conflicting processes.',
        },
        'aacp_application_description': {
            'description': 'Short description of the title.',
        },
        'aacp_application_sap_code': {
            'description': 'The titles sap code.',
        },
        'aacp_install_pkg_path': {
            'description': 'Path to the Adobe*_Install.pkg.',
        },
        'aacp_json_path': {
            'description': 'Path to AdobeAutoPkgApplicationData.json.',
        },
        'aacp_matched_json': {
            'description': ('dict from AdobeAutoPkgApplicationData.json, which matches the '
                            '"aacp_application_sap_code" and "aacp_application_major_version".'),
        },
        'aacp_option_xml_path': {
            'description': 'Path to the tiles optionXML.xml file.',
        },
        'aacp_parent_dir': {
            'description': 'Path to parent directory of this processor.',
        },
        'aacp_proxy_xml_path': {
            'description': 'Acrobat only, path to proxy.xml.',
        },
        'aacp_target_folder': {
            'description': 'The name of the folder within the pkg to check files for metadata.',
        },
        'aacp_uninstall_pkg_path': {
            'description': 'Path to the Adobe*_Uninstall.pkg.',
        },
        'additional_pkginfo': {
            'description':
                'Additonal pkginfo fields extracted from the Adobe metadata.',
        },
        'version': {
            'description': 'The titles version.',
        }
    }


    def main(self):
        '''
            Find the Adobe*_Install.pkg in the Downloads dir based on the name, raise
            if corresponding *_Uninstall.pkg is missing.
        '''

        # Progress notification
        self.output("Starting versioner process...")

        # Get set packages_path
        self.env['aacp_packages_path'] = os.path.expanduser('~/Downloads/')
        self.output(f"aacp_packages_path: {self.env['aacp_packages_path']}")

        # Check that packages_path exists
        if not os.path.exists(self.env['aacp_packages_path']):
            raise ProcessorError(f"ERROR: Cannot locate directory, "
                                 f"{self.env['aacp_packages_path']}... exiting...")

        # Check that packages_path is a directory
        if not os.path.isdir(self.env['aacp_packages_path']):
            raise ProcessorError(f"ERROR: {self.env['aacp_packages_path']} is a not a "
                                  "directory... exiting...")

        # Path to Adobe*_Install.pkg
        self.env['aacp_install_pkg_path'] = (os.path.join(self.env['aacp_packages_path'],
                                                          self.env['NAME'], 'Build',
                                                          self.env['NAME'] + '_Install.pkg'))

        # Check that the path exists, raise if not
        if not os.path.exists(self.env['aacp_install_pkg_path']):
            raise ProcessorError(f"ERROR: Cannot find "
                                 f"{self.env['aacp_install_pkg_path']}... exiting...")
        self.output(f"aacp_install_pkg_path: {self.env['aacp_install_pkg_path']}")

        # Path to Adobe*_Uninstall.pkg
        self.env['aacp_uninstall_pkg_path'] = (os.path.join(self.env['aacp_packages_path'],
                                                            self.env['NAME'], 'Build',
                                                            self.env['NAME'] + '_Uninstall.pkg'))

        # Check that the path exists, raise if not
        if not os.path.exists(self.env['aacp_uninstall_pkg_path']):
            raise ProcessorError(f"ERROR: Cannot find {self.env['aacp_uninstall_pkg_path']}, these "
                                 f"recipes need packages of the Managed Package variety, which "
                                 f"include _Install and _Uninstall packages.... exiting...")
        self.output(f"aacp_uninstall_pkg_path {self.env['aacp_uninstall_pkg_path']}")

        # Process the titles optionXML.xml
        self.process_optionxml_xml()


    def process_optionxml_xml(self):
        '''
            Process the titles optionXML.xml
        '''

        # Var declaration
        self.env['aacp_application_install_lang'] = None

        # Path to titles optionXML.xml
        self.env['aacp_option_xml_path'] = os.path.join(self.env['aacp_install_pkg_path'],
                                                        'Contents', 'Resources', 'optionXML.xml')
        if not os.path.exists(self.env['aacp_option_xml_path']):
            raise ProcessorError(f"ERROR: Cannot find {self.env['aacp_option_xml_path']}... "
                                  "exiting...")
        self.output(f"aacp_option_xml_path: {self.env['aacp_option_xml_path']}")

        # Progress notification
        self.output(f"Processing: {self.env['aacp_option_xml_path']}...")

        # Try to parse option_xml, raise if an issue
        try:
            option_xml = ElementTree.parse(self.env['aacp_option_xml_path'])
        except xml.etree.ElementTree.ParseError as err_msg:
            raise ProcessorError from err_msg

        # Check to see if HDMedia keys set
        for hd_media in option_xml.findall('.//HDMedias/HDMedia'):
            # If we have HDMedia, set vars
            if hd_media.findtext('MediaType') == 'Product':
                self.env['aacp_application_install_lang'] = hd_media.findtext('installLang')
                self.env['aacp_application_sap_code'] = hd_media.findtext('SAPCode')
                self.env['aacp_target_folder'] = hd_media.findtext('TargetFolderName')
                self.env['aacp_application_major_version'] = hd_media.findtext('baseVersion')

        # If no HDMedia is found, then self.env['aacp_application_install_lang'] will be none
        if not self.env['aacp_application_install_lang']:
            # Get vars for RIBS media
            for ribs_media in option_xml.findall('.//Medias/Media'):
                self.env['aacp_application_install_lang'] = ribs_media.findtext('installLang')
                self.env['aacp_application_sap_code'] = ribs_media.findtext('SAPCode')
                self.env['aacp_target_folder'] = ribs_media.findtext('TargetFolderName')
                self.env['aacp_application_major_version'] = ribs_media.findtext('prodVersion')

        # Check for Processor Architecture
        self.env['aacp_application_architecture_type'] = (
            option_xml.findtext('ProcessorArchitecture').lower())
        if not self.env['aacp_application_architecture_type'] in ['arm64', 'macuniversal', 'x64']:
            raise ProcessorError(f"architecture_type: "
                                 f"{self.env['aacp_application_architecture_type']},"
                                 f" is neither arm64, macuniversal nor x64... exiting...")
        if self.env['aacp_application_architecture_type'] == 'x64':
            self.env['aacp_application_architecture_type'] = 'x86_64'

        # Display progress
        self.output(f"aacp_application_sap_code: {self.env['aacp_application_sap_code']}")
        self.output(f"aacp_target_folder: {self.env['aacp_target_folder']}")
        self.output(f"aacp_application_architecture_type: "
                    f"{self.env['aacp_application_architecture_type']}")
        self.output(f"aacp_application_install_lang: {self.env['aacp_application_install_lang']}")
        self.output(f"aacp_application_major_version: {self.env['aacp_application_major_version']}")

        # If the we're looking at Acrobat, then we need to process things differently
        if self.env['aacp_application_sap_code'] == 'APRO':
            self.process_apro_installer()
        else:
            # Set application_json_path
            self.env['aacp_application_json_path'] = os.path.join(self.env['aacp_install_pkg_path'],
                                                                  'Contents/Resources/HD',
                                                                  self.env['aacp_target_folder'],
                                                                  'Application.json')
            # Process HD installer
            self.process_hd_installer()


    def process_apro_installer(self):
        '''
            Process APRO (Acrobat) installer
        '''

        # Progress notification
        self.output("Processing Acrobat installer")
        self.env['aacp_proxy_xml_path'] = (os.path.join(self.env['aacp_install_pkg_path'],
                                                        'Contents/Resources/Setup',
                                                        self.env['aacp_target_folder'],
                                                        'proxy.xml'))
        self.output(f"aacp_proxy_xml_path: {self.env['aacp_proxy_xml_path']}")

        # Try to parse proxy_xml, raise if an issue
        try:
            parse_xml = ElementTree.parse(self.env['aacp_proxy_xml_path'])
        except xml.etree.ElementTree.ParseError as err_msg:
            raise ProcessorError from err_msg

        # Get root of xml
        root = parse_xml.getroot()

        # Get app_version
        self.env['version'] = (root.findtext
                                   ('./InstallerProperties/Property[@name=\'ProductVersion\']'))
        self.output(f"version: {self.env['version']}")

        # Set to []
        self.env['aacp_blocking_applications'] = []

        # 2nd part of process
        self.process_adobe_autopkg_application_data(None)


    def process_hd_installer(self):
        '''
            Process HD installer
        '''

        # Var declaration
        blocking_applications = []

        # Progress notification
        self.output(f"Processing {self.env['aacp_application_json_path']}...")

        # Read in app_json file
        with open(self.env['aacp_application_json_path'], encoding='utf-8') as json_file:
            # Try to parse app_json as json, raise if an issue
            try:
                load_json = json.load(json_file)
            except json.JSONDecodeError as err_msg:
                raise ProcessorError from err_msg

            # Get description
            tag_lines = load_json["ProductDescription"]["Tagline"]["Language"]
            for tag_line in tag_lines:
                if tag_line['locale'] == self.env['aacp_application_install_lang']:
                    self.env['aacp_application_description'] = tag_line['value']
                    # Add a . if missing from the end
                    if not self.env['aacp_application_description'].endswith('.'):
                        self.env['aacp_application_description'] = (
                                            self.env['aacp_application_description'] + '.')
                    self.output(f"aacp_application_description: "
                                f"{self.env['aacp_application_description']}")

            # Get conflicting processes
            conflicting_processes = load_json['ConflictingProcesses']['ConflictingProcess']
            for conflicting_process in conflicting_processes:
                # Only add if forceKillAllowed is False
                if not conflicting_process['forceKillAllowed']:
                    blocking_applications.append(conflicting_process['ProcessDisplayName'])
            if blocking_applications:
                self.env['aacp_blocking_applications'] = sorted(set(blocking_applications))
                self.output(f"aacp_blocking_applications: "
                            f"{self.env['aacp_blocking_applications']}")

            # 2nd part of process
            self.process_adobe_autopkg_application_data(load_json)


    def process_adobe_autopkg_application_data(self, load_json):
        '''
           Get more details from AdobeAutoPkgApplicationData.json
        '''

        # var declaration
        self.env['aacp_matched_json'] = None

        # Get this scripts parent directory
        self.env['aacp_parent_dir'] = os.path.dirname(os.path.realpath(__file__))
        self.output(f"aacp_parent_dir: {self.env['aacp_parent_dir']}")

        # Get the path to AdobeAutoPkgApplicationData.json
        self.env['aacp_json_path'] = os.path.join(self.env['aacp_parent_dir'],
                                                  'AdobeAutoPkgApplicationData.json')
        self.output(f"aacp_json_path: {self.env['aacp_json_path']}")

        # Progress notification
        self.output(f"Processing {self.env['aacp_json_path']}...")

        # Read in AdobeAutoPkgApplicationData.json file
        with open(self.env['aacp_json_path'], encoding='utf-8') as json_file:
            # Try to parse app_json as json, raise if an issue
            try:
                self.env['aacp_autopkg_json'] = json.load(json_file)
            except json.JSONDecodeError as err_msg:
                raise ProcessorError from err_msg

        # Get applications dict from the json
        for application_data in self.env['aacp_autopkg_json']:
            if application_data['sap_code'] == self.env['aacp_application_sap_code']:
                for aacp_version_json in application_data['versions'].keys():
                    try:
                        if aacp_version_json == self.env['aacp_application_major_version']:
                            self.env['aacp_matched_json'] = (application_data['versions']
                                                 [self.env['aacp_application_major_version']])
                            self.output(f"aacp_matched_json: {self.env['aacp_matched_json']}")
                    except KeyError as err_msg:
                        raise ProcessorError(f"Cannot find details for "
                                             f"{self.env['aacp_application_sap_code']} "
                                             f"with version: "
                                             f"{self.env['aacp_application_major_version']},"
                                             f" in {self.env['aacp_json_path']}... "
                                             f"exiting...") from err_msg

        # If we found a match
        if self.env['aacp_matched_json']:
            self.process_matched_json(load_json)
        else:
            raise ProcessorError("Cannot find details for "
                                f"{self.env['aacp_application_sap_code']} "
                                f"with version: {self.env['aacp_application_major_version']},"
                                f" in {self.env['aacp_json_path']}...")


    def process_matched_json(self, load_json):
        '''
            Get metadata with the aid of self.env['aacp_matched_json']
        '''
        # Applications version, if not APRO
        if not self.env['aacp_application_sap_code'] == 'APRO':
            self.env['version'] = load_json[self.env['aacp_matched_json']['app_json_version_key']]
            self.output(f"version: {self.env['version']}")

        # If the version is unsupported
        if 'unsupported_versions_dict' in self.env['aacp_matched_json']:
            self.output(f"unsupported_versions_dict: {self.env['aacp_matched_json']"
                        f"['unsupported_versions_dict']}")
            for unsupported_version in self.env['aacp_matched_json']['unsupported_versions_dict']:
                if unsupported_version == self.env['version']:
                    raise ProcessorError(f"{self.env['aacp_matched_json']['unsupported_versions_dict']"
                                         f"[unsupported_version]}")

        # Applications bundle id
        self.env['aacp_application_bundle_id'] = self.env['aacp_matched_json']['app_bundle_id']
        self.output(f"aacp_application_bundle_id: {self.env['aacp_application_bundle_id']}")

        # Applications minimum os, if APRO get from self.env['aacp_matched_json']
        if not self.env['aacp_application_sap_code'] == 'APRO':
            self.env['aacp_application_minimum_os'] = (re.search(self.env['aacp_matched_json']
                                                                 ['minos_regex'],
                                                                 load_json['SystemRequirement']
                                                                 ['CheckCompatibility']
                                                                 ['Content'])[1])
            self.output(f"aacp_application_minimum_os: {self.env['aacp_application_minimum_os']}")
        else:
            self.env['aacp_application_minimum_os'] = self.env['aacp_matched_json']['minos_version']

        # Applications version comparison key
        self.env['aacp_version_compare_key'] = (self.env['aacp_matched_json']
                                                ['version_comparison_key'])
        self.output(f"aacp_version_compare_key: {self.env['aacp_version_compare_key']}")

        # Applications display name
        self.env['aacp_application_display_name'] = self.env['aacp_matched_json']['display_name']
        self.output(f"aacp_application_display_name: {self.env['aacp_application_display_name']}")

        # Full path to the application bundle on disk, as per Terminal etc, not Finder
        self.env['aacp_application_full_path'] = self.env['aacp_matched_json']['app_path']

        # Get description if missing:
        if not 'aacp_application_description' in self.env:
            self.env['aacp_application_description'] = (self.env['aacp_matched_json']
                                                        ['app_description'])
            self.output(f"aacp_application_description: description missing, set from "
                        f"aacp_matched_json: "
                        f"{self.env['aacp_application_description']}")
        # Add a . if missing from the end
        if not self.env['aacp_application_description'].endswith('.'):
            self.env['aacp_application_description'] = (self.env['aacp_application_description']
                                                        + '.')

        # Get additional_blocking_applications
        if 'additional_blocking_applications' in self.env['aacp_matched_json']:
            for additional_blocking_application in (self.env['aacp_matched_json']
                                                    ['additional_blocking_applications']):
                self.env['aacp_blocking_applications'].append(additional_blocking_application)
            self.env['aacp_blocking_applications'] = (
                sorted(set(self.env['aacp_blocking_applications'])))
            self.output(f"aacp_blocking_applications updated: "
                        f"{self.env['aacp_blocking_applications']}")

        # Now we have the deets, let's use them
        self.create_pkginfo()


    def create_pkginfo(self):
        '''
            Create pkginfo with found details
        '''

        # var declaration
        pkginfo = {}

        # Set pkginfo variables
        if (self.env['aacp_application_architecture_type'] and
            not self.env['aacp_application_architecture_type'] == 'macuniversal'):
            pkginfo['supported_architectures'] = [self.env['aacp_application_architecture_type']]

        if self.env['aacp_application_description']:
            pkginfo['description'] = self.env['aacp_application_description']

        if self.env['aacp_application_display_name']:
            pkginfo['display_name'] = self.env['aacp_application_display_name']

        if self.env['aacp_blocking_applications']:
            pkginfo['blocking_applications'] = self.env['aacp_blocking_applications']

        if self.env['aacp_application_minimum_os']:
            pkginfo['minimum_os_version'] = self.env['aacp_application_minimum_os']

        # Check for any var replacements
        for some_key in self.env:
            # only process the keys beginning with aacp_ and those not ending _json
            if some_key.startswith('aacp_') and not some_key.endswith('_json'):
                self.replace_element(some_key)

        # Create pkginfo is missing from installs array
        #if 'pkginfo' not in self.env or 'installs' not in self.env['pkginfo']:
        pkginfo['installs'] = [{
            'CFBundleIdentifier': self.env['aacp_application_bundle_id'],
            self.env['aacp_version_compare_key']: self.env['version'],
            'path': self.env['aacp_application_full_path'],
            'type': 'application',
            'version_comparison_key': self.env['aacp_version_compare_key']
        }]

        # Notify of additional_pkginfo
        self.env['additional_pkginfo'] = pkginfo
        self.output(f"additional_pkginfo: {self.env['additional_pkginfo']}")


    # pylint: disable = too-many-branches
    def replace_element(self, some_key):
        '''
            Checks for instances of %var_name% and replaces with the value for the matching
            %var_name%

        '''

        # regex pattern
        re_pattern = '%(.*?)%'

        # If it's a string
        if isinstance(self.env[some_key], str):
            # check for a match
            re_match = re.search(re_pattern, self.env[some_key])
            # if we have a match
            if re_match:
                self.output(f"found: %{re_match[1]}% in {some_key}, looking to replace...")
                self.env[some_key] = (self.env[some_key].replace('%' + re_match[1] + '%',
                                      self.env[re_match[1]]))
                self.output(f"{some_key} is now {self.env[some_key]}...")
        # If a dict
        elif isinstance(self.env[some_key], dict):
            for sub_key in self.env[some_key]:
                # check for a match
                re_match = re.search('%(.*?)%', self.env[some_key][sub_key])
                # if we have a match
                if re_match:
                    self.output(f"found: %{re_match[1]}% in {sub_key} from {some_key}, "
                                 "looking to replace...")
                    self.env[some_key][sub_key] = (self.env[some_key][sub_key].replace('%' +
                                                   re_match[1] + '%', self.env[re_match[1]]))
                    self.output(f"{sub_key} in {some_key} is now {self.env[some_key][sub_key]}...")
        elif isinstance(self.env[some_key], list):
            for list_item in self.env[some_key]:
                # If it's a string
                if isinstance(list_item, str):
                    # check for a match
                    re_match = re.search(re_pattern, list_item)
                    # if we have a match
                    if re_match:
                        self.output(f"found: %{re_match[1]}% in {list_item}, looking to replace...")
                        self.env[some_key][list_item] = self.env[some_key][list_item].replace('%' +
                                                        re_match[1] + '%', self.env[re_match[1]])
                        self.output(f"{list_item} is now {self.env[some_key][list_item]}...")
                elif isinstance(list_item, dict):
                    for sub_item in self.env[some_key][list_item]:
                        # check for a match
                        re_match = re.search('%(.*?)%', self.env[some_key][list_item])
                        # if we have a match
                        if re_match:
                            self.output(f"found: %{re_match[1]}% in {sub_item} from {list_item}, "
                                         "looking to replace...")
                            self.env[some_key][list_item] = (
                                self.env[some_key][list_item].replace('%' + re_match[1] + '%',
                                self.env[re_match[1]]))
                            self.output(f"{sub_item} in {list_item} is now "
                                        f"{self.env[some_key][list_item]}...")
                else:
                    self.output(f"{some_key} is {type(self.env[some_key])}, processing skipped..")
        else:
            self.output(f"{some_key} is {type(self.env[some_key])}, processing skipped..")



if __name__ == '__main__':
infile
#!/usr/local/autopkg/python
# pylint: disable = invalid-name
'''
Copyright (c) 2022, dataJAR Ltd.  All rights reserved.
     Redistribution and use in source and binary forms, with or without
     modification, are permitted provided that the following conditions are met:
             * Redistributions of source code must retain the above copyright
               notice, this list of conditions and the following disclaimer.
             * Redistributions in binary form must reproduce the above copyright
               notice, this list of conditions and the following disclaimer in the
               documentation and/or other materials provided with the distribution.
             * Neither data JAR Ltd nor the names of its contributors may be used to
               endorse or promote products derived from this software without specific
               prior written permission.
     THIS SOFTWARE IS PROVIDED BY DATA JAR LTD 'AS IS' AND ANY
     EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
     WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
     DISCLAIMED. IN NO EVENT SHALL DATA JAR LTD BE LIABLE FOR ANY
     DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
     (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
     ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
     (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
     SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
SUPPORT FOR THIS PROGRAM
    This program is distributed 'as is' by DATA JAR LTD.
    For more information or support, please utilise the following resources:
            http://www.datajar.co.uk

DESCRIPTION

Generates installation information for Adobe Admin Console Packages
'''

# Standard Imports
import json
import os
import re
import xml
from xml.etree import ElementTree


# AutoPkg imports
# pylint: disable = import-error
from autopkglib import (Processor,
                        ProcessorError)


# Define class
__all__ = ['AdobeAdminConsolePackagesPkgInfoCreator']
__version__ = ['1.0']


# Class def
class AdobeAdminConsolePackagesPkgInfoCreator(Processor):
    '''
       Parses generated Adobe Admin Console Packages to generate installation information.
    '''

    description = __doc__

    input_variables = {
    }

    output_variables = {
        'aacp_application_path': {
            'description': 'aacp_installdir_value after regex applied to get the path alone.',
        },
        'aacp_application_architecture_type': {
            'description': 'The architecture type for the title, either arm64 or x86_64',
        },
        'aacp_application_install_lang': {
            'description': 'The titles installation langauage.',
        },
        'aacp_application_json_path': {
            'description': 'Path to the tiles Application.json file.',
        },
        'aacp_application_major_version': {
            'description': 'The major version of the title.',
        },
        'aacp_blocking_applications': {
            'description': 'Sorted set of the conflicting processes.',
        },
        'aacp_application_description': {
            'description': 'Short description of the title.',
        },
        'aacp_application_sap_code': {
            'description': 'The titles sap code.',
        },
        'aacp_install_pkg_path': {
            'description': 'Path to the Adobe*_Install.pkg.',
        },
        'aacp_json_path': {
            'description': 'Path to AdobeAutoPkgApplicationData.json.',
        },
        'aacp_matched_json': {
            'description': ('dict from AdobeAutoPkgApplicationData.json, which matches the '
                            '"aacp_application_sap_code" and "aacp_application_major_version".'),
        },
        'aacp_option_xml_path': {
            'description': 'Path to the tiles optionXML.xml file.',
        },
        'aacp_parent_dir': {
            'description': 'Path to parent directory of this processor.',
        },
        'aacp_proxy_xml_path': {
            'description': 'Acrobat only, path to proxy.xml.',
        },
        'aacp_target_folder': {
            'description': 'The name of the folder within the pkg to check files for metadata.',
        },
        'aacp_uninstall_pkg_path': {
            'description': 'Path to the Adobe*_Uninstall.pkg.',
        },
        'additional_pkginfo': {
            'description':
                'Additonal pkginfo fields extracted from the Adobe metadata.',
        },
        'version': {
            'description': 'The titles version.',
        }
    }


    def main(self):
        '''
            Find the Adobe*_Install.pkg in the Downloads dir based on the name, raise
            if corresponding *_Uninstall.pkg is missing.
        '''

        # Progress notification
        self.output("Starting versioner process...")

        # Get set packages_path
        self.env['aacp_packages_path'] = os.path.expanduser('~/Downloads/')
        self.output(f"aacp_packages_path: {self.env['aacp_packages_path']}")

        # Check that packages_path exists
        if not os.path.exists(self.env['aacp_packages_path']):
            raise ProcessorError(f"ERROR: Cannot locate directory, "
                                 f"{self.env['aacp_packages_path']}... exiting...")

        # Check that packages_path is a directory
        if not os.path.isdir(self.env['aacp_packages_path']):
            raise ProcessorError(f"ERROR: {self.env['aacp_packages_path']} is a not a "
                                  "directory... exiting...")

        # Path to Adobe*_Install.pkg
        self.env['aacp_install_pkg_path'] = (os.path.join(self.env['aacp_packages_path'],
                                                          self.env['NAME'], 'Build',
                                                          self.env['NAME'] + '_Install.pkg'))

        # Check that the path exists, raise if not
        if not os.path.exists(self.env['aacp_install_pkg_path']):
            raise ProcessorError(f"ERROR: Cannot find "
                                 f"{self.env['aacp_install_pkg_path']}... exiting...")
        self.output(f"aacp_install_pkg_path: {self.env['aacp_install_pkg_path']}")

        # Path to Adobe*_Uninstall.pkg
        self.env['aacp_uninstall_pkg_path'] = (os.path.join(self.env['aacp_packages_path'],
                                                            self.env['NAME'], 'Build',
                                                            self.env['NAME'] + '_Uninstall.pkg'))

        # Check that the path exists, raise if not
        if not os.path.exists(self.env['aacp_uninstall_pkg_path']):
            raise ProcessorError(f"ERROR: Cannot find {self.env['aacp_uninstall_pkg_path']}, these "
                                 f"recipes need packages of the Managed Package variety, which "
                                 f"include _Install and _Uninstall packages.... exiting...")
        self.output(f"aacp_uninstall_pkg_path {self.env['aacp_uninstall_pkg_path']}")

        # Process the titles optionXML.xml
        self.process_optionxml_xml()


    def process_optionxml_xml(self):
        '''
            Process the titles optionXML.xml
        '''

        # Var declaration
        self.env['aacp_application_install_lang'] = None

        # Path to titles optionXML.xml
        self.env['aacp_option_xml_path'] = os.path.join(self.env['aacp_install_pkg_path'],
                                                        'Contents', 'Resources', 'optionXML.xml')
        if not os.path.exists(self.env['aacp_option_xml_path']):
            raise ProcessorError(f"ERROR: Cannot find {self.env['aacp_option_xml_path']}... "
                                  "exiting...")
        self.output(f"aacp_option_xml_path: {self.env['aacp_option_xml_path']}")

        # Progress notification
        self.output(f"Processing: {self.env['aacp_option_xml_path']}...")

        # Try to parse option_xml, raise if an issue
        try:
            option_xml = ElementTree.parse(self.env['aacp_option_xml_path'])
        except xml.etree.ElementTree.ParseError as err_msg:
            raise ProcessorError from err_msg

        # Check to see if HDMedia keys set
        for hd_media in option_xml.findall('.//HDMedias/HDMedia'):
            # If we have HDMedia, set vars
            if hd_media.findtext('MediaType') == 'Product':
                self.env['aacp_application_install_lang'] = hd_media.findtext('installLang')
                self.env['aacp_application_sap_code'] = hd_media.findtext('SAPCode')
                self.env['aacp_target_folder'] = hd_media.findtext('TargetFolderName')
                self.env['aacp_application_major_version'] = hd_media.findtext('baseVersion')

        # If no HDMedia is found, then self.env['aacp_application_install_lang'] will be none
        if not self.env['aacp_application_install_lang']:
            # Get vars for RIBS media
            for ribs_media in option_xml.findall('.//Medias/Media'):
                self.env['aacp_application_install_lang'] = ribs_media.findtext('installLang')
                self.env['aacp_application_sap_code'] = ribs_media.findtext('SAPCode')
                self.env['aacp_target_folder'] = ribs_media.findtext('TargetFolderName')
                self.env['aacp_application_major_version'] = ribs_media.findtext('prodVersion')

        # Check for Processor Architecture
        self.env['aacp_application_architecture_type'] = (
            option_xml.findtext('ProcessorArchitecture').lower())
        if not self.env['aacp_application_architecture_type'] in ['arm64', 'macuniversal', 'x64']:
            raise ProcessorError(f"architecture_type: "
                                 f"{self.env['aacp_application_architecture_type']},"
                                 f" is neither arm64, macuniversal nor x64... exiting...")
        if self.env['aacp_application_architecture_type'] == 'x64':
            self.env['aacp_application_architecture_type'] = 'x86_64'

        # Display progress
        self.output(f"aacp_application_sap_code: {self.env['aacp_application_sap_code']}")
        self.output(f"aacp_target_folder: {self.env['aacp_target_folder']}")
        self.output(f"aacp_application_architecture_type: "
                    f"{self.env['aacp_application_architecture_type']}")
        self.output(f"aacp_application_install_lang: {self.env['aacp_application_install_lang']}")
        self.output(f"aacp_application_major_version: {self.env['aacp_application_major_version']}")

        # If the we're looking at Acrobat, then we need to process things differently
        if self.env['aacp_application_sap_code'] == 'APRO':
            self.process_apro_installer()
        else:
            # Set application_json_path
            self.env['aacp_application_json_path'] = os.path.join(self.env['aacp_install_pkg_path'],
                                                                  'Contents/Resources/HD',
                                                                  self.env['aacp_target_folder'],
                                                                  'Application.json')
            # Process HD installer
            self.process_hd_installer()


    def process_apro_installer(self):
        '''
            Process APRO (Acrobat) installer
        '''

        # Progress notification
        self.output("Processing Acrobat installer")
        self.env['aacp_proxy_xml_path'] = (os.path.join(self.env['aacp_install_pkg_path'],
                                                        'Contents/Resources/Setup',
                                                        self.env['aacp_target_folder'],
                                                        'proxy.xml'))
        self.output(f"aacp_proxy_xml_path: {self.env['aacp_proxy_xml_path']}")

        # Try to parse proxy_xml, raise if an issue
        try:
            parse_xml = ElementTree.parse(self.env['aacp_proxy_xml_path'])
        except xml.etree.ElementTree.ParseError as err_msg:
            raise ProcessorError from err_msg

        # Get root of xml
        root = parse_xml.getroot()

        # Get app_version
        self.env['version'] = (root.findtext
                                   ('./InstallerProperties/Property[@name=\'ProductVersion\']'))
        self.output(f"version: {self.env['version']}")

        # Set to []
        self.env['aacp_blocking_applications'] = []

        # 2nd part of process
infile
#!/usr/local/autopkg/python
# pylint: disable = invalid-name
'''
Copyright (c) 2022, dataJAR Ltd.  All rights reserved.
     Redistribution and use in source and binary forms, with or without
     modification, are permitted provided that the following conditions are met:
             * Redistributions of source code must retain the above copyright
               notice, this list of conditions and the following disclaimer.
             * Redistributions in binary form must reproduce the above copyright
               notice, this list of conditions and the following disclaimer in the
               documentation and/or other materials provided with the distribution.
             * Neither data JAR Ltd nor the names of its contributors may be used to
               endorse or promote products derived from this software without specific
               prior written permission.
     THIS SOFTWARE IS PROVIDED BY DATA JAR LTD 'AS IS' AND ANY
     EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
     WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
     DISCLAIMED. IN NO EVENT SHALL DATA JAR LTD BE LIABLE FOR ANY
     DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
     (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
     ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
     (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
     SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
SUPPORT FOR THIS PROGRAM
    This program is distributed 'as is' by DATA JAR LTD.
    For more information or support, please utilise the following resources:
            http://www.datajar.co.uk

DESCRIPTION

Generates installation information for Adobe Admin Console Packages
'''

# Standard Imports
import json
import os
import re
import xml
from xml.etree import ElementTree


# AutoPkg imports
# pylint: disable = import-error
from autopkglib import (Processor,
                        ProcessorError)


# Define class
__all__ = ['AdobeAdminConsolePackagesPkgInfoCreator']
__version__ = ['1.0']


# Class def
class AdobeAdminConsolePackagesPkgInfoCreator(Processor):
    '''
       Parses generated Adobe Admin Console Packages to generate installation information.
    '''

    description = __doc__

    input_variables = {
    }

    output_variables = {
        'aacp_application_path': {
            'description': 'aacp_installdir_value after regex applied to get the path alone.',
        },
        'aacp_application_architecture_type': {
            'description': 'The architecture type for the title, either arm64 or x86_64',
        },
        'aacp_application_install_lang': {
            'description': 'The titles installation langauage.',
        },
        'aacp_application_json_path': {
            'description': 'Path to the tiles Application.json file.',
        },
        'aacp_application_major_version': {
            'description': 'The major version of the title.',
        },
        'aacp_blocking_applications': {
            'description': 'Sorted set of the conflicting processes.',
        },
        'aacp_application_description': {
            'description': 'Short description of the title.',
        },
        'aacp_application_sap_code': {
            'description': 'The titles sap code.',
        },
        'aacp_install_pkg_path': {
            'description': 'Path to the Adobe*_Install.pkg.',
        },
        'aacp_json_path': {
            'description': 'Path to AdobeAutoPkgApplicationData.json.',
        },
        'aacp_matched_json': {
            'description': ('dict from AdobeAutoPkgApplicationData.json, which matches the '
                            '"aacp_application_sap_code" and "aacp_application_major_version".'),
        },
        'aacp_option_xml_path': {
            'description': 'Path to the tiles optionXML.xml file.',
        },
        'aacp_parent_dir': {
            'description': 'Path to parent directory of this processor.',
        },
        'aacp_proxy_xml_path': {
            'description': 'Acrobat only, path to proxy.xml.',
        },
        'aacp_target_folder': {
            'description': 'The name of the folder within the pkg to check files for metadata.',
        },
        'aacp_uninstall_pkg_path': {
            'description': 'Path to the Adobe*_Uninstall.pkg.',
        },
        'additional_pkginfo': {
            'description':
                'Additonal pkginfo fields extracted from the Adobe metadata.',
        },
        'version': {
            'description': 'The titles version.',
        }
    }


    def main(self):
        '''
            Find the Adobe*_Install.pkg in the Downloads dir based on the name, raise
            if corresponding *_Uninstall.pkg is missing.
        '''

        # Progress notification
        self.output("Starting versioner process...")

        # Get set packages_path
        self.env['aacp_packages_path'] = os.path.expanduser('~/Downloads/')
        self.output(f"aacp_packages_path: {self.env['aacp_packages_path']}")

        # Check that packages_path exists
        if not os.path.exists(self.env['aacp_packages_path']):
            raise ProcessorError(f"ERROR: Cannot locate directory, "
                                 f"{self.env['aacp_packages_path']}... exiting...")

        # Check that packages_path is a directory
        if not os.path.isdir(self.env['aacp_packages_path']):
            raise ProcessorError(f"ERROR: {self.env['aacp_packages_path']} is a not a "
                                  "directory... exiting...")

        # Path to Adobe*_Install.pkg
        self.env['aacp_install_pkg_path'] = (os.path.join(self.env['aacp_packages_path'],
                                                          self.env['NAME'], 'Build',
                                                          self.env['NAME'] + '_Install.pkg'))

        # Check that the path exists, raise if not
        if not os.path.exists(self.env['aacp_install_pkg_path']):
            raise ProcessorError(f"ERROR: Cannot find "
                                 f"{self.env['aacp_install_pkg_path']}... exiting...")
        self.output(f"aacp_install_pkg_path: {self.env['aacp_install_pkg_path']}")

        # Path to Adobe*_Uninstall.pkg
        self.env['aacp_uninstall_pkg_path'] = (os.path.join(self.env['aacp_packages_path'],
                                                            self.env['NAME'], 'Build',
                                                            self.env['NAME'] + '_Uninstall.pkg'))

        # Check that the path exists, raise if not
        if not os.path.exists(self.env['aacp_uninstall_pkg_path']):
            raise ProcessorError(f"ERROR: Cannot find {self.env['aacp_uninstall_pkg_path']}, these "
                                 f"recipes need packages of the Managed Package variety, which "
                                 f"include _Install and _Uninstall packages.... exiting...")
        self.output(f"aacp_uninstall_pkg_path {self.env['aacp_uninstall_pkg_path']}")

        # Process the titles optionXML.xml
        self.process_optionxml_xml()


    def process_optionxml_xml(self):
        '''
            Process the titles optionXML.xml
        '''

        # Var declaration
        self.env['aacp_application_install_lang'] = None

        # Path to titles optionXML.xml
        self.env['aacp_option_xml_path'] = os.path.join(self.env['aacp_install_pkg_path'],
                                                        'Contents', 'Resources', 'optionXML.xml')
        if not os.path.exists(self.env['aacp_option_xml_path']):
            raise ProcessorError(f"ERROR: Cannot find {self.env['aacp_option_xml_path']}... "
                                  "exiting...")
        self.output(f"aacp_option_xml_path: {self.env['aacp_option_xml_path']}")

        # Progress notification
        self.output(f"Processing: {self.env['aacp_option_xml_path']}...")

        # Try to parse option_xml, raise if an issue
        try:
            option_xml = ElementTree.parse(self.env['aacp_option_xml_path'])
        except xml.etree.ElementTree.ParseError as err_msg:
            raise ProcessorError from err_msg

        # Check to see if HDMedia keys set
        for hd_media in option_xml.findall('.//HDMedias/HDMedia'):
            # If we have HDMedia, set vars
            if hd_media.findtext('MediaType') == 'Product':
                self.env['aacp_application_install_lang'] = hd_media.findtext('installLang')
                self.env['aacp_application_sap_code'] = hd_media.findtext('SAPCode')
                self.env['aacp_target_folder'] = hd_media.findtext('TargetFolderName')
                self.env['aacp_application_major_version'] = hd_media.findtext('baseVersion')

        # If no HDMedia is found, then self.env['aacp_application_install_lang'] will be none
        if not self.env['aacp_application_install_lang']:
            # Get vars for RIBS media
            for ribs_media in option_xml.findall('.//Medias/Media'):
                self.env['aacp_application_install_lang'] = ribs_media.findtext('installLang')
                self.env['aacp_application_sap_code'] = ribs_media.findtext('SAPCode')
                self.env['aacp_target_folder'] = ribs_media.findtext('TargetFolderName')
                self.env['aacp_application_major_version'] = ribs_media.findtext('prodVersion')

        # Check for Processor Architecture
        self.env['aacp_application_architecture_type'] = (
            option_xml.findtext('ProcessorArchitecture').lower())
        if not self.env['aacp_application_architecture_type'] in ['arm64', 'macuniversal', 'x64']:
            raise ProcessorError(f"architecture_type: "
                                 f"{self.env['aacp_application_architecture_type']},"
                                 f" is neither arm64, macuniversal nor x64... exiting...")
        if self.env['aacp_application_architecture_type'] == 'x64':
            self.env['aacp_application_architecture_type'] = 'x86_64'

        # Display progress
        self.output(f"aacp_application_sap_code: {self.env['aacp_application_sap_code']}")
        self.output(f"aacp_target_folder: {self.env['aacp_target_folder']}")
        self.output(f"aacp_application_architecture_type: "
                    f"{self.env['aacp_application_architecture_type']}")
        self.output(f"aacp_application_install_lang: {self.env['aacp_application_install_lang']}")
        self.output(f"aacp_application_major_version: {self.env['aacp_application_major_version']}")

        # If the we're looking at Acrobat, then we need to process things differently
        if self.env['aacp_application_sap_code'] == 'APRO':
            self.process_apro_installer()
        else:
            # Set application_json_path
            self.env['aacp_application_json_path'] = os.path.join(self.env['aacp_install_pkg_path'],
                                                                  'Contents/Resources/HD',
                                                                  self.env['aacp_target_folder'],
                                                                  'Application.json')
            # Process HD installer
            self.process_hd_installer()


    def process_apro_installer(self):
        '''
            Process APRO (Acrobat) installer
        '''

        # Progress notification
        self.output("Processing Acrobat installer")
        self.env['aacp_proxy_xml_path'] = (os.path.join(self.env['aacp_install_pkg_path'],
                                                        'Contents/Resources/Setup',
                                                        self.env['aacp_target_folder'],
                                                        'proxy.xml'))
        self.output(f"aacp_proxy_xml_path: {self.env['aacp_proxy_xml_path']}")

        # Try to parse proxy_xml, raise if an issue
        try:
            parse_xml = ElementTree.parse(self.env['aacp_proxy_xml_path'])
        except xml.etree.ElementTree.ParseError as err_msg:
            raise ProcessorError from err_msg

        # Get root of xml
        root = parse_xml.getroot()

        # Get app_version
        self.env['version'] = (root.findtext
                                   ('./InstallerProperties/Property[@name=\'ProductVersion\']'))
        self.output(f"version: {self.env['version']}")

        # Set to []
        self.env['aacp_blocking_applications'] = []

        # 2nd part of process
        self.process_adobe_autopkg_application_data(None)


    def process_hd_installer(self):
        '''
            Process HD installer
        '''

        # Var declaration
        blocking_applications = []

        # Progress notification
        self.output(f"Processing {self.env['aacp_application_json_path']}...")

        # Read in app_json file
        with open(self.env['aacp_application_json_path'], encoding='utf-8') as json_file:
            # Try to parse app_json as json, raise if an issue
            try:
                load_json = json.load(json_file)
            except json.JSONDecodeError as err_msg:
                raise ProcessorError from err_msg

            # Get description
            tag_lines = load_json["ProductDescription"]["Tagline"]["Language"]
            for tag_line in tag_lines:
                if tag_line['locale'] == self.env['aacp_application_install_lang']:
                    self.env['aacp_application_description'] = tag_line['value']
                    # Add a . if missing from the end
                    if not self.env['aacp_application_description'].endswith('.'):
                        self.env['aacp_application_description'] = (
                                            self.env['aacp_application_description'] + '.')
                    self.output(f"aacp_application_description: "
                                f"{self.env['aacp_application_description']}")

            # Get conflicting processes
            conflicting_processes = load_json['ConflictingProcesses']['ConflictingProcess']
            for conflicting_process in conflicting_processes:
                # Only add if forceKillAllowed is False
                if not conflicting_process['forceKillAllowed']:
                    blocking_applications.append(conflicting_process['ProcessDisplayName'])
            if blocking_applications:
                self.env['aacp_blocking_applications'] = sorted(set(blocking_applications))
                self.output(f"aacp_blocking_applications: "
                            f"{self.env['aacp_blocking_applications']}")

            # 2nd part of process
            self.process_adobe_autopkg_application_data(load_json)


    def process_adobe_autopkg_application_data(self, load_json):
        '''
           Get more details from AdobeAutoPkgApplicationData.json
        '''

        # var declaration
        self.env['aacp_matched_json'] = None

        # Get this scripts parent directory
        self.env['aacp_parent_dir'] = os.path.dirname(os.path.realpath(__file__))
        self.output(f"aacp_parent_dir: {self.env['aacp_parent_dir']}")

        # Get the path to AdobeAutoPkgApplicationData.json
        self.env['aacp_json_path'] = os.path.join(self.env['aacp_parent_dir'],
                                                  'AdobeAutoPkgApplicationData.json')
        self.output(f"aacp_json_path: {self.env['aacp_json_path']}")

        # Progress notification
        self.output(f"Processing {self.env['aacp_json_path']}...")

        # Read in AdobeAutoPkgApplicationData.json file
        with open(self.env['aacp_json_path'], encoding='utf-8') as json_file:
            # Try to parse app_json as json, raise if an issue
            try:
                self.env['aacp_autopkg_json'] = json.load(json_file)
            except json.JSONDecodeError as err_msg:
                raise ProcessorError from err_msg

        # Get applications dict from the json
        for application_data in self.env['aacp_autopkg_json']:
            if application_data['sap_code'] == self.env['aacp_application_sap_code']:
                for aacp_version_json in application_data['versions'].keys():
                    try:
                        if aacp_version_json == self.env['aacp_application_major_version']:
                            self.env['aacp_matched_json'] = (application_data['versions']
                                                 [self.env['aacp_application_major_version']])
                            self.output(f"aacp_matched_json: {self.env['aacp_matched_json']}")
                    except KeyError as err_msg:
                        raise ProcessorError(f"Cannot find details for "
                                             f"{self.env['aacp_application_sap_code']} "
                                             f"with version: "
                                             f"{self.env['aacp_application_major_version']},"
                                             f" in {self.env['aacp_json_path']}... "
                                             f"exiting...") from err_msg

        # If we found a match
        if self.env['aacp_matched_json']:
infile
#!/usr/local/autopkg/python
# pylint: disable = invalid-name
'''
Copyright (c) 2022, dataJAR Ltd.  All rights reserved.
     Redistribution and use in source and binary forms, with or without
     modification, are permitted provided that the following conditions are met:
             * Redistributions of source code must retain the above copyright
               notice, this list of conditions and the following disclaimer.
             * Redistributions in binary form must reproduce the above copyright
               notice, this list of conditions and the following disclaimer in the
               documentation and/or other materials provided with the distribution.
             * Neither data JAR Ltd nor the names of its contributors may be used to
               endorse or promote products derived from this software without specific
               prior written permission.
     THIS SOFTWARE IS PROVIDED BY DATA JAR LTD 'AS IS' AND ANY
     EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
     WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
     DISCLAIMED. IN NO EVENT SHALL DATA JAR LTD BE LIABLE FOR ANY
     DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
     (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
     ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
     (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
     SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
SUPPORT FOR THIS PROGRAM
    This program is distributed 'as is' by DATA JAR LTD.
    For more information or support, please utilise the following resources:
            http://www.datajar.co.uk

DESCRIPTION

Generates installation information for Adobe Admin Console Packages
'''

# Standard Imports
import json
import os
import re
import xml
from xml.etree import ElementTree


# AutoPkg imports
# pylint: disable = import-error
from autopkglib import (Processor,
                        ProcessorError)


# Define class
__all__ = ['AdobeAdminConsolePackagesPkgInfoCreator']
__version__ = ['1.0']


# Class def
class AdobeAdminConsolePackagesPkgInfoCreator(Processor):
    '''
       Parses generated Adobe Admin Console Packages to generate installation information.
    '''

    description = __doc__

    input_variables = {
    }

    output_variables = {
        'aacp_application_path': {
            'description': 'aacp_installdir_value after regex applied to get the path alone.',
        },
        'aacp_application_architecture_type': {
            'description': 'The architecture type for the title, either arm64 or x86_64',
        },
        'aacp_application_install_lang': {
            'description': 'The titles installation langauage.',
        },
        'aacp_application_json_path': {
            'description': 'Path to the tiles Application.json file.',
        },
        'aacp_application_major_version': {
            'description': 'The major version of the title.',
        },
        'aacp_blocking_applications': {
            'description': 'Sorted set of the conflicting processes.',
        },
        'aacp_application_description': {
            'description': 'Short description of the title.',
        },
        'aacp_application_sap_code': {
            'description': 'The titles sap code.',
        },
        'aacp_install_pkg_path': {
            'description': 'Path to the Adobe*_Install.pkg.',
        },
        'aacp_json_path': {
            'description': 'Path to AdobeAutoPkgApplicationData.json.',
        },
        'aacp_matched_json': {
            'description': ('dict from AdobeAutoPkgApplicationData.json, which matches the '
                            '"aacp_application_sap_code" and "aacp_application_major_version".'),
        },
        'aacp_option_xml_path': {
            'description': 'Path to the tiles optionXML.xml file.',
        },
        'aacp_parent_dir': {
            'description': 'Path to parent directory of this processor.',
        },
        'aacp_proxy_xml_path': {
            'description': 'Acrobat only, path to proxy.xml.',
        },
        'aacp_target_folder': {
            'description': 'The name of the folder within the pkg to check files for metadata.',
        },
        'aacp_uninstall_pkg_path': {
            'description': 'Path to the Adobe*_Uninstall.pkg.',
        },
        'additional_pkginfo': {
            'description':
                'Additonal pkginfo fields extracted from the Adobe metadata.',
        },
        'version': {
            'description': 'The titles version.',
        }
    }


    def main(self):
        '''
            Find the Adobe*_Install.pkg in the Downloads dir based on the name, raise
            if corresponding *_Uninstall.pkg is missing.
        '''

        # Progress notification
        self.output("Starting versioner process...")

        # Get set packages_path
        self.env['aacp_packages_path'] = os.path.expanduser('~/Downloads/')
        self.output(f"aacp_packages_path: {self.env['aacp_packages_path']}")

        # Check that packages_path exists
        if not os.path.exists(self.env['aacp_packages_path']):
            raise ProcessorError(f"ERROR: Cannot locate directory, "
                                 f"{self.env['aacp_packages_path']}... exiting...")

        # Check that packages_path is a directory
        if not os.path.isdir(self.env['aacp_packages_path']):
            raise ProcessorError(f"ERROR: {self.env['aacp_packages_path']} is a not a "
                                  "directory... exiting...")

        # Path to Adobe*_Install.pkg
        self.env['aacp_install_pkg_path'] = (os.path.join(self.env['aacp_packages_path'],
                                                          self.env['NAME'], 'Build',
                                                          self.env['NAME'] + '_Install.pkg'))

        # Check that the path exists, raise if not
        if not os.path.exists(self.env['aacp_install_pkg_path']):
            raise ProcessorError(f"ERROR: Cannot find "
                                 f"{self.env['aacp_install_pkg_path']}... exiting...")
        self.output(f"aacp_install_pkg_path: {self.env['aacp_install_pkg_path']}")

        # Path to Adobe*_Uninstall.pkg
        self.env['aacp_uninstall_pkg_path'] = (os.path.join(self.env['aacp_packages_path'],
                                                            self.env['NAME'], 'Build',
                                                            self.env['NAME'] + '_Uninstall.pkg'))

        # Check that the path exists, raise if not
        if not os.path.exists(self.env['aacp_uninstall_pkg_path']):
            raise ProcessorError(f"ERROR: Cannot find {self.env['aacp_uninstall_pkg_path']}, these "
                                 f"recipes need packages of the Managed Package variety, which "
                                 f"include _Install and _Uninstall packages.... exiting...")
        self.output(f"aacp_uninstall_pkg_path {self.env['aacp_uninstall_pkg_path']}")

        # Process the titles optionXML.xml
        self.process_optionxml_xml()


    def process_optionxml_xml(self):
        '''
            Process the titles optionXML.xml
        '''

        # Var declaration
        self.env['aacp_application_install_lang'] = None

        # Path to titles optionXML.xml
        self.env['aacp_option_xml_path'] = os.path.join(self.env['aacp_install_pkg_path'],
                                                        'Contents', 'Resources', 'optionXML.xml')
        if not os.path.exists(self.env['aacp_option_xml_path']):
            raise ProcessorError(f"ERROR: Cannot find {self.env['aacp_option_xml_path']}... "
                                  "exiting...")
        self.output(f"aacp_option_xml_path: {self.env['aacp_option_xml_path']}")

        # Progress notification
        self.output(f"Processing: {self.env['aacp_option_xml_path']}...")

        # Try to parse option_xml, raise if an issue
        try:
            option_xml = ElementTree.parse(self.env['aacp_option_xml_path'])
        except xml.etree.ElementTree.ParseError as err_msg:
            raise ProcessorError from err_msg

        # Check to see if HDMedia keys set
        for hd_media in option_xml.findall('.//HDMedias/HDMedia'):
            # If we have HDMedia, set vars
            if hd_media.findtext('MediaType') == 'Product':
                self.env['aacp_application_install_lang'] = hd_media.findtext('installLang')
                self.env['aacp_application_sap_code'] = hd_media.findtext('SAPCode')
                self.env['aacp_target_folder'] = hd_media.findtext('TargetFolderName')
                self.env['aacp_application_major_version'] = hd_media.findtext('baseVersion')

        # If no HDMedia is found, then self.env['aacp_application_install_lang'] will be none
        if not self.env['aacp_application_install_lang']:
            # Get vars for RIBS media
            for ribs_media in option_xml.findall('.//Medias/Media'):
                self.env['aacp_application_install_lang'] = ribs_media.findtext('installLang')
                self.env['aacp_application_sap_code'] = ribs_media.findtext('SAPCode')
                self.env['aacp_target_folder'] = ribs_media.findtext('TargetFolderName')
                self.env['aacp_application_major_version'] = ribs_media.findtext('prodVersion')

        # Check for Processor Architecture
        self.env['aacp_application_architecture_type'] = (
            option_xml.findtext('ProcessorArchitecture').lower())
        if not self.env['aacp_application_architecture_type'] in ['arm64', 'macuniversal', 'x64']:
            raise ProcessorError(f"architecture_type: "
                                 f"{self.env['aacp_application_architecture_type']},"
                                 f" is neither arm64, macuniversal nor x64... exiting...")
        if self.env['aacp_application_architecture_type'] == 'x64':
            self.env['aacp_application_architecture_type'] = 'x86_64'

        # Display progress
        self.output(f"aacp_application_sap_code: {self.env['aacp_application_sap_code']}")
        self.output(f"aacp_target_folder: {self.env['aacp_target_folder']}")
        self.output(f"aacp_application_architecture_type: "
                    f"{self.env['aacp_application_architecture_type']}")
        self.output(f"aacp_application_install_lang: {self.env['aacp_application_install_lang']}")
        self.output(f"aacp_application_major_version: {self.env['aacp_application_major_version']}")

        # If the we're looking at Acrobat, then we need to process things differently
        if self.env['aacp_application_sap_code'] == 'APRO':
            self.process_apro_installer()
        else:
            # Set application_json_path
            self.env['aacp_application_json_path'] = os.path.join(self.env['aacp_install_pkg_path'],
                                                                  'Contents/Resources/HD',
                                                                  self.env['aacp_target_folder'],
                                                                  'Application.json')
            # Process HD installer
            self.process_hd_installer()


    def process_apro_installer(self):
        '''
            Process APRO (Acrobat) installer
        '''

        # Progress notification
        self.output("Processing Acrobat installer")
        self.env['aacp_proxy_xml_path'] = (os.path.join(self.env['aacp_install_pkg_path'],
                                                        'Contents/Resources/Setup',
                                                        self.env['aacp_target_folder'],
                                                        'proxy.xml'))
        self.output(f"aacp_proxy_xml_path: {self.env['aacp_proxy_xml_path']}")

        # Try to parse proxy_xml, raise if an issue
        try:
            parse_xml = ElementTree.parse(self.env['aacp_proxy_xml_path'])
        except xml.etree.ElementTree.ParseError as err_msg:
            raise ProcessorError from err_msg

        # Get root of xml
        root = parse_xml.getroot()

        # Get app_version
        self.env['version'] = (root.findtext
                                   ('./InstallerProperties/Property[@name=\'ProductVersion\']'))
        self.output(f"version: {self.env['version']}")

        # Set to []
        self.env['aacp_blocking_applications'] = []

        # 2nd part of process
        self.process_adobe_autopkg_application_data(None)


    def process_hd_installer(self):
        '''
            Process HD installer
        '''

        # Var declaration
        blocking_applications = []

        # Progress notification
        self.output(f"Processing {self.env['aacp_application_json_path']}...")

        # Read in app_json file
        with open(self.env['aacp_application_json_path'], encoding='utf-8') as json_file:
            # Try to parse app_json as json, raise if an issue
            try:
                load_json = json.load(json_file)
            except json.JSONDecodeError as err_msg:
                raise ProcessorError from err_msg

            # Get description
            tag_lines = load_json["ProductDescription"]["Tagline"]["Language"]
            for tag_line in tag_lines:
                if tag_line['locale'] == self.env['aacp_application_install_lang']:
                    self.env['aacp_application_description'] = tag_line['value']
                    # Add a . if missing from the end
                    if not self.env['aacp_application_description'].endswith('.'):
                        self.env['aacp_application_description'] = (
                                            self.env['aacp_application_description'] + '.')
                    self.output(f"aacp_application_description: "
                                f"{self.env['aacp_application_description']}")

            # Get conflicting processes
            conflicting_processes = load_json['ConflictingProcesses']['ConflictingProcess']
            for conflicting_process in conflicting_processes:
                # Only add if forceKillAllowed is False
                if not conflicting_process['forceKillAllowed']:
                    blocking_applications.append(conflicting_process['ProcessDisplayName'])
            if blocking_applications:
                self.env['aacp_blocking_applications'] = sorted(set(blocking_applications))
                self.output(f"aacp_blocking_applications: "
                            f"{self.env['aacp_blocking_applications']}")

            # 2nd part of process
            self.process_adobe_autopkg_application_data(load_json)


    def process_adobe_autopkg_application_data(self, load_json):
        '''
           Get more details from AdobeAutoPkgApplicationData.json
        '''

        # var declaration
        self.env['aacp_matched_json'] = None

        # Get this scripts parent directory
        self.env['aacp_parent_dir'] = os.path.dirname(os.path.realpath(__file__))
        self.output(f"aacp_parent_dir: {self.env['aacp_parent_dir']}")

        # Get the path to AdobeAutoPkgApplicationData.json
        self.env['aacp_json_path'] = os.path.join(self.env['aacp_parent_dir'],
                                                  'AdobeAutoPkgApplicationData.json')
        self.output(f"aacp_json_path: {self.env['aacp_json_path']}")

        # Progress notification
        self.output(f"Processing {self.env['aacp_json_path']}...")

        # Read in AdobeAutoPkgApplicationData.json file
        with open(self.env['aacp_json_path'], encoding='utf-8') as json_file:
            # Try to parse app_json as json, raise if an issue
            try:
common
#!/usr/local/autopkg/python
# pylint: disable = invalid-name
'''
Copyright (c) 2022, dataJAR Ltd.  All rights reserved.
     Redistribution and use in source and binary forms, with or without
     modification, are permitted provided that the following conditions are met:
             * Redistributions of source code must retain the above copyright
               notice, this list of conditions and the following disclaimer.
             * Redistributions in binary form must reproduce the above copyright
               notice, this list of conditions and the following disclaimer in the
               documentation and/or other materials provided with the distribution.
             * Neither data JAR Ltd nor the names of its contributors may be used to
               endorse or promote products derived from this software without specific
               prior written permission.
     THIS SOFTWARE IS PROVIDED BY DATA JAR LTD 'AS IS' AND ANY
     EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
     WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
     DISCLAIMED. IN NO EVENT SHALL DATA JAR LTD BE LIABLE FOR ANY
     DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
     (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
     ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
     (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
     SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
SUPPORT FOR THIS PROGRAM
    This program is distributed 'as is' by DATA JAR LTD.
    For more information or support, please utilise the following resources:
            http://www.datajar.co.uk

DESCRIPTION

Generates installation information for Adobe Admin Console Packages
'''

# Standard Imports
import json
import os
import re
import xml
from xml.etree import ElementTree


# AutoPkg imports
# pylint: disable = import-error
from autopkglib import (Processor,
                        ProcessorError)


# Define class
__all__ = ['AdobeAdminConsolePackagesPkgInfoCreator']
__version__ = ['1.0']


# Class def
class AdobeAdminConsolePackagesPkgInfoCreator(Processor):
    '''
       Parses generated Adobe Admin Console Packages to generate installation information.
    '''

    description = __doc__

    input_variables = {
    }

    output_variables = {
        'aacp_application_path': {
            'description': 'aacp_installdir_value after regex applied to get the path alone.',
        },
        'aacp_application_architecture_type': {
            'description': 'The architecture type for the title, either arm64 or x86_64',
        },
        'aacp_application_install_lang': {
            'description': 'The titles installation langauage.',
        },
        'aacp_application_json_path': {
            'description': 'Path to the tiles Application.json file.',
        },
        'aacp_application_major_version': {
            'description': 'The major version of the title.',
        },
        'aacp_blocking_applications': {
            'description': 'Sorted set of the conflicting processes.',
        },
        'aacp_application_description': {
            'description': 'Short description of the title.',
        },
        'aacp_application_sap_code': {
            'description': 'The titles sap code.',
        },
        'aacp_install_pkg_path': {
            'description': 'Path to the Adobe*_Install.pkg.',
        },
        'aacp_json_path': {
            'description': 'Path to AdobeAutoPkgApplicationData.json.',
        },
        'aacp_matched_json': {
            'description': ('dict from AdobeAutoPkgApplicationData.json, which matches the '
                            '"aacp_application_sap_code" and "aacp_application_major_version".'),
        },
        'aacp_option_xml_path': {
            'description': 'Path to the tiles optionXML.xml file.',
        },
        'aacp_parent_dir': {
            'description': 'Path to parent directory of this processor.',
        },
        'aacp_proxy_xml_path': {
            'description': 'Acrobat only, path to proxy.xml.',
        },
        'aacp_target_folder': {
            'description': 'The name of the folder within the pkg to check files for metadata.',
        },
        'aacp_uninstall_pkg_path': {
            'description': 'Path to the Adobe*_Uninstall.pkg.',
        },
        'additional_pkginfo': {
            'description':
                'Additonal pkginfo fields extracted from the Adobe metadata.',
        },
        'version': {
            'description': 'The titles version.',
        }
    }


    def main(self):
        '''
            Find the Adobe*_Install.pkg in the Downloads dir based on the name, raise
            if corresponding *_Uninstall.pkg is missing.
        '''

        # Progress notification
        self.output("Starting versioner process...")

        # Get set packages_path
        self.env['aacp_packages_path'] = os.path.expanduser('~/Downloads/')
        self.output(f"aacp_packages_path: {self.env['aacp_packages_path']}")

        # Check that packages_path exists
        if not os.path.exists(self.env['aacp_packages_path']):
            raise ProcessorError(f"ERROR: Cannot locate directory, "
                                 f"{self.env['aacp_packages_path']}... exiting...")

        # Check that packages_path is a directory
        if not os.path.isdir(self.env['aacp_packages_path']):
            raise ProcessorError(f"ERROR: {self.env['aacp_packages_path']} is a not a "
                                  "directory... exiting...")

        # Path to Adobe*_Install.pkg
        self.env['aacp_install_pkg_path'] = (os.path.join(self.env['aacp_packages_path'],
                                                          self.env['NAME'], 'Build',
                                                          self.env['NAME'] + '_Install.pkg'))

        # Check that the path exists, raise if not
        if not os.path.exists(self.env['aacp_install_pkg_path']):
            raise ProcessorError(f"ERROR: Cannot find "
                                 f"{self.env['aacp_install_pkg_path']}... exiting...")
        self.output(f"aacp_install_pkg_path: {self.env['aacp_install_pkg_path']}")

        # Path to Adobe*_Uninstall.pkg
        self.env['aacp_uninstall_pkg_path'] = (os.path.join(self.env['aacp_packages_path'],
                                                            self.env['NAME'], 'Build',
                                                            self.env['NAME'] + '_Uninstall.pkg'))

        # Check that the path exists, raise if not
        if not os.path.exists(self.env['aacp_uninstall_pkg_path']):
            raise ProcessorError(f"ERROR: Cannot find {self.env['aacp_uninstall_pkg_path']}, these "
                                 f"recipes need packages of the Managed Package variety, which "
                                 f"include _Install and _Uninstall packages.... exiting...")
        self.output(f"aacp_uninstall_pkg_path {self.env['aacp_uninstall_pkg_path']}")

        # Process the titles optionXML.xml
        self.process_optionxml_xml()


    def process_optionxml_xml(self):
        '''
            Process the titles optionXML.xml
        '''

        # Var declaration
        self.env['aacp_application_install_lang'] = None

        # Path to titles optionXML.xml
        self.env['aacp_option_xml_path'] = os.path.join(self.env['aacp_install_pkg_path'],
                                                        'Contents', 'Resources', 'optionXML.xml')
        if not os.path.exists(self.env['aacp_option_xml_path']):
            raise ProcessorError(f"ERROR: Cannot find {self.env['aacp_option_xml_path']}... "
                                  "exiting...")
        self.output(f"aacp_option_xml_path: {self.env['aacp_option_xml_path']}")

        # Progress notification
        self.output(f"Processing: {self.env['aacp_option_xml_path']}...")

        # Try to parse option_xml, raise if an issue
        try:
            option_xml = ElementTree.parse(self.env['aacp_option_xml_path'])
        except xml.etree.ElementTree.ParseError as err_msg:
            raise ProcessorError from err_msg

        # Check to see if HDMedia keys set
        for hd_media in option_xml.findall('.//HDMedias/HDMedia'):
            # If we have HDMedia, set vars
            if hd_media.findtext('MediaType') == 'Product':
                self.env['aacp_application_install_lang'] = hd_media.findtext('installLang')
                self.env['aacp_application_sap_code'] = hd_media.findtext('SAPCode')
                self.env['aacp_target_folder'] = hd_media.findtext('TargetFolderName')
                self.env['aacp_application_major_version'] = hd_media.findtext('baseVersion')

        # If no HDMedia is found, then self.env['aacp_application_install_lang'] will be none
        if not self.env['aacp_application_install_lang']:
            # Get vars for RIBS media
            for ribs_media in option_xml.findall('.//Medias/Media'):
                self.env['aacp_application_install_lang'] = ribs_media.findtext('installLang')
                self.env['aacp_application_sap_code'] = ribs_media.findtext('SAPCode')
                self.env['aacp_target_folder'] = ribs_media.findtext('TargetFolderName')
                self.env['aacp_application_major_version'] = ribs_media.findtext('prodVersion')

        # Check for Processor Architecture
        self.env['aacp_application_architecture_type'] = (
            option_xml.findtext('ProcessorArchitecture').lower())
        if not self.env['aacp_application_architecture_type'] in ['arm64', 'macuniversal', 'x64']:
            raise ProcessorError(f"architecture_type: "
                                 f"{self.env['aacp_application_architecture_type']},"
                                 f" is neither arm64, macuniversal nor x64... exiting...")
        if self.env['aacp_application_architecture_type'] == 'x64':
            self.env['aacp_application_architecture_type'] = 'x86_64'

        # Display progress
        self.output(f"aacp_application_sap_code: {self.env['aacp_application_sap_code']}")
        self.output(f"aacp_target_folder: {self.env['aacp_target_folder']}")
        self.output(f"aacp_application_architecture_type: "
                    f"{self.env['aacp_application_architecture_type']}")
        self.output(f"aacp_application_install_lang: {self.env['aacp_application_install_lang']}")
        self.output(f"aacp_application_major_version: {self.env['aacp_application_major_version']}")

        # If the we're looking at Acrobat, then we need to process things differently
        if self.env['aacp_application_sap_code'] == 'APRO':
            self.process_apro_installer()
        else:
            # Set application_json_path
            self.env['aacp_application_json_path'] = os.path.join(self.env['aacp_install_pkg_path'],
                                                                  'Contents/Resources/HD',
                                                                  self.env['aacp_target_folder'],
                                                                  'Application.json')
            # Process HD installer
            self.process_hd_installer()


    def process_apro_installer(self):
        '''
            Process APRO (Acrobat) installer
        '''

        # Progress notification
        self.output("Processing Acrobat installer")
        self.env['aacp_proxy_xml_path'] = (os.path.join(self.env['aacp_install_pkg_path'],
                                                        'Contents/Resources/Setup',
                                                        self.env['aacp_target_folder'],
                                                        'proxy.xml'))
        self.output(f"aacp_proxy_xml_path: {self.env['aacp_proxy_xml_path']}")

        # Try to parse proxy_xml, raise if an issue
        try:
            parse_xml = ElementTree.parse(self.env['aacp_proxy_xml_path'])
        except xml.etree.ElementTree.ParseError as err_msg:
            raise ProcessorError from err_msg

        # Get root of xml
        root = parse_xml.getroot()

        # Get app_version
        self.env['version'] = (root.findtext
                                   ('./InstallerProperties/Property[@name=\'ProductVersion\']'))
        self.output(f"version: {self.env['version']}")

        # Set to []
        self.env['aacp_blocking_applications'] = []

        # 2nd part of process
        self.process_adobe_autopkg_application_data(None)


    def process_hd_installer(self):
        '''
            Process HD installer
        '''

        # Var declaration
        blocking_applications = []

        # Progress notification
        self.output(f"Processing {self.env['aacp_application_json_path']}...")

        # Read in app_json file
        with open(self.env['aacp_application_json_path'], encoding='utf-8') as json_file:
            # Try to parse app_json as json, raise if an issue
            try:
common
#!/usr/local/autopkg/python
# pylint: disable = invalid-name
'''
Copyright (c) 2022, dataJAR Ltd.  All rights reserved.
     Redistribution and use in source and binary forms, with or without
     modification, are permitted provided that the following conditions are met:
             * Redistributions of source code must retain the above copyright
               notice, this list of conditions and the following disclaimer.
             * Redistributions in binary form must reproduce the above copyright
               notice, this list of conditions and the following disclaimer in the
               documentation and/or other materials provided with the distribution.
             * Neither data JAR Ltd nor the names of its contributors may be used to
               endorse or promote products derived from this software without specific
               prior written permission.
     THIS SOFTWARE IS PROVIDED BY DATA JAR LTD 'AS IS' AND ANY
     EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
     WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
     DISCLAIMED. IN NO EVENT SHALL DATA JAR LTD BE LIABLE FOR ANY
     DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
     (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
     ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
     (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
     SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
SUPPORT FOR THIS PROGRAM
    This program is distributed 'as is' by DATA JAR LTD.
    For more information or support, please utilise the following resources:
            http://www.datajar.co.uk

DESCRIPTION

Generates installation information for Adobe Admin Console Packages
'''

# Standard Imports
import json
import os
import re
import xml
from xml.etree import ElementTree


# AutoPkg imports
# pylint: disable = import-error
from autopkglib import (Processor,
                        ProcessorError)

non_informative
#!/usr/local/autopkg/python
# pylint: disable = invalid-name
'''
Copyright (c) 2022, dataJAR Ltd.  All rights reserved.
     Redistribution and use in source and binary forms, with or without
     modification, are permitted provided that the following conditions are met:
             * Redistributions of source code must retain the above copyright
               notice, this list of conditions and the following disclaimer.
             * Redistributions in binary form must reproduce the above copyright
               notice, this list of conditions and the following disclaimer in the
               documentation and/or other materials provided with the distribution.
             * Neither data JAR Ltd nor the names of its contributors may be used to
               endorse or promote products derived from this software without specific
               prior written permission.
     THIS SOFTWARE IS PROVIDED BY DATA JAR LTD 'AS IS' AND ANY
     EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
     WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
     DISCLAIMED. IN NO EVENT SHALL DATA JAR LTD BE LIABLE FOR ANY
     DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
     (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
     ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
     (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
     SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
SUPPORT FOR THIS PROGRAM
    This program is distributed 'as is' by DATA JAR LTD.
    For more information or support, please utilise the following resources:
            http://www.datajar.co.uk

DESCRIPTION

Generates installation information for Adobe Admin Console Packages
'''

# Standard Imports
import json
import os
import re
import xml
from xml.etree import ElementTree


# AutoPkg imports
# pylint: disable = import-error
from autopkglib import (Processor,
                        ProcessorError)


# Define class
__all__ = ['AdobeAdminConsolePackagesPkgInfoCreator']
__version__ = ['1.0']


# Class def
class AdobeAdminConsolePackagesPkgInfoCreator(Processor):
    '''
       Parses generated Adobe Admin Console Packages to generate installation information.
    '''

    description = __doc__

    input_variables = {
    }

    output_variables = {
        'aacp_application_path': {
            'description': 'aacp_installdir_value after regex applied to get the path alone.',
        },
        'aacp_application_architecture_type': {
            'description': 'The architecture type for the title, either arm64 or x86_64',
        },
        'aacp_application_install_lang': {
            'description': 'The titles installation langauage.',
        },
        'aacp_application_json_path': {
            'description': 'Path to the tiles Application.json file.',
        },
        'aacp_application_major_version': {
            'description': 'The major version of the title.',
        },
        'aacp_blocking_applications': {
            'description': 'Sorted set of the conflicting processes.',
        },
        'aacp_application_description': {
            'description': 'Short description of the title.',
        },
        'aacp_application_sap_code': {
            'description': 'The titles sap code.',
        },
        'aacp_install_pkg_path': {
            'description': 'Path to the Adobe*_Install.pkg.',
        },
        'aacp_json_path': {
            'description': 'Path to AdobeAutoPkgApplicationData.json.',
        },
        'aacp_matched_json': {
            'description': ('dict from AdobeAutoPkgApplicationData.json, which matches the '
                            '"aacp_application_sap_code" and "aacp_application_major_version".'),
        },
        'aacp_option_xml_path': {
            'description': 'Path to the tiles optionXML.xml file.',
        },
        'aacp_parent_dir': {
            'description': 'Path to parent directory of this processor.',
        },
        'aacp_proxy_xml_path': {
            'description': 'Acrobat only, path to proxy.xml.',
        },
        'aacp_target_folder': {
            'description': 'The name of the folder within the pkg to check files for metadata.',
        },
        'aacp_uninstall_pkg_path': {
            'description': 'Path to the Adobe*_Uninstall.pkg.',
        },
        'additional_pkginfo': {
            'description':
                'Additonal pkginfo fields extracted from the Adobe metadata.',
        },
        'version': {
            'description': 'The titles version.',
        }
    }


    def main(self):
non_informative
#!/usr/local/autopkg/python
# pylint: disable = invalid-name
'''
Copyright (c) 2022, dataJAR Ltd.  All rights reserved.
     Redistribution and use in source and binary forms, with or without
     modification, are permitted provided that the following conditions are met:
             * Redistributions of source code must retain the above copyright
               notice, this list of conditions and the following disclaimer.
             * Redistributions in binary form must reproduce the above copyright
               notice, this list of conditions and the following disclaimer in the
               documentation and/or other materials provided with the distribution.
             * Neither data JAR Ltd nor the names of its contributors may be used to
               endorse or promote products derived from this software without specific
               prior written permission.
     THIS SOFTWARE IS PROVIDED BY DATA JAR LTD 'AS IS' AND ANY
     EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
     WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
     DISCLAIMED. IN NO EVENT SHALL DATA JAR LTD BE LIABLE FOR ANY
     DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
     (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
     ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
     (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
     SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
SUPPORT FOR THIS PROGRAM
    This program is distributed 'as is' by DATA JAR LTD.
    For more information or support, please utilise the following resources:
            http://www.datajar.co.uk

DESCRIPTION

Generates installation information for Adobe Admin Console Packages
'''

# Standard Imports
import json
import os
import re
import xml
from xml.etree import ElementTree


# AutoPkg imports
# pylint: disable = import-error
from autopkglib import (Processor,
                        ProcessorError)


# Define class
__all__ = ['AdobeAdminConsolePackagesPkgInfoCreator']
__version__ = ['1.0']


# Class def
class AdobeAdminConsolePackagesPkgInfoCreator(Processor):
    '''
       Parses generated Adobe Admin Console Packages to generate installation information.
    '''

    description = __doc__

    input_variables = {
    }

    output_variables = {
        'aacp_application_path': {
            'description': 'aacp_installdir_value after regex applied to get the path alone.',
        },
        'aacp_application_architecture_type': {
            'description': 'The architecture type for the title, either arm64 or x86_64',
        },
        'aacp_application_install_lang': {
            'description': 'The titles installation langauage.',
        },
        'aacp_application_json_path': {
            'description': 'Path to the tiles Application.json file.',
        },
        'aacp_application_major_version': {
            'description': 'The major version of the title.',
        },
        'aacp_blocking_applications': {
            'description': 'Sorted set of the conflicting processes.',
        },
        'aacp_application_description': {
            'description': 'Short description of the title.',
        },
        'aacp_application_sap_code': {
            'description': 'The titles sap code.',
        },
        'aacp_install_pkg_path': {
            'description': 'Path to the Adobe*_Install.pkg.',
        },
        'aacp_json_path': {
            'description': 'Path to AdobeAutoPkgApplicationData.json.',
        },
        'aacp_matched_json': {
            'description': ('dict from AdobeAutoPkgApplicationData.json, which matches the '
                            '"aacp_application_sap_code" and "aacp_application_major_version".'),
        },
        'aacp_option_xml_path': {
            'description': 'Path to the tiles optionXML.xml file.',
        },
        'aacp_parent_dir': {
            'description': 'Path to parent directory of this processor.',
        },
        'aacp_proxy_xml_path': {
            'description': 'Acrobat only, path to proxy.xml.',
        },
        'aacp_target_folder': {
            'description': 'The name of the folder within the pkg to check files for metadata.',
        },
        'aacp_uninstall_pkg_path': {
            'description': 'Path to the Adobe*_Uninstall.pkg.',
        },
        'additional_pkginfo': {
            'description':
                'Additonal pkginfo fields extracted from the Adobe metadata.',
        },
        'version': {
            'description': 'The titles version.',
        }
    }


    def main(self):
        '''
            Find the Adobe*_Install.pkg in the Downloads dir based on the name, raise
            if corresponding *_Uninstall.pkg is missing.
        '''

        # Progress notification
        self.output("Starting versioner process...")

        # Get set packages_path
        self.env['aacp_packages_path'] = os.path.expanduser('~/Downloads/')
        self.output(f"aacp_packages_path: {self.env['aacp_packages_path']}")

        # Check that packages_path exists
        if not os.path.exists(self.env['aacp_packages_path']):
            raise ProcessorError(f"ERROR: Cannot locate directory, "
                                 f"{self.env['aacp_packages_path']}... exiting...")

        # Check that packages_path is a directory
        if not os.path.isdir(self.env['aacp_packages_path']):
            raise ProcessorError(f"ERROR: {self.env['aacp_packages_path']} is a not a "
                                  "directory... exiting...")

        # Path to Adobe*_Install.pkg
        self.env['aacp_install_pkg_path'] = (os.path.join(self.env['aacp_packages_path'],
                                                          self.env['NAME'], 'Build',
                                                          self.env['NAME'] + '_Install.pkg'))

        # Check that the path exists, raise if not
        if not os.path.exists(self.env['aacp_install_pkg_path']):
            raise ProcessorError(f"ERROR: Cannot find "
                                 f"{self.env['aacp_install_pkg_path']}... exiting...")
        self.output(f"aacp_install_pkg_path: {self.env['aacp_install_pkg_path']}")

        # Path to Adobe*_Uninstall.pkg
        self.env['aacp_uninstall_pkg_path'] = (os.path.join(self.env['aacp_packages_path'],
                                                            self.env['NAME'], 'Build',
                                                            self.env['NAME'] + '_Uninstall.pkg'))

        # Check that the path exists, raise if not
        if not os.path.exists(self.env['aacp_uninstall_pkg_path']):
            raise ProcessorError(f"ERROR: Cannot find {self.env['aacp_uninstall_pkg_path']}, these "
                                 f"recipes need packages of the Managed Package variety, which "
                                 f"include _Install and _Uninstall packages.... exiting...")
        self.output(f"aacp_uninstall_pkg_path {self.env['aacp_uninstall_pkg_path']}")

        # Process the titles optionXML.xml
        self.process_optionxml_xml()


    def process_optionxml_xml(self):
        '''
            Process the titles optionXML.xml
        '''

        # Var declaration
        self.env['aacp_application_install_lang'] = None

        # Path to titles optionXML.xml
        self.env['aacp_option_xml_path'] = os.path.join(self.env['aacp_install_pkg_path'],
                                                        'Contents', 'Resources', 'optionXML.xml')
        if not os.path.exists(self.env['aacp_option_xml_path']):
            raise ProcessorError(f"ERROR: Cannot find {self.env['aacp_option_xml_path']}... "
                                  "exiting...")
        self.output(f"aacp_option_xml_path: {self.env['aacp_option_xml_path']}")

        # Progress notification
        self.output(f"Processing: {self.env['aacp_option_xml_path']}...")

        # Try to parse option_xml, raise if an issue
        try:
            option_xml = ElementTree.parse(self.env['aacp_option_xml_path'])
        except xml.etree.ElementTree.ParseError as err_msg:
            raise ProcessorError from err_msg

        # Check to see if HDMedia keys set
        for hd_media in option_xml.findall('.//HDMedias/HDMedia'):
            # If we have HDMedia, set vars
            if hd_media.findtext('MediaType') == 'Product':
                self.env['aacp_application_install_lang'] = hd_media.findtext('installLang')
                self.env['aacp_application_sap_code'] = hd_media.findtext('SAPCode')
                self.env['aacp_target_folder'] = hd_media.findtext('TargetFolderName')
                self.env['aacp_application_major_version'] = hd_media.findtext('baseVersion')

        # If no HDMedia is found, then self.env['aacp_application_install_lang'] will be none
        if not self.env['aacp_application_install_lang']:
            # Get vars for RIBS media
            for ribs_media in option_xml.findall('.//Medias/Media'):
                self.env['aacp_application_install_lang'] = ribs_media.findtext('installLang')
                self.env['aacp_application_sap_code'] = ribs_media.findtext('SAPCode')
                self.env['aacp_target_folder'] = ribs_media.findtext('TargetFolderName')
                self.env['aacp_application_major_version'] = ribs_media.findtext('prodVersion')

        # Check for Processor Architecture
        self.env['aacp_application_architecture_type'] = (
            option_xml.findtext('ProcessorArchitecture').lower())
        if not self.env['aacp_application_architecture_type'] in ['arm64', 'macuniversal', 'x64']:
            raise ProcessorError(f"architecture_type: "
                                 f"{self.env['aacp_application_architecture_type']},"
                                 f" is neither arm64, macuniversal nor x64... exiting...")
        if self.env['aacp_application_architecture_type'] == 'x64':
            self.env['aacp_application_architecture_type'] = 'x86_64'

        # Display progress
        self.output(f"aacp_application_sap_code: {self.env['aacp_application_sap_code']}")
        self.output(f"aacp_target_folder: {self.env['aacp_target_folder']}")
        self.output(f"aacp_application_architecture_type: "
                    f"{self.env['aacp_application_architecture_type']}")
        self.output(f"aacp_application_install_lang: {self.env['aacp_application_install_lang']}")
        self.output(f"aacp_application_major_version: {self.env['aacp_application_major_version']}")

        # If the we're looking at Acrobat, then we need to process things differently
        if self.env['aacp_application_sap_code'] == 'APRO':
            self.process_apro_installer()
        else:
            # Set application_json_path
            self.env['aacp_application_json_path'] = os.path.join(self.env['aacp_install_pkg_path'],
                                                                  'Contents/Resources/HD',
                                                                  self.env['aacp_target_folder'],
                                                                  'Application.json')
            # Process HD installer
            self.process_hd_installer()


    def process_apro_installer(self):
        '''
            Process APRO (Acrobat) installer
        '''

        # Progress notification
        self.output("Processing Acrobat installer")
        self.env['aacp_proxy_xml_path'] = (os.path.join(self.env['aacp_install_pkg_path'],
                                                        'Contents/Resources/Setup',
                                                        self.env['aacp_target_folder'],
                                                        'proxy.xml'))
        self.output(f"aacp_proxy_xml_path: {self.env['aacp_proxy_xml_path']}")

        # Try to parse proxy_xml, raise if an issue
        try:
            parse_xml = ElementTree.parse(self.env['aacp_proxy_xml_path'])
        except xml.etree.ElementTree.ParseError as err_msg:
            raise ProcessorError from err_msg

        # Get root of xml
        root = parse_xml.getroot()

        # Get app_version
        self.env['version'] = (root.findtext
                                   ('./InstallerProperties/Property[@name=\'ProductVersion\']'))
        self.output(f"version: {self.env['version']}")

        # Set to []
        self.env['aacp_blocking_applications'] = []

        # 2nd part of process
        self.process_adobe_autopkg_application_data(None)


    def process_hd_installer(self):
        '''
            Process HD installer
        '''

        # Var declaration
        blocking_applications = []

        # Progress notification
        self.output(f"Processing {self.env['aacp_application_json_path']}...")

        # Read in app_json file
        with open(self.env['aacp_application_json_path'], encoding='utf-8') as json_file:
            # Try to parse app_json as json, raise if an issue
            try:
                load_json = json.load(json_file)
            except json.JSONDecodeError as err_msg:
                raise ProcessorError from err_msg

            # Get description
            tag_lines = load_json["ProductDescription"]["Tagline"]["Language"]
            for tag_line in tag_lines:
                if tag_line['locale'] == self.env['aacp_application_install_lang']:
                    self.env['aacp_application_description'] = tag_line['value']
                    # Add a . if missing from the end
                    if not self.env['aacp_application_description'].endswith('.'):
                        self.env['aacp_application_description'] = (
                                            self.env['aacp_application_description'] + '.')
                    self.output(f"aacp_application_description: "
                                f"{self.env['aacp_application_description']}")

            # Get conflicting processes
            conflicting_processes = load_json['ConflictingProcesses']['ConflictingProcess']
            for conflicting_process in conflicting_processes:
                # Only add if forceKillAllowed is False
                if not conflicting_process['forceKillAllowed']:
                    blocking_applications.append(conflicting_process['ProcessDisplayName'])
            if blocking_applications:
                self.env['aacp_blocking_applications'] = sorted(set(blocking_applications))
                self.output(f"aacp_blocking_applications: "
                            f"{self.env['aacp_blocking_applications']}")

            # 2nd part of process
            self.process_adobe_autopkg_application_data(load_json)


    def process_adobe_autopkg_application_data(self, load_json):
        '''
           Get more details from AdobeAutoPkgApplicationData.json
        '''

        # var declaration
        self.env['aacp_matched_json'] = None

        # Get this scripts parent directory
        self.env['aacp_parent_dir'] = os.path.dirname(os.path.realpath(__file__))
        self.output(f"aacp_parent_dir: {self.env['aacp_parent_dir']}")

        # Get the path to AdobeAutoPkgApplicationData.json
        self.env['aacp_json_path'] = os.path.join(self.env['aacp_parent_dir'],
                                                  'AdobeAutoPkgApplicationData.json')
        self.output(f"aacp_json_path: {self.env['aacp_json_path']}")

        # Progress notification
        self.output(f"Processing {self.env['aacp_json_path']}...")

        # Read in AdobeAutoPkgApplicationData.json file
        with open(self.env['aacp_json_path'], encoding='utf-8') as json_file:
            # Try to parse app_json as json, raise if an issue
            try:
                self.env['aacp_autopkg_json'] = json.load(json_file)
            except json.JSONDecodeError as err_msg:
                raise ProcessorError from err_msg

        # Get applications dict from the json
        for application_data in self.env['aacp_autopkg_json']:
            if application_data['sap_code'] == self.env['aacp_application_sap_code']:
                for aacp_version_json in application_data['versions'].keys():
                    try:
                        if aacp_version_json == self.env['aacp_application_major_version']:
                            self.env['aacp_matched_json'] = (application_data['versions']
                                                 [self.env['aacp_application_major_version']])
                            self.output(f"aacp_matched_json: {self.env['aacp_matched_json']}")
                    except KeyError as err_msg:
                        raise ProcessorError(f"Cannot find details for "
                                             f"{self.env['aacp_application_sap_code']} "
                                             f"with version: "
                                             f"{self.env['aacp_application_major_version']},"
                                             f" in {self.env['aacp_json_path']}... "
                                             f"exiting...") from err_msg

        # If we found a match
        if self.env['aacp_matched_json']:
            self.process_matched_json(load_json)
        else:
            raise ProcessorError("Cannot find details for "
                                f"{self.env['aacp_application_sap_code']} "
                                f"with version: {self.env['aacp_application_major_version']},"
                                f" in {self.env['aacp_json_path']}...")


    def process_matched_json(self, load_json):
        '''
            Get metadata with the aid of self.env['aacp_matched_json']
        '''
        # Applications version, if not APRO
        if not self.env['aacp_application_sap_code'] == 'APRO':
            self.env['version'] = load_json[self.env['aacp_matched_json']['app_json_version_key']]
            self.output(f"version: {self.env['version']}")

        # If the version is unsupported
        if 'unsupported_versions_dict' in self.env['aacp_matched_json']:
            self.output(f"unsupported_versions_dict: {self.env['aacp_matched_json']"
                        f"['unsupported_versions_dict']}")
            for unsupported_version in self.env['aacp_matched_json']['unsupported_versions_dict']:
                if unsupported_version == self.env['version']:
                    raise ProcessorError(f"{self.env['aacp_matched_json']['unsupported_versions_dict']"
                                         f"[unsupported_version]}")

        # Applications bundle id
        self.env['aacp_application_bundle_id'] = self.env['aacp_matched_json']['app_bundle_id']
        self.output(f"aacp_application_bundle_id: {self.env['aacp_application_bundle_id']}")

        # Applications minimum os, if APRO get from self.env['aacp_matched_json']
        if not self.env['aacp_application_sap_code'] == 'APRO':
            self.env['aacp_application_minimum_os'] = (re.search(self.env['aacp_matched_json']
                                                                 ['minos_regex'],
                                                                 load_json['SystemRequirement']
                                                                 ['CheckCompatibility']
                                                                 ['Content'])[1])
            self.output(f"aacp_application_minimum_os: {self.env['aacp_application_minimum_os']}")
        else:
            self.env['aacp_application_minimum_os'] = self.env['aacp_matched_json']['minos_version']

        # Applications version comparison key
        self.env['aacp_version_compare_key'] = (self.env['aacp_matched_json']
                                                ['version_comparison_key'])
        self.output(f"aacp_version_compare_key: {self.env['aacp_version_compare_key']}")

        # Applications display name
        self.env['aacp_application_display_name'] = self.env['aacp_matched_json']['display_name']
        self.output(f"aacp_application_display_name: {self.env['aacp_application_display_name']}")

        # Full path to the application bundle on disk, as per Terminal etc, not Finder
        self.env['aacp_application_full_path'] = self.env['aacp_matched_json']['app_path']

        # Get description if missing:
random
#!/usr/local/autopkg/python
# pylint: disable = invalid-name
'''
Copyright (c) 2022, dataJAR Ltd.  All rights reserved.
     Redistribution and use in source and binary forms, with or without
     modification, are permitted provided that the following conditions are met:
             * Redistributions of source code must retain the above copyright
               notice, this list of conditions and the following disclaimer.
             * Redistributions in binary form must reproduce the above copyright
               notice, this list of conditions and the following disclaimer in the
               documentation and/or other materials provided with the distribution.
             * Neither data JAR Ltd nor the names of its contributors may be used to
               endorse or promote products derived from this software without specific
               prior written permission.
     THIS SOFTWARE IS PROVIDED BY DATA JAR LTD 'AS IS' AND ANY
     EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
     WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
     DISCLAIMED. IN NO EVENT SHALL DATA JAR LTD BE LIABLE FOR ANY
     DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
     (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
     ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
     (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
     SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
SUPPORT FOR THIS PROGRAM
    This program is distributed 'as is' by DATA JAR LTD.
    For more information or support, please utilise the following resources:
            http://www.datajar.co.uk

DESCRIPTION

Generates installation information for Adobe Admin Console Packages
'''

# Standard Imports
import json
import os
import re
import xml
from xml.etree import ElementTree


# AutoPkg imports
# pylint: disable = import-error
from autopkglib import (Processor,
                        ProcessorError)


# Define class
__all__ = ['AdobeAdminConsolePackagesPkgInfoCreator']
__version__ = ['1.0']


# Class def
class AdobeAdminConsolePackagesPkgInfoCreator(Processor):
    '''
       Parses generated Adobe Admin Console Packages to generate installation information.
    '''

    description = __doc__

random
#!/usr/local/autopkg/python
# pylint: disable = invalid-name
'''
Copyright (c) 2022, dataJAR Ltd.  All rights reserved.
     Redistribution and use in source and binary forms, with or without
     modification, are permitted provided that the following conditions are met:
             * Redistributions of source code must retain the above copyright
               notice, this list of conditions and the following disclaimer.
             * Redistributions in binary form must reproduce the above copyright
               notice, this list of conditions and the following disclaimer in the
               documentation and/or other materials provided with the distribution.
             * Neither data JAR Ltd nor the names of its contributors may be used to
               endorse or promote products derived from this software without specific
               prior written permission.
     THIS SOFTWARE IS PROVIDED BY DATA JAR LTD 'AS IS' AND ANY
     EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
     WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
     DISCLAIMED. IN NO EVENT SHALL DATA JAR LTD BE LIABLE FOR ANY
     DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
     (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
     ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
     (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
     SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
SUPPORT FOR THIS PROGRAM
    This program is distributed 'as is' by DATA JAR LTD.
    For more information or support, please utilise the following resources:
            http://www.datajar.co.uk

DESCRIPTION

Generates installation information for Adobe Admin Console Packages
'''

# Standard Imports
import json
import os
import re
import xml
from xml.etree import ElementTree


# AutoPkg imports
# pylint: disable = import-error
from autopkglib import (Processor,
                        ProcessorError)


# Define class
__all__ = ['AdobeAdminConsolePackagesPkgInfoCreator']
__version__ = ['1.0']


# Class def
class AdobeAdminConsolePackagesPkgInfoCreator(Processor):
    '''
       Parses generated Adobe Admin Console Packages to generate installation information.
    '''

    description = __doc__

    input_variables = {
    }

    output_variables = {
        'aacp_application_path': {
            'description': 'aacp_installdir_value after regex applied to get the path alone.',
        },
        'aacp_application_architecture_type': {
            'description': 'The architecture type for the title, either arm64 or x86_64',
        },
        'aacp_application_install_lang': {
            'description': 'The titles installation langauage.',
        },
        'aacp_application_json_path': {
            'description': 'Path to the tiles Application.json file.',
        },
        'aacp_application_major_version': {
            'description': 'The major version of the title.',
        },
        'aacp_blocking_applications': {
            'description': 'Sorted set of the conflicting processes.',
        },
        'aacp_application_description': {
            'description': 'Short description of the title.',
        },
        'aacp_application_sap_code': {
            'description': 'The titles sap code.',
        },
        'aacp_install_pkg_path': {
            'description': 'Path to the Adobe*_Install.pkg.',
        },
        'aacp_json_path': {
            'description': 'Path to AdobeAutoPkgApplicationData.json.',
        },
        'aacp_matched_json': {
            'description': ('dict from AdobeAutoPkgApplicationData.json, which matches the '
                            '"aacp_application_sap_code" and "aacp_application_major_version".'),
        },
        'aacp_option_xml_path': {
            'description': 'Path to the tiles optionXML.xml file.',
        },
        'aacp_parent_dir': {
            'description': 'Path to parent directory of this processor.',
        },
        'aacp_proxy_xml_path': {
            'description': 'Acrobat only, path to proxy.xml.',
        },
        'aacp_target_folder': {
            'description': 'The name of the folder within the pkg to check files for metadata.',
        },
        'aacp_uninstall_pkg_path': {
            'description': 'Path to the Adobe*_Uninstall.pkg.',
        },
        'additional_pkginfo': {
            'description':
                'Additonal pkginfo fields extracted from the Adobe metadata.',
        },
        'version': {
            'description': 'The titles version.',
        }
    }


    def main(self):
        '''
            Find the Adobe*_Install.pkg in the Downloads dir based on the name, raise
            if corresponding *_Uninstall.pkg is missing.
        '''

        # Progress notification
        self.output("Starting versioner process...")

        # Get set packages_path
        self.env['aacp_packages_path'] = os.path.expanduser('~/Downloads/')
        self.output(f"aacp_packages_path: {self.env['aacp_packages_path']}")

        # Check that packages_path exists
        if not os.path.exists(self.env['aacp_packages_path']):
            raise ProcessorError(f"ERROR: Cannot locate directory, "
                                 f"{self.env['aacp_packages_path']}... exiting...")

        # Check that packages_path is a directory
        if not os.path.isdir(self.env['aacp_packages_path']):
            raise ProcessorError(f"ERROR: {self.env['aacp_packages_path']} is a not a "
                                  "directory... exiting...")

        # Path to Adobe*_Install.pkg
        self.env['aacp_install_pkg_path'] = (os.path.join(self.env['aacp_packages_path'],
                                                          self.env['NAME'], 'Build',
                                                          self.env['NAME'] + '_Install.pkg'))

        # Check that the path exists, raise if not
        if not os.path.exists(self.env['aacp_install_pkg_path']):
            raise ProcessorError(f"ERROR: Cannot find "
                                 f"{self.env['aacp_install_pkg_path']}... exiting...")
        self.output(f"aacp_install_pkg_path: {self.env['aacp_install_pkg_path']}")

        # Path to Adobe*_Uninstall.pkg
        self.env['aacp_uninstall_pkg_path'] = (os.path.join(self.env['aacp_packages_path'],
                                                            self.env['NAME'], 'Build',
                                                            self.env['NAME'] + '_Uninstall.pkg'))

        # Check that the path exists, raise if not
        if not os.path.exists(self.env['aacp_uninstall_pkg_path']):
            raise ProcessorError(f"ERROR: Cannot find {self.env['aacp_uninstall_pkg_path']}, these "
                                 f"recipes need packages of the Managed Package variety, which "
                                 f"include _Install and _Uninstall packages.... exiting...")
        self.output(f"aacp_uninstall_pkg_path {self.env['aacp_uninstall_pkg_path']}")

        # Process the titles optionXML.xml
        self.process_optionxml_xml()


    def process_optionxml_xml(self):
        '''
            Process the titles optionXML.xml
        '''

        # Var declaration
        self.env['aacp_application_install_lang'] = None

        # Path to titles optionXML.xml
        self.env['aacp_option_xml_path'] = os.path.join(self.env['aacp_install_pkg_path'],
                                                        'Contents', 'Resources', 'optionXML.xml')
        if not os.path.exists(self.env['aacp_option_xml_path']):
            raise ProcessorError(f"ERROR: Cannot find {self.env['aacp_option_xml_path']}... "
                                  "exiting...")
        self.output(f"aacp_option_xml_path: {self.env['aacp_option_xml_path']}")

        # Progress notification
        self.output(f"Processing: {self.env['aacp_option_xml_path']}...")

        # Try to parse option_xml, raise if an issue
        try:
            option_xml = ElementTree.parse(self.env['aacp_option_xml_path'])
        except xml.etree.ElementTree.ParseError as err_msg:
            raise ProcessorError from err_msg

        # Check to see if HDMedia keys set
        for hd_media in option_xml.findall('.//HDMedias/HDMedia'):
            # If we have HDMedia, set vars
            if hd_media.findtext('MediaType') == 'Product':
                self.env['aacp_application_install_lang'] = hd_media.findtext('installLang')
                self.env['aacp_application_sap_code'] = hd_media.findtext('SAPCode')
                self.env['aacp_target_folder'] = hd_media.findtext('TargetFolderName')
                self.env['aacp_application_major_version'] = hd_media.findtext('baseVersion')

        # If no HDMedia is found, then self.env['aacp_application_install_lang'] will be none
        if not self.env['aacp_application_install_lang']:
            # Get vars for RIBS media
            for ribs_media in option_xml.findall('.//Medias/Media'):
                self.env['aacp_application_install_lang'] = ribs_media.findtext('installLang')
                self.env['aacp_application_sap_code'] = ribs_media.findtext('SAPCode')
                self.env['aacp_target_folder'] = ribs_media.findtext('TargetFolderName')
                self.env['aacp_application_major_version'] = ribs_media.findtext('prodVersion')

        # Check for Processor Architecture
        self.env['aacp_application_architecture_type'] = (
            option_xml.findtext('ProcessorArchitecture').lower())
        if not self.env['aacp_application_architecture_type'] in ['arm64', 'macuniversal', 'x64']:
            raise ProcessorError(f"architecture_type: "
                                 f"{self.env['aacp_application_architecture_type']},"
                                 f" is neither arm64, macuniversal nor x64... exiting...")
        if self.env['aacp_application_architecture_type'] == 'x64':
            self.env['aacp_application_architecture_type'] = 'x86_64'

        # Display progress
        self.output(f"aacp_application_sap_code: {self.env['aacp_application_sap_code']}")
        self.output(f"aacp_target_folder: {self.env['aacp_target_folder']}")
        self.output(f"aacp_application_architecture_type: "
                    f"{self.env['aacp_application_architecture_type']}")
        self.output(f"aacp_application_install_lang: {self.env['aacp_application_install_lang']}")
        self.output(f"aacp_application_major_version: {self.env['aacp_application_major_version']}")

        # If the we're looking at Acrobat, then we need to process things differently
        if self.env['aacp_application_sap_code'] == 'APRO':
            self.process_apro_installer()
        else:
            # Set application_json_path
            self.env['aacp_application_json_path'] = os.path.join(self.env['aacp_install_pkg_path'],
                                                                  'Contents/Resources/HD',
                                                                  self.env['aacp_target_folder'],
                                                                  'Application.json')
            # Process HD installer
            self.process_hd_installer()


    def process_apro_installer(self):
        '''
            Process APRO (Acrobat) installer
        '''

        # Progress notification
        self.output("Processing Acrobat installer")
        self.env['aacp_proxy_xml_path'] = (os.path.join(self.env['aacp_install_pkg_path'],
                                                        'Contents/Resources/Setup',
                                                        self.env['aacp_target_folder'],
                                                        'proxy.xml'))
        self.output(f"aacp_proxy_xml_path: {self.env['aacp_proxy_xml_path']}")

        # Try to parse proxy_xml, raise if an issue
        try:
            parse_xml = ElementTree.parse(self.env['aacp_proxy_xml_path'])
        except xml.etree.ElementTree.ParseError as err_msg:
            raise ProcessorError from err_msg

        # Get root of xml
        root = parse_xml.getroot()

        # Get app_version
        self.env['version'] = (root.findtext
                                   ('./InstallerProperties/Property[@name=\'ProductVersion\']'))
        self.output(f"version: {self.env['version']}")

        # Set to []
        self.env['aacp_blocking_applications'] = []

        # 2nd part of process
        self.process_adobe_autopkg_application_data(None)


    def process_hd_installer(self):
        '''
            Process HD installer
        '''

        # Var declaration
        blocking_applications = []

        # Progress notification
        self.output(f"Processing {self.env['aacp_application_json_path']}...")

        # Read in app_json file
        with open(self.env['aacp_application_json_path'], encoding='utf-8') as json_file:
            # Try to parse app_json as json, raise if an issue
            try:
                load_json = json.load(json_file)
            except json.JSONDecodeError as err_msg:
                raise ProcessorError from err_msg

            # Get description
            tag_lines = load_json["ProductDescription"]["Tagline"]["Language"]
            for tag_line in tag_lines:
                if tag_line['locale'] == self.env['aacp_application_install_lang']:
                    self.env['aacp_application_description'] = tag_line['value']
                    # Add a . if missing from the end
                    if not self.env['aacp_application_description'].endswith('.'):
                        self.env['aacp_application_description'] = (
                                            self.env['aacp_application_description'] + '.')
                    self.output(f"aacp_application_description: "
                                f"{self.env['aacp_application_description']}")

            # Get conflicting processes
            conflicting_processes = load_json['ConflictingProcesses']['ConflictingProcess']
            for conflicting_process in conflicting_processes:
                # Only add if forceKillAllowed is False
                if not conflicting_process['forceKillAllowed']:
                    blocking_applications.append(conflicting_process['ProcessDisplayName'])
            if blocking_applications:
                self.env['aacp_blocking_applications'] = sorted(set(blocking_applications))
                self.output(f"aacp_blocking_applications: "
                            f"{self.env['aacp_blocking_applications']}")

            # 2nd part of process
            self.process_adobe_autopkg_application_data(load_json)


    def process_adobe_autopkg_application_data(self, load_json):
        '''
           Get more details from AdobeAutoPkgApplicationData.json
        '''

        # var declaration
        self.env['aacp_matched_json'] = None

        # Get this scripts parent directory
        self.env['aacp_parent_dir'] = os.path.dirname(os.path.realpath(__file__))
        self.output(f"aacp_parent_dir: {self.env['aacp_parent_dir']}")

        # Get the path to AdobeAutoPkgApplicationData.json
        self.env['aacp_json_path'] = os.path.join(self.env['aacp_parent_dir'],
                                                  'AdobeAutoPkgApplicationData.json')
        self.output(f"aacp_json_path: {self.env['aacp_json_path']}")

        # Progress notification
        self.output(f"Processing {self.env['aacp_json_path']}...")

        # Read in AdobeAutoPkgApplicationData.json file
        with open(self.env['aacp_json_path'], encoding='utf-8') as json_file:
            # Try to parse app_json as json, raise if an issue
            try:
                self.env['aacp_autopkg_json'] = json.load(json_file)
            except json.JSONDecodeError as err_msg:
                raise ProcessorError from err_msg

        # Get applications dict from the json
        for application_data in self.env['aacp_autopkg_json']:
            if application_data['sap_code'] == self.env['aacp_application_sap_code']:
                for aacp_version_json in application_data['versions'].keys():
                    try:
                        if aacp_version_json == self.env['aacp_application_major_version']:
                            self.env['aacp_matched_json'] = (application_data['versions']
                                                 [self.env['aacp_application_major_version']])
                            self.output(f"aacp_matched_json: {self.env['aacp_matched_json']}")
                    except KeyError as err_msg:
                        raise ProcessorError(f"Cannot find details for "
                                             f"{self.env['aacp_application_sap_code']} "
                                             f"with version: "
                                             f"{self.env['aacp_application_major_version']},"
                                             f" in {self.env['aacp_json_path']}... "
                                             f"exiting...") from err_msg

        # If we found a match
        if self.env['aacp_matched_json']:
            self.process_matched_json(load_json)
        else:
            raise ProcessorError("Cannot find details for "
                                f"{self.env['aacp_application_sap_code']} "
                                f"with version: {self.env['aacp_application_major_version']},"
                                f" in {self.env['aacp_json_path']}...")


    def process_matched_json(self, load_json):
        '''
            Get metadata with the aid of self.env['aacp_matched_json']
        '''
        # Applications version, if not APRO
        if not self.env['aacp_application_sap_code'] == 'APRO':
            self.env['version'] = load_json[self.env['aacp_matched_json']['app_json_version_key']]
            self.output(f"version: {self.env['version']}")

        # If the version is unsupported
        if 'unsupported_versions_dict' in self.env['aacp_matched_json']:
            self.output(f"unsupported_versions_dict: {self.env['aacp_matched_json']"
                        f"['unsupported_versions_dict']}")
            for unsupported_version in self.env['aacp_matched_json']['unsupported_versions_dict']:
                if unsupported_version == self.env['version']:
                    raise ProcessorError(f"{self.env['aacp_matched_json']['unsupported_versions_dict']"
                                         f"[unsupported_version]}")

        # Applications bundle id
        self.env['aacp_application_bundle_id'] = self.env['aacp_matched_json']['app_bundle_id']
        self.output(f"aacp_application_bundle_id: {self.env['aacp_application_bundle_id']}")

        # Applications minimum os, if APRO get from self.env['aacp_matched_json']
        if not self.env['aacp_application_sap_code'] == 'APRO':
            self.env['aacp_application_minimum_os'] = (re.search(self.env['aacp_matched_json']
                                                                 ['minos_regex'],
                                                                 load_json['SystemRequirement']
                                                                 ['CheckCompatibility']
                                                                 ['Content'])[1])
            self.output(f"aacp_application_minimum_os: {self.env['aacp_application_minimum_os']}")
        else:
            self.env['aacp_application_minimum_os'] = self.env['aacp_matched_json']['minos_version']

        # Applications version comparison key
        self.env['aacp_version_compare_key'] = (self.env['aacp_matched_json']
                                                ['version_comparison_key'])
        self.output(f"aacp_version_compare_key: {self.env['aacp_version_compare_key']}")

        # Applications display name
        self.env['aacp_application_display_name'] = self.env['aacp_matched_json']['display_name']
        self.output(f"aacp_application_display_name: {self.env['aacp_application_display_name']}")

        # Full path to the application bundle on disk, as per Terminal etc, not Finder
        self.env['aacp_application_full_path'] = self.env['aacp_matched_json']['app_path']

        # Get description if missing:
        if not 'aacp_application_description' in self.env:
            self.env['aacp_application_description'] = (self.env['aacp_matched_json']
                                                        ['app_description'])
            self.output(f"aacp_application_description: description missing, set from "
                        f"aacp_matched_json: "
                        f"{self.env['aacp_application_description']}")
        # Add a . if missing from the end
        if not self.env['aacp_application_description'].endswith('.'):
            self.env['aacp_application_description'] = (self.env['aacp_application_description']
                                                        + '.')

        # Get additional_blocking_applications
        if 'additional_blocking_applications' in self.env['aacp_matched_json']:
            for additional_blocking_application in (self.env['aacp_matched_json']
                                                    ['additional_blocking_applications']):
                self.env['aacp_blocking_applications'].append(additional_blocking_application)
            self.env['aacp_blocking_applications'] = (
                sorted(set(self.env['aacp_blocking_applications'])))
            self.output(f"aacp_blocking_applications updated: "
                        f"{self.env['aacp_blocking_applications']}")

        # Now we have the deets, let's use them
        self.create_pkginfo()


    def create_pkginfo(self):
        '''
            Create pkginfo with found details
        '''

        # var declaration
        pkginfo = {}

        # Set pkginfo variables
        if (self.env['aacp_application_architecture_type'] and
            not self.env['aacp_application_architecture_type'] == 'macuniversal'):
            pkginfo['supported_architectures'] = [self.env['aacp_application_architecture_type']]

        if self.env['aacp_application_description']:
            pkginfo['description'] = self.env['aacp_application_description']

random
#!/usr/local/autopkg/python
# pylint: disable = invalid-name
'''
Copyright (c) 2022, dataJAR Ltd.  All rights reserved.
     Redistribution and use in source and binary forms, with or without
     modification, are permitted provided that the following conditions are met:
             * Redistributions of source code must retain the above copyright
               notice, this list of conditions and the following disclaimer.
             * Redistributions in binary form must reproduce the above copyright
               notice, this list of conditions and the following disclaimer in the
               documentation and/or other materials provided with the distribution.
             * Neither data JAR Ltd nor the names of its contributors may be used to
               endorse or promote products derived from this software without specific
               prior written permission.
     THIS SOFTWARE IS PROVIDED BY DATA JAR LTD 'AS IS' AND ANY
     EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
     WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
     DISCLAIMED. IN NO EVENT SHALL DATA JAR LTD BE LIABLE FOR ANY
     DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
     (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
     ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
     (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
     SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
SUPPORT FOR THIS PROGRAM
    This program is distributed 'as is' by DATA JAR LTD.
    For more information or support, please utilise the following resources:
            http://www.datajar.co.uk

DESCRIPTION

Generates installation information for Adobe Admin Console Packages
'''

# Standard Imports
import json
import os
import re
import xml
from xml.etree import ElementTree


# AutoPkg imports
# pylint: disable = import-error
from autopkglib import (Processor,
                        ProcessorError)


# Define class
__all__ = ['AdobeAdminConsolePackagesPkgInfoCreator']
__version__ = ['1.0']


# Class def
class AdobeAdminConsolePackagesPkgInfoCreator(Processor):
    '''
       Parses generated Adobe Admin Console Packages to generate installation information.
    '''

    description = __doc__

    input_variables = {
    }

    output_variables = {
        'aacp_application_path': {
            'description': 'aacp_installdir_value after regex applied to get the path alone.',
        },
        'aacp_application_architecture_type': {
            'description': 'The architecture type for the title, either arm64 or x86_64',
        },
        'aacp_application_install_lang': {
            'description': 'The titles installation langauage.',
        },
        'aacp_application_json_path': {
            'description': 'Path to the tiles Application.json file.',
        },
        'aacp_application_major_version': {
            'description': 'The major version of the title.',
        },
        'aacp_blocking_applications': {
            'description': 'Sorted set of the conflicting processes.',
        },
        'aacp_application_description': {
            'description': 'Short description of the title.',
        },
        'aacp_application_sap_code': {
            'description': 'The titles sap code.',
        },
        'aacp_install_pkg_path': {
            'description': 'Path to the Adobe*_Install.pkg.',
        },
        'aacp_json_path': {
            'description': 'Path to AdobeAutoPkgApplicationData.json.',
        },
        'aacp_matched_json': {
            'description': ('dict from AdobeAutoPkgApplicationData.json, which matches the '
                            '"aacp_application_sap_code" and "aacp_application_major_version".'),
        },
        'aacp_option_xml_path': {
            'description': 'Path to the tiles optionXML.xml file.',
        },
        'aacp_parent_dir': {
            'description': 'Path to parent directory of this processor.',
        },
        'aacp_proxy_xml_path': {
            'description': 'Acrobat only, path to proxy.xml.',
        },
        'aacp_target_folder': {
            'description': 'The name of the folder within the pkg to check files for metadata.',
        },
        'aacp_uninstall_pkg_path': {
            'description': 'Path to the Adobe*_Uninstall.pkg.',
        },
        'additional_pkginfo': {
            'description':
                'Additonal pkginfo fields extracted from the Adobe metadata.',
        },
        'version': {
            'description': 'The titles version.',
        }
    }


    def main(self):
        '''
            Find the Adobe*_Install.pkg in the Downloads dir based on the name, raise
            if corresponding *_Uninstall.pkg is missing.
        '''

        # Progress notification
        self.output("Starting versioner process...")

        # Get set packages_path
        self.env['aacp_packages_path'] = os.path.expanduser('~/Downloads/')
        self.output(f"aacp_packages_path: {self.env['aacp_packages_path']}")

        # Check that packages_path exists
        if not os.path.exists(self.env['aacp_packages_path']):
            raise ProcessorError(f"ERROR: Cannot locate directory, "
                                 f"{self.env['aacp_packages_path']}... exiting...")

        # Check that packages_path is a directory
        if not os.path.isdir(self.env['aacp_packages_path']):
            raise ProcessorError(f"ERROR: {self.env['aacp_packages_path']} is a not a "
                                  "directory... exiting...")

        # Path to Adobe*_Install.pkg
        self.env['aacp_install_pkg_path'] = (os.path.join(self.env['aacp_packages_path'],
                                                          self.env['NAME'], 'Build',
                                                          self.env['NAME'] + '_Install.pkg'))

        # Check that the path exists, raise if not
        if not os.path.exists(self.env['aacp_install_pkg_path']):
            raise ProcessorError(f"ERROR: Cannot find "
                                 f"{self.env['aacp_install_pkg_path']}... exiting...")
        self.output(f"aacp_install_pkg_path: {self.env['aacp_install_pkg_path']}")

        # Path to Adobe*_Uninstall.pkg
        self.env['aacp_uninstall_pkg_path'] = (os.path.join(self.env['aacp_packages_path'],
                                                            self.env['NAME'], 'Build',
                                                            self.env['NAME'] + '_Uninstall.pkg'))

        # Check that the path exists, raise if not
        if not os.path.exists(self.env['aacp_uninstall_pkg_path']):
            raise ProcessorError(f"ERROR: Cannot find {self.env['aacp_uninstall_pkg_path']}, these "
                                 f"recipes need packages of the Managed Package variety, which "
                                 f"include _Install and _Uninstall packages.... exiting...")
        self.output(f"aacp_uninstall_pkg_path {self.env['aacp_uninstall_pkg_path']}")

        # Process the titles optionXML.xml
        self.process_optionxml_xml()


    def process_optionxml_xml(self):
        '''
            Process the titles optionXML.xml
        '''

        # Var declaration
        self.env['aacp_application_install_lang'] = None

        # Path to titles optionXML.xml
        self.env['aacp_option_xml_path'] = os.path.join(self.env['aacp_install_pkg_path'],
                                                        'Contents', 'Resources', 'optionXML.xml')
        if not os.path.exists(self.env['aacp_option_xml_path']):
            raise ProcessorError(f"ERROR: Cannot find {self.env['aacp_option_xml_path']}... "
                                  "exiting...")
        self.output(f"aacp_option_xml_path: {self.env['aacp_option_xml_path']}")

        # Progress notification
        self.output(f"Processing: {self.env['aacp_option_xml_path']}...")

        # Try to parse option_xml, raise if an issue
        try:
            option_xml = ElementTree.parse(self.env['aacp_option_xml_path'])
        except xml.etree.ElementTree.ParseError as err_msg:
            raise ProcessorError from err_msg

        # Check to see if HDMedia keys set
        for hd_media in option_xml.findall('.//HDMedias/HDMedia'):
            # If we have HDMedia, set vars
            if hd_media.findtext('MediaType') == 'Product':
                self.env['aacp_application_install_lang'] = hd_media.findtext('installLang')
                self.env['aacp_application_sap_code'] = hd_media.findtext('SAPCode')
                self.env['aacp_target_folder'] = hd_media.findtext('TargetFolderName')
                self.env['aacp_application_major_version'] = hd_media.findtext('baseVersion')

        # If no HDMedia is found, then self.env['aacp_application_install_lang'] will be none
        if not self.env['aacp_application_install_lang']:
            # Get vars for RIBS media
            for ribs_media in option_xml.findall('.//Medias/Media'):
                self.env['aacp_application_install_lang'] = ribs_media.findtext('installLang')
                self.env['aacp_application_sap_code'] = ribs_media.findtext('SAPCode')
                self.env['aacp_target_folder'] = ribs_media.findtext('TargetFolderName')
                self.env['aacp_application_major_version'] = ribs_media.findtext('prodVersion')

        # Check for Processor Architecture
        self.env['aacp_application_architecture_type'] = (
            option_xml.findtext('ProcessorArchitecture').lower())
        if not self.env['aacp_application_architecture_type'] in ['arm64', 'macuniversal', 'x64']:
            raise ProcessorError(f"architecture_type: "
                                 f"{self.env['aacp_application_architecture_type']},"
                                 f" is neither arm64, macuniversal nor x64... exiting...")
        if self.env['aacp_application_architecture_type'] == 'x64':
            self.env['aacp_application_architecture_type'] = 'x86_64'

        # Display progress
        self.output(f"aacp_application_sap_code: {self.env['aacp_application_sap_code']}")
        self.output(f"aacp_target_folder: {self.env['aacp_target_folder']}")
        self.output(f"aacp_application_architecture_type: "
                    f"{self.env['aacp_application_architecture_type']}")
        self.output(f"aacp_application_install_lang: {self.env['aacp_application_install_lang']}")
        self.output(f"aacp_application_major_version: {self.env['aacp_application_major_version']}")

        # If the we're looking at Acrobat, then we need to process things differently
        if self.env['aacp_application_sap_code'] == 'APRO':
            self.process_apro_installer()
        else:
            # Set application_json_path
            self.env['aacp_application_json_path'] = os.path.join(self.env['aacp_install_pkg_path'],
                                                                  'Contents/Resources/HD',
                                                                  self.env['aacp_target_folder'],
                                                                  'Application.json')
            # Process HD installer
            self.process_hd_installer()


    def process_apro_installer(self):
        '''
            Process APRO (Acrobat) installer
        '''

        # Progress notification
        self.output("Processing Acrobat installer")
        self.env['aacp_proxy_xml_path'] = (os.path.join(self.env['aacp_install_pkg_path'],
                                                        'Contents/Resources/Setup',
                                                        self.env['aacp_target_folder'],
random
#!/usr/local/autopkg/python
# pylint: disable = invalid-name
'''
Copyright (c) 2022, dataJAR Ltd.  All rights reserved.
     Redistribution and use in source and binary forms, with or without
     modification, are permitted provided that the following conditions are met:
             * Redistributions of source code must retain the above copyright
               notice, this list of conditions and the following disclaimer.
             * Redistributions in binary form must reproduce the above copyright
               notice, this list of conditions and the following disclaimer in the
               documentation and/or other materials provided with the distribution.
             * Neither data JAR Ltd nor the names of its contributors may be used to
               endorse or promote products derived from this software without specific
               prior written permission.
     THIS SOFTWARE IS PROVIDED BY DATA JAR LTD 'AS IS' AND ANY
     EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
     WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
     DISCLAIMED. IN NO EVENT SHALL DATA JAR LTD BE LIABLE FOR ANY
     DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
     (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
     ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
     (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
     SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
SUPPORT FOR THIS PROGRAM
    This program is distributed 'as is' by DATA JAR LTD.
    For more information or support, please utilise the following resources:
            http://www.datajar.co.uk

DESCRIPTION

Generates installation information for Adobe Admin Console Packages
'''

# Standard Imports
import json
import os
import re
import xml
from xml.etree import ElementTree


# AutoPkg imports
# pylint: disable = import-error
from autopkglib import (Processor,
                        ProcessorError)


# Define class
__all__ = ['AdobeAdminConsolePackagesPkgInfoCreator']
__version__ = ['1.0']


# Class def
class AdobeAdminConsolePackagesPkgInfoCreator(Processor):
    '''
       Parses generated Adobe Admin Console Packages to generate installation information.
    '''

    description = __doc__

    input_variables = {
    }

    output_variables = {
        'aacp_application_path': {
            'description': 'aacp_installdir_value after regex applied to get the path alone.',
        },
        'aacp_application_architecture_type': {
            'description': 'The architecture type for the title, either arm64 or x86_64',
        },
        'aacp_application_install_lang': {
            'description': 'The titles installation langauage.',
        },
        'aacp_application_json_path': {
            'description': 'Path to the tiles Application.json file.',
        },
        'aacp_application_major_version': {
            'description': 'The major version of the title.',
        },
        'aacp_blocking_applications': {
            'description': 'Sorted set of the conflicting processes.',
        },
        'aacp_application_description': {
            'description': 'Short description of the title.',
        },
        'aacp_application_sap_code': {
            'description': 'The titles sap code.',
        },
        'aacp_install_pkg_path': {
            'description': 'Path to the Adobe*_Install.pkg.',
        },
        'aacp_json_path': {
            'description': 'Path to AdobeAutoPkgApplicationData.json.',
        },
        'aacp_matched_json': {
            'description': ('dict from AdobeAutoPkgApplicationData.json, which matches the '
                            '"aacp_application_sap_code" and "aacp_application_major_version".'),
        },
        'aacp_option_xml_path': {
            'description': 'Path to the tiles optionXML.xml file.',
        },
        'aacp_parent_dir': {
            'description': 'Path to parent directory of this processor.',
        },
        'aacp_proxy_xml_path': {
            'description': 'Acrobat only, path to proxy.xml.',
        },
        'aacp_target_folder': {
            'description': 'The name of the folder within the pkg to check files for metadata.',
        },
        'aacp_uninstall_pkg_path': {
            'description': 'Path to the Adobe*_Uninstall.pkg.',
        },
        'additional_pkginfo': {
            'description':
                'Additonal pkginfo fields extracted from the Adobe metadata.',
        },
        'version': {
            'description': 'The titles version.',
        }
    }


    def main(self):
        '''
            Find the Adobe*_Install.pkg in the Downloads dir based on the name, raise
            if corresponding *_Uninstall.pkg is missing.
        '''

        # Progress notification
        self.output("Starting versioner process...")

        # Get set packages_path
        self.env['aacp_packages_path'] = os.path.expanduser('~/Downloads/')
        self.output(f"aacp_packages_path: {self.env['aacp_packages_path']}")

        # Check that packages_path exists
        if not os.path.exists(self.env['aacp_packages_path']):
            raise ProcessorError(f"ERROR: Cannot locate directory, "
                                 f"{self.env['aacp_packages_path']}... exiting...")

        # Check that packages_path is a directory
        if not os.path.isdir(self.env['aacp_packages_path']):
            raise ProcessorError(f"ERROR: {self.env['aacp_packages_path']} is a not a "
                                  "directory... exiting...")

        # Path to Adobe*_Install.pkg
        self.env['aacp_install_pkg_path'] = (os.path.join(self.env['aacp_packages_path'],
                                                          self.env['NAME'], 'Build',
                                                          self.env['NAME'] + '_Install.pkg'))

        # Check that the path exists, raise if not
        if not os.path.exists(self.env['aacp_install_pkg_path']):
            raise ProcessorError(f"ERROR: Cannot find "
                                 f"{self.env['aacp_install_pkg_path']}... exiting...")
        self.output(f"aacp_install_pkg_path: {self.env['aacp_install_pkg_path']}")

        # Path to Adobe*_Uninstall.pkg
        self.env['aacp_uninstall_pkg_path'] = (os.path.join(self.env['aacp_packages_path'],
                                                            self.env['NAME'], 'Build',
                                                            self.env['NAME'] + '_Uninstall.pkg'))

        # Check that the path exists, raise if not
        if not os.path.exists(self.env['aacp_uninstall_pkg_path']):
            raise ProcessorError(f"ERROR: Cannot find {self.env['aacp_uninstall_pkg_path']}, these "
                                 f"recipes need packages of the Managed Package variety, which "
                                 f"include _Install and _Uninstall packages.... exiting...")
        self.output(f"aacp_uninstall_pkg_path {self.env['aacp_uninstall_pkg_path']}")

        # Process the titles optionXML.xml
        self.process_optionxml_xml()


    def process_optionxml_xml(self):
        '''
            Process the titles optionXML.xml
        '''

        # Var declaration
        self.env['aacp_application_install_lang'] = None

        # Path to titles optionXML.xml
        self.env['aacp_option_xml_path'] = os.path.join(self.env['aacp_install_pkg_path'],
                                                        'Contents', 'Resources', 'optionXML.xml')
        if not os.path.exists(self.env['aacp_option_xml_path']):
            raise ProcessorError(f"ERROR: Cannot find {self.env['aacp_option_xml_path']}... "
                                  "exiting...")
        self.output(f"aacp_option_xml_path: {self.env['aacp_option_xml_path']}")

        # Progress notification
        self.output(f"Processing: {self.env['aacp_option_xml_path']}...")

        # Try to parse option_xml, raise if an issue
        try:
            option_xml = ElementTree.parse(self.env['aacp_option_xml_path'])
        except xml.etree.ElementTree.ParseError as err_msg:
            raise ProcessorError from err_msg

        # Check to see if HDMedia keys set
        for hd_media in option_xml.findall('.//HDMedias/HDMedia'):
            # If we have HDMedia, set vars
            if hd_media.findtext('MediaType') == 'Product':
                self.env['aacp_application_install_lang'] = hd_media.findtext('installLang')
                self.env['aacp_application_sap_code'] = hd_media.findtext('SAPCode')
                self.env['aacp_target_folder'] = hd_media.findtext('TargetFolderName')
                self.env['aacp_application_major_version'] = hd_media.findtext('baseVersion')

        # If no HDMedia is found, then self.env['aacp_application_install_lang'] will be none
        if not self.env['aacp_application_install_lang']:
            # Get vars for RIBS media
            for ribs_media in option_xml.findall('.//Medias/Media'):
                self.env['aacp_application_install_lang'] = ribs_media.findtext('installLang')
                self.env['aacp_application_sap_code'] = ribs_media.findtext('SAPCode')
                self.env['aacp_target_folder'] = ribs_media.findtext('TargetFolderName')
                self.env['aacp_application_major_version'] = ribs_media.findtext('prodVersion')

        # Check for Processor Architecture
        self.env['aacp_application_architecture_type'] = (
            option_xml.findtext('ProcessorArchitecture').lower())
        if not self.env['aacp_application_architecture_type'] in ['arm64', 'macuniversal', 'x64']:
            raise ProcessorError(f"architecture_type: "
                                 f"{self.env['aacp_application_architecture_type']},"
                                 f" is neither arm64, macuniversal nor x64... exiting...")
        if self.env['aacp_application_architecture_type'] == 'x64':
            self.env['aacp_application_architecture_type'] = 'x86_64'

        # Display progress
        self.output(f"aacp_application_sap_code: {self.env['aacp_application_sap_code']}")
        self.output(f"aacp_target_folder: {self.env['aacp_target_folder']}")
        self.output(f"aacp_application_architecture_type: "
                    f"{self.env['aacp_application_architecture_type']}")
        self.output(f"aacp_application_install_lang: {self.env['aacp_application_install_lang']}")
        self.output(f"aacp_application_major_version: {self.env['aacp_application_major_version']}")

        # If the we're looking at Acrobat, then we need to process things differently
        if self.env['aacp_application_sap_code'] == 'APRO':
            self.process_apro_installer()
        else:
            # Set application_json_path
            self.env['aacp_application_json_path'] = os.path.join(self.env['aacp_install_pkg_path'],
                                                                  'Contents/Resources/HD',
                                                                  self.env['aacp_target_folder'],
                                                                  'Application.json')
            # Process HD installer
            self.process_hd_installer()


    def process_apro_installer(self):
        '''
            Process APRO (Acrobat) installer
        '''

        # Progress notification
        self.output("Processing Acrobat installer")
        self.env['aacp_proxy_xml_path'] = (os.path.join(self.env['aacp_install_pkg_path'],
                                                        'Contents/Resources/Setup',
                                                        self.env['aacp_target_folder'],
                                                        'proxy.xml'))
        self.output(f"aacp_proxy_xml_path: {self.env['aacp_proxy_xml_path']}")

        # Try to parse proxy_xml, raise if an issue
        try:
            parse_xml = ElementTree.parse(self.env['aacp_proxy_xml_path'])
        except xml.etree.ElementTree.ParseError as err_msg:
            raise ProcessorError from err_msg

        # Get root of xml
        root = parse_xml.getroot()

        # Get app_version
        self.env['version'] = (root.findtext
                                   ('./InstallerProperties/Property[@name=\'ProductVersion\']'))
        self.output(f"version: {self.env['version']}")

        # Set to []
        self.env['aacp_blocking_applications'] = []

        # 2nd part of process
        self.process_adobe_autopkg_application_data(None)


    def process_hd_installer(self):
        '''
            Process HD installer
        '''

        # Var declaration
        blocking_applications = []

        # Progress notification
        self.output(f"Processing {self.env['aacp_application_json_path']}...")

        # Read in app_json file
        with open(self.env['aacp_application_json_path'], encoding='utf-8') as json_file:
            # Try to parse app_json as json, raise if an issue
            try:
                load_json = json.load(json_file)
            except json.JSONDecodeError as err_msg:
                raise ProcessorError from err_msg

            # Get description
            tag_lines = load_json["ProductDescription"]["Tagline"]["Language"]
            for tag_line in tag_lines:
                if tag_line['locale'] == self.env['aacp_application_install_lang']:
                    self.env['aacp_application_description'] = tag_line['value']
                    # Add a . if missing from the end
                    if not self.env['aacp_application_description'].endswith('.'):
                        self.env['aacp_application_description'] = (
                                            self.env['aacp_application_description'] + '.')
                    self.output(f"aacp_application_description: "
                                f"{self.env['aacp_application_description']}")

            # Get conflicting processes
            conflicting_processes = load_json['ConflictingProcesses']['ConflictingProcess']
            for conflicting_process in conflicting_processes:
                # Only add if forceKillAllowed is False
                if not conflicting_process['forceKillAllowed']:
                    blocking_applications.append(conflicting_process['ProcessDisplayName'])
            if blocking_applications:
                self.env['aacp_blocking_applications'] = sorted(set(blocking_applications))
                self.output(f"aacp_blocking_applications: "
                            f"{self.env['aacp_blocking_applications']}")

            # 2nd part of process
            self.process_adobe_autopkg_application_data(load_json)


    def process_adobe_autopkg_application_data(self, load_json):
        '''
           Get more details from AdobeAutoPkgApplicationData.json
        '''

        # var declaration
        self.env['aacp_matched_json'] = None

        # Get this scripts parent directory
        self.env['aacp_parent_dir'] = os.path.dirname(os.path.realpath(__file__))
        self.output(f"aacp_parent_dir: {self.env['aacp_parent_dir']}")

        # Get the path to AdobeAutoPkgApplicationData.json
        self.env['aacp_json_path'] = os.path.join(self.env['aacp_parent_dir'],
                                                  'AdobeAutoPkgApplicationData.json')
        self.output(f"aacp_json_path: {self.env['aacp_json_path']}")

        # Progress notification
        self.output(f"Processing {self.env['aacp_json_path']}...")

        # Read in AdobeAutoPkgApplicationData.json file
        with open(self.env['aacp_json_path'], encoding='utf-8') as json_file:
            # Try to parse app_json as json, raise if an issue
            try:
                self.env['aacp_autopkg_json'] = json.load(json_file)
            except json.JSONDecodeError as err_msg:
                raise ProcessorError from err_msg

        # Get applications dict from the json
        for application_data in self.env['aacp_autopkg_json']:
            if application_data['sap_code'] == self.env['aacp_application_sap_code']:
                for aacp_version_json in application_data['versions'].keys():
                    try:
                        if aacp_version_json == self.env['aacp_application_major_version']:
                            self.env['aacp_matched_json'] = (application_data['versions']
                                                 [self.env['aacp_application_major_version']])
                            self.output(f"aacp_matched_json: {self.env['aacp_matched_json']}")
                    except KeyError as err_msg:
                        raise ProcessorError(f"Cannot find details for "
                                             f"{self.env['aacp_application_sap_code']} "
                                             f"with version: "
                                             f"{self.env['aacp_application_major_version']},"
                                             f" in {self.env['aacp_json_path']}... "
                                             f"exiting...") from err_msg

        # If we found a match
        if self.env['aacp_matched_json']:
            self.process_matched_json(load_json)
        else:
            raise ProcessorError("Cannot find details for "
                                f"{self.env['aacp_application_sap_code']} "
                                f"with version: {self.env['aacp_application_major_version']},"
                                f" in {self.env['aacp_json_path']}...")


    def process_matched_json(self, load_json):
        '''
            Get metadata with the aid of self.env['aacp_matched_json']
        '''
        # Applications version, if not APRO
        if not self.env['aacp_application_sap_code'] == 'APRO':
            self.env['version'] = load_json[self.env['aacp_matched_json']['app_json_version_key']]
            self.output(f"version: {self.env['version']}")

        # If the version is unsupported
        if 'unsupported_versions_dict' in self.env['aacp_matched_json']:
            self.output(f"unsupported_versions_dict: {self.env['aacp_matched_json']"
                        f"['unsupported_versions_dict']}")
            for unsupported_version in self.env['aacp_matched_json']['unsupported_versions_dict']:
                if unsupported_version == self.env['version']:
                    raise ProcessorError(f"{self.env['aacp_matched_json']['unsupported_versions_dict']"
                                         f"[unsupported_version]}")

        # Applications bundle id
        self.env['aacp_application_bundle_id'] = self.env['aacp_matched_json']['app_bundle_id']
        self.output(f"aacp_application_bundle_id: {self.env['aacp_application_bundle_id']}")

        # Applications minimum os, if APRO get from self.env['aacp_matched_json']
        if not self.env['aacp_application_sap_code'] == 'APRO':
            self.env['aacp_application_minimum_os'] = (re.search(self.env['aacp_matched_json']
                                                                 ['minos_regex'],
                                                                 load_json['SystemRequirement']
                                                                 ['CheckCompatibility']
                                                                 ['Content'])[1])
            self.output(f"aacp_application_minimum_os: {self.env['aacp_application_minimum_os']}")
        else:
random
        self.create_pkginfo()                 self.replace_element(some_key)             self.process_adobe_autopkg_application_data(load_json)         self.process_optionxml_xml()             self.process_apro_installer()             self.process_hd_installer()     PROCESSOR = AdobeAdminConsolePackagesPkgInfoCreator()         self.process_adobe_autopkg_application_data(None)             self.process_matched_json(load_json)                 self.env['aacp_autopkg_json'] = json.load(json_file)                 load_json = json.load(json_file)         '''         if not 'aacp_application_description' in self.env:     input_variables = {         if self.env['aacp_application_display_name']:                                                         'proxy.xml'))             self.env['aacp_application_minimum_os'] = self.env['aacp_matched_json']['minos_version']