Class: EY::Serverside::Shell
- Inherits:
-
Object
show all
- Defined in:
- lib/engineyard-serverside/shell.rb,
lib/engineyard-serverside/shell/helpers.rb,
lib/engineyard-serverside/shell/yieldio.rb,
lib/engineyard-serverside/shell/formatter.rb,
lib/engineyard-serverside/shell/command_result.rb
Defined Under Namespace
Modules: Helpers
Classes: CommandResult, Formatter, YieldIO
Instance Attribute Summary collapse
Instance Method Summary
collapse
Constructor Details
#initialize(options) ⇒ Shell
Returns a new instance of Shell.
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
# File 'lib/engineyard-serverside/shell.rb', line 13
def initialize(options)
@start_time = options[:start_time]
@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?
@logger = Logger.new(log_pathname.to_s)
@logger.level = Logger::DEBUG
@logger.formatter = EY::Serverside::Shell::Formatter.new(@stdout, @stderr, start_time, @verbose)
end
|
Instance Attribute Details
Returns the value of attribute logger.
11
12
13
|
# File 'lib/engineyard-serverside/shell.rb', line 11
def logger
@logger
end
|
Instance Method Details
#command_err(msg) ⇒ Object
64
|
# File 'lib/engineyard-serverside/shell.rb', line 64
def command_err(msg) unknown msg.gsub(/^/,' ') end
|
#command_out(msg) ⇒ Object
63
|
# File 'lib/engineyard-serverside/shell.rb', line 63
def command_out(msg) debug msg.gsub(/^/,' ') end
|
#command_show(cmd) ⇒ Object
a debug outputter that displays a command being run
Formatis like this:
$ cmd blah do \
> something more
> end
62
|
# File 'lib/engineyard-serverside/shell.rb', line 62
def command_show(cmd) debug cmd.gsub(/^/,' > ').sub(/>/, '$') end
|
#debug(msg) ⇒ Object
53
|
# File 'lib/engineyard-serverside/shell.rb', line 53
def debug(msg) logger.debug msg end
|
#error(msg) ⇒ Object
49
|
# File 'lib/engineyard-serverside/shell.rb', line 49
def error(msg) logger.error "ERROR: #{msg}" end
|
#exception(msg) ⇒ Object
56
|
# File 'lib/engineyard-serverside/shell.rb', line 56
def exception(msg) error msg end
|
#fatal(msg) ⇒ Object
48
|
# File 'lib/engineyard-serverside/shell.rb', line 48
def fatal(msg) logger.fatal "FATAL: #{msg}" end
|
#info(msg) ⇒ Object
52
|
# File 'lib/engineyard-serverside/shell.rb', line 52
def info(msg) logger.info msg end
|
#logged_system(cmd, server = nil) ⇒ Object
66
67
68
69
70
71
72
73
|
# File 'lib/engineyard-serverside/shell.rb', line 66
def logged_system(cmd, server = nil)
command_show(cmd)
output = ""
outio = YieldIO.new { |msg| output << msg; command_out(msg) }
errio = YieldIO.new { |msg| output << msg; command_err(msg) }
result = spawn_process(cmd, outio, errio)
CommandResult.new(cmd, result.exitstatus, output, server)
end
|
#notice(msg) ⇒ Object
51
|
# File 'lib/engineyard-serverside/shell.rb', line 51
def notice(msg) logger.warn msg end
|
#start_time ⇒ Object
32
33
34
|
# File 'lib/engineyard-serverside/shell.rb', line 32
def start_time
@start_time ||= Time.now
end
|
#status(msg) ⇒ Object
a nice info outputter that prepends spermy operators for some reason.
37
38
39
40
41
42
|
# File 'lib/engineyard-serverside/shell.rb', line 37
def status(msg)
if msg.respond_to?(:force_encoding)
msg.force_encoding("UTF-8")
end
info msg.gsub(/^/, '~> ')
end
|
#substatus(msg) ⇒ Object
44
45
46
|
# File 'lib/engineyard-serverside/shell.rb', line 44
def substatus(msg)
debug msg.gsub(/^/, ' ~ ')
end
|
#unknown(msg) ⇒ Object
54
|
# File 'lib/engineyard-serverside/shell.rb', line 54
def unknown(msg) logger.unknown msg end
|
#verbose? ⇒ Boolean
28
29
30
|
# File 'lib/engineyard-serverside/shell.rb', line 28
def verbose?
@verbose
end
|
#warning(msg) ⇒ Object
50
|
# File 'lib/engineyard-serverside/shell.rb', line 50
def warning(msg) logger.warn "WARNING: #{msg}" end
|