Giter VIP home page Giter VIP logo

killahquam-recipes's Introduction

AutoPkg

Code style: black Tests passing

Latest release is here.

AutoPkg is an automation framework for macOS software packaging and distribution, oriented towards the tasks one would normally perform manually to prepare third-party software for mass deployment to managed clients.

These tasks typically involve at least several of the following steps:

  • downloading an application and/or updates for it, usually via a web browser
  • extracting them from a multitude of archive formats
  • adding site-specific configuration
  • adding sane versioning information
  • "fixing" poorly-written installer scripts
  • saving these modifications back to a compressed disk image or installer package
  • importing these into a software distribution system like Munki, Jamf Pro, FileWave, etc.
  • customizing the associated metadata for such a system with site-specific data, post-installation scripts, version info or other metadata

Often these tasks follow similar patterns for each individual application, and when managing many applications this becomes a daily task full of sub-tasks that one must remember (and/or maintain documentation for) about exactly what had to be done for a successful deployment of every update for every managed piece of software.

With AutoPkg, we define these steps in a "Recipe" file in plist or yaml format, run automatically instead of by hand, and shared with others.

Installation

Install the latest release.

AutoPkg requires macOS, and Git is highly recommended to have installed so that autopkg can use git to can manage recipe repositories. Knowledge of Git itself is not required.

AutoPkg is tested on the current macOS release. It may work on older releases, but is not actively tested on older releases.

Git can be installed via Apple's command-line developer tools package, which can be prompted for installation by simply typing 'git' in a Terminal window (OS X 10.9 or later).

Since AutoPkg 2.0, Python 2 is no longer supported. The installer linked above contains a bundled version of Python 3 and all needed dependencies.

Usage

A getting started guide is available here.

Frequently Asked Questions (and answers!) are here.

See the wiki for more documentation.

Discussion

Discussion of the use and development of AutoPkg is here.

killahquam-recipes's People

Contributors

arubdesu avatar bochoven avatar bp88 avatar fuzzylogiq avatar gregneagle avatar hamish-deas avatar homebysix avatar killahquam avatar lashomb avatar macmule avatar ygini avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

killahquam-recipes's Issues

Slack.download.recipe - app now provided via .dmg

Hi there,

Slack.download currently fails with the following error:

The following recipes failed:
    Slack.download
        Error in com.github.killahquam.download.slack: Processor: Unarchiver: Error: Unarchiving /Users/av13121/Library/AutoPkg/Cache/com.github.killahquam.download.slack/downloads/Slack.zip with ditto failed: ditto: Couldn't read PKZip signature

Nothing downloaded, packaged or imported.

Slack is now provided an .app wrapped in a .dmg. Can this recipe be updated to reflect this change?

Download URL appears to be:

https://slack.com/downloads/instructions/osx

Metadata from manually downloaded .dmg is:

❯ mdls -name kMDItemWhereFroms Downloads/Slack-3.0.0.dmg
kMDItemWhereFroms = (
    "https://downloads.slack-edge.com/mac_releases/Slack-3.0.0.dmg",
    "https://slack.com/downloads/instructions/osx"
)

~
❯

Thanks,

Andrew

New Postman icon

Howdy, we noticed that 6.2.3 of Postman ships with a new icon. Here's a copy to update the png file for the recipe.

install

Looking for a .zip when I get a .dmg?

Hey there!

For the last few days, my Slack.munki recipe has been failing, and it resolves back on the Slack.download recipe:

URLDownloader
{'Input': {'filename': u'Slack.zip',
           'url': u'https://slack.com/ssb/download-osx'}}
URLDownloader: No value supplied for CHECK_FILESIZE_ONLY, setting default value of: False
URLDownloader: No value supplied for CURL_PATH, setting default value of: /usr/bin/curl
URLDownloader: Item at URL is unchanged.
URLDownloader: Using existing /Users/ladmin/Library/AutoPkg/Cache/local.munki.Slack/downloads/Slack.zip
{'Output': {'pathname': u'/Users/ladmin/Library/AutoPkg/Cache/local.munki.Slack/downloads/Slack.zip'}}
Unarchiver
{'Input': {}}
Unarchiver: Guessed archive format 'zip' from filename Slack.zip
Unarchiving /Users/ladmin/Library/AutoPkg/Cache/local.munki.Slack/downloads/Slack.zip with ditto failed: ditto: Couldn't read PKZip signature

