class Hookit::Resource::Package
Public Class Methods
new(name)
click to toggle source
Calls superclass method
Hookit::Resource::Base::new
# File lib/hookit/resource/package.rb, line 13 def initialize(name) package_name(name) unless source scope :default unless scope super end
Public Instance Methods
install!()
click to toggle source
# File lib/hookit/resource/package.rb, line 26 def install! begin install_package rescue Hookit::Error::UnexpectedExit if not registry("pkgsrc.#{scope}.updated") update_pkg_db registry("pkgsrc.#{scope}.updated", true) retry else raise end end end
run(action)
click to toggle source
# File lib/hookit/resource/package.rb, line 19 def run(action) case action when :install install! end end
Protected Instance Methods
install_package()
click to toggle source
# File lib/hookit/resource/package.rb, line 42 def install_package `#{pkgin} -y in #{package}` code = $?.exitstatus if not code == 0 raise Hookit::Error::UnexpectedExit, "pkgin in #{package} failed with exit code '#{code}'" end end
package()
click to toggle source
# File lib/hookit/resource/package.rb, line 55 def package if version "#{package_name}-#{version}" else package_name end end
pkgin()
click to toggle source
# File lib/hookit/resource/package.rb, line 63 def pkgin case scope when :default "/opt/local/bin/pkgin" when :gopagoda "/opt/gopagoda/bin/pkgin" end end
update_pkg_db()
click to toggle source
# File lib/hookit/resource/package.rb, line 51 def update_pkg_db `#{pkgin} -y up` end