Spec-Zone.ru › Homebrew

Исключение: ErrorDuringExecution Приватный

Наследует:
RuntimeError
  • Object
  • RuntimeError
  • ErrorDuringExecution
показать все
Определено в:
exceptions.rb

Обзор

Этот класс является частью приватного API. Этот класс можно использовать только в репозитории Homebrew/brew. По возможности сторонним разработчикам не следует использовать этот класс, поскольку он может быть удалён или изменён без предупреждения.

Возбуждается методом Kernel#safe_system в utils.rb.

Краткое описание атрибутов экземпляра свернуть

  • #cmd ⇒ Array<Pathname, String, Array<String>, Hash{String => String, nil}, nil> только чтение приватный
  • #exitstatus ⇒ Integer? только чтение приватный
  • #output ⇒ Array<Array<([String, Symbol], String)>>? только чтение приватный
  • #status ⇒ Integer, ... только чтение приватный
  • #termsig ⇒ Integer? только чтение приватный

Краткое описание методов экземпляра свернуть

  • #initialize(cmd, status:, output: nil, secrets: []) ⇒ void конструктор приватный
  • #stderr ⇒ String приватный

Подробное описание конструкторов

#initialize(cmd, status:, output: nil, secrets: []) ⇒ void

Этот метод является частью приватного API. Этот метод можно использовать только в репозитории Homebrew/brew. По возможности сторонним разработчикам не следует использовать этот метод, поскольку он может быть удалён или изменён без предупреждения.

Параметры:

  • cmd (Array<Pathname, String, Array<String>, Hash{String => String, nil}, nil>)
  • status (Integer, Hash{String => T.untyped}, Process::Status)
  • output (Array<Array<([String, Symbol], String)>>, nil) (по умолчанию: nil)
  • secrets (Array<String>) (по умолчанию: [])


849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
# File 'exceptions.rb', line 849

def initialize(cmd, status:, output: nil, secrets: [])
  @cmd = cmd
  @status = status
  @output = output

  @exitstatus = T.let(
    case status
    when Integer
      status
    when Hash
      status["exitstatus"]
    else
      status.exitstatus
    end,
    T.nilable(Integer),
  )

  @termsig = T.let(
    case status
    when Integer
      nil
    when Hash
      status["termsig"]
    else
      status.termsig
    end,
    T.nilable(Integer),
  )

  redacted_cmd = Formatter.redact_secrets(cmd.shelljoin.gsub('\=', "="), secrets)

  reason = if exitstatus
    "exited with #{exitstatus}"
  elsif (t = termsig)
    "was terminated by uncaught signal #{Signal.signame(t)}"
  else
    raise ArgumentError, "Status neither has `exitstatus` nor `termsig`."
  end

  s = "Failure while executing; `#{redacted_cmd}` #{reason}."

  if Array(output).present?
    format_output_line = lambda do |type_line|
      type, line = *type_line
      if type == :stderr
        Formatter.error(line)
      else
        line
      end
    end

    s << " Here's the output:\n"
    s << Array(output).map(&format_output_line).join
    s << "\n" unless s.end_with?("\n")
  end

  super s.freeze
end

Подробное описание атрибутов экземпляра

#cmd ⇒ Array<Pathname, String, Array<String>, Hash{String => String, nil}, nil> (только чтение)

Этот метод является частью приватного API. Этот метод можно использовать только в репозитории Homebrew/brew. По возможности сторонним разработчикам не следует использовать этот метод, поскольку он может быть удалён или изменён без предупреждения.

Возвращает:

  • (Array<Pathname, String, Array<String>, Hash{String => String, nil}, nil>)


827
828
829
# File 'exceptions.rb', line 827

def cmd
  @cmd
end

#exitstatus ⇒ Integer? (только чтение)

Этот метод является частью приватного API. Этот метод можно использовать только в репозитории Homebrew/brew. По возможности сторонним разработчикам не следует использовать этот метод, поскольку он может быть удалён или изменён без предупреждения.

Возвращает:

  • (Integer, nil)


830
831
832
# File 'exceptions.rb', line 830

def exitstatus
  @exitstatus
end

#output ⇒ Array<Array<([String, Symbol], String)>>? (только чтение)

Этот метод является частью приватного API. Этот метод можно использовать только в репозитории Homebrew/brew. По возможности сторонним разработчикам не следует использовать этот метод, поскольку он может быть удалён или изменён без предупреждения.

Возвращает:

  • (Array<Array<([String, Symbol], String)>>, nil)


839
840
841
# File 'exceptions.rb', line 839

def output
  @output
end

#status ⇒ Integer, ... (только чтение)

Этот метод является частью приватного API. Этот метод можно использовать только в репозитории Homebrew/brew. По возможности сторонним разработчикам не следует использовать этот метод, поскольку он может быть удалён или изменён без предупреждения.

Возвращает:

  • (Integer, Hash{String => T.untyped}, Process::Status)


833
834
835
# File 'exceptions.rb', line 833

def status
  @status
end

#termsig ⇒ Integer? (только чтение)

Этот метод является частью приватного API. Этот метод можно использовать только в репозитории Homebrew/brew. По возможности сторонним разработчикам не следует использовать этот метод, поскольку он может быть удалён или изменён без предупреждения.

Возвращает:

  • (Integer, nil)


836
837
838
# File 'exceptions.rb', line 836

def termsig
  @termsig
end

Подробное описание методов экземпляра

#stderr ⇒ String

Этот метод является частью приватного API. Этот метод можно использовать только в репозитории Homebrew/brew. По возможности сторонним разработчикам не следует использовать этот метод, поскольку он может быть удалён или изменён без предупреждения.

Возвращает:

  • (String)


909
910
911
# File 'exceptions.rb', line 909

def stderr
  Array(output).select { |type,| type == :stderr }.map(&:last).join
end

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

Spec-Zone.ru

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