GithubHelp home page GithubHelp logo

thekevjames / puppet-homebrew Goto Github PK

View Code? Open in Web Editor NEW
18.0 18.0 43.0 177 KB

homebrew (+brewcask! +taps!) package installer and provider

Home Page: https://forge.puppet.com/thekevjames/homebrew

License: Apache License 2.0

Ruby 72.67% Puppet 23.41% Shell 3.92%
brew homebrew puppet tap

puppet-homebrew's People

Contributors

bjoernalbers avatar damonbreeden avatar daneov avatar edestecd avatar frozenfoxx avatar genebean avatar girardc79 avatar jordigg avatar mancusogmu avatar nanliu avatar pre-commit-ci[bot] avatar renovate-bot avatar renovate[bot] avatar thekevjames avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

puppet-homebrew's Issues

Brew commands appearing to fail on sierra

When I run puppet as root the brew commands seem to fail silently using the following:

class { 'homebrew':
  user  => 'stevef',
  group => 'staff',
}

package { 'httpd24':
  ensure          => present,
  provider        => brew,
  install_options => [ '--with-privileged-ports',  '--with-http2' ],
}

I see the following debug output when running puppet as root with the (options agent -t --debug) :

Info: Applying configuration version '1489432019'
Debug: /Stage[main]/Homebrew::Compiler/before: subscribes to Class[Homebrew::Install]
Debug: /Stage[main]/Homebrew::Install/File[/usr/local]/before: subscribes to File[/usr/local/Homebrew]
Debug: /Stage[main]/Homebrew::Install/File[/usr/local/bin]/before: subscribes to File[/usr/local/Homebrew]
Debug: /Stage[main]/Homebrew::Install/File[/usr/local/Cellar]/before: subscribes to File[/usr/local/Homebrew]
Debug: /Stage[main]/Homebrew::Install/File[/usr/local/etc]/before: subscribes to File[/usr/local/Homebrew]
Debug: /Stage[main]/Homebrew::Install/File[/usr/local/Frameworks]/before: subscribes to File[/usr/local/Homebrew]
Debug: /Stage[main]/Homebrew::Install/File[/usr/local/include]/before: subscribes to File[/usr/local/Homebrew]
Debug: /Stage[main]/Homebrew::Install/File[/usr/local/lib]/before: subscribes to File[/usr/local/Homebrew]
Debug: /Stage[main]/Homebrew::Install/File[/usr/local/lib/pkgconfig]/before: subscribes to File[/usr/local/Homebrew]
Debug: /Stage[main]/Homebrew::Install/File[/usr/local/opt]/before: subscribes to File[/usr/local/Homebrew]
Debug: /Stage[main]/Homebrew::Install/File[/usr/local/share]/before: subscribes to File[/usr/local/Homebrew]
Debug: /Stage[main]/Homebrew::Install/File[/usr/local/share/doc]/before: subscribes to File[/usr/local/Homebrew]
Debug: /Stage[main]/Homebrew::Install/File[/usr/local/share/man]/before: subscribes to File[/usr/local/Homebrew]
Debug: /Stage[main]/Homebrew::Install/File[/usr/local/var]/before: subscribes to File[/usr/local/Homebrew]
Debug: /Stage[main]/Homebrew::Install/File[/usr/local/Homebrew]/before: subscribes to Exec[install-homebrew]
Debug: /Stage[main]/Homebrew::Install/Exec[install-homebrew]/notify: subscribes to File[/usr/local/bin/brew]
Debug: /Stage[main]/Homebrew::Install/File[/usr/local/bin]: Adding autorequire relationship with File[/usr/local]
Debug: /Stage[main]/Homebrew::Install/File[/usr/local/Cellar]: Adding autorequire relationship with File[/usr/local]
Debug: /Stage[main]/Homebrew::Install/File[/usr/local/etc]: Adding autorequire relationship with File[/usr/local]
Debug: /Stage[main]/Homebrew::Install/File[/usr/local/Frameworks]: Adding autorequire relationship with File[/usr/local]
Debug: /Stage[main]/Homebrew::Install/File[/usr/local/include]: Adding autorequire relationship with File[/usr/local]
Debug: /Stage[main]/Homebrew::Install/File[/usr/local/lib]: Adding autorequire relationship with File[/usr/local]
Debug: /Stage[main]/Homebrew::Install/File[/usr/local/lib/pkgconfig]: Adding autorequire relationship with File[/usr/local/lib]
Debug: /Stage[main]/Homebrew::Install/File[/usr/local/opt]: Adding autorequire relationship with File[/usr/local]
Debug: /Stage[main]/Homebrew::Install/File[/usr/local/share]: Adding autorequire relationship with File[/usr/local]
Debug: /Stage[main]/Homebrew::Install/File[/usr/local/share/doc]: Adding autorequire relationship with File[/usr/local/share]
Debug: /Stage[main]/Homebrew::Install/File[/usr/local/share/man]: Adding autorequire relationship with File[/usr/local/share]
Debug: /Stage[main]/Homebrew::Install/File[/usr/local/var]: Adding autorequire relationship with File[/usr/local]
Debug: /Stage[main]/Homebrew::Install/File[/usr/local/bin/brew]: Adding autorequire relationship with File[/usr/local/bin]
Debug: /Stage[main]/Homebrew::Install/File[/usr/local/bin/brew]/mode: Not managing symlink mode
Debug: Prefetching brew resources for package
Debug: Listing installed packages
Debug: Executing: '/usr/bin/stat -nf %Uu /usr/local/bin/brew'
Debug: Executing: '/usr/bin/stat -nf %Ug /usr/local/bin/brew'
Debug: Executing with uid=3002 gid=20: '/usr/local/bin/brew list --versions'
Debug: Listing installed packages
Debug: Executing: '/usr/bin/stat -nf %Uu /usr/local/bin/brew'
Debug: Executing: '/usr/bin/stat -nf %Ug /usr/local/bin/brew'
Debug: Executing with uid=3002 gid=20: '/usr/local/bin/brew list --versions httpd24'
Debug: Package httpd24 not installed
Debug: Looking for httpd24 package...
Debug: Executing: '/usr/bin/stat -nf %Uu /usr/local/bin/brew'
Debug: Executing: '/usr/bin/stat -nf %Ug /usr/local/bin/brew'
Debug: Executing with uid=3002 gid=20: '/usr/local/bin/brew info httpd24'
Error: Could not find package: httpd24
Error: /Stage[main]/Main/Node[comp-office-elcapitan]/Package[httpd24]/ensure: change from absent to present failed: Could not find package: httpd24
Debug: Node[comp-office-elcapitan]: Resource is being skipped, unscheduling all events

But running it as a normal user with sudo I get the following (sudo puppet agent -t --debug):

Info: Applying configuration version '1489432174'
Debug: /Stage[main]/Homebrew::Compiler/before: subscribes to Class[Homebrew::Install]
Debug: /Stage[main]/Homebrew::Install/File[/usr/local]/before: subscribes to File[/usr/local/Homebrew]
Debug: /Stage[main]/Homebrew::Install/File[/usr/local/bin]/before: subscribes to File[/usr/local/Homebrew]
Debug: /Stage[main]/Homebrew::Install/File[/usr/local/Cellar]/before: subscribes to File[/usr/local/Homebrew]
Debug: /Stage[main]/Homebrew::Install/File[/usr/local/etc]/before: subscribes to File[/usr/local/Homebrew]
Debug: /Stage[main]/Homebrew::Install/File[/usr/local/Frameworks]/before: subscribes to File[/usr/local/Homebrew]
Debug: /Stage[main]/Homebrew::Install/File[/usr/local/include]/before: subscribes to File[/usr/local/Homebrew]
Debug: /Stage[main]/Homebrew::Install/File[/usr/local/lib]/before: subscribes to File[/usr/local/Homebrew]
Debug: /Stage[main]/Homebrew::Install/File[/usr/local/lib/pkgconfig]/before: subscribes to File[/usr/local/Homebrew]
Debug: /Stage[main]/Homebrew::Install/File[/usr/local/opt]/before: subscribes to File[/usr/local/Homebrew]
Debug: /Stage[main]/Homebrew::Install/File[/usr/local/share]/before: subscribes to File[/usr/local/Homebrew]
Debug: /Stage[main]/Homebrew::Install/File[/usr/local/share/doc]/before: subscribes to File[/usr/local/Homebrew]
Debug: /Stage[main]/Homebrew::Install/File[/usr/local/share/man]/before: subscribes to File[/usr/local/Homebrew]
Debug: /Stage[main]/Homebrew::Install/File[/usr/local/var]/before: subscribes to File[/usr/local/Homebrew]
Debug: /Stage[main]/Homebrew::Install/File[/usr/local/Homebrew]/before: subscribes to Exec[install-homebrew]
Debug: /Stage[main]/Homebrew::Install/Exec[install-homebrew]/notify: subscribes to File[/usr/local/bin/brew]
Debug: /Stage[main]/Homebrew::Install/File[/usr/local/bin]: Adding autorequire relationship with File[/usr/local]
Debug: /Stage[main]/Homebrew::Install/File[/usr/local/Cellar]: Adding autorequire relationship with File[/usr/local]
Debug: /Stage[main]/Homebrew::Install/File[/usr/local/etc]: Adding autorequire relationship with File[/usr/local]
Debug: /Stage[main]/Homebrew::Install/File[/usr/local/Frameworks]: Adding autorequire relationship with File[/usr/local]
Debug: /Stage[main]/Homebrew::Install/File[/usr/local/include]: Adding autorequire relationship with File[/usr/local]
Debug: /Stage[main]/Homebrew::Install/File[/usr/local/lib]: Adding autorequire relationship with File[/usr/local]
Debug: /Stage[main]/Homebrew::Install/File[/usr/local/lib/pkgconfig]: Adding autorequire relationship with File[/usr/local/lib]
Debug: /Stage[main]/Homebrew::Install/File[/usr/local/opt]: Adding autorequire relationship with File[/usr/local]
Debug: /Stage[main]/Homebrew::Install/File[/usr/local/share]: Adding autorequire relationship with File[/usr/local]
Debug: /Stage[main]/Homebrew::Install/File[/usr/local/share/doc]: Adding autorequire relationship with File[/usr/local/share]
Debug: /Stage[main]/Homebrew::Install/File[/usr/local/share/man]: Adding autorequire relationship with File[/usr/local/share]
Debug: /Stage[main]/Homebrew::Install/File[/usr/local/var]: Adding autorequire relationship with File[/usr/local]
Debug: /Stage[main]/Homebrew::Install/File[/usr/local/bin/brew]: Adding autorequire relationship with File[/usr/local/bin]
Debug: /Stage[main]/Homebrew::Install/File[/usr/local/bin/brew]/mode: Not managing symlink mode
Debug: Prefetching brew resources for package
Debug: Listing installed packages
Debug: Executing: '/usr/bin/stat -nf %Uu /usr/local/bin/brew'
Debug: Executing: '/usr/bin/stat -nf %Ug /usr/local/bin/brew'
Debug: Executing with uid=3002 gid=20: '/usr/local/bin/brew list --versions'
Debug: Listing installed packages
Debug: Executing: '/usr/bin/stat -nf %Uu /usr/local/bin/brew'
Debug: Executing: '/usr/bin/stat -nf %Ug /usr/local/bin/brew'
Debug: Executing with uid=3002 gid=20: '/usr/local/bin/brew list --versions httpd24'
Debug: Package httpd24 not installed
Debug: Looking for httpd24 package...
Debug: Executing: '/usr/bin/stat -nf %Uu /usr/local/bin/brew'
Debug: Executing: '/usr/bin/stat -nf %Ug /usr/local/bin/brew'
Debug: Executing with uid=3002 gid=20: '/usr/local/bin/brew info httpd24'
Debug: Package found, installing...
Debug: Executing: '/usr/bin/stat -nf %Uu /usr/local/bin/brew'
Debug: Executing: '/usr/bin/stat -nf %Ug /usr/local/bin/brew'
Debug: Executing with uid=3002 gid=20: '/usr/local/bin/brew install httpd24 --with-privileged-ports --with-http2'
Notice: /Stage[main]/Main/Node[comp-office-elcapitan]/Package[httpd24]/ensure: created
Debug: /Package[httpd24]: The container Node[comp-office-elcapitan] will propagate my refresh event

Error when using brewcask

I'm using this module to get Brew and Brewcask on MacOS. Brew works fine but I can't make brewcask to work. I'm using Puppet version 4.

I'm using the package like in the examples, my code is below.

$brewcask_packages = ['java', 'sbt', 'cmake']
package { $brewcask_packages:
    ensure      => present,
    provider    => 'brewcask',
}

I get always the same error regardless which package I'm trying to install.

Debug: Executing: '/usr/bin/stat -nf %Uu /usr/local/bin/brew'
Debug: Executing: '/usr/bin/stat -nf %Ug /usr/local/bin/brew'
Debug: Executing with uid=0 gid=80: '/usr/local/bin/brew cask list --versions'
**Error: /Package[cmake]: Could not evaluate: no implicit conversion of nil into String**

When brew cask list --versions cmake is run manually returns the following: Warning: cmake is not installed Error: nothing to list but brew list --versions python returns Error: No such keg: /usr/local/Cellar/python when the packages aren't installed.

Any clues?

Thanks!

Packages with an alias/alternate name get installed repeatedly.

If I have:

package { 'mosh':
    provider => homebrew;
}

It installs successfully on the first puppet run, and then reinstalls on every subsequent run.

This is because mosh is actually an alias/alt-name for the package mobile-shell, so brew list --versions mosh returns nothing, but brew search mosh indicates that it's installed.

