class Object

Constants

DEFAULT_EXE_FILE
DEFAULT_UPLOAD_DIR

Public Instance Methods

exe(ssh, cmd) click to toggle source
# File lib/hieb.rb, line 19
def exe(ssh, cmd)
  puts "# #{cmd}"
  ssh.exec!(cmd) do |channel, stream, data|
    puts "#{data}"
  end
end
execute_commands(host, user, key, exe_file, options = {}) click to toggle source
# File lib/hieb.rb, line 55
def execute_commands(host, user, key, exe_file, options = {})
  if options[:paranoid] == true
    paranoid = true
  else
    paranoid = false
  end
  # Execute commands
  Net::SSH.start(host, user, :password => key, :keys => [ key ], :verify_host_key => paranoid) do |ssh|
    serialized = File.read(exe_file)
    data = JSON.parse(serialized)
    data['commands'].each do |cmd|
      exe ssh, cmd
    end
  end if File.exist? exe_file
end
ping(ip) click to toggle source
# File lib/hieb.rb, line 10
def ping ip
  begin
    r = `ping -c 1 -t1 -W1 #{ip}|grep packets`
    r.match(/transmitted, (.*?) packets/)[1].to_i == 1
  rescue
    false
  end
end
upload(scp, file, local_dir) click to toggle source
# File lib/hieb.rb, line 26
def upload(scp, file, local_dir)
  puts ">> UPLOAD: /#{file}"
  scp.upload! "#{local_dir}/#{file}", "/#{file}"
end
upload_dir(scp, dir, local_dir) click to toggle source
# File lib/hieb.rb, line 31
def upload_dir(scp, dir, local_dir)
  Dir.foreach dir do |f1|
    next if f1 =~ /^\.|\..$/
    f2 = File.join(dir, f1)
    if File.directory? f2
      upload_dir scp, f2, local_dir
    else
      upload scp, f2.sub!(/^#{local_dir}\//, ''), local_dir
    end
  end
end
upload_files(host, user, key, upload_dir, options = {}) click to toggle source
# File lib/hieb.rb, line 43
def upload_files(host, user, key, upload_dir, options = {})
  if options[:paranoid] == true
    paranoid = true
  else
    paranoid = false
  end
  # Upload deploy files
  Net::SCP.start(host, user, :password => key, :keys => [ key ], :verify_host_key => paranoid) do |scp|
    upload_dir scp, upload_dir, upload_dir
  end if File.exist? upload_dir
end