helm/rake/lib/homebrew.rb

74 lines
1.7 KiB
Ruby
Raw Normal View History

2014-06-15 22:24:05 -07:00
require_relative 'sh'
2014-04-11 00:31:44 -07:00
include Rake::DSL
module Homebrew
BIN = "/usr/local/bin/brew"
def self.bootstrap
unless self.is_installed?
2014-06-15 22:24:05 -07:00
sh_safe 'ruby -e "$(curl -fsSL https://raw.github.com/Homebrew/homebrew/go/install)"'
sh_safe 'exec $SHELL -l'
2014-04-11 00:31:44 -07:00
end
end
def self.destroy
if self.is_installed?
2014-06-15 22:24:05 -07:00
sh_safe 'rm -rf /usr/local/Cellar /usr/local/.git ~/Library/Caches/Homebrew'
sh_safe 'brew prune'
2014-04-11 00:31:44 -07:00
['Library/Homebrew', 'Library/Aliases', 'Library/Formula', 'Library/Contributions'].each do |dir|
2014-06-15 22:24:05 -07:00
sh_safe "rm -r #{dir}"
2014-04-11 00:31:44 -07:00
end
end
end
def self.install(keg, options=nil)
2014-06-15 22:24:05 -07:00
sh_safe "#{BIN} install #{keg} #{options}" unless self.is_keg_installed?(keg)
2014-04-11 00:31:44 -07:00
end
def self.install_cask(cask, options=nil)
2014-06-15 22:24:05 -07:00
sh_safe "#{BIN} cask install #{cask} #{options}" unless self.is_cask_installed?(cask)
2014-04-11 00:31:44 -07:00
end
def self.tap(tap)
2014-06-15 22:24:05 -07:00
sh_safe "#{BIN} tap #{tap}" unless self.is_tapped? tap
2014-04-11 00:31:44 -07:00
end
def self.remove(keg)
2014-06-15 22:24:05 -07:00
sh_safe "#{BIN} remove #{keg}"
2014-04-11 00:31:44 -07:00
end
def self.has_keg?(keg)
2014-04-13 08:45:53 -07:00
`#{BIN} search #{keg}`
2014-04-11 00:31:44 -07:00
end
def self.is_keg_installed?(keg)
2014-04-13 08:45:53 -07:00
`#{BIN} list | grep -w '#{keg}'`
2014-04-11 00:31:44 -07:00
end
def self.is_cask_installed?(cask)
2014-04-13 08:45:53 -07:00
`#{BIN} cask list | grep -w '#{cask}'`
2014-04-11 00:31:44 -07:00
end
def self.is_tapped?(tap)
2014-04-13 08:45:53 -07:00
`#{BIN} tap | grep -w '#{tap}'`
2014-04-11 00:31:44 -07:00
end
def self.is_installed?
2014-04-13 08:45:53 -07:00
File.exists?("/usr/local/bin/brew")
2014-04-11 00:31:44 -07:00
end
2014-04-13 08:45:53 -07:00
def self.prefix(keg)
`#{BIN} --prefix #{keg}`.strip
end
def self.update(*args)
if args.length > 0
2014-06-15 22:24:05 -07:00
sh_safe "#{BIN} upgrade #{args.join(' ')}"
2014-04-13 08:45:53 -07:00
else
2014-06-15 22:24:05 -07:00
sh_safe "#{BIN} update && #{BIN} upgrade"
2014-04-13 08:45:53 -07:00
end
2014-04-11 00:31:44 -07:00
end
end