helm/rake/lib/package_adapters/homebrew.rb
2014-09-20 16:37:45 -04:00

67 lines
1.4 KiB
Ruby

# Homebrew package adapter
module Package
module_function
@@brew_bin = "/usr/local/bin/brew"
def bootstrap
unless self.installed?
sh_safe 'ruby -e "$(curl -fsSL https://raw.github.com/Homebrew/homebrew/go/install)"'
end
end
def install(package)
self.run("install", package) unless self.installed?(package)
end
def installed?(package = nil)
return File.exists?(@@brew_bin) if !package
self.run("list | grep -w '^#{package.split(" ")[0]}$' >& /dev/null")
end
def remove(package)
self.run("remove", package)
end
def update(*args)
if args.length > 0
self.run("upgrade #{args.join(' ')}")
else
self.run("update")
self.run("upgrade")
end
end
def tap(repo)
self.run("tap", repo) unless self.tapped?(repo)
end
def untap(repo)
self.run("untap #{repo}")
end
def tapped?(repo)
self.run("tap | grep -w '^#{repo}$' >& /dev/null")
end
# Homebrew-specific functions
def cask_install(cask)
self.run("cask", "install", cask) unless self.cask_installed?(cask)
end
def cask_remove(cask)
self.run("cask", "uninstall", cask) unless self.cask_installed?(cask)
end
def cask_installed?(cask)
self.run("cask list | grep -w '^#{cask}$' >& /dev/null")
end
def run(*args)
raise "Homebrew isn't installed!" unless self.installed?
system("#{@@brew_bin} #{args.join(' ')}")
end
end