Sha256: fa8932d103ef20704da90de9788b405ec244117933ab3b6056c19841b513e1f6

Contents?: true

Size: 1.02 KB

Versions: 11

Compression:

Stored size: 1.02 KB

Contents

require 'pp'
require 'chef/provider'

class Chef
  class Provider
    class Package
      class Homebrew < ::Chef::Provider::Package
        PREFIX   = "/usr/local"
        HOMEBREW = "#{PREFIX}/bin/brew"

        def latest_version_for(name)
          %x{#{HOMEBREW} info #{name}| head -n1 | awk '{print $2}'}.chomp
        end

        def load_current_resource
          @current_resource = Chef::Resource::Homebrew.new(@new_resource.name)
          @current_resource.package_name(@new_resource.name)
          @candidate_version = latest_version_for(@new_resource.name)
          @current_resource
        end

        def install_package(name, version)
          run_brew_command("#{HOMEBREW} install #{name}")
        end

        def remove_package(name, version)
          run_brew_command("#{HOMEBREW} uninstall #{name}")
        end

        def run_brew_command(command)
          Chef::Log.debug(command)
          run_command_with_systems_locale(
            :command => command
          )
        end
      end
    end
  end
end

Version data entries

11 entries across 11 versions & 1 rubygems

Version Path
flombe-0.1.0.12 cookbooks/homebrew/providers/homebrew.rb
flombe-0.1.0.11 cookbooks/homebrew/providers/homebrew.rb
flombe-0.1.0.10 cookbooks/homebrew/providers/homebrew.rb
flombe-0.1.0.9 cookbooks/homebrew/providers/homebrew.rb
flombe-0.1.0.8 cookbooks/homebrew/providers/homebrew.rb
flombe-0.1.0.7 cookbooks/homebrew/providers/homebrew.rb
flombe-0.1.0.6 cookbooks/homebrew/providers/homebrew.rb
flombe-0.1.0.5 cookbooks/homebrew/providers/homebrew.rb
flombe-0.1.0.4 cookbooks/homebrew/providers/homebrew.rb
flombe-0.1.0.3 cookbooks/homebrew/providers/homebrew.rb
flombe-0.1.0.2 cookbooks/homebrew/providers/homebrew.rb