class Chake::Backend

Public Class Methods

backend_name() click to toggle source
# File lib/chake/backend.rb, line 61
def self.backend_name
  name.split("::").last.downcase
end
get(name) click to toggle source
# File lib/chake/backend.rb, line 70
def self.get(name)
  backend = @backends.find { |b| b.backend_name == name }
  backend || raise(ArgumentError.new("Invalid backend name: #{name}"))
end
inherited(subclass) click to toggle source
# File lib/chake/backend.rb, line 65
def self.inherited(subclass)
  @backends ||= []
  @backends << subclass
end

Public Instance Methods

rsync() click to toggle source
# File lib/chake/backend.rb, line 16
def rsync
  ['rsync']
end
rsync_dest() click to toggle source
# File lib/chake/backend.rb, line 20
def rsync_dest
  node.path + '/'
end
run(cmd) click to toggle source
# File lib/chake/backend.rb, line 24
def run(cmd)
  printf "%#{Node.max_node_name_length}s: $ %s\n", node.hostname, cmd
  io = IO.popen(command_runner + ['/bin/sh'], mode='w+', eer: [:child, :out])
  io.write(cmd)
  io.close_write
  io.each_line do |line|
    printf "%#{Node.max_node_name_length}s: %s\n", node.hostname, line.gsub(/\s*$/, '')
  end
  io.close
  if $?
    status = $?.exitstatus
    if status != 0
      raise CommandFailed.new([node.hostname, 'FAILED with exit status %d' % status].join(': '))
    end
  end
end
run_as_root(cmd) click to toggle source
# File lib/chake/backend.rb, line 45
def run_as_root(cmd)
  if node.remote_username == 'root'
    run(cmd)
  else
    run('sudo ' + cmd)
  end
end
run_shell() click to toggle source
# File lib/chake/backend.rb, line 41
def run_shell
  system(*shell_command)
end
scp() click to toggle source
# File lib/chake/backend.rb, line 8
def scp
  ['scp']
end
scp_dest() click to toggle source
# File lib/chake/backend.rb, line 12
def scp_dest
  ''
end
skip?() click to toggle source
# File lib/chake/backend.rb, line 57
def skip?
  false
end
to_s() click to toggle source
# File lib/chake/backend.rb, line 53
def to_s
  self.class.backend_name
end