├── .gitignore ├── Duo ├── Duo Desktop.png ├── Duo Desktop.install.recipe ├── Duo Desktop.pkg.recipe ├── Duo Desktop.download.recipe └── Duo Desktop.munki.recipe ├── README.md ├── CarbonCopyCloner ├── CarbonCopyCloner.install.recipe ├── CarbonCopyCloner.download.recipe ├── CarbonCopyCloner.pkg.recipe └── CarbonCopyCloner.munki.recipe ├── osquery ├── osquery.install.recipe ├── osquery.munki.recipe └── osquery.download.recipe ├── GoogleTalkPlugin ├── GoogleTalkPlugin.download.recipe ├── MunkiPkginfoReceiptsEditor.py └── GoogleTalkPlugin.munki.recipe ├── Zulip ├── Zulip.download.recipe └── Zulip.munki.recipe ├── Colloquy ├── Colloquy.download.recipe └── Colloquy.munki.recipe ├── ParallelsDesktop ├── ParallelsDesktop.download.recipe ├── ParallelsDesktop6.munki.recipe ├── ParallelsDesktop7.munki.recipe ├── ParallelsDesktop8.munki.recipe ├── ParallelsDesktop9.munki.recipe ├── ParallelsDesktop10.munki.recipe └── ParallelsURLProvider.py ├── Panic ├── Coda.download.recipe ├── Unison.download.recipe ├── Coda2.download.recipe ├── Transmit.download.recipe ├── Coda.munki.recipe ├── Coda2.munki.recipe ├── Unison.munki.recipe └── Transmit.munki.recipe ├── Handbrake ├── Handbrake.download.recipe └── Handbrake.munki.recipe ├── PrimateLabs ├── Wiinote.download.recipe ├── Geekbench2.download.recipe ├── Wiinote.munki.recipe └── Geekbench2.munki.recipe ├── CoRD ├── CoRD.download.recipe └── CoRD.munki.recipe ├── SublimeText ├── SublimeText3.install.recipe ├── SublimeText2.download.recipe ├── SublimeText2.munki.recipe ├── SublimeText3.munki.recipe └── SublimeText3.download.recipe ├── Chicken ├── Chicken.download.recipe └── Chicken.munki.recipe ├── Xslimmer ├── Xslimmer.download.recipe └── Xslimmer.munki.recipe ├── InsomniaX ├── InsomniaX.download.recipe └── InsomniaX.munki.recipe ├── gfxCardStatus ├── gfxCardStatus.download.recipe └── gfxCardStatus.munki.recipe ├── Mailplane ├── Mailplane3.download.recipe └── Mailplane3.munki.recipe ├── smcFanControl ├── smcFanControl.download.recipe └── smcFanControl.munki.recipe ├── StarTech ├── StarTechUSBDriver.download.recipe └── StarTechUSBDriver.munki.recipe ├── Opera ├── Opera.install.recipe ├── Opera.download.recipe ├── Opera.munki.recipe └── OperaURLProvider.py ├── Quicksilver ├── Quicksilver.munki.recipe └── Quicksilver.download.recipe ├── SurteesStudios ├── Bartender.download.recipe └── Bartender.munki.recipe ├── Twocanoes ├── WinclonePro4.download.recipe └── WinclonePro4.munki.recipe ├── CordlessDog ├── Stay.munki.recipe └── Stay.download.recipe ├── Bjango ├── iStatMenus.munki.recipe └── iStatMenus.download.recipe ├── iTerm2 ├── iTerm2.download.recipe └── iTerm2.munki.recipe ├── Github ├── Github.download.recipe ├── Github.munki.recipe └── GitHub.pkg.recipe ├── FileZilla ├── FileZilla.munki.recipe ├── FileZilla_nightly.munki.recipe ├── FileZilla_nightly.download.recipe ├── FileZilla_beta.munki.recipe └── FileZilla.download.recipe ├── StuffIt ├── StuffItExpander.download.recipe └── StuffItExpander.munki.recipe ├── Flux ├── Flux.download.recipe └── Flux.munki.recipe ├── Caffeine ├── Caffeine.munki.recipe └── Caffeine.download.recipe └── LICENSE /.gitignore: -------------------------------------------------------------------------------- 1 | # .DS_Store files! 2 | .DS_Store 3 | 4 | # don't track .pyc files 5 | *.pyc 6 | -------------------------------------------------------------------------------- /Duo/Duo Desktop.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/autopkg/keeleysam-recipes/HEAD/Duo/Duo Desktop.png -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | keeleysam's cookbook of autopkg recipes 2 | ======= 3 | 4 | These are a bunch of recipes for [autopkg](https://github.com/autopkg/autopkg/)! 5 | 6 | You can add this repo to your autopkg install with the following command: 7 | ``` 8 | autopkg repo-add keeleysam-recipes 9 | ``` 10 | -------------------------------------------------------------------------------- /Duo/Duo Desktop.install.recipe: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Identifier 6 | com.keeleysam.recipes.install.DuoDesktop 7 | Input 8 | 9 | NAME 10 | Duo Desktop 11 | 12 | ParentRecipe 13 | com.keeleysam.recipes.download.DuoDesktop 14 | Process 15 | 16 | 17 | Processor 18 | Installer 19 | Arguments 20 | 21 | pkg_path 22 | %pathname% 23 | 24 | 25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /CarbonCopyCloner/CarbonCopyCloner.install.recipe: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Description 6 | Installs the current release version of CarbonCopyCloner. 7 | Identifier 8 | com.github.keeleysam.recipes.CarbonCopyCloner.install 9 | Input 10 | 11 | NAME 12 | CarbonCopyCloner 13 | 14 | MinimumVersion 15 | 0.4.0 16 | ParentRecipe 17 | com.github.keeleysam.recipes.pkg.CarbonCopyCloner 18 | Process 19 | 20 | 21 | Processor 22 | Installer 23 | 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /Duo/Duo Desktop.pkg.recipe: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Identifier 6 | com.keeleysam.recipes.pkg.DuoDesktop 7 | Input 8 | 9 | NAME 10 | Duo Desktop 11 | 12 | ParentRecipe 13 | com.keeleysam.recipes.download.DuoDesktop 14 | Process 15 | 16 | 17 | Processor 18 | PkgCopier 19 | Arguments 20 | 21 | source_pkg 22 | %pathname% 23 | pkg_path 24 | %RECIPE_CACHE_DIR%/%NAME%-%version%.pkg 25 | 26 | 27 | 28 | 29 | 30 | -------------------------------------------------------------------------------- /osquery/osquery.install.recipe: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Description 6 | Installs the current release version of osquery. 7 | Identifier 8 | com.github.keeleysam.recipes.osquery.install 9 | Input 10 | 11 | NAME 12 | osquery 13 | 14 | MinimumVersion 15 | 0.5.0 16 | ParentRecipe 17 | com.github.keeleysam.recipes.osquery.download 18 | Process 19 | 20 | 21 | Arguments 22 | 23 | pkg_path 24 | %pathname% 25 | 26 | Processor 27 | Installer 28 | 29 | 30 | 31 | 32 | -------------------------------------------------------------------------------- /GoogleTalkPlugin/GoogleTalkPlugin.download.recipe: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Identifier 6 | com.github.keeleysam.autopkg.download.GoogleTalkPlugin 7 | Input 8 | 9 | DOWNLOAD_URL 10 | https://dl.google.com/googletalk/googletalkplugin/GoogleVoiceAndVideoSetup.dmg 11 | NAME 12 | GoogleTalkPlugin 13 | 14 | Process 15 | 16 | 17 | Arguments 18 | 19 | filename 20 | %NAME%.dmg 21 | url 22 | %DOWNLOAD_URL% 23 | 24 | Processor 25 | URLDownloader 26 | 27 | 28 | Arguments 29 | 30 | Processor 31 | EndOfCheckPhase 32 | 33 | 34 | 35 | 36 | -------------------------------------------------------------------------------- /Zulip/Zulip.download.recipe: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Description 6 | Downloads latest Zulip disk image. 7 | Identifier 8 | com.github.keeleysam.recipes.zulip.download 9 | Input 10 | 11 | DOWNLOAD_URL 12 | https://zulip.com/dist/apps/mac/Zulip-latest.dmg 13 | NAME 14 | Zulip 15 | 16 | MinimumVersion 17 | 0.2.0 18 | Process 19 | 20 | 21 | Arguments 22 | 23 | filename 24 | %NAME%.dmg 25 | url 26 | %DOWNLOAD_URL% 27 | 28 | Processor 29 | URLDownloader 30 | 31 | 32 | Processor 33 | EndOfCheckPhase 34 | 35 | 36 | 37 | 38 | -------------------------------------------------------------------------------- /Colloquy/Colloquy.download.recipe: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Description 6 | Downloads the current release version of Colloquy. 7 | Identifier 8 | com.github.keeleysam.recipes.Colloquy.download 9 | Input 10 | 11 | NAME 12 | Colloquy 13 | SPARKLE_FEED_URL 14 | https://colloquy.info/update.php?rss 15 | 16 | MinimumVersion 17 | 0.2.0 18 | Process 19 | 20 | 21 | Arguments 22 | 23 | appcast_url 24 | %SPARKLE_FEED_URL% 25 | 26 | Processor 27 | SparkleUpdateInfoProvider 28 | 29 | 30 | Processor 31 | URLDownloader 32 | 33 | 34 | Processor 35 | EndOfCheckPhase 36 | 37 | 38 | 39 | 40 | -------------------------------------------------------------------------------- /ParallelsDesktop/ParallelsDesktop.download.recipe: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Description 6 | Downloads the current installation package for the specified version of Parallels Desktop. Specify the version via the NAME variable. 7 | Identifier 8 | com.github.keeleysam.recipes.ParallelsDesktop.download 9 | Input 10 | 11 | MinimumVersion 12 | 0.2.1 13 | Process 14 | 15 | 16 | Arguments 17 | 18 | product_name 19 | %NAME% 20 | 21 | Processor 22 | ParallelsURLProvider 23 | 24 | 25 | Arguments 26 | 27 | url 28 | %url% 29 | 30 | Processor 31 | URLDownloader 32 | 33 | 34 | Processor 35 | EndOfCheckPhase 36 | 37 | 38 | 39 | 40 | -------------------------------------------------------------------------------- /Panic/Coda.download.recipe: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Description 6 | Downloads the current release version of Coda. 7 | Identifier 8 | com.github.keeleysam.autopkg.download.Coda 9 | Input 10 | 11 | NAME 12 | Coda 13 | SPARKLE_FEED_URL 14 | https://www.panic.com/updates/coda/coda-en.xml 15 | 16 | Process 17 | 18 | 19 | Arguments 20 | 21 | appcast_url 22 | %SPARKLE_FEED_URL% 23 | 24 | Processor 25 | SparkleUpdateInfoProvider 26 | 27 | 28 | Arguments 29 | 30 | filename 31 | %NAME%.zip 32 | 33 | Processor 34 | URLDownloader 35 | 36 | 37 | Processor 38 | EndOfCheckPhase 39 | 40 | 41 | 42 | 43 | -------------------------------------------------------------------------------- /Panic/Unison.download.recipe: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Description 6 | Downloads the current release version of Unison. 7 | Identifier 8 | com.github.keeleysam.autopkg.download.Unison 9 | Input 10 | 11 | NAME 12 | Unison 13 | SPARKLE_FEED_URL 14 | https://www.panic.com/updates/unison/unison-en.xml 15 | 16 | Process 17 | 18 | 19 | Arguments 20 | 21 | appcast_url 22 | %SPARKLE_FEED_URL% 23 | 24 | Processor 25 | SparkleUpdateInfoProvider 26 | 27 | 28 | Arguments 29 | 30 | filename 31 | %NAME%.zip 32 | 33 | Processor 34 | URLDownloader 35 | 36 | 37 | Processor 38 | EndOfCheckPhase 39 | 40 | 41 | 42 | 43 | -------------------------------------------------------------------------------- /Handbrake/Handbrake.download.recipe: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Description 6 | Downloads the current release version of HandBrake. 7 | Identifier 8 | com.github.keeleysam.autopkg.download.HandBrake 9 | Input 10 | 11 | NAME 12 | HandBrake 13 | SPARKLE_FEED_URL 14 | https://handbrake.fr/appcast.x86_64.xml 15 | 16 | Process 17 | 18 | 19 | Arguments 20 | 21 | appcast_url 22 | %SPARKLE_FEED_URL% 23 | 24 | Processor 25 | SparkleUpdateInfoProvider 26 | 27 | 28 | Arguments 29 | 30 | filename 31 | %NAME%.dmg 32 | 33 | Processor 34 | URLDownloader 35 | 36 | 37 | Processor 38 | EndOfCheckPhase 39 | 40 | 41 | 42 | 43 | -------------------------------------------------------------------------------- /Panic/Coda2.download.recipe: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Description 6 | Downloads the current release version of Coda 2. 7 | Identifier 8 | com.github.keeleysam.autopkg.download.Coda2 9 | Input 10 | 11 | NAME 12 | Coda2 13 | SPARKLE_FEED_URL 14 | https://www.panic.com/updates/update.php?appName=Coda%202 15 | 16 | Process 17 | 18 | 19 | Arguments 20 | 21 | appcast_url 22 | %SPARKLE_FEED_URL% 23 | 24 | Processor 25 | SparkleUpdateInfoProvider 26 | 27 | 28 | Arguments 29 | 30 | filename 31 | %NAME%.zip 32 | 33 | Processor 34 | URLDownloader 35 | 36 | 37 | Processor 38 | EndOfCheckPhase 39 | 40 | 41 | 42 | 43 | -------------------------------------------------------------------------------- /PrimateLabs/Wiinote.download.recipe: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Description 6 | Downloads the current release version of Wiinote. 7 | Identifier 8 | com.github.keeleysam.autopkg.download.Wiinote 9 | Input 10 | 11 | NAME 12 | Wiinote 13 | SPARKLE_FEED_URL 14 | https://www.primatelabs.com/appcast/wiinote.xml 15 | 16 | Process 17 | 18 | 19 | Arguments 20 | 21 | appcast_url 22 | %SPARKLE_FEED_URL% 23 | 24 | Processor 25 | SparkleUpdateInfoProvider 26 | 27 | 28 | Arguments 29 | 30 | filename 31 | %NAME%.zip 32 | 33 | Processor 34 | URLDownloader 35 | 36 | 37 | Processor 38 | EndOfCheckPhase 39 | 40 | 41 | 42 | 43 | -------------------------------------------------------------------------------- /Panic/Transmit.download.recipe: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Description 6 | Downloads the current release version of Transmit. 7 | Identifier 8 | com.github.keeleysam.autopkg.download.Transmit 9 | Input 10 | 11 | NAME 12 | Transmit 13 | SPARKLE_FEED_URL 14 | https://www.panic.com/updates/transmit/transmit-en.xml 15 | 16 | Process 17 | 18 | 19 | Arguments 20 | 21 | appcast_url 22 | %SPARKLE_FEED_URL% 23 | 24 | Processor 25 | SparkleUpdateInfoProvider 26 | 27 | 28 | Arguments 29 | 30 | filename 31 | %NAME%.zip 32 | 33 | Processor 34 | URLDownloader 35 | 36 | 37 | Processor 38 | EndOfCheckPhase 39 | 40 | 41 | 42 | 43 | -------------------------------------------------------------------------------- /PrimateLabs/Geekbench2.download.recipe: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Description 6 | Downloads the current release version of Geekbench 2. 7 | Identifier 8 | com.github.keeleysam.autopkg.download.Geekbench2 9 | Input 10 | 11 | NAME 12 | Geekbench2 13 | SPARKLE_FEED_URL 14 | https://www.primatelabs.com/appcast/geekbench2.xml 15 | 16 | Process 17 | 18 | 19 | Arguments 20 | 21 | appcast_url 22 | %SPARKLE_FEED_URL% 23 | 24 | Processor 25 | SparkleUpdateInfoProvider 26 | 27 | 28 | Arguments 29 | 30 | filename 31 | %NAME%.zip 32 | 33 | Processor 34 | URLDownloader 35 | 36 | 37 | Processor 38 | EndOfCheckPhase 39 | 40 | 41 | 42 | 43 | -------------------------------------------------------------------------------- /CoRD/CoRD.download.recipe: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Description 6 | Downloads the current release version of CoRD. 7 | Identifier 8 | com.github.keeleysam.recipes.CoRD.download 9 | Input 10 | 11 | NAME 12 | CoRD 13 | SPARKLE_FEED_URL 14 | http://cord.sourceforge.net/sparkle.xml 15 | 16 | MinimumVersion 17 | 0.2.0 18 | Process 19 | 20 | 21 | Arguments 22 | 23 | appcast_url 24 | %SPARKLE_FEED_URL% 25 | 26 | Processor 27 | SparkleUpdateInfoProvider 28 | 29 | 30 | Arguments 31 | 32 | filename 33 | %NAME%.zip 34 | 35 | Processor 36 | URLDownloader 37 | 38 | 39 | Processor 40 | EndOfCheckPhase 41 | 42 | 43 | 44 | 45 | -------------------------------------------------------------------------------- /SublimeText/SublimeText3.install.recipe: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Description 6 | Downloads and installs the current release version of Sublime Text 3. 7 | Identifier 8 | com.github.keeleysam.recipes.SublimeText.SublimeText3.install 9 | Input 10 | 11 | NAME 12 | SublimeText3 13 | 14 | MinimumVersion 15 | 0.5.1 16 | ParentRecipe 17 | com.github.keeleysam.recipes.SublimeText.SublimeText3.download 18 | Process 19 | 20 | 21 | Arguments 22 | 23 | dmg_path 24 | %pathname% 25 | items_to_copy 26 | 27 | 28 | destination_path 29 | /Applications/ 30 | source_item 31 | Sublime Text.app 32 | 33 | 34 | 35 | Processor 36 | InstallFromDMG 37 | 38 | 39 | 40 | 41 | -------------------------------------------------------------------------------- /Chicken/Chicken.download.recipe: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Description 6 | Downloads the current release version of 🐔. 7 | Identifier 8 | com.github.keeleysam.recipes.Chicken.download 9 | Input 10 | 11 | NAME 12 | Chicken 13 | SPARKLE_FEED_URL 14 | http://chicken.sourceforge.net/chicken.xml 15 | 16 | MinimumVersion 17 | 0.2.0 18 | Process 19 | 20 | 21 | Arguments 22 | 23 | appcast_url 24 | %SPARKLE_FEED_URL% 25 | 26 | Processor 27 | SparkleUpdateInfoProvider 28 | 29 | 30 | Arguments 31 | 32 | filename 33 | %NAME%.dmg 34 | 35 | Processor 36 | URLDownloader 37 | 38 | 39 | Processor 40 | EndOfCheckPhase 41 | 42 | 43 | 44 | 45 | -------------------------------------------------------------------------------- /Xslimmer/Xslimmer.download.recipe: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Description 6 | Downloads the current release version of Xslimmer. 7 | Identifier 8 | com.github.keeleysam.recipes.Xslimmer.download 9 | Input 10 | 11 | NAME 12 | Xslimmer 13 | SPARKLE_FEED_URL 14 | https://www.xslimmer.com/releases.xml 15 | 16 | MinimumVersion 17 | 0.2.0 18 | Process 19 | 20 | 21 | Arguments 22 | 23 | appcast_url 24 | %SPARKLE_FEED_URL% 25 | 26 | Processor 27 | SparkleUpdateInfoProvider 28 | 29 | 30 | Arguments 31 | 32 | filename 33 | %NAME%.zip 34 | 35 | Processor 36 | URLDownloader 37 | 38 | 39 | Processor 40 | EndOfCheckPhase 41 | 42 | 43 | 44 | 45 | -------------------------------------------------------------------------------- /InsomniaX/InsomniaX.download.recipe: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Description 6 | Downloads the current release version of InsomniaX. 7 | Identifier 8 | com.github.keeleysam.recipes.InsomniaX.download 9 | Input 10 | 11 | NAME 12 | InsomniaX 13 | SPARKLE_FEED_URL 14 | http://insomniax.semaja2.net/appcast.xml 15 | 16 | MinimumVersion 17 | 0.2.1 18 | Process 19 | 20 | 21 | Arguments 22 | 23 | appcast_url 24 | %SPARKLE_FEED_URL% 25 | 26 | Processor 27 | SparkleUpdateInfoProvider 28 | 29 | 30 | Arguments 31 | 32 | filename 33 | %NAME%.tgz 34 | 35 | Processor 36 | URLDownloader 37 | 38 | 39 | Processor 40 | EndOfCheckPhase 41 | 42 | 43 | 44 | 45 | -------------------------------------------------------------------------------- /gfxCardStatus/gfxCardStatus.download.recipe: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Description 6 | Downloads the current release version of gfxCardStatus. 7 | Identifier 8 | com.github.keeleysam.recipes.gfxCardStatus.download 9 | Input 10 | 11 | NAME 12 | gfxCardStatus 13 | SPARKLE_FEED_URL 14 | https://gfx.io/appcast.xml 15 | 16 | MinimumVersion 17 | 0.2.1 18 | Process 19 | 20 | 21 | Arguments 22 | 23 | appcast_url 24 | %SPARKLE_FEED_URL% 25 | 26 | Processor 27 | SparkleUpdateInfoProvider 28 | 29 | 30 | Arguments 31 | 32 | filename 33 | %NAME%.zip 34 | 35 | Processor 36 | URLDownloader 37 | 38 | 39 | Processor 40 | EndOfCheckPhase 41 | 42 | 43 | 44 | 45 | -------------------------------------------------------------------------------- /Mailplane/Mailplane3.download.recipe: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Description 6 | Downloads the current release version of Mailplane3. 7 | Identifier 8 | com.github.keeleysam.recipes.Mailplane.3.download 9 | Input 10 | 11 | NAME 12 | Mailplane3 13 | SPARKLE_FEED_URL 14 | https://update.mailplaneapp.com/appcast.php?appName=Mailplane%203 15 | 16 | MinimumVersion 17 | 0.2.1 18 | Process 19 | 20 | 21 | Arguments 22 | 23 | appcast_url 24 | %SPARKLE_FEED_URL% 25 | 26 | Processor 27 | SparkleUpdateInfoProvider 28 | 29 | 30 | Arguments 31 | 32 | filename 33 | %NAME%.tbz 34 | 35 | Processor 36 | URLDownloader 37 | 38 | 39 | Processor 40 | EndOfCheckPhase 41 | 42 | 43 | 44 | 45 | -------------------------------------------------------------------------------- /smcFanControl/smcFanControl.download.recipe: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Description 6 | Downloads the current release version of smcFanControl. 7 | Identifier 8 | com.github.keeleysam.recipes.smcFanControl.download 9 | Input 10 | 11 | NAME 12 | smcFanControl 13 | SPARKLE_FEED_URL 14 | https://www.eidac.de/smcfancontrol/smcfancontrol.xml 15 | 16 | MinimumVersion 17 | 0.2.1 18 | Process 19 | 20 | 21 | Arguments 22 | 23 | appcast_url 24 | %SPARKLE_FEED_URL% 25 | 26 | Processor 27 | SparkleUpdateInfoProvider 28 | 29 | 30 | Arguments 31 | 32 | filename 33 | %NAME%.zip 34 | 35 | Processor 36 | URLDownloader 37 | 38 | 39 | Processor 40 | EndOfCheckPhase 41 | 42 | 43 | 44 | 45 | -------------------------------------------------------------------------------- /SublimeText/SublimeText2.download.recipe: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Description 6 | Downloads the current release version of Sublime Text 2. 7 | Identifier 8 | com.github.keeleysam.recipes.SublimeText.SublimeText2.download 9 | Input 10 | 11 | NAME 12 | SublimeText2 13 | SPARKLE_FEED_URL 14 | https://www.sublimetext.com/updates/2/stable/appcast_osx.xml 15 | 16 | MinimumVersion 17 | 0.2.1 18 | Process 19 | 20 | 21 | Arguments 22 | 23 | appcast_url 24 | %SPARKLE_FEED_URL% 25 | 26 | Processor 27 | SparkleUpdateInfoProvider 28 | 29 | 30 | Arguments 31 | 32 | filename 33 | %NAME%.dmg 34 | 35 | Processor 36 | URLDownloader 37 | 38 | 39 | Processor 40 | EndOfCheckPhase 41 | 42 | 43 | 44 | 45 | -------------------------------------------------------------------------------- /Zulip/Zulip.munki.recipe: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Description 6 | Downloads the latest Zulip disk image and imports into Munki. 7 | Identifier 8 | com.github.keeleysam.recipes.zulip.munki 9 | Input 10 | 11 | MUNKI_REPO_SUBDIR 12 | apps/Dropbox/Zulip 13 | NAME 14 | Zulip 15 | pkginfo 16 | 17 | catalogs 18 | 19 | production 20 | 21 | category 22 | Social Networking 23 | developer 24 | Dropbox 25 | name 26 | %NAME% 27 | unattended_install 28 | 29 | 30 | 31 | MinimumVersion 32 | 0.2.0 33 | ParentRecipe 34 | com.github.keeleysam.recipes.zulip.download 35 | Process 36 | 37 | 38 | Arguments 39 | 40 | pkg_path 41 | %pathname% 42 | repo_subdirectory 43 | %MUNKI_REPO_SUBDIR% 44 | 45 | Processor 46 | MunkiImporter 47 | 48 | 49 | 50 | 51 | -------------------------------------------------------------------------------- /StarTech/StarTechUSBDriver.download.recipe: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Description 6 | Downloads the latest version of StarTechUSBDriver. 7 | Identifier 8 | com.github.keeleysam-recipes.download.StarTechUSBDriver 9 | Input 10 | 11 | DOWNLOAD_URL 12 | https://sgcdn.startech.com/005329/media/sets/ax88179_Mac_Drivers/[ASIX88179]%20Mac%20USB%20Network%20Adapter.zip 13 | NAME 14 | StarTechUSBDriver 15 | FILENAME 16 | AX88179_178A 17 | 18 | MinimumVersion 19 | 0.6.1 20 | Process 21 | 22 | 23 | Arguments 24 | 25 | filename 26 | %NAME%.zip 27 | url 28 | %DOWNLOAD_URL% 29 | 30 | Processor 31 | URLDownloader 32 | 33 | 34 | Processor 35 | EndOfCheckPhase 36 | 37 | 38 | Arguments 39 | 40 | archive_path 41 | %pathname% 42 | 43 | Processor 44 | Unarchiver 45 | 46 | 47 | 48 | -------------------------------------------------------------------------------- /Opera/Opera.install.recipe: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Description 6 | Downloads latest Opera disk image and installs it. 7 | Identifier 8 | com.github.keeleysam.recipes.Opera.install 9 | Input 10 | 11 | RELEASE 12 | latest 13 | LOCALE 14 | en_US 15 | 16 | MinimumVersion 17 | 0.4.0 18 | ParentRecipe 19 | com.github.keeleysam.recipes.Opera.download 20 | Process 21 | 22 | 23 | Processor 24 | InstallFromDMG 25 | Arguments 26 | 27 | dmg_path 28 | %pathname% 29 | items_to_copy 30 | 31 | 32 | source_item 33 | Opera.app 34 | destination_path 35 | /Applications/ 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | -------------------------------------------------------------------------------- /Handbrake/Handbrake.munki.recipe: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Description 6 | Downloads the current release version of HandBrake and imports into Munki. 7 | Identifier 8 | com.github.keeleysam.autopkg.munki.HandBrake 9 | Input 10 | 11 | MUNKI_REPO_SUBDIR 12 | apps/HandBrake 13 | NAME 14 | HandBrake 15 | pkginfo 16 | 17 | catalogs 18 | 19 | testing 20 | 21 | description 22 | HandBrake is an open-source, GPL-licensed, multiplatform, multithreaded video transcoder. 23 | display_name 24 | HandBrake 25 | name 26 | %NAME% 27 | unattended_install 28 | 29 | 30 | 31 | ParentRecipe 32 | com.github.keeleysam.autopkg.download.HandBrake 33 | Process 34 | 35 | 36 | Arguments 37 | 38 | pkg_path 39 | %pathname% 40 | repo_subdirectory 41 | %MUNKI_REPO_SUBDIR% 42 | 43 | Processor 44 | MunkiImporter 45 | 46 | 47 | 48 | 49 | -------------------------------------------------------------------------------- /Quicksilver/Quicksilver.munki.recipe: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Identifier 6 | com.github.keeleysam.recipes.Quicksilver.munki 7 | Input 8 | 9 | MUNKI_REPO_SUBDIR 10 | apps/Quicksilver 11 | NAME 12 | Quicksilver 13 | pkginfo 14 | 15 | catalogs 16 | 17 | testing 18 | 19 | description 20 | Quicksilver is a fast and free Mac OS X productivity application that gives you the power to control your Mac quickly and elegantly. Quicksilver learns your habits, making your everyday chores simple and efficient. 21 | display_name 22 | Quicksilver 23 | name 24 | %NAME% 25 | unattended_install 26 | 27 | 28 | 29 | MinimumVersion 30 | 0.2.1 31 | ParentRecipe 32 | com.github.keeleysam.recipes.Quicksilver.download 33 | Process 34 | 35 | 36 | Arguments 37 | 38 | pkg_path 39 | %pathname% 40 | repo_subdirectory 41 | %MUNKI_REPO_SUBDIR% 42 | 43 | Processor 44 | MunkiImporter 45 | 46 | 47 | 48 | 49 | -------------------------------------------------------------------------------- /SurteesStudios/Bartender.download.recipe: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Description 6 | Downloads the current release version of Bartender. 7 | Identifier 8 | com.github.keeleysam.recipes.surteesstudios.Bartender.download 9 | Input 10 | 11 | NAME 12 | Bartender 13 | SPARKLE_FEED_URL 14 | https://www.macbartender.com/B2/updates/Appcast.xml 15 | USER_AGENT 16 | Mozilla/5.0 17 | 18 | MinimumVersion 19 | 0.2.0 20 | Process 21 | 22 | 23 | Arguments 24 | 25 | appcast_request_headers 26 | 27 | user-agent 28 | %USER_AGENT% 29 | 30 | appcast_url 31 | %SPARKLE_FEED_URL% 32 | 33 | Processor 34 | SparkleUpdateInfoProvider 35 | 36 | 37 | Arguments 38 | 39 | request_headers 40 | 41 | user-agent 42 | %USER_AGENT% 43 | 44 | 45 | Processor 46 | URLDownloader 47 | 48 | 49 | Processor 50 | EndOfCheckPhase 51 | 52 | 53 | 54 | 55 | -------------------------------------------------------------------------------- /Chicken/Chicken.munki.recipe: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Description 6 | Gets the current release version of Chicken and imports into Munki. 7 | Identifier 8 | com.github.keeleysam.recipes.Chicken.munki 9 | Input 10 | 11 | MUNKI_REPO_SUBDIR 12 | apps/Chicken 13 | NAME 14 | Chicken 15 | pkginfo 16 | 17 | catalogs 18 | 19 | testing 20 | 21 | description 22 | Chicken is a VNC client for Mac OS X. A VNC client allows remote access to another computer over the network. Chicken is based on Chicken of the VNC. 23 | display_name 24 | Chicken 25 | name 26 | %NAME% 27 | unattended_install 28 | 29 | 30 | 31 | MinimumVersion 32 | 0.2.0 33 | ParentRecipe 34 | com.github.keeleysam.recipes.Chicken.download 35 | Process 36 | 37 | 38 | Arguments 39 | 40 | pkg_path 41 | %pathname% 42 | repo_subdirectory 43 | %MUNKI_REPO_SUBDIR% 44 | 45 | Processor 46 | MunkiImporter 47 | 48 | 49 | 50 | 51 | -------------------------------------------------------------------------------- /osquery/osquery.munki.recipe: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Identifier 6 | com.github.keeleysam.recipes.osquery.munki 7 | Input 8 | 9 | MUNKI_REPO_SUBDIR 10 | utilities/osquery 11 | NAME 12 | osquery 13 | pkginfo 14 | 15 | catalogs 16 | 17 | production 18 | 19 | category 20 | Utilities 21 | description 22 | osquery allows you to easily ask questions about your Linux and OSX infrastructure. Whether your goal is intrusion detection, infrastructure reliability, or compliance, osquery gives you the ability to empower and inform a broad set of organizations within your company. 23 | developer 24 | Facebook 25 | name 26 | %NAME% 27 | unattended_install 28 | 29 | 30 | 31 | ParentRecipe 32 | com.github.keeleysam.recipes.osquery.download 33 | Process 34 | 35 | 36 | Arguments 37 | 38 | pkg_path 39 | %pathname% 40 | repo_subdirectory 41 | %MUNKI_REPO_SUBDIR% 42 | 43 | Processor 44 | MunkiImporter 45 | 46 | 47 | 48 | 49 | -------------------------------------------------------------------------------- /SublimeText/SublimeText2.munki.recipe: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Description 6 | Downloads the current release version of Sublime Text 2 and imports into Munki. 7 | Identifier 8 | com.github.keeleysam.recipes.SublimeText.SublimeText2.munki 9 | Input 10 | 11 | MUNKI_REPO_SUBDIR 12 | apps/SublimeText/SublimeText2 13 | NAME 14 | SublimeText2 15 | pkginfo 16 | 17 | catalogs 18 | 19 | production 20 | 21 | category 22 | Developer Tools 23 | description 24 | Sublime Text is an advanced text editor for OS X. 25 | display_name 26 | Sublime Text 2 27 | name 28 | %NAME% 29 | unattended_install 30 | 31 | 32 | 33 | MinimumVersion 34 | 0.2.1 35 | ParentRecipe 36 | com.github.keeleysam.recipes.SublimeText.SublimeText2.download 37 | Process 38 | 39 | 40 | Arguments 41 | 42 | pkg_path 43 | %pathname% 44 | repo_subdirectory 45 | %MUNKI_REPO_SUBDIR% 46 | 47 | Processor 48 | MunkiImporter 49 | 50 | 51 | 52 | 53 | -------------------------------------------------------------------------------- /SublimeText/SublimeText3.munki.recipe: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Description 6 | Downloads the current release version of Sublime Text 3 and imports into Munki. 7 | Identifier 8 | com.github.keeleysam.recipes.SublimeText.SublimeText3.munki 9 | Input 10 | 11 | MUNKI_REPO_SUBDIR 12 | apps/SublimeText/SublimeText3 13 | NAME 14 | SublimeText3 15 | pkginfo 16 | 17 | catalogs 18 | 19 | production 20 | 21 | category 22 | Developer Tools 23 | description 24 | Sublime Text is an advanced text editor for OS X. 25 | display_name 26 | Sublime Text 3 27 | name 28 | %NAME% 29 | unattended_install 30 | 31 | 32 | 33 | MinimumVersion 34 | 0.2.1 35 | ParentRecipe 36 | com.github.keeleysam.recipes.SublimeText.SublimeText3.download 37 | Process 38 | 39 | 40 | Arguments 41 | 42 | pkg_path 43 | %pathname% 44 | repo_subdirectory 45 | %MUNKI_REPO_SUBDIR% 46 | 47 | Processor 48 | MunkiImporter 49 | 50 | 51 | 52 | 53 | -------------------------------------------------------------------------------- /osquery/osquery.download.recipe: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Description 6 | Downloads the latest version of Osquery from GitHub. 7 | Identifier 8 | com.github.keeleysam.recipes.osquery.download 9 | Input 10 | 11 | NAME 12 | osquery 13 | REPO 14 | osquery/osquery 15 | 16 | MinimumVersion 17 | 0.5.0 18 | Process 19 | 20 | 21 | Arguments 22 | 23 | asset_regex 24 | .*\.pkg 25 | github_repo 26 | %REPO% 27 | 28 | Processor 29 | GitHubReleasesInfoProvider 30 | 31 | 32 | Processor 33 | URLDownloader 34 | 35 | 36 | Processor 37 | EndOfCheckPhase 38 | 39 | 40 | Arguments 41 | 42 | expected_authority_names 43 | 44 | Developer ID Installer: OSQUERY A Series of LF Projects, LLC (3522FA9PXF) 45 | Developer ID Certification Authority 46 | Apple Root CA 47 | 48 | input_path 49 | %pathname% 50 | 51 | Processor 52 | CodeSignatureVerifier 53 | 54 | 55 | 56 | 57 | -------------------------------------------------------------------------------- /Twocanoes/WinclonePro4.download.recipe: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Description 6 | Downloads the current release version of Winclone Pro 4. Requires user agent spoofing. 7 | Identifier 8 | com.github.keeleysam.recipes.Twocanoes.WinclonePro4.download 9 | Input 10 | 11 | NAME 12 | WinclonePro4 13 | SPARKLE_FEED_URL 14 | https://www.twocanoes.com/winclone/updates/winclone4-pro-software-updates.xml 15 | USER_AGENT 16 | Winclone Pro/4.1 Sparkle/313 17 | 18 | MinimumVersion 19 | 0.2.1 20 | Process 21 | 22 | 23 | Arguments 24 | 25 | appcast_request_headers 26 | 27 | user-agent 28 | %USER_AGENT% 29 | 30 | appcast_url 31 | %SPARKLE_FEED_URL% 32 | 33 | Processor 34 | SparkleUpdateInfoProvider 35 | 36 | 37 | Arguments 38 | 39 | filename 40 | %NAME%.zip 41 | request_headers 42 | 43 | user-agent 44 | %USER_AGENT% 45 | 46 | 47 | Processor 48 | URLDownloader 49 | 50 | 51 | Processor 52 | EndOfCheckPhase 53 | 54 | 55 | 56 | 57 | -------------------------------------------------------------------------------- /CordlessDog/Stay.munki.recipe: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Description 6 | Gets the current release version of Stay and imports into Munki. 7 | Identifier 8 | com.github.keeleysam.recipes.Stay.munki 9 | Input 10 | 11 | MUNKI_REPO_SUBDIR 12 | apps/Cordless Dog/Stay 13 | NAME 14 | Stay 15 | pkginfo 16 | 17 | catalogs 18 | 19 | testing 20 | 21 | description 22 | If you're fastidious about keeping your windows tidy, Stay is for you. Stay ensures that your windows are always where you want them to be, even as you connect and disconnect displays. 23 | display_name 24 | Stay 25 | name 26 | %NAME% 27 | unattended_install 28 | 29 | 30 | 31 | MinimumVersion 32 | 0.2.0 33 | ParentRecipe 34 | com.github.keeleysam.recipes.Stay.download 35 | Process 36 | 37 | 38 | Processor 39 | MunkiPkginfoMerger 40 | 41 | 42 | Arguments 43 | 44 | pkg_path 45 | %pathname% 46 | repo_subdirectory 47 | %MUNKI_REPO_SUBDIR% 48 | 49 | Processor 50 | MunkiImporter 51 | 52 | 53 | 54 | 55 | -------------------------------------------------------------------------------- /ParallelsDesktop/ParallelsDesktop6.munki.recipe: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Description 6 | Downloads the current installation package for Parallels Desktop 6. Imports it into Munki. 7 | Identifier 8 | com.github.keeleysam.recipes.ParallelsDesktop6.munki 9 | Input 10 | 11 | MUNKI_REPO_SUBDIR 12 | apps/Parallels/ParallelsDesktop6 13 | NAME 14 | ParallelsDesktop6 15 | pkginfo 16 | 17 | catalogs 18 | 19 | testing 20 | 21 | display_name 22 | Parallels Desktop 6 23 | name 24 | %NAME% 25 | unattended_install 26 | 27 | 28 | 29 | MinimumVersion 30 | 0.2.1 31 | ParentRecipe 32 | com.github.keeleysam.recipes.ParallelsDesktop.download 33 | Process 34 | 35 | 36 | Arguments 37 | 38 | additional_pkginfo 39 | 40 | description 41 | %description% 42 | 43 | 44 | Processor 45 | MunkiPkginfoMerger 46 | 47 | 48 | Arguments 49 | 50 | pkg_path 51 | %pathname% 52 | repo_subdirectory 53 | %MUNKI_REPO_SUBDIR% 54 | 55 | Processor 56 | MunkiImporter 57 | 58 | 59 | 60 | 61 | -------------------------------------------------------------------------------- /ParallelsDesktop/ParallelsDesktop7.munki.recipe: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Description 6 | Downloads the current installation package for Parallels Desktop 7. Imports it into Munki. 7 | Identifier 8 | com.github.keeleysam.recipes.ParallelsDesktop7.munki 9 | Input 10 | 11 | MUNKI_REPO_SUBDIR 12 | apps/Parallels/ParallelsDesktop7 13 | NAME 14 | ParallelsDesktop7 15 | pkginfo 16 | 17 | catalogs 18 | 19 | testing 20 | 21 | display_name 22 | Parallels Desktop 7 23 | name 24 | %NAME% 25 | unattended_install 26 | 27 | 28 | 29 | MinimumVersion 30 | 0.2.1 31 | ParentRecipe 32 | com.github.keeleysam.recipes.ParallelsDesktop.download 33 | Process 34 | 35 | 36 | Arguments 37 | 38 | additional_pkginfo 39 | 40 | description 41 | %description% 42 | 43 | 44 | Processor 45 | MunkiPkginfoMerger 46 | 47 | 48 | Arguments 49 | 50 | pkg_path 51 | %pathname% 52 | repo_subdirectory 53 | %MUNKI_REPO_SUBDIR% 54 | 55 | Processor 56 | MunkiImporter 57 | 58 | 59 | 60 | 61 | -------------------------------------------------------------------------------- /ParallelsDesktop/ParallelsDesktop8.munki.recipe: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Description 6 | Downloads the current installation package for Parallels Desktop 8. Imports it into Munki. 7 | Identifier 8 | com.github.keeleysam.recipes.ParallelsDesktop8.munki 9 | Input 10 | 11 | MUNKI_REPO_SUBDIR 12 | apps/Parallels/ParallelsDesktop8 13 | NAME 14 | ParallelsDesktop8 15 | pkginfo 16 | 17 | catalogs 18 | 19 | testing 20 | 21 | display_name 22 | Parallels Desktop 8 23 | name 24 | %NAME% 25 | unattended_install 26 | 27 | 28 | 29 | MinimumVersion 30 | 0.2.1 31 | ParentRecipe 32 | com.github.keeleysam.recipes.ParallelsDesktop.download 33 | Process 34 | 35 | 36 | Arguments 37 | 38 | additional_pkginfo 39 | 40 | description 41 | %description% 42 | 43 | 44 | Processor 45 | MunkiPkginfoMerger 46 | 47 | 48 | Arguments 49 | 50 | pkg_path 51 | %pathname% 52 | repo_subdirectory 53 | %MUNKI_REPO_SUBDIR% 54 | 55 | Processor 56 | MunkiImporter 57 | 58 | 59 | 60 | 61 | -------------------------------------------------------------------------------- /Duo/Duo Desktop.download.recipe: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Identifier 6 | com.keeleysam.recipes.download.DuoDesktop 7 | Input 8 | 9 | NAME 10 | Duo Desktop 11 | 12 | Process 13 | 14 | 15 | Processor 16 | URLTextSearcher 17 | Arguments 18 | 19 | url 20 | https://duo.com/docs/checksums#macos 21 | re_pattern 22 | href="https://dl.duosecurity.com/DuoDesktop-(\d+\.\d+\.\d+\.\d+)\.pkg" 23 | result_output_var_name 24 | version 25 | 26 | 27 | 28 | Processor 29 | URLDownloader 30 | Arguments 31 | 32 | url 33 | https://dl.duosecurity.com/DuoDesktop-%version%.pkg 34 | 35 | 36 | 37 | Processor 38 | EndOfCheckPhase 39 | 40 | 41 | Arguments 42 | 43 | input_path 44 | %pathname% 45 | requirement 46 | anchor apple generic and identifier "com.duosecurity.duo-device-health" 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] = FNN8Z5JMFP) 47 | 48 | Processor 49 | CodeSignatureVerifier 50 | 51 | 52 | 53 | 54 | -------------------------------------------------------------------------------- /Quicksilver/Quicksilver.download.recipe: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Identifier 6 | com.github.keeleysam.recipes.Quicksilver.download 7 | Input 8 | 9 | DOWNLOAD_URL 10 | https://qs0.qsapp.com/plugins/download.php 11 | NAME 12 | Quicksilver 13 | USER_AGENT 14 | Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_4) AppleWebKit/537.46.3 (KHTML, like Gecko) Version/6.1 Safari/537.46.3 15 | 16 | MinimumVersion 17 | 0.2.1 18 | Process 19 | 20 | 21 | Arguments 22 | 23 | filename 24 | %NAME%.dmg 25 | request_headers 26 | 27 | user-agent 28 | %USER_AGENT% 29 | 30 | url 31 | %DOWNLOAD_URL% 32 | 33 | Processor 34 | URLDownloader 35 | 36 | 37 | Processor 38 | EndOfCheckPhase 39 | 40 | 41 | Arguments 42 | 43 | input_path 44 | %pathname%/Quicksilver.app 45 | requirement 46 | identifier "com.blacktree.Quicksilver" 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] = ATVCND8EAP 47 | 48 | Processor 49 | CodeSignatureVerifier 50 | 51 | 52 | 53 | 54 | -------------------------------------------------------------------------------- /CordlessDog/Stay.download.recipe: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Description 6 | Downloads the current release version of Stay. 7 | Identifier 8 | com.github.keeleysam.recipes.Stay.download 9 | Input 10 | 11 | NAME 12 | Stay 13 | SPARKLE_FEED_URL 14 | https://cordlessdog.com/stay/appcast.xml 15 | 16 | MinimumVersion 17 | 0.2.0 18 | Process 19 | 20 | 21 | Arguments 22 | 23 | appcast_url 24 | %SPARKLE_FEED_URL% 25 | 26 | Processor 27 | SparkleUpdateInfoProvider 28 | 29 | 30 | Arguments 31 | 32 | filename 33 | %NAME%-%version%.dmg 34 | 35 | Processor 36 | URLDownloader 37 | 38 | 39 | Processor 40 | EndOfCheckPhase 41 | 42 | 43 | Arguments 44 | 45 | input_path 46 | %pathname%/Stay.app 47 | requirement 48 | identifier "com.cordlessdog.Stay" 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] = N87J278237 49 | strict_verification 50 | 51 | 52 | Processor 53 | CodeSignatureVerifier 54 | 55 | 56 | 57 | 58 | -------------------------------------------------------------------------------- /SublimeText/SublimeText3.download.recipe: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Description 6 | Downloads the current release version of Sublime Text 3. 7 | Identifier 8 | com.github.keeleysam.recipes.SublimeText.SublimeText3.download 9 | Input 10 | 11 | NAME 12 | SublimeText3 13 | SPARKLE_FEED_URL 14 | https://www.sublimetext.com/updates/3/stable/appcast_osx.xml 15 | 16 | MinimumVersion 17 | 0.5.1 18 | Process 19 | 20 | 21 | Arguments 22 | 23 | appcast_url 24 | %SPARKLE_FEED_URL% 25 | 26 | Processor 27 | SparkleUpdateInfoProvider 28 | 29 | 30 | Arguments 31 | 32 | filename 33 | %NAME%.dmg 34 | 35 | Processor 36 | URLDownloader 37 | 38 | 39 | Processor 40 | EndOfCheckPhase 41 | 42 | 43 | Arguments 44 | 45 | input_path 46 | %pathname%/Sublime Text.app 47 | requirement 48 | identifier "com.sublimetext.3" 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] = Z6D26JE4Y4 49 | 50 | Processor 51 | CodeSignatureVerifier 52 | 53 | 54 | 55 | 56 | -------------------------------------------------------------------------------- /Bjango/iStatMenus.munki.recipe: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Identifier 6 | com.github.keeleysam.recipes.Bjango.iStatMenus.munki 7 | Input 8 | 9 | MUNKI_REPO_SUBDIR 10 | apps/Bjango/iStatMenus 11 | NAME 12 | iStatMenus 13 | pkginfo 14 | 15 | catalogs 16 | 17 | production 18 | 19 | description 20 | iStat Menus is an advanced Mac system monitor, covering an enormous range of stats. It lives right in your Mac’s menubar, so detailed information is only ever a glance or single click away. 21 | display_name 22 | iStat Menus 23 | name 24 | %NAME% 25 | unattended_install 26 | 27 | 28 | 29 | MinimumVersion 30 | 0.2.1 31 | ParentRecipe 32 | com.github.keeleysam.recipes.Bjango.iStatMenus.download 33 | Process 34 | 35 | 36 | Arguments 37 | 38 | dmg_path 39 | %RECIPE_CACHE_DIR%/%NAME%.dmg 40 | dmg_root 41 | %RECIPE_CACHE_DIR%/%NAME% 42 | 43 | Processor 44 | DmgCreator 45 | 46 | 47 | Arguments 48 | 49 | pkg_path 50 | %dmg_path% 51 | repo_subdirectory 52 | %MUNKI_REPO_SUBDIR% 53 | 54 | Processor 55 | MunkiImporter 56 | 57 | 58 | 59 | 60 | -------------------------------------------------------------------------------- /iTerm2/iTerm2.download.recipe: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Description 6 | Downloads the current release version of iTerm 2. 7 | Identifier 8 | com.github.keeleysam.autopkg.download.iTerm2 9 | Input 10 | 11 | NAME 12 | iTerm2 13 | SPARKLE_FEED_URL 14 | https://iterm2.com/appcasts/final_new.xml 15 | 16 | Process 17 | 18 | 19 | Arguments 20 | 21 | appcast_url 22 | %SPARKLE_FEED_URL% 23 | 24 | Processor 25 | SparkleUpdateInfoProvider 26 | 27 | 28 | Arguments 29 | 30 | filename 31 | %NAME%.zip 32 | 33 | Processor 34 | URLDownloader 35 | 36 | 37 | Processor 38 | EndOfCheckPhase 39 | 40 | 41 | Processor 42 | Unarchiver 43 | 44 | 45 | Arguments 46 | 47 | input_path 48 | %RECIPE_CACHE_DIR%/%NAME%/*.app 49 | requirement 50 | anchor apple generic and identifier "com.googlecode.iterm2" and (certificate leaf[field.1.2.840.113635.100.6.1.9] /* exists */ or certificate 1[field.1.2.840.113635.100.6.2.6] /* exists */ and certificate leaf[field.1.2.840.113635.100.6.1.13] /* exists */ and certificate leaf[subject.OU] = H7V7XYVQ7D) 51 | 52 | Processor 53 | CodeSignatureVerifier 54 | 55 | 56 | 57 | 58 | -------------------------------------------------------------------------------- /Github/Github.download.recipe: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Identifier 6 | com.github.keeleysam.recipes.GitHub.download 7 | Input 8 | 9 | DOWNLOAD_URL 10 | https://central.github.com/mac/latest 11 | NAME 12 | GitHub 13 | 14 | MinimumVersion 15 | 0.4.1 16 | Process 17 | 18 | 19 | Arguments 20 | 21 | filename 22 | %NAME%.zip 23 | url 24 | %DOWNLOAD_URL% 25 | 26 | Processor 27 | URLDownloader 28 | 29 | 30 | Processor 31 | EndOfCheckPhase 32 | 33 | 34 | Arguments 35 | 36 | archive_path 37 | %pathname% 38 | destination_path 39 | %RECIPE_CACHE_DIR%/%NAME% 40 | purge_destination 41 | 42 | 43 | Processor 44 | Unarchiver 45 | 46 | 47 | Arguments 48 | 49 | input_path 50 | %RECIPE_CACHE_DIR%/%NAME%/GitHub Desktop.app 51 | requirement 52 | (identifier "com.github.GitHub" or identifier "com.github.GHAskPass") and 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] = VEKTX9H2N7 53 | 54 | Processor 55 | CodeSignatureVerifier 56 | 57 | 58 | 59 | 60 | -------------------------------------------------------------------------------- /FileZilla/FileZilla.munki.recipe: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Description 6 | Downloads the current installation package for FileZilla. Imports it into Munki. 7 | Identifier 8 | com.github.keeleysam.recipes.FileZilla.munki 9 | Input 10 | 11 | MUNKI_REPO_SUBDIR 12 | apps/FileZilla 13 | NAME 14 | FileZilla 15 | pkginfo 16 | 17 | catalogs 18 | 19 | testing 20 | 21 | description 22 | FileZilla is a fast and reliable cross-platform FTP, FTPS and SFTP client. 23 | display_name 24 | FileZilla 25 | name 26 | %NAME% 27 | unattended_install 28 | 29 | 30 | RE_PATTERN 31 | <a href=\"(?P<url>http[s]?.*?(?P<filename>FileZilla_(?P<version>[\d.]+)_macos-x86.*?\.tar\.bz2).*?)\" 32 | 33 | MinimumVersion 34 | 1.0.0 35 | ParentRecipe 36 | com.github.keeleysam.recipes.FileZilla.download 37 | Process 38 | 39 | 40 | Arguments 41 | 42 | dmg_path 43 | %RECIPE_CACHE_DIR%/%NAME%.dmg 44 | dmg_root 45 | %RECIPE_CACHE_DIR%/%NAME% 46 | 47 | Processor 48 | DmgCreator 49 | 50 | 51 | Arguments 52 | 53 | pkg_path 54 | %dmg_path% 55 | repo_subdirectory 56 | %MUNKI_REPO_SUBDIR% 57 | 58 | Processor 59 | MunkiImporter 60 | 61 | 62 | 63 | 64 | -------------------------------------------------------------------------------- /Opera/Opera.download.recipe: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Description 6 | Downloads latest Opera disk image. 7 | Identifier 8 | com.github.keeleysam.recipes.Opera.download 9 | Input 10 | 11 | NAME 12 | Opera 13 | 14 | MinimumVersion 15 | 0.2.1 16 | Process 17 | 18 | 19 | Processor 20 | OperaURLProvider 21 | 22 | 23 | Arguments 24 | 25 | filename 26 | %NAME%.dmg 27 | url 28 | %url% 29 | 30 | Processor 31 | URLDownloader 32 | 33 | 34 | Processor 35 | CodeSignatureVerifier 36 | Arguments 37 | 38 | input_path 39 | %RECIPE_CACHE_DIR%/downloads/%NAME%.dmg/Opera.app 40 | requirement 41 | (identifier "com.operasoftware.Opera" or identifier "com.operasoftware.OperaNext" or identifier "com.operasoftware.OperaDeveloper" or identifier "com.operasoftware.OperaNightly" or identifier "com.operasoftware.OperaGX" or identifier "com.operasoftware.OperaGXNext" or identifier "com.operasoftware.OperaGXDeveloper" or identifier "com.operasoftware.OperaGXNightly" or identifier "com.operasoftware.OperaCrypto" or identifier "com.operasoftware.OperaCryptoNext" or identifier "com.operasoftware.OperaCryptoDeveloper" or identifier "com.operasoftware.OperaCryptoNightly") and (certificate leaf = H"cdf1c39967986616b6cd64c6bd04833a9cb7450d" or certificate leaf = H"89584386993936e6f38e64eed006f705f2570cbf") 42 | 43 | 44 | 45 | Processor 46 | EndOfCheckPhase 47 | 48 | 49 | 50 | 51 | -------------------------------------------------------------------------------- /StuffIt/StuffItExpander.download.recipe: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Identifier 6 | com.github.keeleysam.recipes.StuffItExpander.download 7 | Input 8 | 9 | NAME 10 | StuffItExpander 11 | SPARKLE_FEED_URL 12 | https://www.stuffit.com/update_rss/NEU/StuffItExpanderUpdates.xml 13 | 14 | MinimumVersion 15 | 0.2.1 16 | Process 17 | 18 | 19 | Arguments 20 | 21 | appcast_url 22 | %SPARKLE_FEED_URL% 23 | 24 | Processor 25 | SparkleUpdateInfoProvider 26 | 27 | 28 | Processor 29 | URLDownloader 30 | 31 | 32 | Processor 33 | EndOfCheckPhase 34 | 35 | 36 | Arguments 37 | 38 | archive_path 39 | %pathname% 40 | destination_path 41 | %RECIPE_CACHE_DIR%/%NAME% 42 | purge_destination 43 | 44 | 45 | Processor 46 | Unarchiver 47 | 48 | 49 | Arguments 50 | 51 | input_path 52 | %RECIPE_CACHE_DIR%/%NAME%/StuffIt Expander.app 53 | requirement 54 | anchor apple generic and identifier "com.stuffit.StuffIt-Expander" 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] = "8B5RRXHB33") 55 | 56 | Processor 57 | CodeSignatureVerifier 58 | 59 | 60 | 61 | 62 | -------------------------------------------------------------------------------- /StuffIt/StuffItExpander.munki.recipe: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Identifier 6 | com.github.keeleysam.recipes.StuffItExpander.munki 7 | Input 8 | 9 | MUNKI_REPO_SUBDIR 10 | apps/StuffIt/StuffItExpander 11 | NAME 12 | StuffItExpander 13 | pkginfo 14 | 15 | catalogs 16 | 17 | testing 18 | 19 | description 20 | Decompression utility for OS X. 21 | display_name 22 | StuffIt Expander 23 | name 24 | %NAME% 25 | unattended_install 26 | 27 | 28 | 29 | MinimumVersion 30 | 0.2.1 31 | ParentRecipe 32 | com.github.keeleysam.recipes.StuffItExpander.download 33 | Process 34 | 35 | 36 | Arguments 37 | 38 | archive_path 39 | %pathname% 40 | destination_path 41 | %RECIPE_CACHE_DIR%/%NAME% 42 | purge_destination 43 | 44 | 45 | Processor 46 | Unarchiver 47 | 48 | 49 | Arguments 50 | 51 | dmg_path 52 | %RECIPE_CACHE_DIR%/%NAME%.dmg 53 | dmg_root 54 | %RECIPE_CACHE_DIR%/%NAME% 55 | 56 | Processor 57 | DmgCreator 58 | 59 | 60 | Arguments 61 | 62 | pkg_path 63 | %dmg_path% 64 | repo_subdirectory 65 | %MUNKI_REPO_SUBDIR% 66 | 67 | Processor 68 | MunkiImporter 69 | 70 | 71 | 72 | 73 | -------------------------------------------------------------------------------- /FileZilla/FileZilla_nightly.munki.recipe: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Description 6 | Downloads the current installation package for FileZilla nightly. Imports it into Munki. 7 | Identifier 8 | com.github.keeleysam.recipes.FileZilla.nightly.munki 9 | Input 10 | 11 | MUNKI_REPO_SUBDIR 12 | apps/FileZilla/nightly 13 | NAME 14 | FileZilla_nightly 15 | pkginfo 16 | 17 | catalogs 18 | 19 | testing 20 | 21 | display_name 22 | FileZilla 23 | name 24 | %NAME% 25 | unattended_install 26 | 27 | 28 | 29 | MinimumVersion 30 | 0.2.0 31 | ParentRecipe 32 | com.github.keeleysam.recipes.FileZilla.nightly.download 33 | Process 34 | 35 | 36 | Arguments 37 | 38 | archive_path 39 | %pathname% 40 | destination_path 41 | %RECIPE_CACHE_DIR%/%NAME% 42 | purge_destination 43 | 44 | 45 | Processor 46 | Unarchiver 47 | 48 | 49 | Arguments 50 | 51 | dmg_path 52 | %RECIPE_CACHE_DIR%/%NAME%.dmg 53 | dmg_root 54 | %RECIPE_CACHE_DIR%/%NAME% 55 | 56 | Processor 57 | DmgCreator 58 | 59 | 60 | Arguments 61 | 62 | pkg_path 63 | %dmg_path% 64 | repo_subdirectory 65 | %MUNKI_REPO_SUBDIR% 66 | 67 | Processor 68 | MunkiImporter 69 | 70 | 71 | 72 | 73 | -------------------------------------------------------------------------------- /Panic/Coda.munki.recipe: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Description 6 | Downloads the current release version of Coda and imports into Munki. 7 | Identifier 8 | com.github.keeleysam.autopkg.munki.Coda 9 | Input 10 | 11 | MUNKI_REPO_SUBDIR 12 | apps/Panic/Coda 13 | NAME 14 | Coda 15 | pkginfo 16 | 17 | catalogs 18 | 19 | testing 20 | 21 | description 22 | Web editor from Panic. 23 | display_name 24 | Coda 25 | name 26 | %NAME% 27 | unattended_install 28 | 29 | 30 | 31 | ParentRecipe 32 | com.github.keeleysam.autopkg.download.Coda 33 | Process 34 | 35 | 36 | Arguments 37 | 38 | archive_path 39 | %pathname% 40 | destination_path 41 | %RECIPE_CACHE_DIR%/%NAME% 42 | purge_destination 43 | 44 | 45 | Processor 46 | Unarchiver 47 | 48 | 49 | Arguments 50 | 51 | dmg_path 52 | %RECIPE_CACHE_DIR%/%NAME%.dmg 53 | dmg_root 54 | %RECIPE_CACHE_DIR%/%NAME% 55 | 56 | Processor 57 | DmgCreator 58 | 59 | 60 | Processor 61 | MunkiPkginfoMerger 62 | 63 | 64 | Arguments 65 | 66 | pkg_path 67 | %dmg_path% 68 | repo_subdirectory 69 | %MUNKI_REPO_SUBDIR% 70 | 71 | Processor 72 | MunkiImporter 73 | 74 | 75 | 76 | 77 | -------------------------------------------------------------------------------- /Panic/Coda2.munki.recipe: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Description 6 | Downloads the current release version of Coda 2 and imports into Munki. 7 | Identifier 8 | com.github.keeleysam.autopkg.munki.Coda2 9 | Input 10 | 11 | MUNKI_REPO_SUBDIR 12 | apps/Panic/Coda2 13 | NAME 14 | Coda2 15 | pkginfo 16 | 17 | catalogs 18 | 19 | testing 20 | 21 | description 22 | Web editor from Panic. 23 | display_name 24 | Coda 2 25 | name 26 | %NAME% 27 | unattended_install 28 | 29 | 30 | 31 | ParentRecipe 32 | com.github.keeleysam.autopkg.download.Coda2 33 | Process 34 | 35 | 36 | Arguments 37 | 38 | archive_path 39 | %pathname% 40 | destination_path 41 | %RECIPE_CACHE_DIR%/%NAME% 42 | purge_destination 43 | 44 | 45 | Processor 46 | Unarchiver 47 | 48 | 49 | Arguments 50 | 51 | dmg_path 52 | %RECIPE_CACHE_DIR%/%NAME%.dmg 53 | dmg_root 54 | %RECIPE_CACHE_DIR%/%NAME% 55 | 56 | Processor 57 | DmgCreator 58 | 59 | 60 | Processor 61 | MunkiPkginfoMerger 62 | 63 | 64 | Arguments 65 | 66 | pkg_path 67 | %dmg_path% 68 | repo_subdirectory 69 | %MUNKI_REPO_SUBDIR% 70 | 71 | Processor 72 | MunkiImporter 73 | 74 | 75 | 76 | 77 | -------------------------------------------------------------------------------- /GoogleTalkPlugin/MunkiPkginfoReceiptsEditor.py: -------------------------------------------------------------------------------- 1 | #!/usr/local/autopkg/python 2 | 3 | from __future__ import absolute_import 4 | 5 | from autopkglib import Processor, ProcessorError 6 | from plistlib import readPlist, writePlist 7 | 8 | __all__ = ["MunkiPkginfoReceiptsEditor"] 9 | 10 | 11 | class MunkiPkginfoReceiptsEditor(Processor): 12 | '''Modifies the receipts key in a Munki pkginfo.''' 13 | 14 | input_variables = { 15 | 'pkginfo_repo_path': { 16 | 'required': True, 17 | 'description': 'The repo path where the pkginfo was written.', 18 | }, 19 | 'pkg_ids_set_optional_true': { 20 | 'required': True, 21 | 'description': 'Array of package IDs to turn optional for Munki', 22 | }, 23 | } 24 | output_variables = { 25 | } 26 | 27 | description = __doc__ 28 | 29 | def main(self): 30 | if len(self.env['pkginfo_repo_path']) < 1: 31 | self.output('empty pkginfo path') 32 | return 33 | 34 | pkginfo = readPlist(self.env['pkginfo_repo_path']) 35 | 36 | receipts_modified = [] 37 | if 'receipts' in pkginfo.keys(): 38 | for i, receipt in enumerate(pkginfo['receipts']): 39 | # made optional any pkginfos 40 | if receipt['packageid'] in self.env[ 41 | 'pkg_ids_set_optional_true']: 42 | pkginfo['receipts'][i]['optional'] = True 43 | self.output( 44 | 'Setting package ID %s as optional' % 45 | receipt['packageid']) 46 | receipts_modified.append(receipt['packageid']) 47 | else: 48 | raise ProcessorError('pkginfo does not contain receipts key') 49 | 50 | if len(receipts_modified) > 0: 51 | self.output( 52 | 'Writing pkginfo to %s' % 53 | self.env['pkginfo_repo_path']) 54 | writePlist(pkginfo, self.env['pkginfo_repo_path']) 55 | else: 56 | self.output('No receipts modified, not writing pkginfo') 57 | 58 | 59 | if __name__ == '__main__': 60 | processor = MunkiPkginfoReceiptsEditor() 61 | processor.execute_shell() 62 | -------------------------------------------------------------------------------- /Panic/Unison.munki.recipe: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Description 6 | Downloads the current release version of Unison and imports into Munki. 7 | Identifier 8 | com.github.keeleysam.autopkg.munki.Unison 9 | Input 10 | 11 | MUNKI_REPO_SUBDIR 12 | apps/Panic/Unison 13 | NAME 14 | Unison 15 | pkginfo 16 | 17 | catalogs 18 | 19 | testing 20 | 21 | description 22 | Usenet client from Panic. 23 | display_name 24 | Unison 25 | name 26 | %NAME% 27 | unattended_install 28 | 29 | 30 | 31 | ParentRecipe 32 | com.github.keeleysam.autopkg.download.Unison 33 | Process 34 | 35 | 36 | Arguments 37 | 38 | archive_path 39 | %pathname% 40 | destination_path 41 | %RECIPE_CACHE_DIR%/%NAME% 42 | purge_destination 43 | 44 | 45 | Processor 46 | Unarchiver 47 | 48 | 49 | Arguments 50 | 51 | dmg_path 52 | %RECIPE_CACHE_DIR%/%NAME%.dmg 53 | dmg_root 54 | %RECIPE_CACHE_DIR%/%NAME% 55 | 56 | Processor 57 | DmgCreator 58 | 59 | 60 | Processor 61 | MunkiPkginfoMerger 62 | 63 | 64 | Arguments 65 | 66 | pkg_path 67 | %dmg_path% 68 | repo_subdirectory 69 | %MUNKI_REPO_SUBDIR% 70 | 71 | Processor 72 | MunkiImporter 73 | 74 | 75 | 76 | 77 | -------------------------------------------------------------------------------- /iTerm2/iTerm2.munki.recipe: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Description 6 | Downloads the current release version of iTerm 2 and imports into Munki. 7 | Identifier 8 | com.github.keeleysam.autopkg.munki.iTerm2 9 | Input 10 | 11 | MUNKI_REPO_SUBDIR 12 | apps/iTerm2 13 | NAME 14 | iTerm2 15 | pkginfo 16 | 17 | catalogs 18 | 19 | testing 20 | 21 | description 22 | Powerful alternative to Terminal.app. 23 | display_name 24 | iTerm2 25 | name 26 | %NAME% 27 | unattended_install 28 | 29 | 30 | 31 | ParentRecipe 32 | com.github.keeleysam.autopkg.download.iTerm2 33 | Process 34 | 35 | 36 | Arguments 37 | 38 | archive_path 39 | %pathname% 40 | destination_path 41 | %RECIPE_CACHE_DIR%/%NAME% 42 | purge_destination 43 | 44 | 45 | Processor 46 | Unarchiver 47 | 48 | 49 | Arguments 50 | 51 | dmg_path 52 | %RECIPE_CACHE_DIR%/%NAME%.dmg 53 | dmg_root 54 | %RECIPE_CACHE_DIR%/%NAME% 55 | 56 | Processor 57 | DmgCreator 58 | 59 | 60 | Processor 61 | MunkiPkginfoMerger 62 | 63 | 64 | Arguments 65 | 66 | pkg_path 67 | %dmg_path% 68 | repo_subdirectory 69 | %MUNKI_REPO_SUBDIR% 70 | 71 | Processor 72 | MunkiImporter 73 | 74 | 75 | 76 | 77 | -------------------------------------------------------------------------------- /Panic/Transmit.munki.recipe: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Description 6 | Downloads the current release version of Transmit and imports into Munki. 7 | Identifier 8 | com.github.keeleysam.autopkg.munki.Transmit 9 | Input 10 | 11 | MUNKI_REPO_SUBDIR 12 | apps/Panic/Transmit 13 | NAME 14 | Transmit 15 | pkginfo 16 | 17 | catalogs 18 | 19 | testing 20 | 21 | description 22 | Graphical FTP client from Panic. 23 | display_name 24 | Transmit 25 | name 26 | %NAME% 27 | unattended_install 28 | 29 | 30 | 31 | ParentRecipe 32 | com.github.keeleysam.autopkg.download.Transmit 33 | Process 34 | 35 | 36 | Arguments 37 | 38 | archive_path 39 | %pathname% 40 | destination_path 41 | %RECIPE_CACHE_DIR%/%NAME% 42 | purge_destination 43 | 44 | 45 | Processor 46 | Unarchiver 47 | 48 | 49 | Arguments 50 | 51 | dmg_path 52 | %RECIPE_CACHE_DIR%/%NAME%.dmg 53 | dmg_root 54 | %RECIPE_CACHE_DIR%/%NAME% 55 | 56 | Processor 57 | DmgCreator 58 | 59 | 60 | Processor 61 | MunkiPkginfoMerger 62 | 63 | 64 | Arguments 65 | 66 | pkg_path 67 | %dmg_path% 68 | repo_subdirectory 69 | %MUNKI_REPO_SUBDIR% 70 | 71 | Processor 72 | MunkiImporter 73 | 74 | 75 | 76 | 77 | -------------------------------------------------------------------------------- /PrimateLabs/Wiinote.munki.recipe: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Description 6 | Downloads the current release version of Wiinote and imports into Munki. 7 | Identifier 8 | com.github.keeleysam.recipes.primatelabs.Wiinote.munki 9 | Input 10 | 11 | MUNKI_REPO_SUBDIR 12 | apps/PrimateLabs/Wiinote 13 | NAME 14 | Wiinote 15 | pkginfo 16 | 17 | catalogs 18 | 19 | testing 20 | 21 | description 22 | Control Keynote with a Wiimote! 23 | display_name 24 | Wiinote 25 | name 26 | %NAME% 27 | unattended_install 28 | 29 | 30 | 31 | ParentRecipe 32 | com.github.keeleysam.autopkg.download.Wiinote 33 | Process 34 | 35 | 36 | Arguments 37 | 38 | archive_path 39 | %pathname% 40 | destination_path 41 | %RECIPE_CACHE_DIR%/%NAME% 42 | purge_destination 43 | 44 | 45 | Processor 46 | Unarchiver 47 | 48 | 49 | Arguments 50 | 51 | dmg_path 52 | %RECIPE_CACHE_DIR%/%NAME%.dmg 53 | dmg_root 54 | %RECIPE_CACHE_DIR%/%NAME% 55 | 56 | Processor 57 | DmgCreator 58 | 59 | 60 | Processor 61 | MunkiPkginfoMerger 62 | 63 | 64 | Arguments 65 | 66 | pkg_path 67 | %dmg_path% 68 | repo_subdirectory 69 | %MUNKI_REPO_SUBDIR% 70 | 71 | Processor 72 | MunkiImporter 73 | 74 | 75 | 76 | 77 | -------------------------------------------------------------------------------- /PrimateLabs/Geekbench2.munki.recipe: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Description 6 | Downloads the current release version of Geekbench 2 and imports into Munki. 7 | Identifier 8 | com.github.keeleysam.recipes.primatelabs.Geekbench2.munki 9 | Input 10 | 11 | MUNKI_REPO_SUBDIR 12 | apps/PrimateLabs/Geekbench2 13 | NAME 14 | Geekbench2 15 | pkginfo 16 | 17 | catalogs 18 | 19 | testing 20 | 21 | description 22 | Comparative benchmarking tool. 23 | display_name 24 | Geekbench 2 25 | name 26 | %NAME% 27 | unattended_install 28 | 29 | 30 | 31 | ParentRecipe 32 | com.github.keeleysam.autopkg.download.Geekbench2 33 | Process 34 | 35 | 36 | Arguments 37 | 38 | archive_path 39 | %pathname% 40 | destination_path 41 | %RECIPE_CACHE_DIR%/%NAME% 42 | purge_destination 43 | 44 | 45 | Processor 46 | Unarchiver 47 | 48 | 49 | Arguments 50 | 51 | dmg_path 52 | %RECIPE_CACHE_DIR%/%NAME%.dmg 53 | dmg_root 54 | %RECIPE_CACHE_DIR%/%NAME% 55 | 56 | Processor 57 | DmgCreator 58 | 59 | 60 | Processor 61 | MunkiPkginfoMerger 62 | 63 | 64 | Arguments 65 | 66 | pkg_path 67 | %dmg_path% 68 | repo_subdirectory 69 | %MUNKI_REPO_SUBDIR% 70 | 71 | Processor 72 | MunkiImporter 73 | 74 | 75 | 76 | 77 | -------------------------------------------------------------------------------- /GoogleTalkPlugin/GoogleTalkPlugin.munki.recipe: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Identifier 6 | com.github.keeleysam.recipes.GoogleTalkPlugin 7 | Input 8 | 9 | MUNKI_REPO_SUBDIR 10 | apps/Google/GoogleTalkPlugin 11 | NAME 12 | GoogleTalkPlugin 13 | pkginfo 14 | 15 | catalogs 16 | 17 | testing 18 | 19 | description 20 | Plugin for Google Hangouts and Gmail voice and video. 21 | display_name 22 | Google Talk Plugin 23 | installer_choices_xml 24 | 25 | 26 | attributeSetting 27 | 1 28 | choiceAttribute 29 | selected 30 | choiceIdentifier 31 | installer_choice_1 32 | 33 | 34 | attributeSetting 35 | 0 36 | choiceAttribute 37 | selected 38 | choiceIdentifier 39 | installer_choice_2 40 | 41 | 42 | name 43 | %NAME% 44 | unattended_install 45 | 46 | 47 | 48 | ParentRecipe 49 | com.github.keeleysam.autopkg.download.GoogleTalkPlugin 50 | Process 51 | 52 | 53 | Arguments 54 | 55 | pkg_path 56 | %pathname% 57 | repo_subdirectory 58 | %MUNKI_REPO_SUBDIR% 59 | 60 | Processor 61 | MunkiImporter 62 | 63 | 64 | Arguments 65 | 66 | pkg_ids_set_optional_true 67 | 68 | com.google.pkg.Keystone 69 | 70 | 71 | Processor 72 | MunkiPkginfoReceiptsEditor 73 | 74 | 75 | 76 | 77 | -------------------------------------------------------------------------------- /Github/Github.munki.recipe: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Identifier 6 | com.github.keeleysam.recipes.GitHub.munki 7 | Input 8 | 9 | MUNKI_REPO_SUBDIR 10 | apps/GitHub 11 | NAME 12 | GitHub 13 | pkginfo 14 | 15 | catalogs 16 | 17 | testing 18 | 19 | description 20 | GUI application for GitHub.com 21 | display_name 22 | GitHub 23 | name 24 | %NAME% 25 | postinstall_script 26 | #!/bin/sh 27 | CLI_SOURCE="/Applications/GitHub.app/Contents/MacOS/github_cli" 28 | DEST_DIR="/usr/local/bin" 29 | if [ ! -x "${CLI_SOURCE}" ]; then 30 | exit 1 31 | fi 32 | 33 | if [ ! -d "${DEST_DIR}" ]; then 34 | /bin/mkdir -p "${DEST_DIR}" 35 | fi 36 | 37 | /bin/cp -f "${CLI_SOURCE}" "${DEST_DIR}/github" 38 | 39 | unattended_install 40 | 41 | uninstall_method 42 | uninstall_script 43 | uninstall_script 44 | #!/bin/sh 45 | /bin/rm -rf /Applications/GitHub.app 46 | /bin/rm -f /usr/local/bin/github 47 | 48 | 49 | 50 | MinimumVersion 51 | 0.2.1 52 | ParentRecipe 53 | com.github.keeleysam.recipes.GitHub.download 54 | Process 55 | 56 | 57 | Arguments 58 | 59 | dmg_path 60 | %RECIPE_CACHE_DIR%/%NAME%.dmg 61 | dmg_root 62 | %RECIPE_CACHE_DIR%/%NAME% 63 | 64 | Processor 65 | DmgCreator 66 | 67 | 68 | Arguments 69 | 70 | pkg_path 71 | %dmg_path% 72 | repo_subdirectory 73 | %MUNKI_REPO_SUBDIR% 74 | 75 | Processor 76 | MunkiImporter 77 | 78 | 79 | 80 | 81 | -------------------------------------------------------------------------------- /InsomniaX/InsomniaX.munki.recipe: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Description 6 | Downloads the current release version of InsomniaX and imports into Munki. 7 | Identifier 8 | com.github.keeleysam.recipes.InsomniaX.munki 9 | Input 10 | 11 | MUNKI_REPO_SUBDIR 12 | apps/InsomniaX 13 | NAME 14 | InsomniaX 15 | pkginfo 16 | 17 | catalogs 18 | 19 | testing 20 | 21 | description 22 | Mouse jiggler for OS X, can prevent sleep. 23 | display_name 24 | InsomniaX 25 | name 26 | %NAME% 27 | unattended_install 28 | 29 | 30 | 31 | MinimumVersion 32 | 0.2.1 33 | ParentRecipe 34 | com.github.keeleysam.recipes.InsomniaX.download 35 | Process 36 | 37 | 38 | Arguments 39 | 40 | archive_path 41 | %pathname% 42 | destination_path 43 | %RECIPE_CACHE_DIR%/%NAME% 44 | purge_destination 45 | 46 | 47 | Processor 48 | Unarchiver 49 | 50 | 51 | Arguments 52 | 53 | dmg_path 54 | %RECIPE_CACHE_DIR%/%NAME%.dmg 55 | dmg_root 56 | %RECIPE_CACHE_DIR%/%NAME% 57 | 58 | Processor 59 | DmgCreator 60 | 61 | 62 | Processor 63 | MunkiPkginfoMerger 64 | 65 | 66 | Arguments 67 | 68 | pkg_path 69 | %dmg_path% 70 | repo_subdirectory 71 | %MUNKI_REPO_SUBDIR% 72 | 73 | Processor 74 | MunkiImporter 75 | 76 | 77 | 78 | 79 | -------------------------------------------------------------------------------- /CoRD/CoRD.munki.recipe: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Description 6 | Downloads the current release version of CoRD and imports into Munki. 7 | Identifier 8 | com.github.keeleysam.recipes.CoRD.munki 9 | Input 10 | 11 | MUNKI_REPO_SUBDIR 12 | apps/CoRD 13 | NAME 14 | CoRD 15 | pkginfo 16 | 17 | catalogs 18 | 19 | testing 20 | 21 | description 22 | CoRD is a Mac OS X remote desktop client for Microsoft Windows computers using the RDP protocol. 23 | display_name 24 | CoRD 25 | name 26 | %NAME% 27 | unattended_install 28 | 29 | 30 | 31 | MinimumVersion 32 | 0.2.0 33 | ParentRecipe 34 | com.github.keeleysam.recipes.CoRD.download 35 | Process 36 | 37 | 38 | Arguments 39 | 40 | archive_path 41 | %pathname% 42 | destination_path 43 | %RECIPE_CACHE_DIR%/%NAME% 44 | purge_destination 45 | 46 | 47 | Processor 48 | Unarchiver 49 | 50 | 51 | Arguments 52 | 53 | dmg_path 54 | %RECIPE_CACHE_DIR%/%NAME%.dmg 55 | dmg_root 56 | %RECIPE_CACHE_DIR%/%NAME% 57 | 58 | Processor 59 | DmgCreator 60 | 61 | 62 | Processor 63 | MunkiPkginfoMerger 64 | 65 | 66 | Arguments 67 | 68 | pkg_path 69 | %dmg_path% 70 | repo_subdirectory 71 | %MUNKI_REPO_SUBDIR% 72 | 73 | Processor 74 | MunkiImporter 75 | 76 | 77 | 78 | 79 | -------------------------------------------------------------------------------- /Bjango/iStatMenus.download.recipe: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Identifier 6 | com.github.keeleysam.recipes.Bjango.iStatMenus.download 7 | Input 8 | 9 | DOWNLOAD_URL 10 | https://download.bjango.com/istatmenus/ 11 | NAME 12 | iStatMenus 13 | USER_AGENT 14 | 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 15 | 16 | MinimumVersion 17 | 0.2.1 18 | Process 19 | 20 | 21 | Arguments 22 | 23 | filename 24 | %NAME%.zip 25 | request_headers 26 | 27 | user-agent 28 | %USER_AGENT% 29 | 30 | url 31 | %DOWNLOAD_URL% 32 | 33 | Processor 34 | URLDownloader 35 | 36 | 37 | Processor 38 | EndOfCheckPhase 39 | 40 | 41 | Arguments 42 | 43 | archive_path 44 | %pathname% 45 | destination_path 46 | %RECIPE_CACHE_DIR%/%NAME% 47 | purge_destination 48 | 49 | 50 | Processor 51 | Unarchiver 52 | 53 | 54 | Arguments 55 | 56 | input_path 57 | %RECIPE_CACHE_DIR%/%NAME%/iStat Menus.app 58 | requirement 59 | anchor apple generic and identifier "com.bjango.istatmenus" 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] = Y93TK974AT) 60 | strict_verification 61 | 62 | 63 | Processor 64 | CodeSignatureVerifier 65 | 66 | 67 | 68 | 69 | -------------------------------------------------------------------------------- /Xslimmer/Xslimmer.munki.recipe: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Description 6 | Downloads the current release version of Xslimmer and imports into Munki. 7 | Identifier 8 | com.github.keeleysam.recipes.Xslimmer.munki 9 | Input 10 | 11 | MUNKI_REPO_SUBDIR 12 | utilities/Xslimmer 13 | NAME 14 | Xslimmer 15 | pkginfo 16 | 17 | catalogs 18 | 19 | testing 20 | 21 | description 22 | Saves space by removing unused languages and architectures from applications. 23 | display_name 24 | Xslimmer 25 | name 26 | %NAME% 27 | unattended_install 28 | 29 | 30 | 31 | MinimumVersion 32 | 0.2.0 33 | ParentRecipe 34 | com.github.keeleysam.recipes.Xslimmer.download 35 | Process 36 | 37 | 38 | Arguments 39 | 40 | archive_path 41 | %pathname% 42 | destination_path 43 | %RECIPE_CACHE_DIR%/%NAME% 44 | purge_destination 45 | 46 | 47 | Processor 48 | Unarchiver 49 | 50 | 51 | Arguments 52 | 53 | dmg_path 54 | %RECIPE_CACHE_DIR%/%NAME%.dmg 55 | dmg_root 56 | %RECIPE_CACHE_DIR%/%NAME% 57 | 58 | Processor 59 | DmgCreator 60 | 61 | 62 | Processor 63 | MunkiPkginfoMerger 64 | 65 | 66 | Arguments 67 | 68 | pkg_path 69 | %dmg_path% 70 | repo_subdirectory 71 | %MUNKI_REPO_SUBDIR% 72 | 73 | Processor 74 | MunkiImporter 75 | 76 | 77 | 78 | 79 | -------------------------------------------------------------------------------- /smcFanControl/smcFanControl.munki.recipe: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Description 6 | Downloads the current release version of smcFanControl and imports into Munki. 7 | Identifier 8 | com.github.keeleysam.recipes.smcFanControl.munki 9 | Input 10 | 11 | MUNKI_REPO_SUBDIR 12 | utilities/smcFanControl 13 | NAME 14 | smcFanControl 15 | pkginfo 16 | 17 | catalogs 18 | 19 | testing 20 | 21 | description 22 | Allows monitoring and manual control of a Mac's interal fans. 23 | display_name 24 | smcFanControl 25 | name 26 | %NAME% 27 | unattended_install 28 | 29 | 30 | 31 | MinimumVersion 32 | 0.2.1 33 | ParentRecipe 34 | com.github.keeleysam.recipes.smcFanControl.download 35 | Process 36 | 37 | 38 | Arguments 39 | 40 | archive_path 41 | %pathname% 42 | destination_path 43 | %RECIPE_CACHE_DIR%/%NAME% 44 | purge_destination 45 | 46 | 47 | Processor 48 | Unarchiver 49 | 50 | 51 | Arguments 52 | 53 | dmg_path 54 | %RECIPE_CACHE_DIR%/%NAME%.dmg 55 | dmg_root 56 | %RECIPE_CACHE_DIR%/%NAME% 57 | 58 | Processor 59 | DmgCreator 60 | 61 | 62 | Processor 63 | MunkiPkginfoMerger 64 | 65 | 66 | Arguments 67 | 68 | pkg_path 69 | %dmg_path% 70 | repo_subdirectory 71 | %MUNKI_REPO_SUBDIR% 72 | 73 | Processor 74 | MunkiImporter 75 | 76 | 77 | 78 | 79 | -------------------------------------------------------------------------------- /Mailplane/Mailplane3.munki.recipe: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Description 6 | Downloads the current release version of Mailplane 3 and imports into Munki. 7 | Identifier 8 | com.github.keeleysam.recipes.Mailplane.3.munki 9 | Input 10 | 11 | MUNKI_REPO_SUBDIR 12 | apps/Mailplane 13 | NAME 14 | Mailplane3 15 | pkginfo 16 | 17 | catalogs 18 | 19 | testing 20 | 21 | description 22 | The best way to use Gmail on your Mac. 23 | display_name 24 | Mailplane 3 25 | minimum_os_version 26 | 10.7 27 | name 28 | %NAME% 29 | unattended_install 30 | 31 | 32 | 33 | MinimumVersion 34 | 0.2.1 35 | ParentRecipe 36 | com.github.keeleysam.recipes.Mailplane.3.download 37 | Process 38 | 39 | 40 | Arguments 41 | 42 | archive_path 43 | %pathname% 44 | destination_path 45 | %RECIPE_CACHE_DIR%/%NAME% 46 | purge_destination 47 | 48 | 49 | Processor 50 | Unarchiver 51 | 52 | 53 | Arguments 54 | 55 | dmg_path 56 | %RECIPE_CACHE_DIR%/%NAME%.dmg 57 | dmg_root 58 | %RECIPE_CACHE_DIR%/%NAME% 59 | 60 | Processor 61 | DmgCreator 62 | 63 | 64 | Processor 65 | MunkiPkginfoMerger 66 | 67 | 68 | Arguments 69 | 70 | pkg_path 71 | %dmg_path% 72 | repo_subdirectory 73 | %MUNKI_REPO_SUBDIR% 74 | 75 | Processor 76 | MunkiImporter 77 | 78 | 79 | 80 | 81 | -------------------------------------------------------------------------------- /Twocanoes/WinclonePro4.munki.recipe: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Description 6 | Downloads the current release version of Winclone Pro 4 and imports into Munki. 7 | Identifier 8 | com.github.keeleysam.recipes.Twocanoes.WinclonePro4.munki 9 | Input 10 | 11 | MUNKI_REPO_SUBDIR 12 | apps/Twocanoes/WinclonePro4 13 | NAME 14 | WinclonePro4 15 | pkginfo 16 | 17 | catalogs 18 | 19 | testing 20 | 21 | description 22 | Winclone Pro is a utility to image, clone, and restore Boot Camp partitions. 23 | display_name 24 | Winclone Pro 4 25 | name 26 | %NAME% 27 | unattended_install 28 | 29 | 30 | 31 | MinimumVersion 32 | 0.2.1 33 | ParentRecipe 34 | com.github.keeleysam.recipes.Twocanoes.WinclonePro4.download 35 | Process 36 | 37 | 38 | Arguments 39 | 40 | archive_path 41 | %pathname% 42 | destination_path 43 | %RECIPE_CACHE_DIR%/%NAME% 44 | purge_destination 45 | 46 | 47 | Processor 48 | Unarchiver 49 | 50 | 51 | Arguments 52 | 53 | dmg_path 54 | %RECIPE_CACHE_DIR%/%NAME%.dmg 55 | dmg_root 56 | %RECIPE_CACHE_DIR%/%NAME% 57 | 58 | Processor 59 | DmgCreator 60 | 61 | 62 | Processor 63 | MunkiPkginfoMerger 64 | 65 | 66 | Arguments 67 | 68 | pkg_path 69 | %dmg_path% 70 | repo_subdirectory 71 | %MUNKI_REPO_SUBDIR% 72 | 73 | Processor 74 | MunkiImporter 75 | 76 | 77 | 78 | 79 | -------------------------------------------------------------------------------- /Flux/Flux.download.recipe: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Description 6 | Downloads the current release version of Flux. 7 | Identifier 8 | com.github.keeleysam.recipes.Flux.download 9 | Input 10 | 11 | NAME 12 | Flux 13 | DOWNLOAD_URL 14 | https://justgetflux.com/mac/Flux.zip 15 | 16 | MinimumVersion 17 | 0.2.0 18 | Process 19 | 20 | 21 | Processor 22 | URLDownloader 23 | Arguments 24 | 25 | filename 26 | %NAME%.zip 27 | url 28 | %DOWNLOAD_URL% 29 | 30 | 31 | 32 | Processor 33 | EndOfCheckPhase 34 | 35 | 36 | Processor 37 | Unarchiver 38 | Arguments 39 | 40 | archive_path 41 | %pathname% 42 | destination_path 43 | %RECIPE_CACHE_DIR%/%NAME% 44 | purge_destination 45 | 46 | 47 | 48 | 49 | Processor 50 | CodeSignatureVerifier 51 | Arguments 52 | 53 | input_path 54 | %RECIPE_CACHE_DIR%/%NAME%/Flux.app 55 | requirement 56 | anchor apple generic and identifier "org.herf.Flux" 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] = VZKSA7H9J9) 57 | 58 | 59 | 60 | 61 | 62 | -------------------------------------------------------------------------------- /FileZilla/FileZilla_nightly.download.recipe: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Description 6 | Downloads the most recent nightly build of FileZilla for Mac. 7 | 8 | Valid values for ARCH include: 9 | - "x86_64" (default, Intel) 10 | - "aarch64" (Apple Silicon) 11 | Note the architecture values are not the same as the FileZilla stable recipe. 12 | 13 | Identifier 14 | com.github.keeleysam.recipes.FileZilla.nightly.download 15 | Input 16 | 17 | NAME 18 | FileZilla_nightly 19 | ARCH 20 | x86_64 21 | 22 | MinimumVersion 23 | 1.1 24 | Process 25 | 26 | 27 | Arguments 28 | 29 | re_pattern 30 | href="(/nightlies/[\d-]+/%ARCH%-apple-darwin[\d\.]+/FileZilla\d+\.app\.tar\.bz2)" 31 | url 32 | https://filezilla-project.org/nightly.php 33 | 34 | Processor 35 | URLTextSearcher 36 | 37 | 38 | Arguments 39 | 40 | url 41 | https://filezilla-project.org/%match% 42 | filename 43 | %NAME%.tar.bz2 44 | 45 | Processor 46 | URLDownloader 47 | 48 | 49 | Processor 50 | EndOfCheckPhase 51 | 52 | 53 | Processor 54 | Unarchiver 55 | Arguments 56 | 57 | purge_destination 58 | 59 | 60 | 61 | 62 | Processor 63 | CodeSignatureVerifier 64 | Arguments 65 | 66 | input_path 67 | %RECIPE_CACHE_DIR%/%NAME%/FileZilla.app 68 | requirement 69 | identifier "org.filezilla-project.filezilla" 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] = "5VPGKXL75N" 70 | 71 | 72 | 73 | 74 | 75 | -------------------------------------------------------------------------------- /gfxCardStatus/gfxCardStatus.munki.recipe: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Description 6 | Downloads the current release version of gfxCardStatus and imports into Munki. 7 | Identifier 8 | com.github.keeleysam.recipes.gfxCardStatus.munki 9 | Input 10 | 11 | MUNKI_REPO_SUBDIR 12 | utilities/gfxCardStatus 13 | NAME 14 | gfxCardStatus 15 | pkginfo 16 | 17 | catalogs 18 | 19 | testing 20 | 21 | description 22 | gfxCardStatus is an unobtrusive menu bar app for OS X that allows MacBook Pro users to see which apps are affecting their battery life by using the more power-hungry graphics. 23 | display_name 24 | gfxCardStatus 25 | name 26 | %NAME% 27 | unattended_install 28 | 29 | 30 | 31 | MinimumVersion 32 | 0.2.1 33 | ParentRecipe 34 | com.github.keeleysam.recipes.gfxCardStatus.download 35 | Process 36 | 37 | 38 | Arguments 39 | 40 | archive_path 41 | %pathname% 42 | destination_path 43 | %RECIPE_CACHE_DIR%/%NAME% 44 | purge_destination 45 | 46 | 47 | Processor 48 | Unarchiver 49 | 50 | 51 | Arguments 52 | 53 | dmg_path 54 | %RECIPE_CACHE_DIR%/%NAME%.dmg 55 | dmg_root 56 | %RECIPE_CACHE_DIR%/%NAME% 57 | 58 | Processor 59 | DmgCreator 60 | 61 | 62 | Processor 63 | MunkiPkginfoMerger 64 | 65 | 66 | Arguments 67 | 68 | pkg_path 69 | %dmg_path% 70 | repo_subdirectory 71 | %MUNKI_REPO_SUBDIR% 72 | 73 | Processor 74 | MunkiImporter 75 | 76 | 77 | 78 | 79 | -------------------------------------------------------------------------------- /Flux/Flux.munki.recipe: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Description 6 | Downloads the current release version of Flux and imports into Munki. 7 | Identifier 8 | com.github.keeleysam.recipes.Flux.munki 9 | Input 10 | 11 | MUNKI_REPO_SUBDIR 12 | apps/Flux 13 | NAME 14 | Flux 15 | pkginfo 16 | 17 | catalogs 18 | 19 | testing 20 | 21 | description 22 | f.lux makes your computer screen look like the room you're in, all the time. When the sun sets, it makes your computer look like your indoor lights. In the morning, it makes things look like sunlight again. 23 | 24 | Tell f.lux what kind of lighting you have, and where you live. Then forget about it. f.lux will do the rest, automatically. 25 | display_name 26 | f.lux 27 | name 28 | %NAME% 29 | unattended_install 30 | 31 | 32 | 33 | MinimumVersion 34 | 0.2.0 35 | ParentRecipe 36 | com.github.keeleysam.recipes.Flux.download 37 | Process 38 | 39 | 40 | Processor 41 | DmgCreator 42 | Arguments 43 | 44 | dmg_path 45 | %RECIPE_CACHE_DIR%/%NAME%.dmg 46 | dmg_root 47 | %RECIPE_CACHE_DIR%/%NAME% 48 | 49 | 50 | 51 | Processor 52 | MunkiImporter 53 | Arguments 54 | 55 | pkg_path 56 | %dmg_path% 57 | repo_subdirectory 58 | %MUNKI_REPO_SUBDIR% 59 | 60 | 61 | 62 | 63 | 64 | -------------------------------------------------------------------------------- /Colloquy/Colloquy.munki.recipe: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Description 6 | Gets the current release version of Colloquy and imports into Munki. 7 | Identifier 8 | com.github.keeleysam.recipes.Colloquy.munki 9 | Input 10 | 11 | MUNKI_REPO_SUBDIR 12 | apps/Colloquy 13 | NAME 14 | Colloquy 15 | pkginfo 16 | 17 | catalogs 18 | 19 | testing 20 | 21 | description 22 | Traditionally, chat clients on the Mac have been anything but glamorous. Colloquy is an advanced IRC, SILC and ICB client which aims to fill this void. By adhering to Mac OS X interface conventions, Colloquy has the look and feel of a quality Mac application. 23 | display_name 24 | Colloquy 25 | name 26 | %NAME% 27 | unattended_install 28 | 29 | 30 | 31 | MinimumVersion 32 | 0.2.0 33 | ParentRecipe 34 | com.github.keeleysam.recipes.Colloquy.download 35 | Process 36 | 37 | 38 | Arguments 39 | 40 | archive_path 41 | %pathname% 42 | destination_path 43 | %RECIPE_CACHE_DIR%/%NAME% 44 | purge_destination 45 | 46 | 47 | Processor 48 | Unarchiver 49 | 50 | 51 | Arguments 52 | 53 | dmg_path 54 | %RECIPE_CACHE_DIR%/%NAME%.dmg 55 | dmg_root 56 | %RECIPE_CACHE_DIR%/%NAME% 57 | 58 | Processor 59 | DmgCreator 60 | 61 | 62 | Processor 63 | MunkiPkginfoMerger 64 | 65 | 66 | Arguments 67 | 68 | pkg_path 69 | %dmg_path% 70 | repo_subdirectory 71 | %MUNKI_REPO_SUBDIR% 72 | 73 | Processor 74 | MunkiImporter 75 | 76 | 77 | 78 | 79 | -------------------------------------------------------------------------------- /Github/GitHub.pkg.recipe: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Description 6 | Downloads latest Github app and builds a package. 7 | Identifier 8 | com.github.keeleysam.recipes.pkg.GitHub 9 | Input 10 | 11 | NAME 12 | GitHub 13 | 14 | ParentRecipe 15 | com.github.keeleysam.recipes.GitHub.download 16 | Process 17 | 18 | 19 | Arguments 20 | 21 | pkgdirs 22 | 23 | Applications 24 | 0775 25 | 26 | pkgroot 27 | %RECIPE_CACHE_DIR%/%NAME% 28 | 29 | Processor 30 | PkgRootCreator 31 | 32 | 33 | Arguments 34 | 35 | archive_path 36 | %pathname% 37 | destination_path 38 | %RECIPE_CACHE_DIR%/%NAME%/Applications 39 | purge_destination 40 | 41 | 42 | Processor 43 | Unarchiver 44 | 45 | 46 | Arguments 47 | 48 | input_plist_path 49 | %RECIPE_CACHE_DIR%/%NAME%/Applications/GitHub.app/Contents/Info.plist 50 | plist_version_key 51 | CFBundleVersion 52 | 53 | Processor 54 | Versioner 55 | 56 | 57 | Arguments 58 | 59 | pkg_request 60 | 61 | chown 62 | 63 | 64 | group 65 | admin 66 | path 67 | Applications 68 | user 69 | root 70 | 71 | 72 | id 73 | com.github.GitHub 74 | options 75 | purge_ds_store 76 | pkgname 77 | %NAME%-%version% 78 | version 79 | %version% 80 | 81 | 82 | Processor 83 | PkgCreator 84 | 85 | 86 | 87 | 88 | -------------------------------------------------------------------------------- /FileZilla/FileZilla_beta.munki.recipe: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Description 6 | Downloads the current installation package for FileZilla. Imports it into Munki. 7 | Identifier 8 | com.github.keeleysam.recipes.FileZilla.beta.munki 9 | Input 10 | 11 | MUNKI_REPO_SUBDIR 12 | apps/FileZilla/beta 13 | NAME 14 | FileZilla_beta 15 | pkginfo 16 | 17 | catalogs 18 | 19 | testing 20 | 21 | display_name 22 | FileZilla 23 | name 24 | %NAME% 25 | unattended_install 26 | 27 | 28 | 29 | MinimumVersion 30 | 1.1 31 | ParentRecipe 32 | com.github.keeleysam.recipes.FileZilla.download 33 | Process 34 | 35 | 36 | Processor 37 | DeprecationWarning 38 | Arguments 39 | 40 | warning_message 41 | As of December 2024, FileZilla betas are not available for download. Consider switching to the FileZilla_nightly recipes in this repo. This recipe is deprecated and will be removed in the future. 42 | 43 | 44 | 45 | Arguments 46 | 47 | archive_path 48 | %pathname% 49 | destination_path 50 | %RECIPE_CACHE_DIR%/%NAME% 51 | purge_destination 52 | 53 | 54 | Processor 55 | Unarchiver 56 | 57 | 58 | Arguments 59 | 60 | dmg_path 61 | %RECIPE_CACHE_DIR%/%NAME%.dmg 62 | dmg_root 63 | %RECIPE_CACHE_DIR%/%NAME% 64 | 65 | Processor 66 | DmgCreator 67 | 68 | 69 | Arguments 70 | 71 | pkg_path 72 | %dmg_path% 73 | repo_subdirectory 74 | %MUNKI_REPO_SUBDIR% 75 | 76 | Processor 77 | MunkiImporter 78 | 79 | 80 | 81 | 82 | -------------------------------------------------------------------------------- /Opera/Opera.munki.recipe: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Description 6 | Downloads the latest Opera disk image and imports into Munki. 7 | Identifier 8 | com.github.keeleysam.recipes.Opera.munki 9 | Input 10 | 11 | MUNKI_REPO_SUBDIR 12 | apps/Opera 13 | NAME 14 | Opera 15 | pkginfo 16 | 17 | catalogs 18 | 19 | testing 20 | 21 | description 22 | Opera products enable more than 350 million internet consumers to discover and connect with the content and services that matter most to them, no matter what device, network or location. In turn, we help advertisers reach the audiences that build value for their businesses. Opera also delivers products and services to more than 120 operators around the world, enabling them to provide a faster, more economical and better network experience to their subscribers. 23 | display_name 24 | Opera 25 | name 26 | %NAME% 27 | unattended_install 28 | 29 | 30 | 31 | MinimumVersion 32 | 0.2.0 33 | ParentRecipe 34 | com.github.keeleysam.recipes.Opera.download 35 | Process 36 | 37 | 38 | Arguments 39 | 40 | input_plist_path 41 | %RECIPE_CACHE_DIR%/downloads/Opera.dmg/Opera.app/Contents/Info.plist 42 | plist_version_key 43 | CFBundleVersion 44 | 45 | Processor 46 | Versioner 47 | 48 | 49 | Arguments 50 | 51 | additional_pkginfo 52 | 53 | version 54 | %version% 55 | 56 | 57 | Processor 58 | MunkiPkginfoMerger 59 | 60 | 61 | Arguments 62 | 63 | pkg_path 64 | %pathname% 65 | repo_subdirectory 66 | %MUNKI_REPO_SUBDIR% 67 | 68 | Processor 69 | MunkiImporter 70 | 71 | 72 | 73 | 74 | -------------------------------------------------------------------------------- /Caffeine/Caffeine.munki.recipe: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Description 6 | Downloads the latest version of Caffeine and imports it into Munki. 7 | Identifier 8 | com.github.keeleysam.recipes.Caffeine.munki 9 | Input 10 | 11 | MUNKI_REPO_SUBDIR 12 | apps/%NAME% 13 | NAME 14 | Caffeine-%OS_VERSION_DOWNLOAD% 15 | pkginfo 16 | 17 | catalogs 18 | 19 | testing 20 | 21 | description 22 | Caffeine is a tiny open source program that puts an icon in the right side of your menubar. Click it to prevent your Mac from automatically going to sleep, dimming the screen or starting screen savers. 23 | developer 24 | Dominic Rodemer 25 | display_name 26 | Caffeine 27 | name 28 | %NAME% 29 | unattended_install 30 | 31 | unattended_uninstall 32 | 33 | 34 | 35 | MinimumVersion 36 | 2.7 37 | ParentRecipe 38 | com.github.keeleysam.recipes.Caffeine.download 39 | Process 40 | 41 | 42 | Arguments 43 | 44 | dmg_path 45 | %RECIPE_CACHE_DIR%/%NAME%.dmg 46 | dmg_root 47 | %RECIPE_CACHE_DIR%/%NAME% 48 | 49 | Processor 50 | DmgCreator 51 | 52 | 53 | Arguments 54 | 55 | pkg_path 56 | %dmg_path% 57 | repo_subdirectory 58 | %MUNKI_REPO_SUBDIR% 59 | 60 | Processor 61 | MunkiImporter 62 | 63 | 64 | 65 | 66 | -------------------------------------------------------------------------------- /SurteesStudios/Bartender.munki.recipe: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Description 6 | Gets the current release version of Bartender and imports into Munki. 7 | Identifier 8 | com.github.keeleysam.recipes.surteesstudios.Bartender.munki 9 | Input 10 | 11 | MUNKI_REPO_SUBDIR 12 | apps/Surtees Studios/Bartender 13 | NAME 14 | Bartender 15 | pkginfo 16 | 17 | catalogs 18 | 19 | testing 20 | 21 | description 22 | Bartender lets you organize your Menu Bar Apps, by hiding them, rearranging them, or moving them to the Bartenders Bar. You can display the full menu bar, set options to have Menu Bar Apps show in the menu bar when they are updating, or have them always visible in the Bartenders Bar. There are loads of ways to configure Bartender to perform as you wish. Give it a go and find out. 23 | name 24 | %NAME% 25 | unattended_install 26 | 27 | 28 | 29 | MinimumVersion 30 | 0.2.0 31 | ParentRecipe 32 | com.github.keeleysam.recipes.surteesstudios.Bartender.download 33 | Process 34 | 35 | 36 | Arguments 37 | 38 | archive_path 39 | %pathname% 40 | destination_path 41 | %RECIPE_CACHE_DIR%/%NAME% 42 | purge_destination 43 | 44 | 45 | Processor 46 | Unarchiver 47 | 48 | 49 | Arguments 50 | 51 | dmg_path 52 | %RECIPE_CACHE_DIR%/%NAME%.dmg 53 | dmg_root 54 | %RECIPE_CACHE_DIR%/%NAME% 55 | 56 | Processor 57 | DmgCreator 58 | 59 | 60 | Processor 61 | MunkiPkginfoMerger 62 | 63 | 64 | Arguments 65 | 66 | pkg_path 67 | %dmg_path% 68 | repo_subdirectory 69 | %MUNKI_REPO_SUBDIR% 70 | 71 | Processor 72 | MunkiImporter 73 | 74 | 75 | 76 | 77 | -------------------------------------------------------------------------------- /Caffeine/Caffeine.download.recipe: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Description 6 | Downloads the latest version of Caffeine. 7 | 8 | For the OS_VERSION_DOWNLOAD variable please use: 9 | - "sonoma" 10 | - "ventura" 11 | - "monterey" 12 | Identifier 13 | com.github.keeleysam.recipes.Caffeine.download 14 | Input 15 | 16 | NAME 17 | Caffeine-%OS_VERSION_DOWNLOAD% 18 | OS_VERSION_DOWNLOAD 19 | monterey 20 | 21 | MinimumVersion 22 | 2.7 23 | Process 24 | 25 | 26 | Arguments 27 | 28 | filename 29 | %NAME%.zip 30 | url 31 | https://www.caffeine-app.net/download/%OS_VERSION_DOWNLOAD%/ 32 | 33 | Processor 34 | URLDownloader 35 | 36 | 37 | Processor 38 | EndOfCheckPhase 39 | 40 | 41 | Arguments 42 | 43 | archive_path 44 | %pathname% 45 | destination_path 46 | %RECIPE_CACHE_DIR%/%NAME% 47 | purge_destination 48 | 49 | 50 | Processor 51 | Unarchiver 52 | 53 | 54 | Arguments 55 | 56 | input_path 57 | %RECIPE_CACHE_DIR%/%NAME%/Caffeine.app 58 | requirement 59 | anchor apple generic and identifier "net.domzilla.caffeine" 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] = "568T6RKXH7") 60 | 61 | Processor 62 | CodeSignatureVerifier 63 | 64 | 65 | 66 | 67 | -------------------------------------------------------------------------------- /CarbonCopyCloner/CarbonCopyCloner.download.recipe: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Description 6 | Downloads the current release version of Carbon Copy Cloner. 7 | 8 | The VERSION key can be overridden with (at the time of writing), three values: 9 | - latest (which is the v6 latest) 10 | - latestbeta (latest v6 beta) 11 | - ccc5 (the last release of v5) 12 | 13 | Identifier 14 | com.github.keeleysam.recipes.CarbonCopyCloner.download 15 | Input 16 | 17 | NAME 18 | CarbonCopyCloner 19 | VERSION 20 | latest 21 | 22 | MinimumVersion 23 | 0.3.1 24 | Process 25 | 26 | 27 | Processor 28 | URLDownloader 29 | Arguments 30 | 31 | filename 32 | %NAME%.zip 33 | url 34 | https://bombich.scdn1.secure.raxcdn.com/software/download_ccc.php?v=%VERSION% 35 | 36 | 37 | 38 | Processor 39 | EndOfCheckPhase 40 | 41 | 42 | Processor 43 | Unarchiver 44 | Arguments 45 | 46 | archive_path 47 | %pathname% 48 | destination_path 49 | %RECIPE_CACHE_DIR%/downloads/Applications 50 | purge_destination 51 | 52 | 53 | 54 | 55 | Processor 56 | CodeSignatureVerifier 57 | Arguments 58 | 59 | input_path 60 | %RECIPE_CACHE_DIR%/downloads/Applications/Carbon Copy Cloner.app 61 | requirement 62 | certificate root = H"611e5b662c593a08ff58d14ae22452d198df6c60" and certificate leaf[subject.O] = "Bombich Software"* and identifier "com.bombich.ccc" 63 | 64 | 65 | 66 | 67 | 68 | -------------------------------------------------------------------------------- /ParallelsDesktop/ParallelsDesktop9.munki.recipe: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Description 6 | Downloads the current installation package for Parallels Desktop 9. Imports it into Munki. 7 | Identifier 8 | com.github.keeleysam.recipes.ParallelsDesktop9.munki 9 | Input 10 | 11 | MUNKI_REPO_SUBDIR 12 | apps/Parallels/ParallelsDesktop9 13 | NAME 14 | ParallelsDesktop9 15 | PATH 16 | Parallels Desktop.app 17 | pkginfo 18 | 19 | catalogs 20 | 21 | testing 22 | 23 | display_name 24 | Parallels Desktop 9 25 | name 26 | %NAME% 27 | unattended_install 28 | 29 | 30 | 31 | MinimumVersion 32 | 0.2.1 33 | ParentRecipe 34 | com.github.keeleysam.recipes.ParallelsDesktop.download 35 | Process 36 | 37 | 38 | Arguments 39 | 40 | additional_pkginfo 41 | 42 | description 43 | %description% 44 | 45 | 46 | Processor 47 | MunkiPkginfoMerger 48 | 49 | 50 | Arguments 51 | 52 | destination_path 53 | %RECIPE_CACHE_DIR%/%NAME%.dmg 54 | source_path 55 | %pathname% 56 | 57 | Processor 58 | Copier 59 | 60 | 61 | Arguments 62 | 63 | faux_root 64 | %RECIPE_CACHE_DIR%/%NAME% 65 | installs_item_paths 66 | 67 | /Applications/%PATH% 68 | 69 | 70 | Processor 71 | MunkiInstallsItemsCreator 72 | 73 | 74 | Arguments 75 | 76 | munkiimport_appname 77 | %PATH% 78 | pkg_path 79 | %RECIPE_CACHE_DIR%/%NAME%.dmg 80 | repo_subdirectory 81 | %MUNKI_REPO_SUBDIR% 82 | 83 | Processor 84 | MunkiImporter 85 | 86 | 87 | 88 | 89 | -------------------------------------------------------------------------------- /Duo/Duo Desktop.munki.recipe: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Identifier 6 | com.keeleysam.recipes.munki.DuoDesktop 7 | Input 8 | 9 | MUNKI_REPO_SUBDIR 10 | apps/%NAME% 11 | NAME 12 | Duo Desktop 13 | pkginfo 14 | 15 | catalogs 16 | 17 | production 18 | 19 | developer 20 | Duo Security, Inc. 21 | display_name 22 | Duo Desktop 23 | name 24 | %NAME% 25 | preinstall_script 26 | #!/bin/bash 27 | 28 | # If running macOS 11+ then write out this file to allow installation to proceed. 29 | # Needs MDM to deliver a cert profile, as per: https://duo.com/docs/device-health 30 | # 31 | # Get darwin version, pinched, with <33 from: https://stackoverflow.com/a/39499208 32 | # Arguably a cleaner way to detect OS. 33 | 34 | CREATEDEVICEHEALTHDIRECTORY="/Library/Application Support/Duo/Duo Device Health" 35 | DISABLECERT="/Library/Application Support/Duo/Duo Device Health/DisableMacOS11CertManagement" 36 | 37 | if [[ ${OSTYPE:6} -ge 21 ]] 38 | then 39 | /bin/mkdir -p "$CREATEDEVICEHEALTHDIRECTORY" 40 | /usr/bin/touch "$DISABLECERT" 41 | fi 42 | unattended_install 43 | 44 | 45 | 46 | ParentRecipe 47 | com.keeleysam.recipes.download.DuoDesktop 48 | Process 49 | 50 | 51 | Arguments 52 | 53 | additional_pkginfo 54 | 55 | installs 56 | 57 | 58 | CFBundleShortVersionString 59 | %version% 60 | path 61 | /Applications/Duo Desktop.app 62 | type 63 | application 64 | version_comparison_key 65 | CFBundleShortVersionString 66 | 67 | 68 | 69 | 70 | Processor 71 | MunkiPkginfoMerger 72 | 73 | 74 | Arguments 75 | 76 | pkg_path 77 | %pathname% 78 | repo_subdirectory 79 | %MUNKI_REPO_SUBDIR% 80 | 81 | Processor 82 | MunkiImporter 83 | 84 | 85 | 86 | 87 | -------------------------------------------------------------------------------- /CarbonCopyCloner/CarbonCopyCloner.pkg.recipe: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Description 6 | Downloads the current release version of CarbonCopyCloner and builds a package. 7 | Identifier 8 | com.github.keeleysam.recipes.pkg.CarbonCopyCloner 9 | Input 10 | 11 | NAME 12 | CarbonCopyCloner 13 | 14 | MinimumVersion 15 | 0.3.1 16 | ParentRecipe 17 | com.github.keeleysam.recipes.CarbonCopyCloner.download 18 | Process 19 | 20 | 21 | Arguments 22 | 23 | pkgdirs 24 | 25 | Applications 26 | 0775 27 | 28 | pkgroot 29 | %RECIPE_CACHE_DIR%/%NAME% 30 | 31 | Processor 32 | PkgRootCreator 33 | 34 | 35 | Arguments 36 | 37 | archive_path 38 | %pathname% 39 | destination_path 40 | %pkgroot%/Applications 41 | purge_destination 42 | 43 | 44 | Processor 45 | Unarchiver 46 | 47 | 48 | Arguments 49 | 50 | input_plist_path 51 | %pkgroot%/Applications/Carbon Copy Cloner.app/Contents/Info.plist 52 | plist_version_key 53 | CFBundleShortVersionString 54 | 55 | Comment 56 | Get version from the app 57 | Processor 58 | Versioner 59 | 60 | 61 | Arguments 62 | 63 | pkg_request 64 | 65 | chown 66 | 67 | 68 | group 69 | admin 70 | path 71 | Applications 72 | user 73 | root 74 | 75 | 76 | id 77 | com.bombich.ccc 78 | options 79 | purge_ds_store 80 | pkgname 81 | %NAME%-%version% 82 | version 83 | %version% 84 | 85 | 86 | Processor 87 | PkgCreator 88 | 89 | 90 | 91 | 92 | -------------------------------------------------------------------------------- /Opera/OperaURLProvider.py: -------------------------------------------------------------------------------- 1 | #!/usr/local/autopkg/python 2 | # 3 | # Copyright 2014 Nick Gamewell 4 | # 5 | # Licensed under the Apache License, Version 2.0 (the "License"); 6 | # you may not use this file except in compliance with the License. 7 | # You may obtain a copy of the License at 8 | # 9 | # http://www.apache.org/licenses/LICENSE-2.0 10 | # 11 | # Unless required by applicable law or agreed to in writing, software 12 | # distributed under the License is distributed on an "AS IS" BASIS, 13 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | # See the License for the specific language governing permissions and 15 | # limitations under the License. 16 | 17 | from __future__ import absolute_import 18 | 19 | import re 20 | 21 | from autopkglib import Processor, ProcessorError, URLGetter, APLooseVersion 22 | 23 | __all__ = ["OperaURLProvider"] 24 | 25 | 26 | BASE_URL = "https://get.geo.opera.com/ftp/pub/opera/desktop/" 27 | 28 | 29 | class OperaURLProvider(URLGetter): 30 | """Provides a download URL for the latest Opera release.""" 31 | 32 | input_variables = { 33 | "base_url": {"required": False, "description": "Default is %s" % BASE_URL,}, 34 | } 35 | output_variables = { 36 | "url": {"description": "URL to the latest Opera release.",}, 37 | "version": {"description": "Version of the latest Opera release.",}, 38 | } 39 | description = __doc__ 40 | 41 | def get_opera_url(self, url): 42 | version = None 43 | 44 | # Get list of links from directory listing 45 | page = self.download(url).decode('utf-8') 46 | links = re.findall(r'', page) 47 | latest = APLooseVersion("0.0.0") 48 | for link in links: 49 | if link == "../": 50 | continue 51 | link = link.rstrip("/") 52 | if latest < APLooseVersion(link): 53 | latest = APLooseVersion(link) 54 | 55 | 56 | # Obtain and return the dmg download URL and version 57 | url += str(latest) + "/mac/" 58 | page = self.download(url).decode('utf-8') 59 | links = re.findall(r'', page) 60 | for link in links: 61 | if ".dmg" in link: 62 | url += link 63 | return url, str(latest) 64 | 65 | def main(self): 66 | """Find and return a download URL""" 67 | base_url = self.env.get("base_url", BASE_URL) 68 | self.env["url"], self.env["version"] = self.get_opera_url(base_url) 69 | self.output("Found URL %s" % self.env["url"]) 70 | 71 | 72 | if __name__ == "__main__": 73 | processor = OperaURLProvider() 74 | processor.execute_shell() 75 | -------------------------------------------------------------------------------- /CarbonCopyCloner/CarbonCopyCloner.munki.recipe: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Description 6 | Imports CCC into Munki. 7 | Identifier 8 | com.github.keeleysam.recipes.CarbonCopyCloner.munki 9 | Input 10 | 11 | MUNKI_REPO_SUBDIR 12 | apps/Carbon Copy Cloner 13 | NAME 14 | CarbonCopyCloner 15 | pkginfo 16 | 17 | catalogs 18 | 19 | testing 20 | 21 | description 22 | Disk and folder cloning utility for OS X. 23 | display_name 24 | Carbon Copy Cloner 25 | name 26 | %NAME% 27 | unattended_install 28 | 29 | 30 | 31 | MinimumVersion 32 | 0.3.1 33 | ParentRecipe 34 | com.github.keeleysam.recipes.CarbonCopyCloner.download 35 | Process 36 | 37 | 38 | Processor 39 | DmgCreator 40 | Arguments 41 | 42 | dmg_path 43 | %RECIPE_CACHE_DIR%/downloads/CarbonCopyCloner.dmg 44 | dmg_root 45 | %RECIPE_CACHE_DIR%/downloads/Applications/Carbon Copy Cloner.app 46 | 47 | 48 | 49 | Processor 50 | MunkiImporter 51 | Arguments 52 | 53 | pkg_path 54 | %RECIPE_CACHE_DIR%/downloads/CarbonCopyCloner.dmg 55 | repo_subdirectory 56 | %MUNKI_REPO_SUBDIR% 57 | 58 | 59 | 60 | Processor 61 | PathDeleter 62 | Arguments 63 | 64 | path_list 65 | 66 | %dmg_path% 67 | %RECIPE_CACHE_DIR%/downloads/Applications/ 68 | 69 | 70 | 71 | 72 | 73 | -------------------------------------------------------------------------------- /FileZilla/FileZilla.download.recipe: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Description 6 | Downloads the latest stable version of FileZilla for Mac. 7 | 8 | Valid values for ARCH include: 9 | - "x86" (default, Intel) 10 | - "arm64" (Apple Silicon) 11 | Note the architecture values are not the same as the FileZilla nightly recipe. 12 | 13 | Identifier 14 | com.github.keeleysam.recipes.FileZilla.download 15 | Input 16 | 17 | NAME 18 | FileZilla 19 | ARCH 20 | x86 21 | RE_PATTERN 22 | <a href=\"(?P<url>http[s]?.*?(?P<filename>FileZilla_(?P<version>[\d.]+)_macos-%ARCH%.*?\.tar\.bz2).*?)\" 23 | 24 | MinimumVersion 25 | 1.1 26 | Process 27 | 28 | 29 | Processor 30 | DeprecationWarning 31 | Arguments 32 | 33 | warning_message 34 | These FileZilla recipes are deprecated and will be removed in the future. If you still need to deploy FileZilla, alternatives exist here: https://github.com/pappirauk/svs-recipes/tree/main/FileZilla 35 | 36 | 37 | 38 | Arguments 39 | 40 | re_pattern 41 | %RE_PATTERN% 42 | url 43 | https://filezilla-project.org/download.php?show_all=1 44 | request_headers 45 | 46 | user-agent 47 | Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_4) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.1 Safari/605.1.15 48 | 49 | 50 | Processor 51 | URLTextSearcher 52 | 53 | 54 | Processor 55 | URLDownloader 56 | 57 | 58 | Processor 59 | EndOfCheckPhase 60 | 61 | 62 | Processor 63 | Unarchiver 64 | Arguments 65 | 66 | purge_destination 67 | 68 | 69 | 70 | 71 | Processor 72 | CodeSignatureVerifier 73 | Arguments 74 | 75 | input_path 76 | %RECIPE_CACHE_DIR%/%NAME%/FileZilla.app 77 | requirement 78 | identifier "org.filezilla-project.filezilla" 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] = "5VPGKXL75N" 79 | 80 | 81 | 82 | 83 | 84 | -------------------------------------------------------------------------------- /StarTech/StarTechUSBDriver.munki.recipe: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Description 6 | Munki Imports the latest version of StarTechUSBDriver. 7 | Identifier 8 | com.github.keeleysam-recipes.munki.StarTechUSBDriver 9 | Input 10 | 11 | MUNKI_REPO_SUBDIR 12 | drivers/StarTech 13 | NAME 14 | StarTechUSBDriver 15 | FILENAME 16 | AX88179_178A 17 | 18 | MinimumVersion 19 | 0.6.1 20 | pkginfo 21 | 22 | catalogs 23 | 24 | testing 25 | 26 | developer 27 | StarTech 28 | display_name 29 | StarTech USB Driver 30 | name 31 | %NAME% 32 | unattended_install 33 | 34 | 35 | ParentRecipe 36 | com.github.keeleysam-recipes.download.StarTechUSBDriver 37 | Process 38 | 39 | 40 | Arguments 41 | 42 | pkg_path 43 | %RECIPE_CACHE_DIR%/%NAME%/%FILENAME%.dmg 44 | info_path 45 | %RECIPE_CACHE_DIR%/info.plist 46 | 47 | Processor 48 | MunkiInfoCreator 49 | 50 | 51 | Arguments 52 | 53 | plist_version_key 54 | version 55 | input_plist_path 56 | %RECIPE_CACHE_DIR%/info.plist 57 | 58 | Processor 59 | Versioner 60 | 61 | 62 | Arguments 63 | 64 | dmg_path 65 | %RECIPE_CACHE_DIR%/%NAME%/%FILENAME%.dmg 66 | items_to_copy 67 | 68 | 69 | source_item 70 | %FILENAME%_v%version%.pkg 71 | destination_path 72 | %RECIPE_CACHE_DIR%/ 73 | destination_item 74 | %RECIPE_CACHE_DIR%/%NAME%.pkg 75 | 76 | 77 | 78 | Processor 79 | InstallFromDMG 80 | 81 | 82 | Arguments 83 | 84 | pkg_path 85 | %RECIPE_CACHE_DIR%/%NAME%.pkg 86 | repo_subdirectory 87 | %MUNKI_REPO_SUBDIR% 88 | 89 | Processor 90 | MunkiImporter 91 | 92 | 93 | 94 | -------------------------------------------------------------------------------- /ParallelsDesktop/ParallelsDesktop10.munki.recipe: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Description 6 | Downloads the current installation package for Parallels Desktop 10. Imports it into Munki. 7 | Identifier 8 | com.github.keeleysam.recipes.ParallelsDesktop10.munki 9 | Input 10 | 11 | MUNKI_REPO_SUBDIR 12 | apps/Parallels/ParallelsDesktop10 13 | NAME 14 | ParallelsDesktop10 15 | PATH 16 | Parallels Desktop.app 17 | pkginfo 18 | 19 | catalogs 20 | 21 | testing 22 | 23 | display_name 24 | Parallels Desktop 10 25 | name 26 | %NAME% 27 | unattended_install 28 | 29 | 30 | 31 | MinimumVersion 32 | 0.2.1 33 | ParentRecipe 34 | com.github.keeleysam.recipes.ParallelsDesktop.download 35 | Process 36 | 37 | 38 | Arguments 39 | 40 | additional_pkginfo 41 | 42 | description 43 | %description% 44 | postinstall_script 45 | #!/bin/bash 46 | chflags nohidden "/Applications/%PATH%" 47 | 48 | 49 | 50 | Processor 51 | MunkiPkginfoMerger 52 | 53 | 54 | Arguments 55 | 56 | destination_path 57 | %RECIPE_CACHE_DIR%/%NAME%.dmg 58 | source_path 59 | %pathname% 60 | 61 | Processor 62 | Copier 63 | 64 | 65 | Arguments 66 | 67 | destination_path 68 | %RECIPE_CACHE_DIR%/%NAME%/Applications/%PATH% 69 | overwrite 70 | 71 | source_path 72 | %pathname%/%PATH% 73 | 74 | Processor 75 | Copier 76 | 77 | 78 | Arguments 79 | 80 | faux_root 81 | %RECIPE_CACHE_DIR%/%NAME% 82 | installs_item_paths 83 | 84 | /Applications/%PATH% 85 | 86 | 87 | Processor 88 | MunkiInstallsItemsCreator 89 | 90 | 91 | Arguments 92 | 93 | munkiimport_appname 94 | %PATH% 95 | pkg_path 96 | %RECIPE_CACHE_DIR%/%NAME%.dmg 97 | repo_subdirectory 98 | %MUNKI_REPO_SUBDIR% 99 | 100 | Processor 101 | MunkiImporter 102 | 103 | 104 | 105 | 106 | -------------------------------------------------------------------------------- /ParallelsDesktop/ParallelsURLProvider.py: -------------------------------------------------------------------------------- 1 | #!/usr/local/autopkg/python 2 | # 3 | # ParallelsURLProvider, version 2013.08.08 4 | # Copyright 2013 Samuel Keeley, derived from BarebonesURLProvider by Timothy Sutton 5 | # Thanks to Michael Lynn for help with xml.dom.minidom 6 | # 7 | # Licensed under the Apache License, Version 2.0 (the "License"); 8 | # you may not use this file except in compliance with the License. 9 | # You may obtain a copy of the License at 10 | # 11 | # http://www.apache.org/licenses/LICENSE-2.0 12 | # 13 | # Unless required by applicable law or agreed to in writing, software 14 | # distributed under the License is distributed on an "AS IS" BASIS, 15 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 16 | # See the License for the specific language governing permissions and 17 | # limitations under the License. 18 | 19 | from __future__ import absolute_import 20 | 21 | import xml.dom.minidom 22 | from distutils.version import LooseVersion 23 | 24 | from autopkglib import Processor, ProcessorError, URLGetter 25 | 26 | __all__ = ["ParallelsURLProvider"] 27 | 28 | URLS = { 29 | "ParallelsDesktop6": "http://update.parallels.com/desktop/v6/en_us/parallels/parallels_updates.xml", 30 | "ParallelsDesktop7": "http://update.parallels.com/desktop/v7/parallels/parallels_updates.xml", 31 | "ParallelsDesktop8": "http://update.parallels.com/desktop/v8/parallels/parallels_updates.xml", 32 | "ParallelsDesktop9": "http://update.parallels.com/desktop/v9/parallels/parallels_updates.xml", 33 | "ParallelsDesktop10": "http://update.parallels.com/desktop/v10/parallels/parallels_updates.xml"} 34 | 35 | 36 | class ParallelsURLProvider(URLGetter): 37 | description = "Provides a version, description, and DMG download for the Parallels product given." 38 | input_variables = { 39 | "product_name": { 40 | "required": True, 41 | "description": "Product to fetch URL for. One of: %s." % ', '.join(URLS), 42 | }, 43 | } 44 | output_variables = { 45 | "version": { 46 | "description": "Version of the product.", 47 | }, 48 | "url": { 49 | "description": "Download URL.", 50 | }, 51 | "description": { 52 | "description": "Update description." 53 | } 54 | } 55 | __doc__ = description 56 | 57 | def main(self): 58 | 59 | prod = self.env.get("product_name") 60 | if prod not in URLS: 61 | raise ProcessorError( 62 | "product_name %s is invalid; it must be one of: %s" % 63 | (prod, ', '.join(URLS))) 64 | url = URLS[prod] 65 | try: 66 | manifest_str = self.download(url) 67 | except Exception as e: 68 | raise ProcessorError( 69 | "Unexpected error retrieving product manifest: '%s'" % 70 | e) 71 | 72 | the_xml = xml.dom.minidom.parseString(manifest_str) 73 | products = the_xml.getElementsByTagName('Product') 74 | parallels = None 75 | for a_product in products: 76 | # Find the products that are 'Parallels Desktop' 77 | if a_product.getElementsByTagName( 78 | 'ProductName')[0].firstChild.nodeValue == u'Parallels Desktop': 79 | parallels = a_product 80 | v_major = parallels.getElementsByTagName( 81 | 'Major')[0].firstChild.nodeValue 82 | v_minor = parallels.getElementsByTagName( 83 | 'Minor')[0].firstChild.nodeValue 84 | v_sub_minor = parallels.getElementsByTagName( 85 | 'SubMinor')[0].firstChild.nodeValue 86 | v_sub_sub_minor = parallels.getElementsByTagName( 87 | 'SubSubMinor')[0].firstChild.nodeValue 88 | version = '.'.join( 89 | [v_major, v_minor, v_sub_minor, v_sub_sub_minor]) 90 | update = parallels.getElementsByTagName('Update')[0] 91 | try: 92 | description = [x.firstChild.nodeValue for x in update.getElementsByTagName( 93 | 'UpdateDescription') if x.firstChild.nodeValue.startswith('en_US')][0] 94 | description = '%s' % ( 95 | description.split('#', 1)[-1]) 96 | except: 97 | description = [x.firstChild.nodeValue for x in update.getElementsByTagName( 98 | 'UpdateDescription')][0] 99 | url = update.getElementsByTagName( 100 | 'FilePath')[0].firstChild.nodeValue 101 | 102 | self.env["version"] = version 103 | self.env["description"] = description 104 | self.env["url"] = url 105 | self.output("Found URL %s" % self.env["url"]) 106 | 107 | if __name__ == "__main__": 108 | processor = ParallelsURLProvider() 109 | processor.execute_shell() 110 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | Apache License 2 | Version 2.0, January 2004 3 | http://www.apache.org/licenses/ 4 | 5 | TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 6 | 7 | 1. Definitions. 8 | 9 | "License" shall mean the terms and conditions for use, reproduction, and 10 | distribution as defined by Sections 1 through 9 of this document. 11 | 12 | "Licensor" shall mean the copyright owner or entity authorized by the copyright 13 | owner that is granting the License. 14 | 15 | "Legal Entity" shall mean the union of the acting entity and all other entities 16 | that control, are controlled by, or are under common control with that entity. 17 | For the purposes of this definition, "control" means (i) the power, direct or 18 | indirect, to cause the direction or management of such entity, whether by 19 | contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the 20 | outstanding shares, or (iii) beneficial ownership of such entity. 21 | 22 | "You" (or "Your") shall mean an individual or Legal Entity exercising 23 | permissions granted by this License. 24 | 25 | "Source" form shall mean the preferred form for making modifications, including 26 | but not limited to software source code, documentation source, and configuration 27 | files. 28 | 29 | "Object" form shall mean any form resulting from mechanical transformation or 30 | translation of a Source form, including but not limited to compiled object code, 31 | generated documentation, and conversions to other media types. 32 | 33 | "Work" shall mean the work of authorship, whether in Source or Object form, made 34 | available under the License, as indicated by a copyright notice that is included 35 | in or attached to the work (an example is provided in the Appendix below). 36 | 37 | "Derivative Works" shall mean any work, whether in Source or Object form, that 38 | is based on (or derived from) the Work and for which the editorial revisions, 39 | annotations, elaborations, or other modifications represent, as a whole, an 40 | original work of authorship. For the purposes of this License, Derivative Works 41 | shall not include works that remain separable from, or merely link (or bind by 42 | name) to the interfaces of, the Work and Derivative Works thereof. 43 | 44 | "Contribution" shall mean any work of authorship, including the original version 45 | of the Work and any modifications or additions to that Work or Derivative Works 46 | thereof, that is intentionally submitted to Licensor for inclusion in the Work 47 | by the copyright owner or by an individual or Legal Entity authorized to submit 48 | on behalf of the copyright owner. For the purposes of this definition, 49 | "submitted" means any form of electronic, verbal, or written communication sent 50 | to the Licensor or its representatives, including but not limited to 51 | communication on electronic mailing lists, source code control systems, and 52 | issue tracking systems that are managed by, or on behalf of, the Licensor for 53 | the purpose of discussing and improving the Work, but excluding communication 54 | that is conspicuously marked or otherwise designated in writing by the copyright 55 | owner as "Not a Contribution." 56 | 57 | "Contributor" shall mean Licensor and any individual or Legal Entity on behalf 58 | of whom a Contribution has been received by Licensor and subsequently 59 | incorporated within the Work. 60 | 61 | 2. Grant of Copyright License. 62 | 63 | Subject to the terms and conditions of this License, each Contributor hereby 64 | grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, 65 | irrevocable copyright license to reproduce, prepare Derivative Works of, 66 | publicly display, publicly perform, sublicense, and distribute the Work and such 67 | Derivative Works in Source or Object form. 68 | 69 | 3. Grant of Patent License. 70 | 71 | Subject to the terms and conditions of this License, each Contributor hereby 72 | grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, 73 | irrevocable (except as stated in this section) patent license to make, have 74 | made, use, offer to sell, sell, import, and otherwise transfer the Work, where 75 | such license applies only to those patent claims licensable by such Contributor 76 | that are necessarily infringed by their Contribution(s) alone or by combination 77 | of their Contribution(s) with the Work to which such Contribution(s) was 78 | submitted. If You institute patent litigation against any entity (including a 79 | cross-claim or counterclaim in a lawsuit) alleging that the Work or a 80 | Contribution incorporated within the Work constitutes direct or contributory 81 | patent infringement, then any patent licenses granted to You under this License 82 | for that Work shall terminate as of the date such litigation is filed. 83 | 84 | 4. Redistribution. 85 | 86 | You may reproduce and distribute copies of the Work or Derivative Works thereof 87 | in any medium, with or without modifications, and in Source or Object form, 88 | provided that You meet the following conditions: 89 | 90 | You must give any other recipients of the Work or Derivative Works a copy of 91 | this License; and 92 | You must cause any modified files to carry prominent notices stating that You 93 | changed the files; and 94 | You must retain, in the Source form of any Derivative Works that You distribute, 95 | all copyright, patent, trademark, and attribution notices from the Source form 96 | of the Work, excluding those notices that do not pertain to any part of the 97 | Derivative Works; and 98 | If the Work includes a "NOTICE" text file as part of its distribution, then any 99 | Derivative Works that You distribute must include a readable copy of the 100 | attribution notices contained within such NOTICE file, excluding those notices 101 | that do not pertain to any part of the Derivative Works, in at least one of the 102 | following places: within a NOTICE text file distributed as part of the 103 | Derivative Works; within the Source form or documentation, if provided along 104 | with the Derivative Works; or, within a display generated by the Derivative 105 | Works, if and wherever such third-party notices normally appear. The contents of 106 | the NOTICE file are for informational purposes only and do not modify the 107 | License. You may add Your own attribution notices within Derivative Works that 108 | You distribute, alongside or as an addendum to the NOTICE text from the Work, 109 | provided that such additional attribution notices cannot be construed as 110 | modifying the License. 111 | You may add Your own copyright statement to Your modifications and may provide 112 | additional or different license terms and conditions for use, reproduction, or 113 | distribution of Your modifications, or for any such Derivative Works as a whole, 114 | provided Your use, reproduction, and distribution of the Work otherwise complies 115 | with the conditions stated in this License. 116 | 117 | 5. Submission of Contributions. 118 | 119 | Unless You explicitly state otherwise, any Contribution intentionally submitted 120 | for inclusion in the Work by You to the Licensor shall be under the terms and 121 | conditions of this License, without any additional terms or conditions. 122 | Notwithstanding the above, nothing herein shall supersede or modify the terms of 123 | any separate license agreement you may have executed with Licensor regarding 124 | such Contributions. 125 | 126 | 6. Trademarks. 127 | 128 | This License does not grant permission to use the trade names, trademarks, 129 | service marks, or product names of the Licensor, except as required for 130 | reasonable and customary use in describing the origin of the Work and 131 | reproducing the content of the NOTICE file. 132 | 133 | 7. Disclaimer of Warranty. 134 | 135 | Unless required by applicable law or agreed to in writing, Licensor provides the 136 | Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, 137 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, 138 | including, without limitation, any warranties or conditions of TITLE, 139 | NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are 140 | solely responsible for determining the appropriateness of using or 141 | redistributing the Work and assume any risks associated with Your exercise of 142 | permissions under this License. 143 | 144 | 8. Limitation of Liability. 145 | 146 | In no event and under no legal theory, whether in tort (including negligence), 147 | contract, or otherwise, unless required by applicable law (such as deliberate 148 | and grossly negligent acts) or agreed to in writing, shall any Contributor be 149 | liable to You for damages, including any direct, indirect, special, incidental, 150 | or consequential damages of any character arising as a result of this License or 151 | out of the use or inability to use the Work (including but not limited to 152 | damages for loss of goodwill, work stoppage, computer failure or malfunction, or 153 | any and all other commercial damages or losses), even if such Contributor has 154 | been advised of the possibility of such damages. 155 | 156 | 9. Accepting Warranty or Additional Liability. 157 | 158 | While redistributing the Work or Derivative Works thereof, You may choose to 159 | offer, and charge a fee for, acceptance of support, warranty, indemnity, or 160 | other liability obligations and/or rights consistent with this License. However, 161 | in accepting such obligations, You may act only on Your own behalf and on Your 162 | sole responsibility, not on behalf of any other Contributor, and only if You 163 | agree to indemnify, defend, and hold each Contributor harmless for any liability 164 | incurred by, or claims asserted against, such Contributor by reason of your 165 | accepting any such warranty or additional liability. 166 | 167 | END OF TERMS AND CONDITIONS 168 | 169 | APPENDIX: How to apply the Apache License to your work 170 | 171 | To apply the Apache License to your work, attach the following boilerplate 172 | notice, with the fields enclosed by brackets "[]" replaced with your own 173 | identifying information. (Don't include the brackets!) The text should be 174 | enclosed in the appropriate comment syntax for the file format. We also 175 | recommend that a file or class name and description of purpose be included on 176 | the same "printed page" as the copyright notice for easier identification within 177 | third-party archives. 178 | 179 | Copyright [yyyy] [name of copyright owner] 180 | 181 | Licensed under the Apache License, Version 2.0 (the "License"); 182 | you may not use this file except in compliance with the License. 183 | You may obtain a copy of the License at 184 | 185 | http://www.apache.org/licenses/LICENSE-2.0 186 | 187 | Unless required by applicable law or agreed to in writing, software 188 | distributed under the License is distributed on an "AS IS" BASIS, 189 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 190 | See the License for the specific language governing permissions and 191 | limitations under the License. 192 | --------------------------------------------------------------------------------