class Specinfra::Backend::Jexec
Public Class Methods
new(config = {})
click to toggle source
Calls superclass method
Specinfra::Backend::Base::new
# File lib/specinfra/backend/jexec.rb, line 4 def initialize(config = {}) super(config) jname = get_config(:jail_name) jroot = `jls -j #{jname} path`.strip fail 'fail to get jail path!' if jroot.to_s.empty? set_config(:jail_root, jroot) end
Public Instance Methods
build_command(cmd)
click to toggle source
# File lib/specinfra/backend/jexec.rb, line 22 def build_command(cmd) shell = get_config(:shell) || '/bin/sh' cmd = cmd.shelljoin if cmd.is_a?(Array) shell = shell.shellescape if get_config(:interactive_shell) shell << " -i" end if get_config(:login_shell) shell << " -l" end cmd = "#{shell} -c #{cmd.to_s.shellescape}" path = get_config(:path) if path cmd = %Q{env PATH="#{path}" #{cmd}} end jname = get_config(:jail_name) "jexec #{jname} #{cmd}" end
send_directory(from, to)
click to toggle source
# File lib/specinfra/backend/jexec.rb, line 17 def send_directory(from, to) jroot = get_config(:jail_root) FileUtils.cp_r(from, "#{jroot}/#{to}") end
send_file(from, to)
click to toggle source
# File lib/specinfra/backend/jexec.rb, line 12 def send_file(from, to) jroot = get_config(:jail_root) FileUtils.cp(from, "#{jroot}/#{to}") end