Class: Outback::ShellTask

Inherits:
Object
  • Object
show all
Defined in:
lib/outback/shelltask.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(out, back) ⇒ ShellTask

Returns a new instance of ShellTask.



11
12
13
14
# File 'lib/outback/shelltask.rb', line 11

def initialize(out, back)
  @rollout, @rollback = out, back
  @rolled_out = false
end

Instance Attribute Details

#errorsObject (readonly)

Returns the value of attribute errors.



9
10
11
# File 'lib/outback/shelltask.rb', line 9

def errors
  @errors
end

#exit_codeObject (readonly)

Returns the value of attribute exit_code.



9
10
11
# File 'lib/outback/shelltask.rb', line 9

def exit_code
  @exit_code
end

#nameObject

Returns the value of attribute name.



8
9
10
# File 'lib/outback/shelltask.rb', line 8

def name
  @name
end

#resultObject (readonly)

Returns the value of attribute result.



9
10
11
# File 'lib/outback/shelltask.rb', line 9

def result
  @result
end

#rollbackObject

Returns the value of attribute rollback.



8
9
10
# File 'lib/outback/shelltask.rb', line 8

def rollback
  @rollback
end

#rolloutObject

Returns the value of attribute rollout.



8
9
10
# File 'lib/outback/shelltask.rb', line 8

def rollout
  @rollout
end

#workdirObject

Returns the value of attribute workdir.



8
9
10
# File 'lib/outback/shelltask.rb', line 8

def workdir
  @workdir
end

Instance Method Details

#reset_stringsObject



32
33
34
# File 'lib/outback/shelltask.rb', line 32

def reset_strings
  @result, @errors = "", ""
end

#rollback!Object



22
23
24
25
26
# File 'lib/outback/shelltask.rb', line 22

def rollback!
  run @rollback
  @rolled_out = false
  return @exit_code == 0
end

#rolled_out?Boolean

Returns:

  • (Boolean)


28
29
30
# File 'lib/outback/shelltask.rb', line 28

def rolled_out?
  @rolled_out
end

#rollout!Object



16
17
18
19
20
# File 'lib/outback/shelltask.rb', line 16

def rollout!
  run @rollout
  @rolled_out = true
  return @exit_code == 0
end

#run(command) ⇒ Object



36
37
38
39
40
41
42
43
44
45
46
47
48
49
# File 'lib/outback/shelltask.rb', line 36

def run( command )
  reset_strings
  Dir.chdir(@workdir || Dir.getwd) do
    @status = Open4.popen4(*command) do |pid, i, o, e|
      @result = o.read
      @errors = e.read
    end
    @exit_code = @status.exitstatus
  end
# Catch nonexistent commands at this point and return a sensible error
rescue Errno::ENOENT => e
  @exit_code = 127
  @errors = e.message
end