Class: Scripto::RunCommands::CommandLine

Inherits:
Object
  • Object
show all
Defined in:
lib/scripto/run_commands.rb

Overview

:nodoc:

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(command, args) ⇒ CommandLine

Returns a new instance of CommandLine.



57
58
59
60
61
62
63
64
65
66
# File 'lib/scripto/run_commands.rb', line 57

def initialize(command, args)
  self.command = command
  self.args = begin
    if args
      args.map(&:to_s)
    else
      []
    end
  end
end

Instance Attribute Details

#argsObject

Returns the value of attribute args.



55
56
57
# File 'lib/scripto/run_commands.rb', line 55

def args
  @args
end

#commandObject

Returns the value of attribute command.



55
56
57
# File 'lib/scripto/run_commands.rb', line 55

def command
  @command
end

Instance Method Details

#captureObject



73
74
75
76
77
78
79
80
81
# File 'lib/scripto/run_commands.rb', line 73

def capture
  begin
    captured = `#{self}`
  rescue Errno::ENOENT
    raise Error, "#{self} failed : ENOENT (No such file or directory)"
  end
  raise!($CHILD_STATUS) if $CHILD_STATUS != 0
  captured
end

#raise!(status) ⇒ Object

Raises:



83
84
85
86
87
88
89
# File 'lib/scripto/run_commands.rb', line 83

def raise!(status)
  if status.termsig == Signal.list['INT']
    raise "#{self} interrupted"
  end

  raise Error, "#{self} failed : #{status.to_i / 256}"
end

#runObject



68
69
70
71
# File 'lib/scripto/run_commands.rb', line 68

def run
  system(command, *args)
  raise!($CHILD_STATUS) if $CHILD_STATUS != 0
end

#to_sObject



91
92
93
94
95
96
97
98
# File 'lib/scripto/run_commands.rb', line 91

def to_s
  if !args.empty?
    escaped = args.map { |i| Shellwords.escape(i) }
    "#{command} #{escaped.join(' ')}"
  else
    command
  end
end