Class: Bsdkrun::Result
- Inherits:
-
Data
- Object
- Data
- Bsdkrun::Result
- Defined in:
- lib/bsdkrun/types.rb
Overview
The captured result of running a command in a guest via Sandbox#exec.
Instance Attribute Summary collapse
-
#command ⇒ String
readonly
A human label for the command.
- #exit_code ⇒ Integer readonly
- #stderr ⇒ String readonly
- #stdout ⇒ String readonly
Instance Method Summary collapse
-
#json ⇒ Object
Stdout parsed as JSON.
-
#lines ⇒ Array<String>
Non-empty stdout lines.
-
#ok? ⇒ Boolean
Whether the command succeeded (exit 0).
-
#text ⇒ String
Stdout with trailing newlines trimmed — the common case.
- #throw_if_failed! ⇒ self
Instance Attribute Details
#command ⇒ String (readonly)
Returns a human label for the command.
346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 |
# File 'lib/bsdkrun/types.rb', line 346 Result = Data.define(:stdout, :stderr, :exit_code, :command) do # @return [Boolean] whether the command succeeded (exit 0). def ok? exit_code.zero? end # @return [String] stdout with trailing newlines trimmed — the common case. def text stdout.sub(/\n+\z/, "") end # @return [Object] stdout parsed as JSON. def json require "json" JSON.parse(stdout) end # @return [Array<String>] non-empty stdout lines. def lines stdout.split("\n").reject(&:empty?) end # @raise [CommandFailed] if the command exited non-zero. # @return [self] def throw_if_failed! unless ok? raise CommandFailed.new( exit_code: exit_code, stdout: stdout, stderr: stderr, command: command ) end self end end |
#exit_code ⇒ Integer (readonly)
346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 |
# File 'lib/bsdkrun/types.rb', line 346 Result = Data.define(:stdout, :stderr, :exit_code, :command) do # @return [Boolean] whether the command succeeded (exit 0). def ok? exit_code.zero? end # @return [String] stdout with trailing newlines trimmed — the common case. def text stdout.sub(/\n+\z/, "") end # @return [Object] stdout parsed as JSON. def json require "json" JSON.parse(stdout) end # @return [Array<String>] non-empty stdout lines. def lines stdout.split("\n").reject(&:empty?) end # @raise [CommandFailed] if the command exited non-zero. # @return [self] def throw_if_failed! unless ok? raise CommandFailed.new( exit_code: exit_code, stdout: stdout, stderr: stderr, command: command ) end self end end |
#stderr ⇒ String (readonly)
346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 |
# File 'lib/bsdkrun/types.rb', line 346 Result = Data.define(:stdout, :stderr, :exit_code, :command) do # @return [Boolean] whether the command succeeded (exit 0). def ok? exit_code.zero? end # @return [String] stdout with trailing newlines trimmed — the common case. def text stdout.sub(/\n+\z/, "") end # @return [Object] stdout parsed as JSON. def json require "json" JSON.parse(stdout) end # @return [Array<String>] non-empty stdout lines. def lines stdout.split("\n").reject(&:empty?) end # @raise [CommandFailed] if the command exited non-zero. # @return [self] def throw_if_failed! unless ok? raise CommandFailed.new( exit_code: exit_code, stdout: stdout, stderr: stderr, command: command ) end self end end |
#stdout ⇒ String (readonly)
346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 |
# File 'lib/bsdkrun/types.rb', line 346 Result = Data.define(:stdout, :stderr, :exit_code, :command) do # @return [Boolean] whether the command succeeded (exit 0). def ok? exit_code.zero? end # @return [String] stdout with trailing newlines trimmed — the common case. def text stdout.sub(/\n+\z/, "") end # @return [Object] stdout parsed as JSON. def json require "json" JSON.parse(stdout) end # @return [Array<String>] non-empty stdout lines. def lines stdout.split("\n").reject(&:empty?) end # @raise [CommandFailed] if the command exited non-zero. # @return [self] def throw_if_failed! unless ok? raise CommandFailed.new( exit_code: exit_code, stdout: stdout, stderr: stderr, command: command ) end self end end |
Instance Method Details
#json ⇒ Object
Returns stdout parsed as JSON.
358 359 360 361 |
# File 'lib/bsdkrun/types.rb', line 358 def json require "json" JSON.parse(stdout) end |
#lines ⇒ Array<String>
Returns non-empty stdout lines.
364 365 366 |
# File 'lib/bsdkrun/types.rb', line 364 def lines stdout.split("\n").reject(&:empty?) end |
#ok? ⇒ Boolean
Returns whether the command succeeded (exit 0).
348 349 350 |
# File 'lib/bsdkrun/types.rb', line 348 def ok? exit_code.zero? end |
#text ⇒ String
Returns stdout with trailing newlines trimmed — the common case.
353 354 355 |
# File 'lib/bsdkrun/types.rb', line 353 def text stdout.sub(/\n+\z/, "") end |
#throw_if_failed! ⇒ self
370 371 372 373 374 375 376 377 |
# File 'lib/bsdkrun/types.rb', line 370 def throw_if_failed! unless ok? raise CommandFailed.new( exit_code: exit_code, stdout: stdout, stderr: stderr, command: command ) end self end |