Failed.
Receipt written to /Users/ladmin/Library/AutoPkg/Cache/local.munki.Slack/receipts/Slack-receipt-20190506-174001.plist

The following recipes failed:
    Slack.munki
        Error in local.munki.Slack: Processor: Unarchiver: Error: Unarchiving /Users/ladmin/Library/AutoPkg/Cache/local.munki.Slack/downloads/Slack.zip with ditto failed: ditto: Couldn't read PKZip signature

Nothing downloaded, packaged or imported.

I am noticing that when I go to the specified download URL, I'm ending up with a .dmg file and not a .zip. Is it possible that the recipe needs to be altered>

Issue with BlueJeans jss recipe

Specifically, one line of the code directs recipe to com.github.gregneagle.pkg.bluejeansapp for BlueJeans. This causes a breakage and unable to download and push jss recipe to Jamf

ParentRecipe
com.github.gregneagle.pkg.bluejeansapp
Process

the issue is located on line 31. Please fix the plist as soon as possible.

Thank you

VisualStudioCode.download.recipe Codesignature check fails

I don't expect this to be fixed here, this has to be fixed on the developers' side.

Processing VisualStudioCode.download.recipe...
WARNING: VisualStudioCode.download.recipe is missing trust info and FAIL_RECIPES_WITHOUT_TRUST_INFO is not set. Proceeding...
URLDownloader
URLDownloader: Item at URL is unchanged.
URLDownloader: Using existing ~/Library/AutoPkg/Cache/com.github.killahquam.download.visualstudiocode/downloads/Visual Studio Code.zip
EndOfCheckPhase
Unarchiver
Unarchiver: Guessed archive format 'zip' from filename Visual Studio Code.zip
Unarchiver: Unarchived ~/Library/AutoPkg/Cache/com.github.killahquam.download.visualstudiocode/downloads/Visual Studio Code.zip to ~/Library/AutoPkg/Cache/com.github.killahquam.download.visualstudiocode/Visual Studio Code
CodeSignatureVerifier
CodeSignatureVerifier: Verifying code signature...
CodeSignatureVerifier: Deep verification enabled...
CodeSignatureVerifier: Strict verification not defined. Using codesign defaults...
CodeSignatureVerifier: ~/Library/AutoPkg/Cache/com.github.killahquam.download.visualstudiocode/Visual Studio Code/Visual Studio Code.app: a sealed resource is missing or invalid
CodeSignatureVerifier: file added: ~/Library/AutoPkg/Cache/com.github.killahquam.download.visualstudiocode/Visual Studio Code/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/contrib/webview/electron-browser/webview-pre.js
CodeSignatureVerifier: file added: ~/Library/AutoPkg/Cache/com.github.killahquam.download.visualstudiocode/Visual Studio Code/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/services/dialogs/browser/media/light/accept.svg
CodeSignatureVerifier: file added: ~/Library/AutoPkg/Cache/com.github.killahquam.download.visualstudiocode/Visual Studio Code/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/services/dialogs/browser/media/light/folder.svg
CodeSignatureVerifier: file added: ~/Library/AutoPkg/Cache/com.github.killahquam.download.visualstudiocode/Visual Studio Code/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/services/dialogs/browser/media/dark/accept.svg
CodeSignatureVerifier: file added: ~/Library/AutoPkg/Cache/com.github.killahquam.download.visualstudiocode/Visual Studio Code/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/services/dialogs/browser/media/dark/folder.svg
CodeSignatureVerifier: file added: ~/Library/AutoPkg/Cache/com.github.killahquam.download.visualstudiocode/Visual Studio Code/Visual Studio Code.app/Contents/Resources/app/extensions/typescript-basics/syntaxes/MarkdownDocumentationInjection.tmLanguage.json
CodeSignatureVerifier: file added: ~/Library/AutoPkg/Cache/com.github.killahquam.download.visualstudiocode/Visual Studio Code/Visual Studio Code.app/Contents/Resources/app/extensions/typescript-basics/syntaxes/ExampleJsDoc.injection.tmLanguage.json
Code signature verification failed. Note that all verifications can be disabled by setting the variable DISABLE_CODE_SIGNATURE_VERIFICATION to a non-empty value.
Failed.

