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