module Busser::UI

User interface methods.

@author Fletcher Nichol <fnichol@nichol.ca>

Public Instance Methods

banner(msg) click to toggle source
die(msg, exitstatus = 1) click to toggle source
# File lib/busser/ui.rb, line 62
def die(msg, exitstatus = 1)
  fatal(msg)
  exit(exitstatus)
end
fatal(msg) click to toggle source
# File lib/busser/ui.rb, line 42
def fatal(msg)
  error("!!!!!! #{msg}")
end
handle_command(type, cmd) { || ... } click to toggle source
# File lib/busser/ui.rb, line 71
def handle_command(type, cmd)
  begin
    yield
  rescue => e
    fatal(
      "#{type} [#{cmd}] raised an exception: #{e.message}\n" +
      e.backtrace.join("\n"))
    raise
  end

  if status.nil?
    die(
      "#{type} [#{cmd}] did not return a valid status. " \
      "This instance could be starved for RAM or may have swap disabled."
    )
  elsif status.success?
    true
  else
    code = status.exitstatus
    die("#{type} [#{cmd}] exit code was #{code}", code)
  end
end
info(msg) click to toggle source
# File lib/busser/ui.rb, line 34
def info(msg)
  say("       #{msg}")
end
run!(cmd, config = {}) click to toggle source
# File lib/busser/ui.rb, line 46
def run!(cmd, config = {})
  config = { :capture => false, :verbose => false }.merge(config)

  handle_command("Command", cmd) do
    run(cmd, config)
  end
end
run_ruby_script!(cmd, config = {}) click to toggle source
# File lib/busser/ui.rb, line 54
def run_ruby_script!(cmd, config = {})
  config = { :capture => false, :verbose => false }.merge(config)

  handle_command("Ruby Script", cmd) do
    run_ruby_script(cmd, config)
  end
end
status() click to toggle source
# File lib/busser/ui.rb, line 67
def status
  $?
end
warn(msg) click to toggle source
# File lib/busser/ui.rb, line 38
def warn(msg)
  say(">>>>>> #{msg}")
end