This might actually be an issue with Homebrew (if so let me know and I'll find/link/report it there). It can be worked around by checking for installed-ness via the success of brew info $package | grep '^Not installed$ (or the Ruby equivalent), logical-or the failure of the brew info command (package name doesn't exist). The info subcommand honors/follows alternate names, with brewcask as well as brew. However, this probably breaks the ability to use this module offline (no idea if that was important to begin with), since I don't think brew list needs the internet to get data about modules, but brew list does, especially if a module isn't found.

Fix 2.2.3 tests

For some reason, the ruby 2.2.3 tests are failing and I can not for the life of me figure out why. Disabled 2.2.3 tests for now, since I've verified the module works locally with 2.2.3 and the tests seem to be travis-env related (maybe?), but it would be great if we could fix this and get them re-enabled.

Travis build #176 of commit c367a34 is the last master build before these tests were disabled.

Debug: Listing installed packages
Debug: Executing '/usr/bin/stat -nf %Uu /usr/local/bin/brew'
Debug: Executing '/usr/bin/stat -nf %Ug /usr/local/bin/brew'
Debug: Executing '/usr/local/bin/brew list --versions'
Debug: Found packages /Users/travis/.rvm/rubies/ruby-2.2.3/lib/ruby/gems/2.2.0/gems/bundler-1.12.5/lib/bundler/spec_set.rb:95:in `block in materialize': Could not find CFPropertyList-2.2.8 in any of the sources (Bundler::GemNotFound)
    from /Users/travis/.rvm/rubies/ruby-2.2.3/lib/ruby/gems/2.2.0/gems/bundler-1.12.5/lib/bundler/spec_set.rb:88:in `map!'
    from /Users/travis/.rvm/rubies/ruby-2.2.3/lib/ruby/gems/2.2.0/gems/bundler-1.12.5/lib/bundler/spec_set.rb:88:in `materialize'
    from /Users/travis/.rvm/rubies/ruby-2.2.3/lib/ruby/gems/2.2.0/gems/bundler-1.12.5/lib/bundler/definition.rb:140:in `specs'
    from /Users/travis/.rvm/rubies/ruby-2.2.3/lib/ruby/gems/2.2.0/gems/bundler-1.12.5/lib/bundler/definition.rb:185:in `specs_for'
    from /Users/travis/.rvm/rubies/ruby-2.2.3/lib/ruby/gems/2.2.0/gems/bundler-1.12.5/lib/bundler/definition.rb:174:in `requested_specs'
    from /Users/travis/.rvm/rubies/ruby-2.2.3/lib/ruby/gems/2.2.0/gems/bundler-1.12.5/lib/bundler/environment.rb:19:in `requested_specs'
    from /Users/travis/.rvm/rubies/ruby-2.2.3/lib/ruby/gems/2.2.0/gems/bundler-1.12.5/lib/bundler/runtime.rb:14:in `setup'
    from /Users/travis/.rvm/rubies/ruby-2.2.3/lib/ruby/gems/2.2.0/gems/bundler-1.12.5/lib/bundler.rb:95:in `setup'
    from /Users/travis/.rvm/rubies/ruby-2.2.3/lib/ruby/gems/2.2.0/gems/bundler-1.12.5/lib/bundler/setup.rb:19:in `<top (required)>'
    from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:55:in `require'
    from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:55:in `require'
Warning: Could not match    from /Users/travis/.rvm/rubies/ruby-2.2.3/lib/ruby/gems/2.2.0/gems/bundler-1.12.5/lib/bundler/spec_set.rb:88:in `map!'
Warning: Could not match    from /Users/travis/.rvm/rubies/ruby-2.2.3/lib/ruby/gems/2.2.0/gems/bundler-1.12.5/lib/bundler/spec_set.rb:88:in `materialize'
Warning: Could not match    from /Users/travis/.rvm/rubies/ruby-2.2.3/lib/ruby/gems/2.2.0/gems/bundler-1.12.5/lib/bundler/definition.rb:140:in `specs'
Warning: Could not match    from /Users/travis/.rvm/rubies/ruby-2.2.3/lib/ruby/gems/2.2.0/gems/bundler-1.12.5/lib/bundler/definition.rb:185:in `specs_for'
Warning: Could not match    from /Users/travis/.rvm/rubies/ruby-2.2.3/lib/ruby/gems/2.2.0/gems/bundler-1.12.5/lib/bundler/definition.rb:174:in `requested_specs'
Warning: Could not match    from /Users/travis/.rvm/rubies/ruby-2.2.3/lib/ruby/gems/2.2.0/gems/bundler-1.12.5/lib/bundler/environment.rb:19:in `requested_specs'
Warning: Could not match    from /Users/travis/.rvm/rubies/ruby-2.2.3/lib/ruby/gems/2.2.0/gems/bundler-1.12.5/lib/bundler/runtime.rb:14:in `setup'
Warning: Could not match    from /Users/travis/.rvm/rubies/ruby-2.2.3/lib/ruby/gems/2.2.0/gems/bundler-1.12.5/lib/bundler.rb:95:in `setup'
Warning: Could not match    from /Users/travis/.rvm/rubies/ruby-2.2.3/lib/ruby/gems/2.2.0/gems/bundler-1.12.5/lib/bundler/setup.rb:19:in `<top (required)>'
Warning: Could not match    from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:55:in `require'
Warning: Could not match    from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:55:in `require'
Error: Could not prefetch package provider 'brew': No resource and no name in property hash in brew instance
Debug: Listing installed packages
Debug: Executing '/usr/bin/stat -nf %Uu /usr/local/bin/brew'
Debug: Executing '/usr/bin/stat -nf %Ug /usr/local/bin/brew'
Debug: Executing '/usr/local/bin/brew list --versions git'
Debug: Found packages /Users/travis/.rvm/rubies/ruby-2.2.3/lib/ruby/gems/2.2.0/gems/bundler-1.12.5/lib/bundler/spec_set.rb:95:in `block in materialize': Could not find CFPropertyList-2.2.8 in any of the sources (Bundler::GemNotFound)
    from /Users/travis/.rvm/rubies/ruby-2.2.3/lib/ruby/gems/2.2.0/gems/bundler-1.12.5/lib/bundler/spec_set.rb:88:in `map!'
    from /Users/travis/.rvm/rubies/ruby-2.2.3/lib/ruby/gems/2.2.0/gems/bundler-1.12.5/lib/bundler/spec_set.rb:88:in `materialize'
    from /Users/travis/.rvm/rubies/ruby-2.2.3/lib/ruby/gems/2.2.0/gems/bundler-1.12.5/lib/bundler/definition.rb:140:in `specs'
    from /Users/travis/.rvm/rubies/ruby-2.2.3/lib/ruby/gems/2.2.0/gems/bundler-1.12.5/lib/bundler/definition.rb:185:in `specs_for'
    from /Users/travis/.rvm/rubies/ruby-2.2.3/lib/ruby/gems/2.2.0/gems/bundler-1.12.5/lib/bundler/definition.rb:174:in `requested_specs'
    from /Users/travis/.rvm/rubies/ruby-2.2.3/lib/ruby/gems/2.2.0/gems/bundler-1.12.5/lib/bundler/environment.rb:19:in `requested_specs'
    from /Users/travis/.rvm/rubies/ruby-2.2.3/lib/ruby/gems/2.2.0/gems/bundler-1.12.5/lib/bundler/runtime.rb:14:in `setup'
    from /Users/travis/.rvm/rubies/ruby-2.2.3/lib/ruby/gems/2.2.0/gems/bundler-1.12.5/lib/bundler.rb:95:in `setup'
    from /Users/travis/.rvm/rubies/ruby-2.2.3/lib/ruby/gems/2.2.0/gems/bundler-1.12.5/lib/bundler/setup.rb:19:in `<top (required)>'
    from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:55:in `require'
    from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:55:in `require'
Warning: Could not match    from /Users/travis/.rvm/rubies/ruby-2.2.3/lib/ruby/gems/2.2.0/gems/bundler-1.12.5/lib/bundler/spec_set.rb:88:in `map!'
Warning: Could not match    from /Users/travis/.rvm/rubies/ruby-2.2.3/lib/ruby/gems/2.2.0/gems/bundler-1.12.5/lib/bundler/spec_set.rb:88:in `materialize'
Warning: Could not match    from /Users/travis/.rvm/rubies/ruby-2.2.3/lib/ruby/gems/2.2.0/gems/bundler-1.12.5/lib/bundler/definition.rb:140:in `specs'
Warning: Could not match    from /Users/travis/.rvm/rubies/ruby-2.2.3/lib/ruby/gems/2.2.0/gems/bundler-1.12.5/lib/bundler/definition.rb:185:in `specs_for'
Warning: Could not match    from /Users/travis/.rvm/rubies/ruby-2.2.3/lib/ruby/gems/2.2.0/gems/bundler-1.12.5/lib/bundler/definition.rb:174:in `requested_specs'
Warning: Could not match    from /Users/travis/.rvm/rubies/ruby-2.2.3/lib/ruby/gems/2.2.0/gems/bundler-1.12.5/lib/bundler/environment.rb:19:in `requested_specs'
Warning: Could not match    from /Users/travis/.rvm/rubies/ruby-2.2.3/lib/ruby/gems/2.2.0/gems/bundler-1.12.5/lib/bundler/runtime.rb:14:in `setup'
Warning: Could not match    from /Users/travis/.rvm/rubies/ruby-2.2.3/lib/ruby/gems/2.2.0/gems/bundler-1.12.5/lib/bundler.rb:95:in `setup'
Warning: Could not match    from /Users/travis/.rvm/rubies/ruby-2.2.3/lib/ruby/gems/2.2.0/gems/bundler-1.12.5/lib/bundler/setup.rb:19:in `<top (required)>'
Warning: Could not match    from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:55:in `require'
Warning: Could not match    from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:55:in `require'
Debug: Prefetching brewcask resources for package
Debug: Listing installed packages
Debug: Executing '/usr/bin/stat -nf %Uu /usr/local/bin/brew'
Debug: Executing '/usr/bin/stat -nf %Ug /usr/local/bin/brew'
Debug: Executing '/usr/local/bin/brew cask list --versions'
Debug: Found packages /Users/travis/.rvm/rubies/ruby-2.2.3/lib/ruby/gems/2.2.0/gems/bundler-1.12.5/lib/bundler/spec_set.rb:95:in `block in materialize': Could not find CFPropertyList-2.2.8 in any of the sources (Bundler::GemNotFound)
    from /Users/travis/.rvm/rubies/ruby-2.2.3/lib/ruby/gems/2.2.0/gems/bundler-1.12.5/lib/bundler/spec_set.rb:88:in `map!'
    from /Users/travis/.rvm/rubies/ruby-2.2.3/lib/ruby/gems/2.2.0/gems/bundler-1.12.5/lib/bundler/spec_set.rb:88:in `materialize'
    from /Users/travis/.rvm/rubies/ruby-2.2.3/lib/ruby/gems/2.2.0/gems/bundler-1.12.5/lib/bundler/definition.rb:140:in `specs'
    from /Users/travis/.rvm/rubies/ruby-2.2.3/lib/ruby/gems/2.2.0/gems/bundler-1.12.5/lib/bundler/definition.rb:185:in `specs_for'
    from /Users/travis/.rvm/rubies/ruby-2.2.3/lib/ruby/gems/2.2.0/gems/bundler-1.12.5/lib/bundler/definition.rb:174:in `requested_specs'
    from /Users/travis/.rvm/rubies/ruby-2.2.3/lib/ruby/gems/2.2.0/gems/bundler-1.12.5/lib/bundler/environment.rb:19:in `requested_specs'
    from /Users/travis/.rvm/rubies/ruby-2.2.3/lib/ruby/gems/2.2.0/gems/bundler-1.12.5/lib/bundler/runtime.rb:14:in `setup'
    from /Users/travis/.rvm/rubies/ruby-2.2.3/lib/ruby/gems/2.2.0/gems/bundler-1.12.5/lib/bundler.rb:95:in `setup'
    from /Users/travis/.rvm/rubies/ruby-2.2.3/lib/ruby/gems/2.2.0/gems/bundler-1.12.5/lib/bundler/setup.rb:19:in `<top (required)>'
    from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:55:in `require'
    from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:55:in `require'
Warning: Could not match    from /Users/travis/.rvm/rubies/ruby-2.2.3/lib/ruby/gems/2.2.0/gems/bundler-1.12.5/lib/bundler/spec_set.rb:88:in `map!'
Warning: Could not match    from /Users/travis/.rvm/rubies/ruby-2.2.3/lib/ruby/gems/2.2.0/gems/bundler-1.12.5/lib/bundler/spec_set.rb:88:in `materialize'
Warning: Could not match    from /Users/travis/.rvm/rubies/ruby-2.2.3/lib/ruby/gems/2.2.0/gems/bundler-1.12.5/lib/bundler/definition.rb:140:in `specs'
Warning: Could not match    from /Users/travis/.rvm/rubies/ruby-2.2.3/lib/ruby/gems/2.2.0/gems/bundler-1.12.5/lib/bundler/definition.rb:185:in `specs_for'
Warning: Could not match    from /Users/travis/.rvm/rubies/ruby-2.2.3/lib/ruby/gems/2.2.0/gems/bundler-1.12.5/lib/bundler/definition.rb:174:in `requested_specs'
Warning: Could not match    from /Users/travis/.rvm/rubies/ruby-2.2.3/lib/ruby/gems/2.2.0/gems/bundler-1.12.5/lib/bundler/environment.rb:19:in `requested_specs'
Warning: Could not match    from /Users/travis/.rvm/rubies/ruby-2.2.3/lib/ruby/gems/2.2.0/gems/bundler-1.12.5/lib/bundler/runtime.rb:14:in `setup'
Warning: Could not match    from /Users/travis/.rvm/rubies/ruby-2.2.3/lib/ruby/gems/2.2.0/gems/bundler-1.12.5/lib/bundler.rb:95:in `setup'
Warning: Could not match    from /Users/travis/.rvm/rubies/ruby-2.2.3/lib/ruby/gems/2.2.0/gems/bundler-1.12.5/lib/bundler/setup.rb:19:in `<top (required)>'
Warning: Could not match    from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:55:in `require'
Warning: Could not match    from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:55:in `require'
Error: Could not prefetch package provider 'brewcask': No resource and no name in property hash in brewcask instance
Debug: Listing installed packages
Debug: Executing '/usr/bin/stat -nf %Uu /usr/local/bin/brew'
Debug: Executing '/usr/bin/stat -nf %Ug /usr/local/bin/brew'
Debug: Executing '/usr/local/bin/brew cask list --versions'
Error: /Package[google-chrome]: Could not evaluate: invalid number of elements (14 for 1..2)

Error: Failed to apply catalog: No command brew defined for provider brew

I continue having the following error intermittently on new systems:
Error: Failed to apply catalog: No command brew defined for provider brew

I'm not sure what is causing this error to appear on some new system and not on some others. I can confirm that if brew is already present before puppet runs the problem will disappear. May be related to the random order that puppet runs every time is executed.

The only way I've found to fix this issue is adding the following line
commands :brew => '/usr/local/bin/brew'
into https://github.com/TheKevJames/puppet-homebrew/blob/master/lib/puppet/provider/package/brew.rb

This shouldn't interfere with anything else, so I would suggest adding it in order to get rid of this random errors. What do you say @TheKevJames?

puppet-homebrew always changes permissions to 755 on a ton of unrelated Homebrew files

Sorry for the issue dump. This is the last one, I promise :)

Every time I run puppet with class { homebrew: ...} somewhere, even if Homebrew is already installed, I get a ton of output like:

Notice: /Stage[main]/Homebrew::Install/File[/usr/local/Homebrew/.git/objects/69/db3754c4d5bc95d2c02c86299de29e1cd4b460]/mode: mode changed '0444' to '0775'

Whatever perms fixup is being done here probably doesn't need to be run every single time Puppet runs; just at initial bootstrap.

Also, some of the things being manipulated should probably not be: git internal files etc. should probably not be executable.

If the goal of the perms fixup inside the homebrew::install class is to get ownership correct, it might be better to manage owner/group, rather than perms, and trust the Homebrew installer to get those right. I don't really know if that's what's being done, though.

Thanks!

Problems using the module on a new system

I had the following error several times already. This error log is from a fresh laptop with MacOSX Sierra but I have had the same issue on El Capitan. The error is the following:

Error: Facter: error while resolving custom fact "git_version": undefined method `strip' for nil:NilClass
Error: Failed to apply catalog: No command brew defined for provider brew

The error happens just after the user gets prompted to install the command line tools via a GUI installer window. I think this installer is triggered when the module or something else tries to use curl or similar.
If I run puppet agent -t after installing the command line tools manually it still doesn't work and keep reporting the following error:

Error: Failed to apply catalog: No command brew defined for provider brew

To get going I just install brew from the command line supplied on brew.sh and re run puppet agent -t to finish with my puppet setup. Somehow after the install is run once it doesn't check if it's correctly setup/present so it doesn't try to install it again.

The way I use the module is the following:

# Add Homebrew and BrewCask
  if versioncmp($::macosx_productversion_major, '10.12') >= 0 {
    class { 'homebrew':
      user                       => 'it',
      command_line_tools_package => 'Command_Line_Tools_macOS_10.12_for_Xcode_8.dmg',
      command_line_tools_source  => 'https://storage.googleapis.com/improbable-public-storage/Command_Line_Tools_macOS_10.12_for_Xcode_8.dmg',
      require                    => [ User['it'], Exec['run-startup-script'], Package['puppet-agent'] ],
    }
  } else {
    class { 'homebrew':
      user                       => 'it',
      command_line_tools_package => 'Command_Line_Tools_OS_X_10.11_for_Xcode_7.3.1.dmg',
      command_line_tools_source  => 'https://storage.googleapis.com/improbable-public-storage/Command_Line_Tools_OS_X_10.11_for_Xcode_7.3.1.dmg',
      require                    => [ User['it'], Exec['run-startup-script'], Package['puppet-agent'] ],
    }
  }

has_compiler fact not set

I'm trying to use version 1.3.0 of the module (taken from the Puppet Forge) on OSX 10.11 with Puppet 3.8.6 and Facter 2.4.6 and hit a problem where the confine in lib/facter/has_compiler.rb don't trigger any of the settings, causing has_compiler to be set to nil and the module tries to install the command line tools and Homebrew when it shouldn't (they are already available on the sever).

I added the following debug prints to has_compiler.rb:

--- has_compiler.rb 2016-02-03 14:11:58.000000000 +1100
+++ .../has_compiler.rb 2016-04-19 10:49:10.000000000 +1000
@@ -1,12 +1,15 @@
 Facter.add(:has_compiler) do
+  puts("Inside has_compiler, operatingsystem: #{Facter.value(:operatingsystem)}; macosx_productversion_major: #{Facter.value(:macosx_productversion_major)}")
   confine :operatingsystem => :darwin
   setcode do
+    puts('Inside :operatingsystem => :darwin')
     File.exists?('/usr/bin/cc') || system('/usr/bin/xcrun -find cc >/dev/null 2>&1')
   end

   # /usr/bin/cc exists in Mavericks, but it's not real
   confine :macosx_productversion_major => '10.9'
   setcode do
+    puts('Inside :macosx_productversion_majon => 10.9')
     (File.exists?('/Applications/Xcode.app') or File.exists?('/Library/Developer/CommandLineTools/')) and
     (File.exists?('/usr/bin/cc') || system('/usr/bin/xcrun -find cc >/dev/null 2>&1'))
   end

And when I run puppet apply I can see that the confine don't match:

$ puppet apply --verbose --modulepath modules -e 'class { "homebrew": }'
...
Inside has_compiler, operatingsystem: Darwin; macosx_productversion_major: 10.11
Warning: Config file /Users/ashapira/.puppet/hiera.yaml not found, using Hiera defaults
Notice: Scope(Class[Homebrew::Compiler]): Installing Command Line Tools.
...

And of course it fails because it tries to download a .dmg file from a URL which doesn't exist.

Any guidance on how can I get around this?

Thanks.

Add tagged release for 1.6.0 to GitHub

Some of the environments I use this module on don't have access to the Forge (we're working on it; #justcorporatethings), but do have access to GitHub. It's useful to be able to deploy new modules to them by selecting the same version tags we'd ask for in the Forge, but 1.6.0 isn't available as a tag on this GH repo. Could it be added?

Thanks!

Zac

Casks with checksum errors repeatedly attempt installation without erroring

If there is a checksum error while installing a cask (or probably any other kind of Homebrew package/object, though I've only seen it with casks), this module will endlessly loop trying to re-install the cask. It will also report that it successfully installed the cask, despite the fact that the underlying command is returning an error and not doing the install. The following should be fixed:

  • Cask checksum failures should directly or indirectly result in the cask's cached download (or all cached downloads) being cleared, either immediately after the checksum failure or on the start of the next Puppet run.
  • Cask installation failures due to checksum errors should be reported as Puppet apply failures (probably via exit code checking), rather than repeated attempts to install something.

Module fails under puppet 3.8.6 installed from Homebrew

From @nexussafe:

Error is:

Debug: Prefetching brewcask resources for package
Debug: Executing '/usr/bin/stat -nf %Uu /usr/local/bin/brew'
Debug: Executing '/usr/bin/stat -nf %Ug /usr/local/bin/brew'
Debug: Executing '/usr/local/bin/brew cask list --versions'
Debug: Executing '/usr/bin/stat -nf %Uu /usr/local/bin/brew'
Debug: Executing '/usr/bin/stat -nf %Ug /usr/local/bin/brew'
Debug: Executing '/usr/local/bin/brew cask list --versions'
Debug: Executing '/usr/bin/stat -nf %Uu /usr/local/bin/brew'
Debug: Executing '/usr/bin/stat -nf %Ug /usr/local/bin/brew'
Debug: Executing '/usr/local/bin/brew cask install firefox'
Error: Could not find package firefox
Error: /Stage[main]/Main/Package[firefox]/ensure: change from absent to present failed: Could not find package firefox

Workaround is to call (eg. without owner change):

super(cmd, # No idea why
              :custom_environment => { 'HOME' => home })

User had installed brew manually, then brew cask install puppet.

$ ls -la /usr/local/bin/brew
-rwxr-xr-x  1 nexussafe  admin  656 Mar  8 17:46 /usr/local/bin/brew
$ stat -nf %Uu /usr/local/bin/brew
501%
$ stat -nf %Ug /usr/local/bin/brew
80%
$ id
uid=501(nexussafe) gid=20(staff) groups=20(staff),<SNIP>,80(admin),<SNIP>
$ which puppet
/usr/bin/puppet
$ puppet --version
3.8.6

See #2 for context.

Undefined method 'err' under PuppetServer 2.3.1

Just updated my Puppet Server to 2.3.1 and got errors on the has_brew and has_compiler facts.

error while resolving custom fact "has_brew": undefined method 'err' for #<Facter::Util::Resolution:0x0000000281b8c8>

same for has_compiler. Is it maybe that errors should be handled, for example, by:
rescue Facter::Core::Execution::ExecutionFailure 'timeout!'

Another question is, should we confine that custom_fact just to MacOSX?
confine :kernel => "Darwin"

Errors are not displayed properly

If I install a broken cask, in Puppet, I get output like the following:

==> Verifying checksum for Cask appfresh
==> Note: running "brew update" may fix sha256 checksum errors
Error: /Stage[main]/Main/Node[default]/Package[appfresh]/ensure: change from absent to present failed: Could not install package: Execution of '/usr/local/bin/brew cask install appfresh' returned 1: ==> Downloading http://backend.metaquark.de/download/appfresh/versions/909
==> Verifying checksum for Cask appfresh
==> Note: running "brew update" may fix sha256 checksum errors

However, running brew cask install appfresh yields the real error:

==> Downloading http://backend.metaquark.de/download/appfresh/versions/909
Already downloaded: /Users/zbentley/Library/Caches/Homebrew/Cask/appfresh--1.0.5_909
==> Verifying checksum for Cask appfresh
==> Note: running "brew update" may fix sha256 checksum errors
Error: sha256 mismatch
Expected: e4d4e719bebf17f0ea5e7336e5da84d032b26dfaefa2f5102250fe9a208674cc
Actual: eaa4e7d92bfe8985d626507972902b2b50d4700b69fa6e5c273132466dc5008e
File: /Users/zbentley/Library/Caches/Homebrew/Cask/appfresh--1.0.5_909
To retry an incomplete download, remove the file above.

Could the actual error output be surfaced from puppet-homebrew?

Fix bug for incomplete brew installations

I have seen in a few occasions the module fail because a package was in a bad state, usually when the installation couldn't complete because a the installer of such package was broken.

The error is similar to:

Debug: Prefetching brewcask resources for package
Debug: Listing installed packages
Debug: Executing: โ€˜/usr/bin/stat -nf %Uu /usr/local/bin/brewโ€™
Debug: Executing: โ€˜/usr/bin/stat -nf %Ug /usr/local/bin/brewโ€™
Debug: Executing with uid=404 gid=80: โ€˜/usr/local/bin/brew cask list --versionsโ€™
Warning: Could not match virtualbox
Debug: Storing state
Debug: Stored state in 0.35 seconds
Error: Failed to apply catalog: No resource and no name in property hash in brewcask instance
/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/provider.rb:531:in `nameโ€™
/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/provider/package.rb:5:in `block in prefetchโ€™
/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/provider/package.rb:4:in `eachโ€™
/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/provider/package.rb:4:in `prefetchโ€™
/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/transaction.rb:323:in `prefetchโ€™
/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/transaction.rb:223:in `prefetch_if_necessaryโ€™
/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/transaction.rb:107:in `block in evaluateโ€™
/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/graph/relationship_graph.rb:116:in `callโ€™
/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/graph/relationship_graph.rb:116:in `traverseโ€™
/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/transaction.rb:154:in `evaluateโ€™
/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/resource/catalog.rb:222:in `block in applyโ€™
/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/util/log.rb:155:in `with_destinationโ€™
/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/transaction/report.rb:142:in `as_logging_destinationโ€™
/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/resource/catalog.rb:221:in `applyโ€™
/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/configurer.rb:171:in `block in apply_catalogโ€™
/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/util.rb:223:in `block in benchmarkโ€™
/opt/puppetlabs/puppet/lib/ruby/2.1.0/benchmark.rb:294:in `realtimeโ€™
/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/util.rb:222:in `benchmarkโ€™
/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/configurer.rb:170:in `apply_catalogโ€™
/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/configurer.rb:343:in `run_internalโ€™
/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/configurer.rb:221:in `block in runโ€™
/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/context.rb:65:in `overrideโ€™
/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet.rb:241:in `overrideโ€™
/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/configurer.rb:195:in `runโ€™
/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/agent.rb:45:in `block (4 levels) in runโ€™
/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/agent/locker.rb:21:in `lockโ€™
/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/agent.rb:45:in `block (3 levels) in runโ€™
/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/agent.rb:98:in `with_clientโ€™
/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/agent.rb:42:in `block (2 levels) in runโ€™
/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/agent.rb:65:in `run_in_forkโ€™
/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/agent.rb:41:in `block in runโ€™
/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/application.rb:179:in `callโ€™
/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/application.rb:179:in `controlled_runโ€™
/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/agent.rb:39:in `runโ€™
/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/application/agent.rb:353:in `onetimeโ€™
/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/application/agent.rb:331:in `run_commandโ€™
/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/application.rb:344:in `block in runโ€™
/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/util.rb:540:in `exit_on_failโ€™
/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/application.rb:344:in `runโ€™
/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/util/command_line.rb:132:in `runโ€™
/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/util/command_line.rb:72:in `executeโ€™
/opt/puppetlabs/puppet/bin/puppet:5:in `<main>'

I've seen this issue on brew cask install virtualbox a few weeks ago because they released a broken installer.

After debugging the error I've seen that the issue is caused by the package being "half" installed, the brew folders would have been created and populated but some files are missing.
The result of that is that you get an unexpected return when running brew cask list --versions where you will get the name of the package but an empty version string. The parsing then will send an error and break the run without providing much debugging information to fix it.

The line causing the error is https://github.com/TheKevJames/puppet-homebrew/blob/master/lib/puppet/provider/package/brewcask.rb#L149

This should not fail in this case, return some debugging information or trying to fix the error by itself. An improvement would be that if we detect a package without reported version we try and fix it but maybe this functionality would be better part of the brew project.

Installing homebrew with puppet enterprise fails

When trying to use PE to install homebrew the operation fails with the following error -

Error: Could not retrieve catalog from remote server:
Error 500 on SERVER: Server Error:
Evaluation Error: Error while evaluating a Resource Statement, 
Evaluation Error: Error while evaluating a Resource Statement,
Duplicate declaration: File[/usr/local] is already declared in file /etc/puppetlabs/code/environments/production/modules/homebrew/manifests/install.pp:19;
    cannot redeclare at /opt/puppetlabs/puppet/modules/puppet_enterprise/manifests/symlinks.pp:31
    at /opt/puppetlabs/puppet/modules/puppet_enterprise/manifests/symlinks.pp:31:5 on node solutosmacvm11.local

Is there any way to solve this error without disabling symlinks?

Mac is running macos sierra 10.12.3
PE version is 2016.4.2

Homebrew-cask should error when an app cannot be installed due to a timeout

If I try to install an app and it times out fetching from the server or otherwise has a communication error, Puppet reports that the app was successfully installed.

This module should probably check exit codes from homebrew-cask to ensure that this doesn't occur, and should definitely error if installation of a cask fails for any reason. This could probably be done by either doing more detailed checking of brew cask install's results/output, or externally, by doing brew cask info after installation and/or statting files that homebrew-cask lists as "managed" by a cask. The latter route is tricky, though, since some casks don't have files listed in that section (or are preference panes etc).

RHEL 6 Somehow Affected

Hey,

I have a couple RHEL 6 systems running Puppet 3.8.7 with Ruby 1.8.7 that have no profile references to the homebrew module other than it being in the main Puppetfile. However, Once I added it to the Puppetfile, I started getting the following errors on these systems:

puppet agent -t Info: Retrieving pluginfacts Info: Retrieving plugin Info: Loading facts Error: Could not autoload puppet/provider/package/brew: /var/lib/puppet/lib/puppet/provider/package/brew.rb:83: syntax error, unexpected ':', expecting ')' ...o, resource_name], failonfail: true) ^ /var/lib/puppet/lib/puppet/provider/package/brew.rb:84: syntax error, unexpected tASSOC rescue Puppet::ExecutionFailure => detail ^ /var/lib/puppet/lib/puppet/provider/package/brew.rb:90: syntax error, unexpected ':', expecting ')' ...*install_options], failonfail: true) ^ /var/lib/puppet/lib/puppet/provider/package/brew.rb:107: syntax error, unexpected ':', expecting ')' ...l, resource_name], failonfail: true) ^ /var/lib/puppet/lib/puppet/provider/package/brew.rb:108: syntax error, unexpected tASSOC rescue Puppet::ExecutionFailure => detail ^ /var/lib/puppet/lib/puppet/provider/package/brew.rb:118: syntax error, unexpected ':', expecting ')' ...e, resource_name], failonfail: true) ^ /var/lib/puppet/lib/puppet/provider/package/brew.rb:119: syntax error, unexpected tASSOC rescue Puppet::ExecutionFailure => detail ^ Error: Could not autoload puppet/type/package: Could not autoload puppet/provider/package/brew: /var/lib/puppet/lib/puppet/provider/package/brew.rb:83: syntax error, unexpected ':', expecting ')' ...o, resource_name], failonfail: true) ^ /var/lib/puppet/lib/puppet/provider/package/brew.rb:84: syntax error, unexpected tASSOC rescue Puppet::ExecutionFailure => detail ^ /var/lib/puppet/lib/puppet/provider/package/brew.rb:90: syntax error, unexpected ':', expecting ')' ...*install_options], failonfail: true) ^ /var/lib/puppet/lib/puppet/provider/package/brew.rb:107: syntax error, unexpected ':', expecting ')' ...l, resource_name], failonfail: true) ^ /var/lib/puppet/lib/puppet/provider/package/brew.rb:108: syntax error, unexpected tASSOC rescue Puppet::ExecutionFailure => detail ^ /var/lib/puppet/lib/puppet/provider/package/brew.rb:118: syntax error, unexpected ':', expecting ')' ...e, resource_name], failonfail: true) ^ /var/lib/puppet/lib/puppet/provider/package/brew.rb:119: syntax error, unexpected tASSOC rescue Puppet::ExecutionFailure => detail ^ Error: Could not retrieve catalog from remote server: Could not intern from text/pson: Could not autoload puppet/type/package: Could not autoload puppet/provider/package/brew: /var/lib/puppet/lib/puppet/provider/package/brew.rb:83: syntax error, unexpected ':', expecting ')' ...o, resource_name], failonfail: true) ^ /var/lib/puppet/lib/puppet/provider/package/brew.rb:84: syntax error, unexpected tASSOC rescue Puppet::ExecutionFailure => detail ^ /var/lib/puppet/lib/puppet/provider/package/brew.rb:90: syntax error, unexpected ':', expecting ')' ...*install_options], failonfail: true) ^ /var/lib/puppet/lib/puppet/provider/package/brew.rb:107: syntax error, unexpected ':', expecting ')' ...l, resource_name], failonfail: true) ^ /var/lib/puppet/lib/puppet/provider/package/brew.rb:108: syntax error, unexpected tASSOC rescue Puppet::ExecutionFailure => detail ^ /var/lib/puppet/lib/puppet/provider/package/brew.rb:118: syntax error, unexpected ':', expecting ')' ...e, resource_name], failonfail: true) ^ /var/lib/puppet/lib/puppet/provider/package/brew.rb:119: syntax error, unexpected tASSOC rescue Puppet::ExecutionFailure => detail ^ Warning: Not using cache on failed catalog Error: Could not retrieve catalog; skipping run

