Модуль: Cask::Utils Закрытый
- Расширен модулем:
- Utils::Output::Mixin
- Определён в:
- cask/utils.rb,
cask/utils/trash.rb
Обзор
Этот модуль является частью закрытого API. Этот модуль можно использовать только в репозитории Homebrew/brew. Третьим сторонам следует по возможности избегать использования этого модуля, поскольку он может быть удалён или изменён без предупреждения.
Вспомогательные функции для различных операций с cask.
Определено в пространстве имён
Модули: Trash
Краткое описание констант свернуть
- BUG_REPORTS_URL =
Эта константа является частью закрытого API. Эту константу можно использовать только в репозитории Homebrew/brew. Третьим сторонам следует по возможности избегать использования этой константы, поскольку она может быть удалена или изменена без предупреждения.
"https://github.com/Homebrew/homebrew-cask#reporting-bugs"- FULL_DISK_ACCESS_TCC_PATH =
Эта константа является частью закрытого API. Эту константу можно использовать только в репозитории Homebrew/brew. Третьим сторонам следует по возможности избегать использования этой константы, поскольку она может быть удалена или изменена без предупреждения.
T.let("~/Library/Application Support/com.apple.TCC", String)
Краткое описание методов класса свернуть
- .full_disk_access_enabled? ⇒ Boolean закрытый
- .gain_permissions(path, command_args, command, &_block) ⇒ void закрытый
- .gain_permissions_mkpath(path, command: SystemCommand) ⇒ void закрытый
- .gain_permissions_remove(path, command: SystemCommand) ⇒ void закрытый
- .gain_permissions_rmdir(path, command: SystemCommand) ⇒ void закрытый
- .path_occupied?(path) ⇒ Boolean закрытый
- .privacy_security_preference_pane(access) ⇒ String закрытый
- .token_from(name) ⇒ String закрытый
Методы, включённые из 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
Подробное описание методов класса
.full_disk_access_enabled? ⇒ Boolean
Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. По возможности сторонним разработчикам следует избегать использования этого метода, так как он может быть удалён или изменён без предупреждения.
28 29 30 | # File 'cask/utils.rb', line 28 def self.full_disk_access_enabled? File.readable?(File.(FULL_DISK_ACCESS_TCC_PATH)) end |
.gain_permissions(path, command_args, command, &_block) ⇒ void
Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. По возможности сторонним разработчикам следует избегать использования этого метода, так как он может быть удалён или изменён без предупреждения.
Этот метод возвращает неопределённое значение.
92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 | # File 'cask/utils.rb', line 92 def self.(path, command_args, command, &_block) = false tried_ownership = false begin yield path rescue # in case of permissions problems unless print_stderr = Context.current.debug? || Context.current.verbose? # TODO: Better handling for the case where path is a symlink. # The `-h` and `-R` flags cannot be combined and behavior is # dependent on whether the file argument has a trailing # slash. This should do the right thing, but is fragile. command.run("/usr/bin/chflags", print_stderr:, args: command_args + ["--", "000", path]) command.run("chmod", print_stderr:, args: command_args + ["--", "u+rwx", path]) command.run("chmod", print_stderr:, args: command_args + ["-N", path]) = true retry # rmtree end unless tried_ownership # in case of ownership problems # TODO: Further examine files to see if ownership is the problem # before using `sudo` and `chown`. ohai "Using sudo to gain ownership of path '#{path}'" command.run("chown", args: command_args + ["--", User.current.to_s, path], sudo: true) tried_ownership = true # retry chflags/chmod after chown = false retry # rmtree end raise end end |
.gain_permissions_mkpath(path, command: SystemCommand) ⇒ void
Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. По возможности сторонним разработчикам следует избегать использования этого метода, так как он может быть удалён или изменён без предупреждения.
Этот метод возвращает неопределённое значение.
33 34 35 36 37 38 39 40 41 42 | # File 'cask/utils.rb', line 33 def self.(path, command: SystemCommand) dir = path.ascend.find(&:directory?) return if path == dir if dir&.writable? path.mkpath else command.run!("mkdir", args: ["-p", "--", path], sudo: true, print_stderr: false) end end |
.gain_permissions_remove(path, command: SystemCommand) ⇒ void
Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. По возможности сторонним разработчикам следует избегать использования этого метода, так как он может быть удалён или изменён без предупреждения.
Этот метод возвращает неопределённое значение.
56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 | # File 'cask/utils.rb', line 56 def self.(path, command: SystemCommand) directory = false = if path.symlink? ["-h"] elsif path.directory? directory = true ["-R"] elsif path.exist? [] else # Nothing to remove. return end (path, , command) do |p| if p.parent.writable? if directory FileUtils.rm_r p else FileUtils.rm_f p end else recursive_flag = directory ? ["-R"] : [] command.run!("/bin/rm", args: recursive_flag + ["-f", "--", p], sudo: true, print_stderr: false) end end end |
.gain_permissions_rmdir(path, command: SystemCommand) ⇒ void
Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. По возможности сторонним разработчикам следует избегать использования этого метода, так как он может быть удалён или изменён без предупреждения.
Этот метод возвращает неопределённое значение.
45 46 47 48 49 50 51 52 53 | # File 'cask/utils.rb', line 45 def self.(path, command: SystemCommand) (path, [], command) do |p| if p.parent.writable? FileUtils.rmdir p else command.run!("rmdir", args: ["--", p], sudo: true, print_stderr: false) end end end |
.path_occupied?(path) ⇒ Boolean
Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. По возможности сторонним разработчикам следует избегать использования этого метода, так как он может быть удалён или изменён без предупреждения.
137 138 139 | # File 'cask/utils.rb', line 137 def self.path_occupied?(path) path.exist? || path.symlink? end |
.privacy_security_preference_pane(access) ⇒ String
Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. По возможности сторонним разработчикам следует избегать использования этого метода, так как он может быть удалён или изменён без предупреждения.
17 18 19 20 21 22 23 24 25 | # File 'cask/utils.rb', line 17 def self.privacy_security_preference_pane(access) = if MacOS.version >= :ventura "System Settings → Privacy & Security" else "System Preferences → Security & Privacy → Privacy" end "#{} → #{access}" end |
.token_from(name) ⇒ String
Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. По возможности сторонним разработчикам следует избегать использования этого метода, так как он может быть удалён или изменён без предупреждения.
142 143 144 145 146 147 148 149 150 | # File 'cask/utils.rb', line 142 def self.token_from(name) name.downcase .gsub("+", "-plus-") .gsub(/[ _·•]/, "-") .gsub(/[^\w@-]/, "") .gsub(/--+/, "-") .delete_prefix("-") .delete_suffix("-") end |
© 2009–present Homebrew contributors
Licensed under the BSD 2-Clause License.
https://docs.brew.sh/rubydoc/Cask/Utils.html