class EY::Serverside::Shell

Constants

BOL
CMD_CONTINUE
CMD_INDENT
CMD_PREFIX
IMPORTANT_PREFIX
STATUS_PREFIX
SUBSTATUS_PREFIX

Attributes

logger[R]
start_time[R]

Public Class Methods

new(options) click to toggle source
# File lib/engineyard-serverside/shell.rb, line 21
def initialize(options)
  @start_time = options[:start_time] || Time.now
  @verbose    = options[:verbose]

  @stdout = options[:stdout] || $stdout
  @stderr = options[:stderr] || $stderr

  log_pathname = Pathname.new(options[:log_path])
  log_pathname.unlink if log_pathname.exist? # start fresh
  @logger = Logger.new(log_pathname.to_s)
  @logger.level = Logger::DEBUG # Always log to the file at debug, formatter hides debug for non-verbose
  @logger.formatter = EY::Serverside::Shell::Formatter.new(@stdout, @stderr, start_time, @verbose)
end

Public Instance Methods

command_err(msg) click to toggle source
# File lib/engineyard-serverside/shell.rb, line 93
def command_err(msg)
  unknown(msg.gsub(BOL,CMD_INDENT))
end
command_out(msg) click to toggle source
# File lib/engineyard-serverside/shell.rb, line 89
def command_out(msg)
  debug(msg.gsub(BOL,CMD_INDENT))
end
command_show(cmd) click to toggle source

a debug outputter that displays a command being run Formatis like this:

$ cmd blah do \
> something more
> end
# File lib/engineyard-serverside/shell.rb, line 85
def command_show(cmd)
  debug(cmd.gsub(BOL,CMD_CONTINUE).sub(CMD_CONTINUE, CMD_PREFIX))
end
debug(msg) click to toggle source
# File lib/engineyard-serverside/shell.rb, line 72
def debug(msg)
  logger.debug(msg)
end
error(msg) click to toggle source
# File lib/engineyard-serverside/shell.rb, line 55
def error(msg)
  logger.error("ERROR: #{msg}")
end
fatal(msg) click to toggle source
# File lib/engineyard-serverside/shell.rb, line 51
def fatal(msg)
  logger.fatal("FATAL: #{msg}")
end
info(msg) click to toggle source
# File lib/engineyard-serverside/shell.rb, line 68
def info(msg)
  logger.info(msg)
end
logged_system(cmd, server = nil) click to toggle source
# File lib/engineyard-serverside/shell.rb, line 97
def logged_system(cmd, server = nil)
  EY::Serverside::Spawner.run(cmd, self, server)
end
notice(msg) click to toggle source
# File lib/engineyard-serverside/shell.rb, line 64
def notice(msg)
  logger.warn(msg)
end
status(msg) click to toggle source

a nice info outputter that prepends spermy operators for some reason.

# File lib/engineyard-serverside/shell.rb, line 40
def status(msg)
  if msg.respond_to?(:force_encoding)
    msg.force_encoding(Encoding::UTF_8)
  end
  info msg.gsub(BOL, STATUS_PREFIX)
end
substatus(msg) click to toggle source
# File lib/engineyard-serverside/shell.rb, line 47
def substatus(msg)
  debug msg.gsub(BOL, SUBSTATUS_PREFIX)
end
unknown(msg) click to toggle source
# File lib/engineyard-serverside/shell.rb, line 76
def unknown(msg)
  logger.unknown(msg)
end
verbose?() click to toggle source
# File lib/engineyard-serverside/shell.rb, line 35
def verbose?
  @verbose
end
warn(msg)
Alias for: warning
warning(msg) click to toggle source
# File lib/engineyard-serverside/shell.rb, line 59
def warning(msg)
  logger.warn("WARNING: #{msg}")
end
Also aliased as: warn