Class: Bash
- Inherits:
-
Object
- Object
- Bash
- Defined in:
- lib/script.rb
Instance Attribute Summary collapse
-
#status ⇒ Object
readonly
Returns the value of attribute status.
Instance Method Summary collapse
- #code(s) ⇒ Object
- #echo(flag) ⇒ Object
- #exec_code(cmd) ⇒ Object
- #failure(&block) ⇒ Object
- #group(s) ⇒ Object
-
#initialize(logger, &block) ⇒ Bash
constructor
A new instance of Bash.
- #log(logtext) ⇒ Object
- #success(&block) ⇒ Object
- #user(s) ⇒ Object
Constructor Details
#initialize(logger, &block) ⇒ Bash
Returns a new instance of Bash.
4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
# File 'lib/script.rb', line 4 def initialize(logger, &block) @logger = logger instance_eval(&block) if @code if @user if @user == 'root' exec_code("sudo /bin/bash") else group = @group || @user exec_code("sudo -u #{@user} -g #{group} /bin/bash", stdin_data: @code) end else exec_code("/bin/bash") end if status == 0 InnerScript.new(@logger, &@success) if @success else InnerScript.new(@logger, &@failure) if @failure end end end |
Instance Attribute Details
#status ⇒ Object (readonly)
Returns the value of attribute status.
35 36 37 |
# File 'lib/script.rb', line 35 def status @status end |
Instance Method Details
#code(s) ⇒ Object
45 46 47 |
# File 'lib/script.rb', line 45 def code(s) @code = s end |
#echo(flag) ⇒ Object
61 62 63 |
# File 'lib/script.rb', line 61 def echo(flag) @echo = flag end |
#exec_code(cmd) ⇒ Object
27 28 29 30 31 32 33 |
# File 'lib/script.rb', line 27 def exec_code(cmd) @logger.info @logtext if @logtext @logger.info @code.chomp if @echo o, e, s = Open3.capture3(cmd, stdin_data: @code) @logger.info o.chomp if @echo @status = s end |
#failure(&block) ⇒ Object
53 54 55 |
# File 'lib/script.rb', line 53 def failure(&block) @failure = block end |
#group(s) ⇒ Object
41 42 43 |
# File 'lib/script.rb', line 41 def group(s) @group = s end |
#log(logtext) ⇒ Object
57 58 59 |
# File 'lib/script.rb', line 57 def log(logtext) @logtext = logtext end |
#success(&block) ⇒ Object
49 50 51 |
# File 'lib/script.rb', line 49 def success(&block) @success = block end |
#user(s) ⇒ Object
37 38 39 |
# File 'lib/script.rb', line 37 def user(s) @user = s end |