I have checked and double checked and I can't figure out why these systems get this error. If I remove the homebrew module from the Puppetfile, the error goes away and Puppet runs successfully.

I have the module tagged to 1.6.0 in the Puppetfile.

My RHEL 7 systems don't seem to have any issues, but they're running Ruby 2.0.x. RHN doesn't have Ruby above v1.8.7 for RHEL 6 so I was thinking maybe that's a possible issue? I still don't understand why it would happen since the provider files all have the darwin system constraints.

Any assistance would be great!

Cache uid and gid

Installing packages calls stat way too many times. Also, installing multiple packages in your manifest calls stat way too many times.

Debug: Executing: '/usr/bin/stat -nf %Uu /usr/local/bin/brew'
Debug: Executing: '/usr/bin/stat -nf %Ug /usr/local/bin/brew'
Debug: Executing with uid=0 gid=80: '/usr/local/bin/brew cask list --versions'
Debug: Executing: '/usr/bin/stat -nf %Uu /usr/local/bin/brew'
Debug: Executing: '/usr/bin/stat -nf %Ug /usr/local/bin/brew'
Debug: Executing with uid=0 gid=80: '/usr/local/bin/brew cask install google-chrome'

Fix multi-user configuration for brew

I got people reporting that the actual config still doesn't allow for multi-user on certain situations. Don't have all the examples but one would be when a user uses the module on a system that already had brew installed.

Seems that only one folder requires to be changed to make it work with the multi-user implementation. The command would be: sudo chown 775 -R /usr/local/Homebrew/.git

For Puppet we'll need to add the following to puppet-homebrew/manifests/install.pp

 file { '/usr/local/Homebrew/.git':
    ensure => directory,
    owner  => $homebrew::user,
    group  => $homebrew::group,
    mode   => '0775',
    recurse => true,
  }

Will verify on VMs and send a PR when I make sure is all fixed. Other folder may need to be managed like /usr/local/var/homebrew/locks but want to confirm this first.

Look into test speed

Tests are starting to timeout -- the init test alone takes something like 1380s. Need to fix this.

Issues with chocolatey provider

In our environment, we use the chocolatey's module and when I installed the homebrew module, both modules started having problems with their providers. Could you, please, check how to separate the providers?

Thank you for your attention.

Fix version retrieval logic

[kevin@aerobox(zsh):~] brew list --versions docker
docker 1.10.1 1.10.2 1.9.1
[kevin@aerobox(zsh):~] brew list --versions docker-machine
docker-machine 0.5.5 0.6.0

Update Brew install repo

I think we should update the Brew repo. The actual one https://github.com/mxcl/homebrew is a leagacy one. Is there any reason we are not installing Brew using the command provided on it's website? /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

I think with that we can fix other bugs.

I'll give it a go and send a PR.

Consider allowing root usage

From @jordigg :

I wouldn't let the user select user and/or group and instead move everything to be under the root user and the admin group: http://apple.stackexchange.com/questions/42127/homebrew-permissions-multiple-users-needing-to-brew-update

Something I do too is to set the default set up path to be /Applications rather than the /Users/user/Applications so everything that gets installed is available on the Applications folder of all users and is always located on the same applications folder /Applications/. I do that by setting an environment variable called HOMEBREW_CASK_OPTS --appdir=/Applications. Maybe we could allow the parameter --appdir when installing packages. Like brew cask install --appdir="~/Applications" google-chrome

Figure out what's wrong with the tests

See #59 and #71. I genuinely have no idea what's going on with the tests.

Everything seems to work from manual tests; I'm leaning towards this being something odd about the Travis infra changes (https://blog.travis-ci.com/2016-09-15-new-default-osx-image-coming/) causing some sort of inconsistency, but... \shrug.

Help would be much appreciated.

