Spec-Zone.ru › Homebrew

Class: SystemCommand::Result Private

Inherits:
Object
  • Object
  • SystemCommand::Result
show all
Includes:
Context, Utils::Output::Mixin
Defined in:
system_command.rb

Overview

This class is part of a private API. This class may only be used in the Homebrew/brew repository. Third parties should avoid using this class if possible, as it may be removed or changed without warning.

Result containing the output and exit status of a finished sub-process.

Instance Attribute Summary collapse

  • #command ⇒ Array<String> private
  • #exit_status ⇒ Integer? private
  • #status ⇒ Process::Status private

Instance Method Summary collapse

  • #assert_success! ⇒ void private
  • #initialize(command, output, status, secrets:) ⇒ void constructor private
  • #merged_output ⇒ String private
  • #plist ⇒ T.untyped private
  • #stderr ⇒ String private
  • #stdout ⇒ String private
  • #success? ⇒ Boolean private
  • #to_ary ⇒ Array<(String, String, Process::Status)> (also: #to_a) private

Methods included from Utils::Output::Mixin

#issue_reporting_message, #odebug, #odeprecated, #odie, #odisabled, #ofail, #oh1, #oh1_title, #ohai, #ohai_title, #onoe, #opoo, #opoo_outside_github_actions, #opoo_without_github_actions_annotation, #pretty_deprecated, #pretty_disabled, #pretty_duration, #pretty_install_status, #pretty_installed, #pretty_uninstalled, #pretty_upgradable, #pretty_warning

Methods included from Context

current, current=, #debug?, #quiet?, #verbose?, #with_context

Constructor Details

#initialize(command, output, status, secrets:) ⇒ void

This method is part of a private API. This method may only be used in the Homebrew/brew repository. Third parties should avoid using this method if possible, as it may be removed or changed without warning.

Parameters:

  • command (Array<String>)
  • output (Array<Array<([String, Symbol], String)>>)
  • status (Process::Status)
  • secrets (Array<String>)


501
502
503
504
505
506
507
# File 'system_command.rb', line 501

def initialize(command, output, status, secrets:)
  @command       = command
  @output        = output
  @status        = status
  @exit_status   = T.let(status.exitstatus, T.nilable(Integer))
  @secrets       = secrets
end

Instance Attribute Details

#command ⇒ Array<String>

This method is part of a private API. This method may only be used in the Homebrew/brew repository. Third parties should avoid using this method if possible, as it may be removed or changed without warning.

Returns:

  • (Array<String>)


485
486
487
# File 'system_command.rb', line 485

def command
  @command
end

#exit_status ⇒ Integer?

This method is part of a private API. This method may only be used in the Homebrew/brew repository. Third parties should avoid using this method if possible, as it may be removed or changed without warning.

Returns:

  • (Integer, nil)


491
492
493
# File 'system_command.rb', line 491

def exit_status
  @exit_status
end

#status ⇒ Process::Status

This method is part of a private API. This method may only be used in the Homebrew/brew repository. Third parties should avoid using this method if possible, as it may be removed or changed without warning.

Returns:

  • (Process::Status)


488
489
490
# File 'system_command.rb', line 488

def status
  @status
end

Instance Method Details

#assert_success! ⇒ void

This method is part of a private API. This method may only be used in the Homebrew/brew repository. Third parties should avoid using this method if possible, as it may be removed or changed without warning.

This method returns an undefined value.

Raises:

  • (ErrorDuringExecution)


510
511
512
513
514
# File 'system_command.rb', line 510

def assert_success!
  return if @status.success?

  raise ErrorDuringExecution.new(command, status: @status, output: @output, secrets: @secrets)
end

#merged_output ⇒ String

This method is part of a private API. This method may only be used in the Homebrew/brew repository. Third parties should avoid using this method if possible, as it may be removed or changed without warning.

Returns:

  • (String)


531
532
533
# File 'system_command.rb', line 531

def merged_output
  @merged_output ||= T.let(@output.map { |_, line| line }.join, T.nilable(String))
end

#plist ⇒ T.untyped

This method is part of a private API. This method may only be used in the Homebrew/brew repository. Third parties should avoid using this method if possible, as it may be removed or changed without warning.

Returns:

  • (T.untyped)


549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
# File 'system_command.rb', line 549

def plist
  require "plist"
  @plist ||= T.let(begin
    output = stdout

    output = output.sub(/\A(.*?)(\s*<\?\s*xml)/m) do
      warn_plist_garbage(T.must(Regexp.last_match(1)))
      Regexp.last_match(2)
    end

    output = output.sub(%r{(<\s*/\s*plist\s*>\s*)(.*?)\Z}m) do
      warn_plist_garbage(T.must(Regexp.last_match(2)))
      Regexp.last_match(1)
    end

    Plist.parse_xml(output, marshal: false)
  end, T.untyped)
end

#stderr ⇒ String

This method is part of a private API. This method may only be used in the Homebrew/brew repository. Third parties should avoid using this method if possible, as it may be removed or changed without warning.

Returns:

  • (String)


524
525
526
527
528
# File 'system_command.rb', line 524

def stderr
  @stderr ||= T.let(@output.select { |type,| type == :stderr }
                           .map { |_, line| line }
                           .join, T.nilable(String))
end

#stdout ⇒ String

This method is part of a private API. This method may only be used in the Homebrew/brew repository. Third parties should avoid using this method if possible, as it may be removed or changed without warning.

Returns:

  • (String)


517
518
519
520
521
# File 'system_command.rb', line 517

def stdout
  @stdout ||= T.let(@output.select { |type,| type == :stdout }
                           .map { |_, line| line }
                           .join, T.nilable(String))
end

#success? ⇒ Boolean

This method is part of a private API. This method may only be used in the Homebrew/brew repository. Third parties should avoid using this method if possible, as it may be removed or changed without warning.

Returns:

  • (Boolean)


536
537
538
539
540
# File 'system_command.rb', line 536

def success?
  return false if @exit_status.nil?

  @exit_status.zero?
end

#to_ary ⇒ Array<(String, String, Process::Status)> Also known as: to_a

This method is part of a private API. This method may only be used in the Homebrew/brew repository. Third parties should avoid using this method if possible, as it may be removed or changed without warning.

Returns:

  • (Array<(String, String, Process::Status)>)


543
544
545
# File 'system_command.rb', line 543

def to_ary
  [stdout, stderr, status]
end

© 2009–present Homebrew contributors
Licensed under the BSD 2-Clause License.
https://docs.brew.sh/rubydoc/SystemCommand/Result.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API