class Shaddox::Provisioner
Public Class Methods
new(opts = {:verbose => false})
click to toggle source
Init ====================================================
# File lib/shaddox/provisioner.rb, line 18 def initialize(opts = {:verbose => false}) @verbose = opts[:verbose] @required = true end
Public Instance Methods
availiable?(cmd)
click to toggle source
# File lib/shaddox/provisioner.rb, line 75 def availiable?(cmd) exts = ENV['PATHEXT'] ? ENV['PATHEXT'].split(';') : [''] ENV['PATH'].split(File::PATH_SEPARATOR).each do |path| exts.each { |ext| exe = File.join(path, "#{cmd}#{ext}") return true if File.executable?(exe) && !File.directory?(exe) } end return false end
cd(path, &block)
click to toggle source
# File lib/shaddox/provisioner.rb, line 55 def cd(path, &block) mkdir(path) FileUtils.cd(path.exp_path) do instance_eval(&block) end end
exec(command, args = nil)
click to toggle source
# File lib/shaddox/provisioner.rb, line 47 def exec(command, args = nil) cmd = "#{command}" cmd += " #{args.join(" ")}" if args info "Running '#{cmd}' in '#{Dir.pwd}'", 1 if @verbose system(cmd) raise "'#{cmd}' failed" unless $? == 0 or !@required end
exists(path)
click to toggle source
# File lib/shaddox/provisioner.rb, line 35 def exists(path) system("test -e #{path.exp_path}") end
exists_d(path)
click to toggle source
# File lib/shaddox/provisioner.rb, line 39 def exists_d(path) system("test -d #{path.exp_path}") end
exists_f(path)
click to toggle source
# File lib/shaddox/provisioner.rb, line 43 def exists_f(path) system("test -f #{path.exp_path}") end
install(package)
click to toggle source
# File lib/shaddox/provisioner.rb, line 86 def install(package) @installer ||= Installer.autodetect(self); info "Ensuring #{package} is installed", 1 if @verbose @installer.install(package) end
ln_s(source, dest, opts = {})
click to toggle source
# File lib/shaddox/provisioner.rb, line 62 def ln_s(source, dest, opts = {}) mkdir(dest.exp_path.parent) Dir.glob(source.exp_path).each { |src| info "Linking '#{src.exp_path}' to '#{dest.exp_path}'", 1 if @verbose FileUtils::ln_s(src, dest.exp_path, opts) } end
mkdir(path)
click to toggle source
# File lib/shaddox/provisioner.rb, line 70 def mkdir(path) info "Ensuring directory '#{path}' exists", 1 if @verbose FileUtils::mkdir_p(path.exp_path) end
optional(&block)
click to toggle source
Methods =================================================
# File lib/shaddox/provisioner.rb, line 29 def optional(&block) @required = false instance_eval(&block) @required = true end
run(block)
click to toggle source
# File lib/shaddox/provisioner.rb, line 23 def run(block) instance_eval(&block) unless !block end