(/cc @jordigg I know you might have been looking into this. If you could throw any information you gather here, that'd be great)

`brew cask` version inconsistencies

See issue #2 for context: looks like brew cask changed their output format?

If so: consider forcing an update to brewcask to ensure this module's parsing will work. Consider pinning brewcask version.
If not: look into why my version of brewcask worked with the former parsing mechanic and jordigg's did not.

Update functionality does not work as expected

I can't seem to get the update block to ever trigger. I have a package installed via this Homebrew provider, there is a newer one available and I've specified ensure => latest however nothing gets upgraded. I've tried setting ensure to a specific version, 3.3 for example but it fails with package-name-3.3 not found.

When setting ensure => latest I've seen Listing installed packages and Found package package-name in the logs (among some /usr/bin/stat) calls, but no calls to brew upgrade

Any ideas? Is there something I'm missing @TheKevJames?

Deal with root-brew

Homebrew/brew#796

Some thoughts: between brew devs hating brew-as-root and Apple doing everything it can to strip root privileges, brew-as-root is going to get harder and harder. Should that be reflected in this package? Should we enforce using a new user to sidestep the issue completely?

`install_options` doesn't seem to work

If I have a puppet manifest like so:

# In site.pp:
Package {
  provider => homebrew
}

# Manifest code:
package {
    [
      'ack',
      'binutils'
    ]:
    install_options => [
      '--with-default-names',
    ],
  }

When I run puppet, the packages are not installed with default names. Running with --debug indicates that --with-default-names is not being passed to the underlying brew install command.

/usr/local immutable on High Sierra

The latest version of Mac OS has changed the behavior of /usr/local. Using version 1.7.1 of the module and this manifest

    class { 'homebrew':
        user  => 'username',
    }

gives the following error:

Error: Failed to set group to '80': Operation not permitted @ lchown_internal - /usr/local
Error: /Stage[main]/Homebrew::Install/File[/usr/local]/group: change from wheel to admin failed: Failed to set group to '80': Operation not permitted @ lchown_internal - /usr/local
Error: failed to set mode 0755 on /usr/local: Operation not permitted @ chmod_internal - /usr/local
Error: /Stage[main]/Homebrew::Install/File[/usr/local]/mode: change from 0755 to 0775 failed: failed to set mode 0755 on /usr/local: Operation not permitted @ chmod_internal - /usr/local

Related issue: Homebrew/brew#3228

On Mac OS X 10.12, getting issue with parent provider not found

I am applying a puppet manifest locally using "puppet apply", and am running into a roadblock with the package provider not autoloading.

The exact error is:

"Could not autoload puppet/provider/package/brew: Could not find parent provider brewcommon of brew"

My suspicion is that it is trying to load each of the package providers alphabetically, which means brew would go first. Any help with this would be greatly appreciated.

Inconsistencies with Homebrew install

I'm experiencing several issues with new systems, some of them I already saw in the past but thought were already solved.

  • If Homebrew install process fails, it doesn't get fixed by itself on the next run and it will always throw a error similar to no command brew found for provider brew.

  • After Homebrew was moved to /usr/local/Homebrew the installer is missing a few elements to make it work. For example it doesn't symlink /usr/local/Homebrew/bin/brew to /usr/local/bin which on a new Mac OS system also doesn't exist. Therefore brew doesn't work since is not present on our $PATH.

I already fixed all these issues and will be submitting a PR. Also got the multi-user setup after this changes to don't use recurse option which will help a lot speeding the puppet run and stop conflicting with some other packages on /usr/local not managed by Homebrew like discussed on #62.

For more information check the brew.sh installer script: https://raw.githubusercontent.com/Homebrew/install/master/install

Taps should be managed case-insensitively

If I have a manifest that does:

package { "Caskroom/versions":
    ensure   => present,
    provider => tap,
}

The tap will be installed successfully (i.e. homebrew can use packages from it), but Puppet will continually notify about reinstallation of the tap on every run.

This is because the tap's canonical name is caskroom/versions (lower case C), but the brew tap command operates case-insensitively.

The presence-or-absence detection used by this module should be case insensitive on taps--and probably on all Homebrew objects/operands that are handled case-insensitively by Homebrew, which I think is many/most things.

Homebrew install fails on some systems, may be related to master password/managed account

When bootstrapping and running puppet for the first time on a new Sierra system, I got the below error.

Basic info:

  • 10.12.1, latest xcode
  • puppet-homebrew version 1.5.0
  • I'm installing the homebrew class as recommended, with my username, and letting it default to the admin group. The error still occurs if I set a different group.

Things about this system that may be causing the problem:

  • My zbentley user account is LDAP-linked and managed.
  • There is a master password on this system.
  • The thing doing the sudo-ing is a Ruby wrapper that invokes puppet for me and sudos as necessary (a fork of old Boxen; not sure if it does that any more); not me typing sudo puppet... on the shell. All it's doing in Ruby is system "sudo", "-p", "Password for sudo: ", *args. Under the covers, it's eventually supplying a puppet apply command in *args.

Error text:

Debug: Executing '/usr/bin/su zbentley -c '/bin/bash -o pipefail -c "/usr/bin/curl -skSfL https://github.com/homebrew/brew/tarball/master | /usr/bin/tar xz -m --strip 1"''
Notice: /Stage[main]/Homebrew::Install/Exec[install-homebrew]/returns: su: Sorry
Error: /usr/bin/su zbentley -c '/bin/bash -o pipefail -c "/usr/bin/curl -skSfL https://github.com/homebrew/brew/tarball/master | /usr/bin/tar xz -m --strip 1"' returned 1 instead of one of [0]
Error: /Stage[main]/Homebrew::Install/Exec[install-homebrew]/returns: change from notrun to 0 failed: /usr/bin/su zbentley -c '/bin/bash -o pipefail -c "/usr/bin/curl -skSfL https://github.com/homebrew/brew/tarball/master | /usr/bin/tar xz -m --strip 1"' returned 1 instead of one of [0]
Notice: /Stage[main]/Homebrew::Install/File[/usr/local/bin/brew]: Dependency Exec[install-homebrew] has failures: true
Warning: /Stage[main]/Homebrew::Install/File[/usr/local/bin/brew]: Skipping because of failed dependencies

Things I've tried:

  • Manually doing sudo su - or sudo -i to become root, and then running the above command, complete with the /usr/bin/su zbentley... stuff. This works; the command returns 0 and gets the files.
  • Enabling the root account and setting the password for it.
  • Disabling SIP.
  • Working around it: manually installing homebrew myself, then running Puppet. This works, too.

Ideas:

The sorry message may be caused by the presence of a master password, somehow. If my config is that unique, this is probably not worth the time to fix.

If situations that may cause this are hard/impossible to fix, but easy to detect (e.g. by running a "can su as homebrew user" fact that does su -c sleep 0or something and seeing if it works), an error message indicating what the possible causes are could be added? Again, not really your problem.

Add README steps/FAQ entries for how to get around this condition?

Tap adds taps that are already present

There's an edge case when a tap contains homebrew- on the name that the module will re-add that tap even though is already present. This happens because when brew taps a tap with a name like that, the homebrew- is removed from the name.

To make it easier to understand here an example:
brew tap improbable-io/homebrew-versions
Will result in...

$ brew tap
improbable-io/versions

Therefore when the module checks if a tap is already present by comparing brew tap with the name of the tap we want to add, it will never match.

There are two possible fixes:

  1. Remove homebrew- from any tap name on the puppet manifest.
  2. Make sure the module can support this edge case by comparing against the name and the name minus the homebrew- part.

I think the sane way to proceed is the second one. Will submit a PR.

Print both "brew" and "brew cask" errors when "homebrew" provider fails

Sometimes, packages installed with the homebrew provider fail to install. If the packages are real homebrew packages (not casks), the homebrew provider masks the actual installation error.

If the brew-to-cask fallback is used for a homebrew-provided package, the error output from the first brew command should be kept around. If the brew cask command also fails, both errors should be outputted. Even if both errors are "package not found", this is still useful info for users.

Special cases could be added for the STDERR/exit codes that indicate "package not found" if you wanted to reduce error volume, but I think printing both is probably a good start.

Homebrew-cask should error when an app cannot be found due to a missing tap

If I have a manifest (with no other taps) like this or similar:

Package {
  provider => homebrew,
  install_options => [
    '--with-default-names',
  ],
}
node default {
  package { "google-chrome-beta":
    provider => "brewcask",
    install_options => [
      "--appdir=/Applications"
    ]
  }
}

Puppet runs successfully and notifies that
Notice: /Stage[main]/Main/Node[default]/Package[google-chrome-beta]/ensure: created

However, the package is not installed in /Applications, ~/Applications, or the Caskroom cache dir. This is because that particular cask (at the time of this writing) is available via the caskroom/versions tap.

If that tap is missing, the install should error.

Handle better brew outputs

Some brew outputs are not being handled correctly and will be interpreted as an error/failure.

In this specific case when brew tries to link the package and finds an existing one will report a "warning" message that we parse as error. It doesn't stop the run but it will think it failed and unschedule any dependencies.

Debug: Package found, installing...
Debug: Executing: โ€˜/usr/bin/stat -nf %Uu /usr/local/bin/brewโ€™
Debug: Executing: โ€˜/usr/bin/stat -nf %Ug /usr/local/bin/brewโ€™
Debug: Executing with uid=404 gid=80: โ€˜/usr/local/bin/brew install protobufโ€™
Error: Could not install package: Execution of โ€˜/usr/local/bin/brew install protobufโ€™ returned 1: ==> Downloading https://homebrew.bintray.com/bottles/protobuf-3.5.0.high_sierra.bottle.tar.gz
==> Downloading from https://akamai.bintray.com/5f/5febe3dbf8e63fd96fc2da057228974c92922d0edd2f52d246af0656025c7068?__gda__=exp=1510845959~hmac=2a7b64145b4aa19af341ec650e1293d26b32a6cb5bb09fedb76f82803aeb9398&response-content-disposition=attachment%3Bfilename%3D%22protobuf-3.5.0.high_sierra.bottle.tar.gz%22&response-content-type=application%2Fgzip&requestInfo=U2FsdGVkX1_07RtMycCE2z0NRHk078y__QTjO5i3Kqo12dfTWWc5Dv9u7nmN4VBkk9OsHIY_gzDn9uaJr63Hu_0UOt0BhpzWyxuVee71ICIT4DuDZ4KtoY7HiWe5RdQz6M9fNYSsGlryNPNWQRxmsA&response-X-Checksum-Sha1=456e9f76ef40ed86c889b1191d9ffdf7d9ed43b5&response-X-Checksum-Sha2=5febe3dbf8e63fd96fc2da057228974c92922d0edd2f52d246af0656025c7068
==> Pouring protobuf-3.5.0.high_sierra.bottle.tar.gz
The formula built, but is not symlinked into /usr/local
Could not symlink bin/protoc
Target /usr/local/bin/protoc
already exists. You may want to remove it:
  rm โ€˜/usr/local/bin/protocโ€™
To force the link and overwrite all conflicting files:
  brew link --overwrite protobuf
To list all files that would be deleted:
  brew link --overwrite --dry-run protobuf
Possible conflicting files are:
/usr/local/bin/protoc
==> Caveats
Editor support and examples have been installed to:
  /usr/local/opt/protobuf/share/doc/protobuf
Python modules have been installed and Homebrewโ€™s site-packages is not
in your Python sys.path, so you will not be able to import the modules
this formula installed. If you plan to develop with these modules,
please run:
  mkdir -p /var/it/Library/Python/2.7/lib/python/site-packages
  echo โ€˜import site; site.addsitedir(โ€œ/usr/local/lib/python2.7/site-packagesโ€)โ€™ >> /var/it/Library/Python/2.7/lib/python/site-packages/homebrew.pth
==> Summary
๐Ÿบ  /usr/local/Cellar/protobuf/3.5.0: 262 files, 18.0MB
/opt/puppetlabs/puppet/cache/lib/puppet/provider/package/brew.rb:114:in `rescue in installโ€™
/opt/puppetlabs/puppet/cache/lib/puppet/provider/package/brew.rb:104:in `installโ€™
/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/type/package.rb:88:in `block (3 levels) in <module:Puppet>'
/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/property.rb:487:in `setโ€™
/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/property.rb:561:in `syncโ€™
/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/transaction/resource_harness.rb:236:in `syncโ€™
/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/transaction/resource_harness.rb:134:in `sync_if_neededโ€™
/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/transaction/resource_harness.rb:80:in `perform_changesโ€™
/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/transaction/resource_harness.rb:21:in `evaluateโ€™
/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/transaction.rb:230:in `applyโ€™
/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/transaction.rb:246:in `eval_resourceโ€™
/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/transaction.rb:163:in `callโ€™
/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/transaction.rb:163:in `block (2 levels) in evaluateโ€™
/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/util.rb:386:in `block in thinmarkโ€™
/opt/puppetlabs/puppet/lib/ruby/2.1.0/benchmark.rb:294:in `realtimeโ€™
/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/util.rb:385:in `thinmarkโ€™
/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/transaction.rb:163:in `block in evaluateโ€™
/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/graph/relationship_graph.rb:118:in `traverseโ€™
/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/transaction.rb:154:in `evaluateโ€™
/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/resource/catalog.rb:222:in `block in applyโ€™
/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/util/log.rb:155:in `with_destinationโ€™
/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/transaction/report.rb:142:in `as_logging_destinationโ€™
/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/resource/catalog.rb:221:in `applyโ€™
/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/configurer.rb:171:in `block in apply_catalogโ€™
/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/util.rb:223:in `block in benchmarkโ€™
/opt/puppetlabs/puppet/lib/ruby/2.1.0/benchmark.rb:294:in `realtimeโ€™
/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/util.rb:222:in `benchmarkโ€™
/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/configurer.rb:170:in `apply_catalogโ€™
/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/configurer.rb:343:in `run_internalโ€™
/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/configurer.rb:221:in `block in runโ€™
/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/context.rb:65:in `overrideโ€™
/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet.rb:241:in `overrideโ€™
/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/configurer.rb:195:in `runโ€™
/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/agent.rb:45:in `block (4 levels) in runโ€™
/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/agent/locker.rb:21:in `lockโ€™
/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/agent.rb:45:in `block (3 levels) in runโ€™
/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/agent.rb:98:in `with_clientโ€™
/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/agent.rb:42:in `block (2 levels) in runโ€™
/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/agent.rb:65:in `run_in_forkโ€™
/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/agent.rb:41:in `block in runโ€™
/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/application.rb:179:in `callโ€™
/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/application.rb:179:in `controlled_runโ€™
/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/agent.rb:39:in `runโ€™
/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/application/agent.rb:353:in `onetimeโ€™
/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/application/agent.rb:331:in `run_commandโ€™
/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/application.rb:344:in `block in runโ€™
/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/util.rb:540:in `exit_on_failโ€™
/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/application.rb:344:in `runโ€™
/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/util/command_line.rb:132:in `runโ€™
/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/util/command_line.rb:72:in `executeโ€™
/opt/puppetlabs/puppet/bin/puppet:5:in `<main>'
Error: /Package[protobuf]: Could not evaluate: Puppet::Util::Log requires a message
/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/util/log.rb:348:in `message='
/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/util/log.rb:278:in `initializeโ€™
/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/util/log.rb:87:in `newโ€™
/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/util/log.rb:87:in `createโ€™
/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/util/logging.rb:12:in `send_logโ€™
/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/transaction/event.rb:81:in `send_logโ€™
/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/transaction/resource_harness.rb:163:in `ensure in sync_if_neededโ€™
/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/transaction/resource_harness.rb:164:in `sync_if_neededโ€™
/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/transaction/resource_harness.rb:80:in `perform_changesโ€™
/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/transaction/resource_harness.rb:21:in `evaluateโ€™
/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/transaction.rb:230:in `applyโ€™
/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/transaction.rb:246:in `eval_resourceโ€™
/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/transaction.rb:163:in `callโ€™
/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/transaction.rb:163:in `block (2 levels) in evaluateโ€™
/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/util.rb:386:in `block in thinmarkโ€™
/opt/puppetlabs/puppet/lib/ruby/2.1.0/benchmark.rb:294:in `realtimeโ€™
/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/util.rb:385:in `thinmarkโ€™
/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/transaction.rb:163:in `block in evaluateโ€™
/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/graph/relationship_graph.rb:118:in `traverseโ€™
/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/transaction.rb:154:in `evaluateโ€™
/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/resource/catalog.rb:222:in `block in applyโ€™
/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/util/log.rb:155:in `with_destinationโ€™
/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/transaction/report.rb:142:in `as_logging_destinationโ€™
/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/resource/catalog.rb:221:in `applyโ€™
/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/configurer.rb:171:in `block in apply_catalogโ€™
/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/util.rb:223:in `block in benchmarkโ€™
/opt/puppetlabs/puppet/lib/ruby/2.1.0/benchmark.rb:294:in `realtimeโ€™
/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/util.rb:222:in `benchmarkโ€™
/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/configurer.rb:170:in `apply_catalogโ€™
/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/configurer.rb:343:in `run_internalโ€™
/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/configurer.rb:221:in `block in runโ€™
/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/context.rb:65:in `overrideโ€™
/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet.rb:241:in `overrideโ€™
/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/configurer.rb:195:in `runโ€™
/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/agent.rb:45:in `block (4 levels) in runโ€™
/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/agent/locker.rb:21:in `lockโ€™
/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/agent.rb:45:in `block (3 levels) in runโ€™
/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/agent.rb:98:in `with_clientโ€™
/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/agent.rb:42:in `block (2 levels) in runโ€™
/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/agent.rb:65:in `run_in_forkโ€™
/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/agent.rb:41:in `block in runโ€™
/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/application.rb:179:in `callโ€™
/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/application.rb:179:in `controlled_runโ€™
/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/agent.rb:39:in `runโ€™
/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/application/agent.rb:353:in `onetimeโ€™
/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/application/agent.rb:331:in `run_commandโ€™
/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/application.rb:344:in `block in runโ€™
/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/util.rb:540:in `exit_on_failโ€™
/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/application.rb:344:in `runโ€™
/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/util/command_line.rb:132:in `runโ€™
/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/util/command_line.rb:72:in `executeโ€™
/opt/puppetlabs/puppet/bin/puppet:5:in `<main>'

The error is in this line https://github.com/TheKevJames/puppet-homebrew/blob/master/lib/puppet/provider/package/brew.rb#L113
We should parse the message and accept it as a warning instead of a failure.

Can't install Java and Python package using the module

I can't install the java package using brew cask. I get the following error:

Error: /Stage[main]/Profiles::Common::Darwin/Package[java]: Could not evaluate: invalid number of elements (4 for 1..2)

If I run manually brew cask install java works just fine.

Another error I've noticed is that Python doesn't get installed, maybe because detects that mac already have another Python installed but again, doing a brew install python works just fine. Is just when using puppet with this modules that doesn't work.

Does anyone else have the same problem? I'm trying on fresh installed MacMinis running el Capitan with all the latest updates/Xcode.

Taps should install before all other homebrew-related resources

If I install a Tap, it should be ordered by Puppet to install before anything of a normal "package" or "cask" type; otherwise, I regularly get into the situation where Puppet tries to install a package before the tap that provides it has been installed, which necessitates running Puppet again. In some of my larger provisioning operations (for lab workstations--dozens of custom taps for locally-hosted software), I have to run puppet 5 or 6 times to get everything green.

If "tap" were its own Puppet resource type, rather than a thin descendant of Package, it would be possible to do something like this in the provider code (or in site.pp, if you want it to be opt-in):

Homebrew::Tap <| |> -> Package <| |>

Finer-grained permissions on /usr/local

For brevity, we currently set 0755 on all of /usr/local. This "works" but causes some files to be marked as modified in brew's git status. Those files should be marked with the correct permissions (0644, probably).

Big output of git status in /usr/local attached:

On branch master
Changes not staged for commit:
    modified:   .github/CONTRIBUTING.md
    modified:   .github/ISSUE_TEMPLATE.md
    modified:   .github/PULL_REQUEST_TEMPLATE.md
    modified:   .gitignore
    modified:   .travis.yml
    modified:   .yardopts
    modified:   CODEOFCONDUCT.md
    modified:   LICENSE.txt
    modified:   Library/.editorconfig
    modified:   Library/.rubocop.yml
    modified:   Library/Homebrew/README.md
    modified:   Library/Homebrew/blacklist.rb
    modified:   Library/Homebrew/brew.rb
    modified:   Library/Homebrew/brew.sh
    modified:   Library/Homebrew/build.rb
    modified:   Library/Homebrew/build_environment.rb
    modified:   Library/Homebrew/build_options.rb
    modified:   Library/Homebrew/cask/.gitattributes
    modified:   Library/Homebrew/cask/.gitignore
    modified:   Library/Homebrew/cask/.rspec
    modified:   Library/Homebrew/cask/.rubocop.yml
    modified:   Library/Homebrew/cask/.simplecov
    modified:   Library/Homebrew/cask/CONDUCT.md
    modified:   Library/Homebrew/cask/CONTRIBUTING.md
    modified:   Library/Homebrew/cask/Gemfile
    modified:   Library/Homebrew/cask/Gemfile.lock
    modified:   Library/Homebrew/cask/LICENSE
    modified:   Library/Homebrew/cask/README.md
    modified:   Library/Homebrew/cask/Rakefile
    modified:   Library/Homebrew/cask/USAGE.md
    modified:   Library/Homebrew/cask/doc/cask_language_reference/all_stanzas.md
    modified:   Library/Homebrew/cask/doc/cask_language_reference/readme.md
    modified:   Library/Homebrew/cask/doc/cask_language_reference/stanzas/app.md
    modified:   Library/Homebrew/cask/doc/cask_language_reference/stanzas/appcast.md
    modified:   Library/Homebrew/cask/doc/cask_language_reference/stanzas/caveats.md
    modified:   Library/Homebrew/cask/doc/cask_language_reference/stanzas/conflicts_with.md
    modified:   Library/Homebrew/cask/doc/cask_language_reference/stanzas/depends_on.md
    modified:   Library/Homebrew/cask/doc/cask_language_reference/stanzas/flight.md
    modified:   Library/Homebrew/cask/doc/cask_language_reference/stanzas/gpg.md
    modified:   Library/Homebrew/cask/doc/cask_language_reference/stanzas/installer.md
    modified:   Library/Homebrew/cask/doc/cask_language_reference/stanzas/license.md
    modified:   Library/Homebrew/cask/doc/cask_language_reference/stanzas/name.md
    modified:   Library/Homebrew/cask/doc/cask_language_reference/stanzas/pkg.md
    modified:   Library/Homebrew/cask/doc/cask_language_reference/stanzas/sha256.md
    modified:   Library/Homebrew/cask/doc/cask_language_reference/stanzas/suite.md
    modified:   Library/Homebrew/cask/doc/cask_language_reference/stanzas/uninstall.md
    modified:   Library/Homebrew/cask/doc/cask_language_reference/stanzas/url.md
    modified:   Library/Homebrew/cask/doc/cask_language_reference/stanzas/version.md
    modified:   Library/Homebrew/cask/doc/cask_language_reference/stanzas/zap.md
    modified:   Library/Homebrew/cask/doc/cask_language_reference/token_reference.md
    modified:   Library/Homebrew/cask/doc/development/adding_a_cask.md
    modified:   Library/Homebrew/cask/doc/development/hacking.md
    modified:   Library/Homebrew/cask/doc/development/maintaining.md
    modified:   Library/Homebrew/cask/doc/faq/apps_with_malware.md
    modified:   Library/Homebrew/cask/doc/faq/not_a_discoverability_service.md
    modified:   Library/Homebrew/cask/doc/faq/rejected_casks.md
    modified:   Library/Homebrew/cask/doc/issue_templates/bug_report.md
    modified:   Library/Homebrew/cask/doc/issue_templates/cask_request.md
    modified:   Library/Homebrew/cask/doc/issue_templates/feature_request.md
    modified:   Library/Homebrew/cask/doc/issue_templates/issue_dead_app.md
    modified:   Library/Homebrew/cask/doc/issue_templates/issue_outdated_cask.md
    modified:   Library/Homebrew/cask/doc/issue_templates/issue_outdated_cask_but_cannot_find_link.md
    modified:   Library/Homebrew/cask/doc/issue_templates/issue_source_not_there_and_cannot_find_it.md
    modified:   Library/Homebrew/cask/doc/readme.md
    modified:   Library/Homebrew/cask/doc/reporting_bugs/a_cask_fails_to_install.md
    modified:   Library/Homebrew/cask/doc/reporting_bugs/brew_cask_list_shows_wrong_information.md
    modified:   Library/Homebrew/cask/doc/reporting_bugs/curl_error_fix_curlrc.md
    modified:   Library/Homebrew/cask/doc/reporting_bugs/curl_error_fix_no_download.md
    modified:   Library/Homebrew/cask/doc/reporting_bugs/curl_error_fix_outdated.md
    modified:   Library/Homebrew/cask/doc/reporting_bugs/curl_error_fix_vendor.md
    modified:   Library/Homebrew/cask/doc/reporting_bugs/curl_error_fix_wont_fix.md
    modified:   Library/Homebrew/cask/doc/reporting_bugs/permission_denied_error_fix_appdir.md
    modified:   Library/Homebrew/cask/doc/reporting_bugs/permission_denied_error_fix_bundle.md
    modified:   Library/Homebrew/cask/doc/reporting_bugs/pre_bug_report.md
    modified:   Library/Homebrew/cask/doc/reporting_bugs/sha256_mismatch_error_fix_icomplete.md
    modified:   Library/Homebrew/cask/doc/reporting_bugs/sha256_mismatch_error_fix_outdated.md
    modified:   Library/Homebrew/cask/doc/reporting_bugs/source_is_not_there_fix.md
    modified:   Library/Homebrew/cask/doc/reporting_bugs/uninstall_wrongly_reports_cask_as_not_installed.md
    modified:   Library/Homebrew/cask/lib/hbc.rb
    modified:   Library/Homebrew/cask/lib/hbc/artifact.rb
    modified:   Library/Homebrew/cask/lib/hbc/artifact/abstract_flight_block.rb
    modified:   Library/Homebrew/cask/lib/hbc/artifact/app.rb
    modified:   Library/Homebrew/cask/lib/hbc/artifact/artifact.rb
    modified:   Library/Homebrew/cask/lib/hbc/artifact/audio_unit_plugin.rb
    modified:   Library/Homebrew/cask/lib/hbc/artifact/base.rb
    modified:   Library/Homebrew/cask/lib/hbc/artifact/binary.rb
    modified:   Library/Homebrew/cask/lib/hbc/artifact/colorpicker.rb
    modified:   Library/Homebrew/cask/lib/hbc/artifact/font.rb
    modified:   Library/Homebrew/cask/lib/hbc/artifact/input_method.rb
    modified:   Library/Homebrew/cask/lib/hbc/artifact/installer.rb
    modified:   Library/Homebrew/cask/lib/hbc/artifact/internet_plugin.rb
    modified:   Library/Homebrew/cask/lib/hbc/artifact/moved.rb
    modified:   Library/Homebrew/cask/lib/hbc/artifact/nested_container.rb
    modified:   Library/Homebrew/cask/lib/hbc/artifact/pkg.rb
    modified:   Library/Homebrew/cask/lib/hbc/artifact/postflight_block.rb
    modified:   Library/Homebrew/cask/lib/hbc/artifact/preflight_block.rb
    modified:   Library/Homebrew/cask/lib/hbc/artifact/prefpane.rb
    modified:   Library/Homebrew/cask/lib/hbc/artifact/qlplugin.rb
    modified:   Library/Homebrew/cask/lib/hbc/artifact/relocated.rb
    modified:   Library/Homebrew/cask/lib/hbc/artifact/screen_saver.rb
    modified:   Library/Homebrew/cask/lib/hbc/artifact/service.rb
    modified:   Library/Homebrew/cask/lib/hbc/artifact/stage_only.rb
    modified:   Library/Homebrew/cask/lib/hbc/artifact/suite.rb
    modified:   Library/Homebrew/cask/lib/hbc/artifact/symlinked.rb
    modified:   Library/Homebrew/cask/lib/hbc/artifact/uninstall.rb
    modified:   Library/Homebrew/cask/lib/hbc/artifact/uninstall_base.rb
    modified:   Library/Homebrew/cask/lib/hbc/artifact/vst3_plugin.rb
    modified:   Library/Homebrew/cask/lib/hbc/artifact/vst_plugin.rb
    modified:   Library/Homebrew/cask/lib/hbc/artifact/zap.rb
    modified:   Library/Homebrew/cask/lib/hbc/audit.rb
    modified:   Library/Homebrew/cask/lib/hbc/auditor.rb
    modified:   Library/Homebrew/cask/lib/hbc/cache.rb
    modified:   Library/Homebrew/cask/lib/hbc/cask.rb
    modified:   Library/Homebrew/cask/lib/hbc/cask_dependencies.rb
    modified:   Library/Homebrew/cask/lib/hbc/caskroom.rb
    modified:   Library/Homebrew/cask/lib/hbc/caveats.rb
    modified:   Library/Homebrew/cask/lib/hbc/checkable.rb
    modified:   Library/Homebrew/cask/lib/hbc/cli.rb
    modified:   Library/Homebrew/cask/lib/hbc/cli/audit.rb
    modified:   Library/Homebrew/cask/lib/hbc/cli/base.rb
    modified:   Library/Homebrew/cask/lib/hbc/cli/cat.rb
    modified:   Library/Homebrew/cask/lib/hbc/cli/cleanup.rb
    modified:   Library/Homebrew/cask/lib/hbc/cli/create.rb
    modified:   Library/Homebrew/cask/lib/hbc/cli/doctor.rb
    modified:   Library/Homebrew/cask/lib/hbc/cli/edit.rb
    modified:   Library/Homebrew/cask/lib/hbc/cli/fetch.rb
    modified:   Library/Homebrew/cask/lib/hbc/cli/home.rb
    modified:   Library/Homebrew/cask/lib/hbc/cli/info.rb
    modified:   Library/Homebrew/cask/lib/hbc/cli/install.rb
    modified:   Library/Homebrew/cask/lib/hbc/cli/internal_audit_modified_casks.rb
    modified:   Library/Homebrew/cask/lib/hbc/cli/internal_checkurl.rb
    modified:   Library/Homebrew/cask/lib/hbc/cli/internal_dump.rb
    modified:   Library/Homebrew/cask/lib/hbc/cli/internal_help.rb
    modified:   Library/Homebrew/cask/lib/hbc/cli/internal_stanza.rb
    modified:   Library/Homebrew/cask/lib/hbc/cli/internal_use_base.rb
    modified:   Library/Homebrew/cask/lib/hbc/cli/list.rb
    modified:   Library/Homebrew/cask/lib/hbc/cli/search.rb
    modified:   Library/Homebrew/cask/lib/hbc/cli/style.rb
    modified:   Library/Homebrew/cask/lib/hbc/cli/uninstall.rb
    modified:   Library/Homebrew/cask/lib/hbc/cli/update.rb
    modified:   Library/Homebrew/cask/lib/hbc/cli/zap.rb
    modified:   Library/Homebrew/cask/lib/hbc/container.rb
    modified:   Library/Homebrew/cask/lib/hbc/container/air.rb
    modified:   Library/Homebrew/cask/lib/hbc/container/base.rb
    modified:   Library/Homebrew/cask/lib/hbc/container/bzip2.rb
    modified:   Library/Homebrew/cask/lib/hbc/container/cab.rb
    modified:   Library/Homebrew/cask/lib/hbc/container/criteria.rb
    modified:   Library/Homebrew/cask/lib/hbc/container/dmg.rb
    modified:   Library/Homebrew/cask/lib/hbc/container/generic_unar.rb
    modified:   Library/Homebrew/cask/lib/hbc/container/gzip.rb
    modified:   Library/Homebrew/cask/lib/hbc/container/lzma.rb
    modified:   Library/Homebrew/cask/lib/hbc/container/naked.rb
    modified:   Library/Homebrew/cask/lib/hbc/container/otf.rb
    modified:   Library/Homebrew/cask/lib/hbc/container/pkg.rb
    modified:   Library/Homebrew/cask/lib/hbc/container/rar.rb
    modified:   Library/Homebrew/cask/lib/hbc/container/seven_zip.rb
    modified:   Library/Homebrew/cask/lib/hbc/container/sit.rb
    modified:   Library/Homebrew/cask/lib/hbc/container/tar.rb
    modified:   Library/Homebrew/cask/lib/hbc/container/ttf.rb
    modified:   Library/Homebrew/cask/lib/hbc/container/xar.rb
    modified:   Library/Homebrew/cask/lib/hbc/container/xip.rb
    modified:   Library/Homebrew/cask/lib/hbc/container/xz.rb
    modified:   Library/Homebrew/cask/lib/hbc/container/zip.rb
    modified:   Library/Homebrew/cask/lib/hbc/download.rb
    modified:   Library/Homebrew/cask/lib/hbc/download_strategy.rb
    modified:   Library/Homebrew/cask/lib/hbc/dsl.rb
    modified:   Library/Homebrew/cask/lib/hbc/dsl/appcast.rb
    modified:   Library/Homebrew/cask/lib/hbc/dsl/base.rb
    modified:   Library/Homebrew/cask/lib/hbc/dsl/caveats.rb
    modified:   Library/Homebrew/cask/lib/hbc/dsl/conflicts_with.rb
    modified:   Library/Homebrew/cask/lib/hbc/dsl/container.rb
    modified:   Library/Homebrew/cask/lib/hbc/dsl/depends_on.rb
    modified:   Library/Homebrew/cask/lib/hbc/dsl/gpg.rb
    modified:   Library/Homebrew/cask/lib/hbc/dsl/installer.rb
    modified:   Library/Homebrew/cask/lib/hbc/dsl/license.rb
    modified:   Library/Homebrew/cask/lib/hbc/dsl/postflight.rb
    modified:   Library/Homebrew/cask/lib/hbc/dsl/preflight.rb
    modified:   Library/Homebrew/cask/lib/hbc/dsl/stanza_proxy.rb
    modified:   Library/Homebrew/cask/lib/hbc/dsl/uninstall_postflight.rb
    modified:   Library/Homebrew/cask/lib/hbc/dsl/uninstall_preflight.rb
    modified:   Library/Homebrew/cask/lib/hbc/dsl/version.rb
    modified:   Library/Homebrew/cask/lib/hbc/exceptions.rb
    modified:   Library/Homebrew/cask/lib/hbc/extend.rb
    modified:   Library/Homebrew/cask/lib/hbc/extend/hash.rb
    modified:   Library/Homebrew/cask/lib/hbc/extend/io.rb
    modified:   Library/Homebrew/cask/lib/hbc/extend/optparse.rb
    modified:   Library/Homebrew/cask/lib/hbc/extend/string.rb
    modified:   Library/Homebrew/cask/lib/hbc/fetcher.rb
    modified:   Library/Homebrew/cask/lib/hbc/installer.rb
    modified:   Library/Homebrew/cask/lib/hbc/locations.rb
    modified:   Library/Homebrew/cask/lib/hbc/macos.rb
    modified:   Library/Homebrew/cask/lib/hbc/options.rb
    modified:   Library/Homebrew/cask/lib/hbc/pkg.rb
    modified:   Library/Homebrew/cask/lib/hbc/qualified_token.rb
    modified:   Library/Homebrew/cask/lib/hbc/scopes.rb
    modified:   Library/Homebrew/cask/lib/hbc/source.rb
    modified:   Library/Homebrew/cask/lib/hbc/source/gone.rb
    modified:   Library/Homebrew/cask/lib/hbc/source/path_base.rb
    modified:   Library/Homebrew/cask/lib/hbc/source/path_slash_optional.rb
    modified:   Library/Homebrew/cask/lib/hbc/source/path_slash_required.rb
    modified:   Library/Homebrew/cask/lib/hbc/source/tapped.rb
    modified:   Library/Homebrew/cask/lib/hbc/source/tapped_qualified.rb
    modified:   Library/Homebrew/cask/lib/hbc/source/untapped_qualified.rb
    modified:   Library/Homebrew/cask/lib/hbc/source/uri.rb
    modified:   Library/Homebrew/cask/lib/hbc/staged.rb
    modified:   Library/Homebrew/cask/lib/hbc/system_command.rb
    modified:   Library/Homebrew/cask/lib/hbc/topological_hash.rb
    modified:   Library/Homebrew/cask/lib/hbc/underscore_supporting_uri.rb
    modified:   Library/Homebrew/cask/lib/hbc/url.rb
    modified:   Library/Homebrew/cask/lib/hbc/url_checker.rb
    modified:   Library/Homebrew/cask/lib/hbc/utils.rb
    modified:   Library/Homebrew/cask/lib/hbc/utils/file.rb
    modified:   Library/Homebrew/cask/lib/hbc/verify.rb
    modified:   Library/Homebrew/cask/lib/hbc/verify/checksum.rb
    modified:   Library/Homebrew/cask/lib/hbc/verify/gpg.rb
    modified:   Library/Homebrew/cask/lib/hbc/version.rb
    modified:   Library/Homebrew/cask/lib/hbc/without_source.rb
    modified:   Library/Homebrew/cask/spec/cask/artifact/binary_spec.rb
    modified:   Library/Homebrew/cask/spec/cask/audit_spec.rb
    modified:   Library/Homebrew/cask/spec/cask/cask_spec.rb
    modified:   Library/Homebrew/cask/spec/cask/cli/cleanup_spec.rb
    modified:   Library/Homebrew/cask/spec/cask/cli/doctor_spec.rb
    modified:   Library/Homebrew/cask/spec/cask/cli/style_spec.rb
    modified:   Library/Homebrew/cask/spec/cask/cli_spec.rb
    modified:   Library/Homebrew/cask/spec/cask/download_strategy_spec.rb
    modified:   Library/Homebrew/cask/spec/cask/dsl/stanza_proxy_spec.rb
    modified:   Library/Homebrew/cask/spec/cask/dsl/version_spec.rb
    modified:   Library/Homebrew/cask/spec/cask/macos_spec.rb
    modified:   Library/Homebrew/cask/spec/cask/scopes_spec.rb
    modified:   Library/Homebrew/cask/spec/cask/system_command_result_spec.rb
    modified:   Library/Homebrew/cask/spec/cask/system_command_spec.rb
    modified:   Library/Homebrew/cask/spec/cask/underscore_supporting_uri_spec.rb
    modified:   Library/Homebrew/cask/spec/cask/verify/checksum_spec.rb
    modified:   Library/Homebrew/cask/spec/cask/verify_spec.rb
    modified:   Library/Homebrew/cask/spec/spec_helper.rb
    modified:   Library/Homebrew/cask/spec/support/Casks/appcast-checkpoint-sha256-for-empty-string.rb
    modified:   Library/Homebrew/cask/spec/support/Casks/appcast-invalid-checkpoint.rb
    modified:   Library/Homebrew/cask/spec/support/Casks/appcast-missing-checkpoint.rb
    modified:   Library/Homebrew/cask/spec/support/Casks/appcast-valid-checkpoint.rb
    modified:   Library/Homebrew/cask/spec/support/Casks/booby-trap.rb
    modified:   Library/Homebrew/cask/spec/support/Casks/generic-artifact-absolute-target.rb
    modified:   Library/Homebrew/cask/spec/support/Casks/generic-artifact-no-target.rb
    modified:   Library/Homebrew/cask/spec/support/Casks/generic-artifact-relative-target.rb
    modified:   Library/Homebrew/cask/spec/support/Casks/invalid-sha256.rb
    modified:   Library/Homebrew/cask/spec/support/Casks/missing-homepage.rb
    modified:   Library/Homebrew/cask/spec/support/Casks/missing-license.rb
    modified:   Library/Homebrew/cask/spec/support/Casks/missing-name.rb
    modified:   Library/Homebrew/cask/spec/support/Casks/missing-sha256.rb
    modified:   Library/Homebrew/cask/spec/support/Casks/missing-url.rb
    modified:   Library/Homebrew/cask/spec/support/Casks/missing-version.rb
    modified:   Library/Homebrew/cask/spec/support/Casks/osdn-correct-url-format.rb
    modified:   Library/Homebrew/cask/spec/support/Casks/osdn-incorrect-url-format.rb
    modified:   Library/Homebrew/cask/spec/support/Casks/sha256-for-empty-string.rb
    modified:   Library/Homebrew/cask/spec/support/Casks/sourceforge-correct-url-format.rb
    modified:   Library/Homebrew/cask/spec/support/Casks/sourceforge-incorrect-url-format.rb
    modified:   Library/Homebrew/cask/spec/support/Casks/sourceforge-version-latest-correct-url-format.rb
    modified:   Library/Homebrew/cask/spec/support/Casks/version-latest-string.rb
    modified:   Library/Homebrew/cask/spec/support/Casks/version-latest-with-checksum.rb
    modified:   Library/Homebrew/cask/spec/support/Casks/with-binary.rb
    modified:   Library/Homebrew/cask/spec/support/Casks/with-embedded-binary.rb
    modified:   Library/Homebrew/cask/spec/support/audit_matchers.rb
    modified:   Library/Homebrew/cask/spec/support/binaries/AppWithBinary.zip
    modified:   Library/Homebrew/cask/spec/support/binaries/AppWithEmbeddedBinary.zip
    modified:   Library/Homebrew/cask/spec/support/env_helper.rb
    modified:   Library/Homebrew/cask/spec/support/expectations_hash_helper.rb
    modified:   Library/Homebrew/cask/spec/support/file_helper.rb
    modified:   Library/Homebrew/cask/spec/support/install_helper.rb
    modified:   Library/Homebrew/cask/spec/support/kernel_at_exit_hacks.rb
    modified:   Library/Homebrew/cask/spec/support/sha256_helper.rb
    modified:   Library/Homebrew/cask/test/Casks/compliance_test.rb
    modified:   Library/Homebrew/cask/test/README.md
    modified:   Library/Homebrew/cask/test/cask/accessibility_test.rb
    modified:   Library/Homebrew/cask/test/cask/artifact/alt_target_test.rb
    modified:   Library/Homebrew/cask/test/cask/artifact/app_test.rb
    modified:   Library/Homebrew/cask/test/cask/artifact/generic_artifact_test.rb
    modified:   Library/Homebrew/cask/test/cask/artifact/nested_container_test.rb
    modified:   Library/Homebrew/cask/test/cask/artifact/pkg_test.rb
    modified:   Library/Homebrew/cask/test/cask/artifact/postflight_block_test.rb
    modified:   Library/Homebrew/cask/test/cask/artifact/preflight_block_test.rb
    modified:   Library/Homebrew/cask/test/cask/artifact/suite_test.rb
    modified:   Library/Homebrew/cask/test/cask/artifact/two_apps_correct_test.rb
    modified:   Library/Homebrew/cask/test/cask/artifact/two_apps_incorrect_test.rb
    modified:   Library/Homebrew/cask/test/cask/artifact/uninstall_test.rb
    modified:   Library/Homebrew/cask/test/cask/artifact/zap_test.rb
    modified:   Library/Homebrew/cask/test/cask/cli/audit_test.rb
    modified:   Library/Homebrew/cask/test/cask/cli/cat_test.rb
    modified:   Library/Homebrew/cask/test/cask/cli/create_test.rb
    modified:   Library/Homebrew/cask/test/cask/cli/edit_test.rb
    modified:   Library/Homebrew/cask/test/cask/cli/fetch_test.rb
    modified:   Library/Homebrew/cask/test/cask/cli/home_test.rb
    modified:   Library/Homebrew/cask/test/cask/cli/info_test.rb
    modified:   Library/Homebrew/cask/test/cask/cli/install_test.rb
    modified:   Library/Homebrew/cask/test/cask/cli/list_test.rb
    modified:   Library/Homebrew/cask/test/cask/cli/options_test.rb
    modified:   Library/Homebrew/cask/test/cask/cli/search_test.rb
    modified:   Library/Homebrew/cask/test/cask/cli/uninstall_test.rb
    modified:   Library/Homebrew/cask/test/cask/cli/version_test.rb
    modified:   Library/Homebrew/cask/test/cask/cli/zap_test.rb
    modified:   Library/Homebrew/cask/test/cask/container/dmg_test.rb
    modified:   Library/Homebrew/cask/test/cask/container/naked_test.rb
    modified:   Library/Homebrew/cask/test/cask/depends_on_test.rb
    modified:   Library/Homebrew/cask/test/cask/dsl/caveats_test.rb
    modified:   Library/Homebrew/cask/test/cask/dsl/postflight_test.rb
    modified:   Library/Homebrew/cask/test/cask/dsl/preflight_test.rb
    modified:   Library/Homebrew/cask/test/cask/dsl/uninstall_postflight_test.rb
    modified:   Library/Homebrew/cask/test/cask/dsl/uninstall_preflight_test.rb
    modified:   Library/Homebrew/cask/test/cask/dsl_test.rb
    modified:   Library/Homebrew/cask/test/cask/installer_test.rb
    modified:   Library/Homebrew/cask/test/cask/pkg_test.rb
    modified:   Library/Homebrew/cask/test/cask/staged_test.rb
    modified:   Library/Homebrew/cask/test/cask/url_checker_test.rb
    modified:   Library/Homebrew/cask/test/cask_test.rb
    modified:   Library/Homebrew/cask/test/plist/parser_test.rb
    modified:   Library/Homebrew/cask/test/support/Casks/appdir-interpolation.rb
    modified:   Library/Homebrew/cask/test/support/Casks/auto-updates.rb
    modified:   Library/Homebrew/cask/test/support/Casks/bad-checksum.rb
    modified:   Library/Homebrew/cask/test/support/Casks/basic-cask.rb
    modified:   Library/Homebrew/cask/test/support/Casks/container-7z.rb
    modified:   Library/Homebrew/cask/test/support/Casks/container-air.rb
    modified:   Library/Homebrew/cask/test/support/Casks/container-bzip2.rb
    modified:   Library/Homebrew/cask/test/support/Casks/container-cab.rb
    modified:   Library/Homebrew/cask/test/support/Casks/container-dmg.rb
    modified:   Library/Homebrew/cask/test/support/Casks/container-gzip.rb
    modified:   Library/Homebrew/cask/test/support/Casks/container-lzma.rb
    modified:   Library/Homebrew/cask/test/support/Casks/container-pkg.rb
    modified:   Library/Homebrew/cask/test/support/Casks/container-rar.rb
    modified:   Library/Homebrew/cask/test/support/Casks/container-sit.rb
    modified:   Library/Homebrew/cask/test/support/Casks/container-tar-gz.rb
    modified:   Library/Homebrew/cask/test/support/Casks/container-xar.rb
    modified:   Library/Homebrew/cask/test/support/Casks/container-xz.rb
    modified:   Library/Homebrew/cask/test/support/Casks/invalid/invalid-appcast-multiple.rb
    modified:   Library/Homebrew/cask/test/support/Casks/invalid/invalid-appcast-url.rb
    modified:   Library/Homebrew/cask/test/support/Casks/invalid/invalid-conflicts-with-key.rb
    modified:   Library/Homebrew/cask/test/support/Casks/invalid/invalid-depends-on-arch-value.rb
    modified:   Library/Homebrew/cask/test/support/Casks/invalid/invalid-depends-on-key.rb
    modified:   Library/Homebrew/cask/test/support/Casks/invalid/invalid-depends-on-macos-bad-release.rb
    modified:   Library/Homebrew/cask/test/support/Casks/invalid/invalid-depends-on-macos-conflicting-forms.rb
    modified:   Library/Homebrew/cask/test/support/Casks/invalid/invalid-depends-on-x11-value.rb
    modified:   Library/Homebrew/cask/test/support/Casks/invalid/invalid-gpg-conflicting-keys.rb
    modified:   Library/Homebrew/cask/test/support/Casks/invalid/invalid-gpg-key-id.rb
    modified:   Library/Homebrew/cask/test/support/Casks/invalid/invalid-gpg-key-url.rb
    modified:   Library/Homebrew/cask/test/support/Casks/invalid/invalid-gpg-missing-key.rb
    modified:   Library/Homebrew/cask/test/support/Casks/invalid/invalid-gpg-multiple-stanzas.rb
    modified:   Library/Homebrew/cask/test/support/Casks/invalid/invalid-gpg-parameter.rb
    modified:   Library/Homebrew/cask/test/support/Casks/invalid/invalid-gpg-signature-url.rb
    modified:   Library/Homebrew/cask/test/support/Casks/invalid/invalid-gpg-type.rb
    modified:   Library/Homebrew/cask/test/support/Casks/invalid/invalid-header-format.rb
    modified:   Library/Homebrew/cask/test/support/Casks/invalid/invalid-header-token-mismatch.rb
    modified:   Library/Homebrew/cask/test/support/Casks/invalid/invalid-header-version.rb
    modified:   Library/Homebrew/cask/test/support/Casks/invalid/invalid-license-multiple.rb
    modified:   Library/Homebrew/cask/test/support/Casks/invalid/invalid-license-value.rb
    modified:   Library/Homebrew/cask/test/support/Casks/invalid/invalid-stage-only-conflict.rb
    modified:   Library/Homebrew/cask/test/support/Casks/invalid/invalid-two-homepage.rb
    modified:   Library/Homebrew/cask/test/support/Casks/invalid/invalid-two-url.rb
    modified:   Library/Homebrew/cask/test/support/Casks/invalid/invalid-two-version.rb
    modified:   Library/Homebrew/cask/test/support/Casks/local-caffeine.rb
    modified:   Library/Homebrew/cask/test/support/Casks/local-transmission.rb
    modified:   Library/Homebrew/cask/test/support/Casks/missing-checksum.rb
    modified:   Library/Homebrew/cask/test/support/Casks/naked-executable.rb
    modified:   Library/Homebrew/cask/test/support/Casks/nested-app.rb
    modified:   Library/Homebrew/cask/test/support/Casks/no-checksum.rb
    modified:   Library/Homebrew/cask/test/support/Casks/no-dsl-version.rb
    modified:   Library/Homebrew/cask/test/support/Casks/stage-only.rb
    modified:   Library/Homebrew/cask/test/support/Casks/test-opera-mail.rb
    modified:   Library/Homebrew/cask/test/support/Casks/test-opera.rb
    modified:   Library/Homebrew/cask/test/support/Casks/with-accessibility-access.rb
    modified:   Library/Homebrew/cask/test/support/Casks/with-alt-target.rb
    modified:   Library/Homebrew/cask/test/support/Casks/with-appcast.rb
    modified:   Library/Homebrew/cask/test/support/Casks/with-caveats.rb
    modified:   Library/Homebrew/cask/test/support/Casks/with-conditional-caveats.rb
    modified:   Library/Homebrew/cask/test/support/Casks/with-conflicts-with.rb
    modified:   Library/Homebrew/cask/test/support/Casks/with-depends-on-arch-failure.rb
    modified:   Library/Homebrew/cask/test/support/Casks/with-depends-on-arch.rb
    modified:   Library/Homebrew/cask/test/support/Casks/with-depends-on-cask-cyclic-helper.rb
    modified:   Library/Homebrew/cask/test/support/Casks/with-depends-on-cask-cyclic.rb
    modified:   Library/Homebrew/cask/test/support/Casks/with-depends-on-cask-multiple.rb
    modified:   Library/Homebrew/cask/test/support/Casks/with-depends-on-cask.rb
    modified:   Library/Homebrew/cask/test/support/Casks/with-depends-on-formula-multiple.rb
    modified:   Library/Homebrew/cask/test/support/Casks/with-depends-on-formula.rb
    modified:   Library/Homebrew/cask/test/support/Casks/with-depends-on-macos-array.rb
    modified:   Library/Homebrew/cask/test/support/Casks/with-depends-on-macos-comparison.rb
    modified:   Library/Homebrew/cask/test/support/Casks/with-depends-on-macos-failure.rb
    modified:   Library/Homebrew/cask/test/support/Casks/with-depends-on-macos-string.rb
    modified:   Library/Homebrew/cask/test/support/Casks/with-depends-on-macos-symbol.rb
    modified:   Library/Homebrew/cask/test/support/Casks/with-depends-on-x11-false.rb
    modified:   Library/Homebrew/cask/test/support/Casks/with-depends-on-x11.rb
    modified:   Library/Homebrew/cask/test/support/Casks/with-generic-artifact-no-target.rb
    modified:   Library/Homebrew/cask/test/support/Casks/with-generic-artifact.rb
    modified:   Library/Homebrew/cask/test/support/Casks/with-gpg-key-url.rb
    modified:   Library/Homebrew/cask/test/support/Casks/with-gpg.rb
    modified:   Library/Homebrew/cask/test/support/Casks/with-installable.rb
    modified:   Library/Homebrew/cask/test/support/Casks/with-installer-manual.rb
    modified:   Library/Homebrew/cask/test/support/Casks/with-installer-script.rb
    modified:   Library/Homebrew/cask/test/support/Casks/with-license.rb
    modified:   Library/Homebrew/cask/test/support/Casks/with-macosx-dir.rb
    modified:   Library/Homebrew/cask/test/support/Casks/with-pkgutil-zap.rb
    modified:   Library/Homebrew/cask/test/support/Casks/with-suite.rb
    modified:   Library/Homebrew/cask/test/support/Casks/with-two-apps-correct.rb
    modified:   Library/Homebrew/cask/test/support/Casks/with-two-apps-incorrect.rb
    modified:   Library/Homebrew/cask/test/support/Casks/with-two-apps-subdir.rb
    modified:   Library/Homebrew/cask/test/support/Casks/with-uninstall-delete.rb
    modified:   Library/Homebrew/cask/test/support/Casks/with-uninstall-early-script.rb
    modified:   Library/Homebrew/cask/test/support/Casks/with-uninstall-kext.rb
    modified:   Library/Homebrew/cask/test/support/Casks/with-uninstall-launchctl.rb
    modified:   Library/Homebrew/cask/test/support/Casks/with-uninstall-login-item.rb
    modified:   Library/Homebrew/cask/test/support/Casks/with-uninstall-pkgutil.rb
    modified:   Library/Homebrew/cask/test/support/Casks/with-uninstall-quit.rb
    modified:   Library/Homebrew/cask/test/support/Casks/with-uninstall-rmdir.rb
    modified:   Library/Homebrew/cask/test/support/Casks/with-uninstall-script.rb
    modified:   Library/Homebrew/cask/test/support/Casks/with-uninstall-signal.rb
    modified:   Library/Homebrew/cask/test/support/Casks/with-uninstall-trash.rb
    modified:   Library/Homebrew/cask/test/support/Casks/with-zap-delete.rb
    modified:   Library/Homebrew/cask/test/support/Casks/with-zap-early-script.rb
    modified:   Library/Homebrew/cask/test/support/Casks/with-zap-kext.rb
    modified:   Library/Homebrew/cask/test/support/Casks/with-zap-launchctl.rb
    modified:   Library/Homebrew/cask/test/support/Casks/with-zap-login-item.rb
    modified:   Library/Homebrew/cask/test/support/Casks/with-zap-pkgutil.rb
    modified:   Library/Homebrew/cask/test/support/Casks/with-zap-quit.rb
    modified:   Library/Homebrew/cask/test/support/Casks/with-zap-rmdir.rb
    modified:   Library/Homebrew/cask/test/support/Casks/with-zap-script.rb
    modified:   Library/Homebrew/cask/test/support/Casks/with-zap-signal.rb
    modified:   Library/Homebrew/cask/test/support/Casks/with-zap-trash.rb
    modified:   Library/Homebrew/cask/test/support/Casks/with-zap.rb
    modified:   Library/Homebrew/cask/test/support/binaries/MyFancyApp.zip
    modified:   Library/Homebrew/cask/test/support/binaries/MyFancyPkg.zip
    modified:   Library/Homebrew/cask/test/support/binaries/NestedApp.dmg.zip
    modified:   Library/Homebrew/cask/test/support/binaries/caffeine-suite.zip
    modified:   Library/Homebrew/cask/test/support/binaries/caffeine.zip
    modified:   Library/Homebrew/cask/test/support/binaries/caffeines-subdir.zip
    modified:   Library/Homebrew/cask/test/support/binaries/caffeines.zip
    modified:   Library/Homebrew/cask/test/support/binaries/container.7z
    modified:   Library/Homebrew/cask/test/support/binaries/container.air
    modified:   Library/Homebrew/cask/test/support/binaries/container.cab
    modified:   Library/Homebrew/cask/test/support/binaries/container.dmg
    modified:   Library/Homebrew/cask/test/support/binaries/container.pkg
    modified:   Library/Homebrew/cask/test/support/binaries/container.rar
    modified:   Library/Homebrew/cask/test/support/binaries/container.tar.gz
    modified:   Library/Homebrew/cask/test/support/binaries/container.xar
    modified:   Library/Homebrew/cask/test/support/binaries/empty_directory/.gitignore
    modified:   Library/Homebrew/cask/test/support/binaries/transmission-2.61.dmg
    modified:   Library/Homebrew/cask/test/support/cleanup.rb
    modified:   Library/Homebrew/cask/test/support/fake_dirs.rb
    modified:   Library/Homebrew/cask/test/support/fake_fetcher.rb
    modified:   Library/Homebrew/cask/test/support/fake_system_command.rb
    modified:   Library/Homebrew/cask/test/support/never_sudo_system_command.rb
    modified:   Library/Homebrew/cask/test/support/shared_examples.rb
    modified:   Library/Homebrew/cask/test/support/shared_examples/dsl_base.rb
    modified:   Library/Homebrew/cask/test/support/shared_examples/staged.rb
    modified:   Library/Homebrew/cask/test/syntax_test.rb
    modified:   Library/Homebrew/cask/test/test_helper.rb
    modified:   Library/Homebrew/caveats.rb
    modified:   Library/Homebrew/checksum.rb
    modified:   Library/Homebrew/cleaner.rb
    modified:   Library/Homebrew/cleanup.rb
    modified:   Library/Homebrew/cmd/--cache.rb
    modified:   Library/Homebrew/cmd/--cellar.rb
    modified:   Library/Homebrew/cmd/--env.rb
    modified:   Library/Homebrew/cmd/--prefix.rb
    modified:   Library/Homebrew/cmd/--repository.rb
    modified:   Library/Homebrew/cmd/--version.rb
    modified:   Library/Homebrew/cmd/analytics.rb
    modified:   Library/Homebrew/cmd/audit.rb
    modified:   Library/Homebrew/cmd/bottle.rb
    modified:   Library/Homebrew/cmd/cat.rb
    modified:   Library/Homebrew/cmd/cleanup.rb
    modified:   Library/Homebrew/cmd/command.rb
    modified:   Library/Homebrew/cmd/commands.rb
    modified:   Library/Homebrew/cmd/config.rb
    modified:   Library/Homebrew/cmd/create.rb
    modified:   Library/Homebrew/cmd/deps.rb
    modified:   Library/Homebrew/cmd/desc.rb
    modified:   Library/Homebrew/cmd/diy.rb
    modified:   Library/Homebrew/cmd/doctor.rb
    modified:   Library/Homebrew/cmd/edit.rb
    modified:   Library/Homebrew/cmd/fetch.rb
    modified:   Library/Homebrew/cmd/gist-logs.rb
    modified:   Library/Homebrew/cmd/help.rb
    modified:   Library/Homebrew/cmd/home.rb
    modified:   Library/Homebrew/cmd/info.rb
    modified:   Library/Homebrew/cmd/install.rb
    modified:   Library/Homebrew/cmd/irb.rb
    modified:   Library/Homebrew/cmd/leaves.rb
    modified:   Library/Homebrew/cmd/link.rb
    modified:   Library/Homebrew/cmd/linkapps.rb
    modified:   Library/Homebrew/cmd/list.rb
    modified:   Library/Homebrew/cmd/log.rb
    modified:   Library/Homebrew/cmd/man.rb
    modified:   Library/Homebrew/cmd/migrate.rb
    modified:   Library/Homebrew/cmd/missing.rb
    modified:   Library/Homebrew/cmd/options.rb
    modified:   Library/Homebrew/cmd/outdated.rb
    modified:   Library/Homebrew/cmd/pin.rb
    modified:   Library/Homebrew/cmd/postinstall.rb
    modified:   Library/Homebrew/cmd/prune.rb
    modified:   Library/Homebrew/cmd/pull.rb
    modified:   Library/Homebrew/cmd/readall.rb
    modified:   Library/Homebrew/cmd/reinstall.rb
    modified:   Library/Homebrew/cmd/search.rb
    modified:   Library/Homebrew/cmd/sh.rb
    modified:   Library/Homebrew/cmd/style.rb
    modified:   Library/Homebrew/cmd/switch.rb
    modified:   Library/Homebrew/cmd/tap-info.rb
    modified:   Library/Homebrew/cmd/tap-pin.rb
    modified:   Library/Homebrew/cmd/tap-readme.rb
    modified:   Library/Homebrew/cmd/tap-unpin.rb
    modified:   Library/Homebrew/cmd/tap.rb
    modified:   Library/Homebrew/cmd/test.rb
    modified:   Library/Homebrew/cmd/tests.rb
    modified:   Library/Homebrew/cmd/uninstall.rb
    modified:   Library/Homebrew/cmd/unlink.rb
    modified:   Library/Homebrew/cmd/unlinkapps.rb
    modified:   Library/Homebrew/cmd/unpack.rb
    modified:   Library/Homebrew/cmd/unpin.rb
    modified:   Library/Homebrew/cmd/untap.rb
    modified:   Library/Homebrew/cmd/update-report.rb
    modified:   Library/Homebrew/cmd/update.sh
    modified:   Library/Homebrew/cmd/upgrade.rb
    modified:   Library/Homebrew/cmd/uses.rb
    modified:   Library/Homebrew/cmd/vendor-install.sh
    modified:   Library/Homebrew/compat.rb
    modified:   Library/Homebrew/compat/.rubocop.yml
    modified:   Library/Homebrew/compat/dependency_collector.rb
    modified:   Library/Homebrew/compat/download_strategy.rb
    modified:   Library/Homebrew/compat/fails_with_llvm.rb
    modified:   Library/Homebrew/compat/formula.rb
    modified:   Library/Homebrew/compat/formula_specialties.rb
    modified:   Library/Homebrew/compat/hardware.rb
    modified:   Library/Homebrew/compat/keg.rb
    modified:   Library/Homebrew/compat/language/haskell.rb
    modified:   Library/Homebrew/compat/macos.rb
    modified:   Library/Homebrew/compat/md5.rb
    modified:   Library/Homebrew/compat/pathname.rb
    modified:   Library/Homebrew/compat/requirements.rb
    modified:   Library/Homebrew/compat/sha1.rb
    modified:   Library/Homebrew/compat/software_spec.rb
    modified:   Library/Homebrew/compat/tap.rb
    modified:   Library/Homebrew/compat/version.rb
    modified:   Library/Homebrew/compat/xcode.rb
    modified:   Library/Homebrew/compilers.rb
    modified:   Library/Homebrew/config.rb
    modified:   Library/Homebrew/cxxstdlib.rb
    modified:   Library/Homebrew/debrew.rb
    modified:   Library/Homebrew/debrew/irb.rb
    modified:   Library/Homebrew/dependable.rb
    modified:   Library/Homebrew/dependencies.rb
    modified:   Library/Homebrew/dependency.rb
    modified:   Library/Homebrew/dependency_collector.rb
    modified:   Library/Homebrew/descriptions.rb
    modified:   Library/Homebrew/dev-cmd/aspell-dictionaries.rb
    modified:   Library/Homebrew/dev-cmd/boneyard-formula-pr.rb
    modified:   Library/Homebrew/dev-cmd/bump-formula-pr.rb
    modified:   Library/Homebrew/dev-cmd/linkage.rb
    modified:   Library/Homebrew/dev-cmd/mirror.rb
    modified:   Library/Homebrew/dev-cmd/test-bot.rb
    modified:   Library/Homebrew/dev-cmd/update-test.rb
    modified:   Library/Homebrew/development_tools.rb
    modified:   Library/Homebrew/diagnostic.rb
    modified:   Library/Homebrew/download_strategy.rb
    modified:   Library/Homebrew/emoji.rb
    modified:   Library/Homebrew/exceptions.rb
    modified:   Library/Homebrew/extend/ARGV.rb
    modified:   Library/Homebrew/extend/ENV.rb
    modified:   Library/Homebrew/extend/ENV/shared.rb
    modified:   Library/Homebrew/extend/ENV/std.rb
    modified:   Library/Homebrew/extend/ENV/super.rb
    modified:   Library/Homebrew/extend/enumerable.rb
    modified:   Library/Homebrew/extend/fileutils.rb
    modified:   Library/Homebrew/extend/git_repository.rb
    modified:   Library/Homebrew/extend/module.rb
    modified:   Library/Homebrew/extend/os/blacklist.rb
    modified:   Library/Homebrew/extend/os/bottles.rb
    modified:   Library/Homebrew/extend/os/cleaner.rb
    modified:   Library/Homebrew/extend/os/development_tools.rb
    modified:   Library/Homebrew/extend/os/diagnostic.rb
    modified:   Library/Homebrew/extend/os/emoji.rb
    modified:   Library/Homebrew/extend/os/extend/ENV/shared.rb
    modified:   Library/Homebrew/extend/os/extend/ENV/std.rb
    modified:   Library/Homebrew/extend/os/extend/ENV/super.rb
    modified:   Library/Homebrew/extend/os/formula_cellar_checks.rb
    modified:   Library/Homebrew/extend/os/hardware.rb
    modified:   Library/Homebrew/extend/os/keg_relocate.rb
    modified:   Library/Homebrew/extend/os/linux/hardware/cpu.rb
    modified:   Library/Homebrew/extend/os/mac/blacklist.rb
    modified:   Library/Homebrew/extend/os/mac/cleaner.rb
    modified:   Library/Homebrew/extend/os/mac/development_tools.rb
    modified:   Library/Homebrew/extend/os/mac/diagnostic.rb
    modified:   Library/Homebrew/extend/os/mac/emoji.rb
    modified:   Library/Homebrew/extend/os/mac/extend/ENV/shared.rb
    modified:   Library/Homebrew/extend/os/mac/extend/ENV/std.rb
    modified:   Library/Homebrew/extend/os/mac/extend/ENV/super.rb
    modified:   Library/Homebrew/extend/os/mac/formula_cellar_checks.rb
    modified:   Library/Homebrew/extend/os/mac/hardware/cpu.rb
    modified:   Library/Homebrew/extend/os/mac/keg_relocate.rb
    modified:   Library/Homebrew/extend/os/mac/system_config.rb
    modified:   Library/Homebrew/extend/os/mac/utils/bottles.rb
    modified:   Library/Homebrew/extend/os/system_config.rb
    modified:   Library/Homebrew/extend/pathname.rb
    modified:   Library/Homebrew/extend/string.rb
    modified:   Library/Homebrew/formula.rb
    modified:   Library/Homebrew/formula_assertions.rb
    modified:   Library/Homebrew/formula_cellar_checks.rb
    modified:   Library/Homebrew/formula_installer.rb
    modified:   Library/Homebrew/formula_lock.rb
    modified:   Library/Homebrew/formula_pin.rb
    modified:   Library/Homebrew/formula_support.rb
    modified:   Library/Homebrew/formula_versions.rb
    modified:   Library/Homebrew/formulary.rb
    modified:   Library/Homebrew/global.rb
    modified:   Library/Homebrew/gpg.rb
    modified:   Library/Homebrew/hardware.rb
    modified:   Library/Homebrew/hooks/bottles.rb
    modified:   Library/Homebrew/install_renamed.rb
    modified:   Library/Homebrew/keg.rb
    modified:   Library/Homebrew/keg_relocate.rb
    modified:   Library/Homebrew/language/go.rb
    modified:   Library/Homebrew/language/haskell.rb
    modified:   Library/Homebrew/language/java.rb
    modified:   Library/Homebrew/language/node.rb
    modified:   Library/Homebrew/language/python.rb
    modified:   Library/Homebrew/language/python_virtualenv_constants.rb
    modified:   Library/Homebrew/ld64_dependency.rb
    modified:   Library/Homebrew/manpages/brew-cask.1.md
    modified:   Library/Homebrew/manpages/brew.1.md.erb
    modified:   Library/Homebrew/metafiles.rb
    modified:   Library/Homebrew/migrator.rb
    modified:   Library/Homebrew/official_taps.rb
    modified:   Library/Homebrew/options.rb
    modified:   Library/Homebrew/os.rb
    modified:   Library/Homebrew/os/mac.rb
    modified:   Library/Homebrew/os/mac/architecture_list.rb
    modified:   Library/Homebrew/os/mac/cctools_keg.rb
    modified:   Library/Homebrew/os/mac/cctools_mach.rb
    modified:   Library/Homebrew/os/mac/keg.rb
    modified:   Library/Homebrew/os/mac/linkage_checker.rb
    modified:   Library/Homebrew/os/mac/pathname.rb
    modified:   Library/Homebrew/os/mac/pkgconfig/10.10/libcurl.pc
    modified:   Library/Homebrew/os/mac/pkgconfig/10.10/libexslt.pc
    modified:   Library/Homebrew/os/mac/pkgconfig/10.10/libxml-2.0.pc
    modified:   Library/Homebrew/os/mac/pkgconfig/10.10/libxslt.pc
    modified:   Library/Homebrew/os/mac/pkgconfig/10.10/sqlite3.pc
    modified:   Library/Homebrew/os/mac/pkgconfig/10.10/zlib.pc
    modified:   Library/Homebrew/os/mac/pkgconfig/10.11/libcurl.pc
    modified:   Library/Homebrew/os/mac/pkgconfig/10.11/libexslt.pc
    modified:   Library/Homebrew/os/mac/pkgconfig/10.11/libxml-2.0.pc
    modified:   Library/Homebrew/os/mac/pkgconfig/10.11/libxslt.pc
    modified:   Library/Homebrew/os/mac/pkgconfig/10.11/sqlite3.pc
    modified:   Library/Homebrew/os/mac/pkgconfig/10.11/zlib.pc
    modified:   Library/Homebrew/os/mac/pkgconfig/10.12/libcurl.pc
    modified:   Library/Homebrew/os/mac/pkgconfig/10.12/libexslt.pc
    modified:   Library/Homebrew/os/mac/pkgconfig/10.12/libxml-2.0.pc
    modified:   Library/Homebrew/os/mac/pkgconfig/10.12/libxslt.pc
    modified:   Library/Homebrew/os/mac/pkgconfig/10.12/sqlite3.pc
    modified:   Library/Homebrew/os/mac/pkgconfig/10.12/zlib.pc
    modified:   Library/Homebrew/os/mac/pkgconfig/10.5/libcrypto.pc
    modified:   Library/Homebrew/os/mac/pkgconfig/10.5/libcurl.pc
    modified:   Library/Homebrew/os/mac/pkgconfig/10.6/sqlite3.pc
    modified:   Library/Homebrew/os/mac/pkgconfig/10.6/zlib.pc
    modified:   Library/Homebrew/os/mac/pkgconfig/10.7/sqlite3.pc
    modified:   Library/Homebrew/os/mac/pkgconfig/10.7/zlib.pc
    modified:   Library/Homebrew/os/mac/pkgconfig/10.8/libcurl.pc
    modified:   Library/Homebrew/os/mac/pkgconfig/10.8/libexslt.pc
    modified:   Library/Homebrew/os/mac/pkgconfig/10.8/libxml-2.0.pc
    modified:   Library/Homebrew/os/mac/pkgconfig/10.8/libxslt.pc
    modified:   Library/Homebrew/os/mac/pkgconfig/10.8/sqlite3.pc
    modified:   Library/Homebrew/os/mac/pkgconfig/10.8/zlib.pc
    modified:   Library/Homebrew/os/mac/pkgconfig/10.9/libcurl.pc
    modified:   Library/Homebrew/os/mac/pkgconfig/10.9/libexslt.pc
    modified:   Library/Homebrew/os/mac/pkgconfig/10.9/libxml-2.0.pc
    modified:   Library/Homebrew/os/mac/pkgconfig/10.9/libxslt.pc
    modified:   Library/Homebrew/os/mac/pkgconfig/10.9/sqlite3.pc
    modified:   Library/Homebrew/os/mac/pkgconfig/10.9/zlib.pc
    modified:   Library/Homebrew/os/mac/ruby_keg.rb
    modified:   Library/Homebrew/os/mac/ruby_mach.rb
    modified:   Library/Homebrew/os/mac/sdk.rb
    modified:   Library/Homebrew/os/mac/shared_mach.rb
    modified:   Library/Homebrew/os/mac/version.rb
    modified:   Library/Homebrew/os/mac/xcode.rb
    modified:   Library/Homebrew/os/mac/xquartz.rb
    modified:   Library/Homebrew/patch.rb
    modified:   Library/Homebrew/pkg_version.rb
    modified:   Library/Homebrew/postinstall.rb
    modified:   Library/Homebrew/readall.rb
    modified:   Library/Homebrew/requirement.rb
    modified:   Library/Homebrew/requirements.rb
    modified:   Library/Homebrew/requirements/apr_requirement.rb
    modified:   Library/Homebrew/requirements/cctools_requirement.rb
    modified:   Library/Homebrew/requirements/emacs_requirement.rb
    modified:   Library/Homebrew/requirements/fortran_requirement.rb
    modified:   Library/Homebrew/requirements/gpg2_requirement.rb
    modified:   Library/Homebrew/requirements/java_requirement.rb
    modified:   Library/Homebrew/requirements/language_module_requirement.rb
    modified:   Library/Homebrew/requirements/maximum_macos_requirement.rb
    modified:   Library/Homebrew/requirements/minimum_macos_requirement.rb
    modified:   Library/Homebrew/requirements/mpi_requirement.rb
    modified:   Library/Homebrew/requirements/osxfuse_requirement.rb
    modified:   Library/Homebrew/requirements/perl_requirement.rb
    modified:   Library/Homebrew/requirements/python_requirement.rb
    modified:   Library/Homebrew/requirements/ruby_requirement.rb
    modified:   Library/Homebrew/requirements/tuntap_requirement.rb
    modified:   Library/Homebrew/requirements/unsigned_kext_requirement.rb
    modified:   Library/Homebrew/requirements/x11_requirement.rb
    modified:   Library/Homebrew/resource.rb
    modified:   Library/Homebrew/sandbox.rb
    modified:   Library/Homebrew/software_spec.rb
    modified:   Library/Homebrew/system_config.rb
    modified:   Library/Homebrew/tab.rb
    modified:   Library/Homebrew/tap.rb
    modified:   Library/Homebrew/tap_constants.rb
    modified:   Library/Homebrew/test.rb
    modified:   Library/Homebrew/test/.rubocop.yml
    modified:   Library/Homebrew/test/.simplecov
    modified:   Library/Homebrew/test/Gemfile
    modified:   Library/Homebrew/test/Gemfile.lock
    modified:   Library/Homebrew/test/Rakefile
    modified:   Library/Homebrew/test/bottles/testball_bottle-0.1.yosemite.bottle.tar.gz
    modified:   Library/Homebrew/test/fixtures/receipt.json
    modified:   Library/Homebrew/test/fixtures/receipt_old.json
    modified:   Library/Homebrew/test/fixtures/test.diff
    modified:   Library/Homebrew/test/fixtures/test.eps
    modified:   Library/Homebrew/test/fixtures/test.gif
    modified:   Library/Homebrew/test/fixtures/test.ico
    modified:   Library/Homebrew/test/fixtures/test.jpg
    modified:   Library/Homebrew/test/fixtures/test.mp3
    modified:   Library/Homebrew/test/fixtures/test.pcap
    modified:   Library/Homebrew/test/fixtures/test.pdf
    modified:   Library/Homebrew/test/fixtures/test.png
    modified:   Library/Homebrew/test/fixtures/test.ps
    modified:   Library/Homebrew/test/fixtures/test.svg
    modified:   Library/Homebrew/test/fixtures/test.tiff
    modified:   Library/Homebrew/test/fixtures/test.wav
    modified:   Library/Homebrew/test/fixtures/updater_fixture.yaml
    modified:   Library/Homebrew/test/helper/shutup.rb
    modified:   Library/Homebrew/test/lib/config.rb
    modified:   Library/Homebrew/test/lib/integration_mocks.rb
    modified:   Library/Homebrew/test/mach/fat.bundle
    modified:   Library/Homebrew/test/mach/fat.dylib
    modified:   Library/Homebrew/test/mach/i386.bundle
    modified:   Library/Homebrew/test/mach/i386.dylib
    modified:   Library/Homebrew/test/mach/x86_64.bundle
    modified:   Library/Homebrew/test/mach/x86_64.dylib
    modified:   Library/Homebrew/test/patches/noop-a.diff
    modified:   Library/Homebrew/test/patches/noop-b.diff
    modified:   Library/Homebrew/test/patches/noop-c.diff
    modified:   Library/Homebrew/test/tarballs/testball-0.1-patches.tgz
    modified:   Library/Homebrew/test/tarballs/testball-0.1.tbz
    modified:   Library/Homebrew/test/test_ARGV.rb
    modified:   Library/Homebrew/test/test_ENV.rb
    modified:   Library/Homebrew/test/test_bash.rb
    modified:   Library/Homebrew/test/test_blacklist.rb
    modified:   Library/Homebrew/test/test_bottle_collector.rb
    modified:   Library/Homebrew/test/test_bottle_filename.rb
    modified:   Library/Homebrew/test/test_bottle_hooks.rb
    modified:   Library/Homebrew/test/test_build_environment.rb
    modified:   Library/Homebrew/test/test_build_options.rb
    modified:   Library/Homebrew/test/test_caveats.rb
    modified:   Library/Homebrew/test/test_checksum.rb
    modified:   Library/Homebrew/test/test_checksum_verification.rb
    modified:   Library/Homebrew/test/test_cleaner.rb
    modified:   Library/Homebrew/test/test_cleanup.rb
    modified:   Library/Homebrew/test/test_cmd_audit.rb
    modified:   Library/Homebrew/test/test_cmd_info.rb
    modified:   Library/Homebrew/test/test_cmd_testbot.rb
    modified:   Library/Homebrew/test/test_commands.rb
    modified:   Library/Homebrew/test/test_compiler_failure.rb
    modified:   Library/Homebrew/test/test_compiler_selector.rb
    modified:   Library/Homebrew/test/test_dependencies.rb
    modified:   Library/Homebrew/test/test_dependency.rb
    modified:   Library/Homebrew/test/test_dependency_collector.rb
    modified:   Library/Homebrew/test/test_dependency_expansion.rb
    modified:   Library/Homebrew/test/test_descriptions.rb
    modified:   Library/Homebrew/test/test_diagnostic.rb
    modified:   Library/Homebrew/test/test_download_strategies.rb
    modified:   Library/Homebrew/test/test_exceptions.rb
    modified:   Library/Homebrew/test/test_formula.rb
    modified:   Library/Homebrew/test/test_formula_installer.rb
    modified:   Library/Homebrew/test/test_formula_installer_bottle.rb
    modified:   Library/Homebrew/test/test_formula_lock.rb
    modified:   Library/Homebrew/test/test_formula_pin.rb
    modified:   Library/Homebrew/test/test_formula_spec_selection.rb
    modified:   Library/Homebrew/test/test_formula_support.rb
    modified:   Library/Homebrew/test/test_formula_validation.rb
    modified:   Library/Homebrew/test/test_formulary.rb
    modified:   Library/Homebrew/test/test_gpg.rb
    modified:   Library/Homebrew/test/test_gpg2_requirement.rb
    modified:   Library/Homebrew/test/test_hardware.rb
    modified:   Library/Homebrew/test/test_inreplace.rb
    modified:   Library/Homebrew/test/test_integration_cmds.rb
    modified:   Library/Homebrew/test/test_json.rb
    modified:   Library/Homebrew/test/test_keg.rb
    modified:   Library/Homebrew/test/test_language_go.rb
    modified:   Library/Homebrew/test/test_language_module_requirement.rb
    modified:   Library/Homebrew/test/test_language_python.rb
    modified:   Library/Homebrew/test/test_migrator.rb
    modified:   Library/Homebrew/test/test_mpi_requirement.rb
    modified:   Library/Homebrew/test/test_options.rb
    modified:   Library/Homebrew/test/test_os_mac_blacklist.rb
    modified:   Library/Homebrew/test/test_os_mac_bottle_collector.rb
    modified:   Library/Homebrew/test/test_os_mac_bottle_tag.rb
    modified:   Library/Homebrew/test/test_os_mac_dependency_collector.rb
    modified:   Library/Homebrew/test/test_os_mac_diagnostic.rb
    modified:   Library/Homebrew/test/test_os_mac_keg.rb
    modified:   Library/Homebrew/test/test_os_mac_mach.rb
    modified:   Library/Homebrew/test/test_os_mac_version.rb
    modified:   Library/Homebrew/test/test_os_mac_x11_requirement.rb
    modified:   Library/Homebrew/test/test_patch.rb
    modified:   Library/Homebrew/test/test_patching.rb
    modified:   Library/Homebrew/test/test_pathname.rb
    modified:   Library/Homebrew/test/test_pkg_version.rb
    modified:   Library/Homebrew/test/test_requirement.rb
    modified:   Library/Homebrew/test/test_resource.rb
    modified:   Library/Homebrew/test/test_sandbox.rb
    modified:   Library/Homebrew/test/test_software_spec.rb
    modified:   Library/Homebrew/test/test_stdlib.rb
    modified:   Library/Homebrew/test/test_string.rb
    modified:   Library/Homebrew/test/test_tab.rb
    modified:   Library/Homebrew/test/test_tap.rb
    modified:   Library/Homebrew/test/test_update_report.rb
    modified:   Library/Homebrew/test/test_utils.rb
    modified:   Library/Homebrew/test/test_versions.rb
    modified:   Library/Homebrew/test/test_x11_requirement.rb
    modified:   Library/Homebrew/test/testball.rb
    modified:   Library/Homebrew/test/testball_bottle.rb
    modified:   Library/Homebrew/test/testing_env.rb
    modified:   Library/Homebrew/utils.rb
    modified:   Library/Homebrew/utils/analytics.rb
    modified:   Library/Homebrew/utils/analytics.sh
    modified:   Library/Homebrew/utils/bottles.rb
    modified:   Library/Homebrew/utils/curl.rb
    modified:   Library/Homebrew/utils/fork.rb
    modified:   Library/Homebrew/utils/git.rb
    modified:   Library/Homebrew/utils/github.rb
    modified:   Library/Homebrew/utils/hash.rb
    modified:   Library/Homebrew/utils/inreplace.rb
    modified:   Library/Homebrew/utils/json.rb
    modified:   Library/Homebrew/utils/lock.sh
    modified:   Library/Homebrew/utils/popen.rb
    modified:   Library/Homebrew/utils/ruby.sh
    modified:   Library/Homebrew/vendor/README.md
    modified:   Library/Homebrew/vendor/macho/macho.rb
    modified:   Library/Homebrew/vendor/macho/macho/exceptions.rb
    modified:   Library/Homebrew/vendor/macho/macho/fat_file.rb
    modified:   Library/Homebrew/vendor/macho/macho/headers.rb
    modified:   Library/Homebrew/vendor/macho/macho/load_commands.rb
    modified:   Library/Homebrew/vendor/macho/macho/macho_file.rb
    modified:   Library/Homebrew/vendor/macho/macho/open.rb
    modified:   Library/Homebrew/vendor/macho/macho/sections.rb
    modified:   Library/Homebrew/vendor/macho/macho/structure.rb
    modified:   Library/Homebrew/vendor/macho/macho/tools.rb
    modified:   Library/Homebrew/vendor/macho/macho/utils.rb
    modified:   Library/Homebrew/vendor/macho/macho/view.rb
    modified:   Library/Homebrew/vendor/okjson.rb
    modified:   Library/Homebrew/vendor/plist/plist/generator.rb
    modified:   Library/Homebrew/vendor/plist/plist/parser.rb
    modified:   Library/Homebrew/vendor/portable-ruby-version
    modified:   Library/Homebrew/version.rb
    modified:   README.md
    modified:   etc/bash_completion.d/brew
    modified:   share/doc/homebrew/Acceptable-Formulae.md
    modified:   share/doc/homebrew/Analytics.md
    modified:   share/doc/homebrew/Bottles.md
    modified:   share/doc/homebrew/Brew-Test-Bot-For-Core-Contributors.md
    modified:   share/doc/homebrew/Brew-Test-Bot.md
    modified:   share/doc/homebrew/C++-Standard-Libraries.md
    modified:   share/doc/homebrew/Checksum_Deprecation.md
    modified:   share/doc/homebrew/Common-Issues-for-Core-Contributors.md
    modified:   share/doc/homebrew/Common-Issues.md
    modified:   share/doc/homebrew/Custom-GCC-and-cross-compilers.md
    modified:   share/doc/homebrew/External-Commands.md
    modified:   share/doc/homebrew/FAQ.md
    modified:   share/doc/homebrew/Formula-Cookbook.md
    modified:   share/doc/homebrew/Gems,-Eggs-and-Perl-Modules.md
    modified:   share/doc/homebrew/Homebrew-and-Python.md
    modified:   share/doc/homebrew/How-To-Open-a-Homebrew-Pull-Request-(and-get-it-merged).md
    modified:   share/doc/homebrew/How-to-Create-and-Maintain-a-Tap.md
    modified:   share/doc/homebrew/How-to-build-software-outside-Homebrew-with-Homebrew-keg-only-dependencies.md
    modified:   share/doc/homebrew/Installation.md
    modified:   share/doc/homebrew/Interesting-Taps-&-Branches.md
    modified:   share/doc/homebrew/Kickstarter-Supporters.md
    modified:   share/doc/homebrew/Maintainer-Guidelines.md
    modified:   share/doc/homebrew/Maintainers-Avoiding-Burnout.md
    modified:   share/doc/homebrew/Migrating-A-Formula-To-A-Tap.md
    modified:   share/doc/homebrew/New-Maintainer-Checklist.md
    modified:   share/doc/homebrew/Node-for-Formula-Authors.md
    modified:   share/doc/homebrew/Prose-Style-Guidelines.md
    modified:   share/doc/homebrew/Python-for-Formula-Authors.md
    modified:   share/doc/homebrew/Querying-Brew.md
    modified:   share/doc/homebrew/README.md
    modified:   share/doc/homebrew/Rename-A-Formula.md
    modified:   share/doc/homebrew/Tips-N'-Tricks.md
    modified:   share/doc/homebrew/Troubleshooting.md
    modified:   share/doc/homebrew/Xcode.md
    modified:   share/doc/homebrew/brew-tap.md
    modified:   share/doc/homebrew/brew.1.html
    modified:   share/doc/homebrew/images/analytics.png
    modified:   share/doc/homebrew/images/brew-test-bot-failed-jenkins.png
    modified:   share/doc/homebrew/images/brew-test-bot-failed-pr.png
    modified:   share/doc/homebrew/images/brew-test-bot-failed-test.png
    modified:   share/doc/homebrew/images/brew-test-bot-passed-jenkins.png
    modified:   share/doc/homebrew/images/brew-test-bot-passed-pr.png
    modified:   share/doc/homebrew/images/brew-test-bot-triggered-pr.png
    modified:   share/man/man1/brew-cask.1
    modified:   share/man/man1/brew.1
    modified:   share/zsh/site-functions/_brew

no changes added to commit

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.