Error Message

Hi,
I get an error message while running your PhpStorm recipe:
Could not find parent recipe for com.github.killahquam.pkg.PhpStorm

update feed URL tweak, add sparkleStep?

Hey Quam, I know we keep heaping stuff on you to look at, and pardon this isn't accompanied by a PR, but the actual SUFeedURL in the Info.plist for Slack is https://rink.hockeyapp.net/api/2/apps/38e415752d573e7e78e06be8daf5acc1

Using this URL instead of the manual public releases page has the benefit of being able to take advantage of other description information that would be in the feed like release notes(e.g. below), and it can also directly tell you the new version number without doing other, more brittle/imprecise/costly processes.

<sparkle:minimumSystemVersion>
10.6      </sparkle:minimumSystemVersion>
    </item>
    <item>
      <title>Version 1.0 (2362)</title>
      <description>&lt;div style='font-size: 110%; font-family: Helvetica, Arial, sans-serif;'&gt;&lt;h2&gt;Slack 1.0&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Multiple Teams&lt;/strong&gt;&lt;br /&gt;
- On more than one Slack team? Dreamed of having them in one place? Today is a good day!&lt;br /&gt;
- Handy tabs down the left-hand side for skipping joyfully from team to team.&lt;br /&gt;
- Upload your logo for each team tab through the team admin page for added personalization.&lt;br /&gt;
- Desktop notifications are team specific and take you to the team the notification came from.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Features&lt;/strong&gt;&lt;br /&gt;
- You can now reply directly from the pop-up notification (&amp;#8220;No way!!!&amp;#8221; Yes. Way.)&lt;br /&gt;
- Desktop presence is now determined by computer activity instead of Slack activity.&lt;br /&gt;
- Performance enhancements too numerous and powerful to list. Zoom zoom!&lt;/p&gt;
&lt;p&gt;- Fixed: Sometimes cmd+arrow switched channels even when used in a text field with text in it. No more.&lt;/p&gt;&lt;/div&gt;</description>
      <pubDate>2014-11-12 18:35:31 UTC</pubDate>
      <enclosure sparkle:version="2362" sparkle:shortVersionString="1.0" url="https://rink.hockeyapp.net/api/2/apps/38e415752d573e7e78e06be8daf5acc1/app_versions/4?format=zip&amp;avtoken=826b2af93e6b167a3571c3823019254f0352efd3" length="7199632" type="application/octet-stream"/>
      <sparkle:minimumSystemVersion>
10.6      </sparkle:minimumSystemVersion>
    </item>
    <item>
      <title>Version 0.44.2 (73)</title>
      <description>&lt;div style='font-size: 110%; font-family: Helvetica, Arial, sans-serif;'&gt;&lt;p&gt;No changes, but who cares! It&amp;#39;s directly downloadable!&lt;/p&gt;
&lt;/div&gt;</description>
      <pubDate>2014-06-18 23:47:22 UTC</pubDate>
      <enclosure sparkle:version="73" sparkle:shortVersionString="0.44.2" url="https://rink.hockeyapp.net/api/2/apps/38e415752d573e7e78e06be8daf5acc1/app_versions/2?format=zip&amp;avtoken=b79aac107b7fda6c56fc5af6052bbc1713da870e" length="5836718" type="application/octet-stream"/>
      <sparkle:minimumSystemVersion>
10.6      </sparkle:minimumSystemVersion>
    </item>
  </channel>
</rss>

It should still be in zip form, so I think the only real change is adding the SparkleUpdateFeed step and passing the output to URLDownloader.
I really didn't do more than check the Info.plist, so you'd of course want to test it all out. Thanks, and big 👍 at your tweet!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.