Класс: Cask::Artifact::Installer Закрытый
- Наследует:
- AbstractArtifact
- Object
- AbstractArtifact
- Cask::Artifact::Installer
- Определён в:
- cask/artifact/installer.rb
Обзор
Этот класс является частью закрытого API. Этот класс можно использовать только в репозитории Homebrew/brew. По возможности сторонним разработчикам следует избегать использования этого класса, поскольку он может быть удалён или изменён без предупреждения.
Артефакт, соответствующий директиве installer.
Краткое описание констант свернуть
- VALID_KEYS =
Эта константа является частью закрытого API. Эту константу можно использовать только в репозитории Homebrew/brew. По возможности сторонним разработчикам следует избегать использования этой константы, поскольку она может быть удалена или изменена без предупреждения.
T.let(Set.new([ :manual, :script, ]).freeze, T::Set[Symbol])
Константы, унаследованные от AbstractArtifact
AbstractArtifact::DirectivesType
Краткое описание атрибутов экземпляра свернуть
- #args ⇒ Hash{Symbol => T.untyped} только чтение закрытый
- #manual_install ⇒ Boolean только чтение закрытый
- #path ⇒ Pathname только чтение закрытый
Атрибуты, унаследованные от AbstractArtifact
Краткое описание методов класса свернуть
Краткое описание методов экземпляра свернуть
- #initialize(cask, **args) ⇒ void конструктор закрытый
- #install_phase(command: SystemCommand, **_options) ⇒ void закрытый
- #summarize ⇒ String закрытый
- #to_h ⇒ Hash{Symbol => T.untyped} закрытый
Методы, унаследованные от AbstractArtifact
#cask_sandbox, #cask_sandbox_command, #config, dirmethod, dsl_key, english_article, english_name, read_script_arguments, #run_cask_sandbox, #sort_order, #staged_path_join_executable, #to_args
Методы, включённые из 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
Подробное описание конструкторов
#initialize(cask, **args) ⇒ void
Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. По возможности сторонним разработчикам следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.
74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 | # File 'cask/artifact/installer.rb', line 74 def initialize(cask, **args) super if args.key?(:manual) @path = T.let(Pathname(args[:manual]), Pathname) @args = T.let({}, T::Hash[Symbol, T.untyped]) @manual_install = T.let(true, T::Boolean) else script_path, script_args = self.class.read_script_arguments( args[:script], self.class.dsl_key.to_s, { must_succeed: true, sudo: false }, print_stdout: true ) raise CaskInvalidError.new(cask, "#{self.class.dsl_key} missing executable") if script_path.nil? @path = T.let(Pathname(script_path), Pathname) @args = T.let(script_args, T::Hash[Symbol, T.untyped]) @manual_install = T.let(false, T::Boolean) end end |
Подробное описание атрибутов экземпляра
#args ⇒ Hash{Symbol => T.untyped} (только чтение)
Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. По возможности сторонним разработчикам следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.
68 69 70 | # File 'cask/artifact/installer.rb', line 68 def args @args end |
#manual_install ⇒ Boolean (только чтение)
Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. По возможности сторонним разработчикам следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.
71 72 73 | # File 'cask/artifact/installer.rb', line 71 def manual_install @manual_install end |
#path ⇒ Pathname (только чтение)
Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. По возможности сторонним разработчикам следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.
65 66 67 | # File 'cask/artifact/installer.rb', line 65 def path @path end |
Подробное описание методов класса
.from_args(cask, **args) ⇒ T.attached_class
Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. Третьим лицам следует по возможности избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.
40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 | # File 'cask/artifact/installer.rb', line 40 def self.from_args(cask, **args) raise CaskInvalidError.new(cask, "'installer' stanza requires an argument.") if args.empty? if args.key?(:script) && !args[:script].respond_to?(:key?) if args.key?(:executable) raise CaskInvalidError.new(cask, "'installer' stanza gave arguments for both :script and :executable.") end args[:executable] = args[:script] args.delete(:script) args = { script: args } end if args.keys.count != 1 raise CaskInvalidError.new( cask, "invalid 'installer' stanza: Only one of #{VALID_KEYS.inspect} is permitted.", ) end args.assert_valid_keys(*VALID_KEYS) new(cask, **args) end |
Подробное описание методов экземпляра
#install_phase(command: SystemCommand, **_options) ⇒ void
Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. Третьим лицам следует по возможности избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.
Этот метод не возвращает значение.
17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 | # File 'cask/artifact/installer.rb', line 17 def install_phase(command: SystemCommand, **) if manual_install puts <<~EOS Cask #{cask} only provides a manual installer. To run it and complete the installation: open #{cask.staged_path.join(path).to_s.shellescape} EOS else ohai "Running #{self.class.dsl_key} script '#{path}'" executable_path = staged_path_join_executable(path) command.run!( executable_path, **args, env: { "PATH" => PATH.new( HOMEBREW_PREFIX/"bin", HOMEBREW_PREFIX/"sbin", ENV.fetch("PATH") ) }, reset_uid: !args[:sudo], ) end end |
#summarize ⇒ String
Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. Третьим лицам следует по возможности избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.
94 | # File 'cask/artifact/installer.rb', line 94 def summarize = path.to_s |
#to_h ⇒ Hash{Symbol => T.untyped}
Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. Третьим лицам следует по возможности избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.
97 98 99 100 101 | # File 'cask/artifact/installer.rb', line 97 def to_h { path: }.tap do |h| h[:args] = args unless manual_install end end |
© 2009–present Homebrew contributors
Licensed under the BSD 2-Clause License.
https://docs.brew.sh/rubydoc/Cask/Artifact/Installer.html