Sha256: 20106c3ab94a118c4c417d149901b5d4aadb5b3867a2a35505ead9ab5806ac93
Contents?: true
Size: 1.34 KB
Versions: 1
Compression:
Stored size: 1.34 KB
Contents
module MM module Console class SystemCmd SCRIPT_REGEX = /\[([^\]]+)\]/ def self.execute_as_cmd(runtime, command) return if command.blank? which = runtime[:api].execute_cmd("which #{command.split.first.inspect}") if which && which.first == 0 SystemCmd.new(command).execute(runtime) else raise "What's '#{command}' mean?" end end def initialize(command) @command = command end def execute(runtime) @transition_script = if @command =~ SCRIPT_REGEX script = runtime[$1.to_sym] || $1 cmd = parse(runtime, script) if cmd.is_a?(MM::Console::Transition) @command.gsub!(SCRIPT_REGEX, cmd.desc) script end end exitstatus, output = runtime[:api].execute_cmd(@command) if exitstatus == 0 && @transition_script if rev = output.to_s.split("\n").last.to_s.gsub(/[^0-9]/, '') runtime[:revision] = rev end processor(runtime).process(@transition_script) else output end end def parse(runtime, script) processor(runtime).parse(script) rescue end def processor(runtime) MM::Console::Processor.new(runtime) end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
xli-mm-0.0.3 | lib/mm/console/system_cmd.rb |