Spec-Zone.ru › Homebrew

Модуль: Utils::Service Приватный

Определён в:
utils/service.rb

Обзор

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

Вспомогательные средства для кода, связанного с brew services.

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

  • .installed?(formula) ⇒ Boolean приватный

    Проверяет, установлен ли файл службы в ожидаемом расположении.

  • .launchctl ⇒ Pathname? приватный

    Путь к исполняемому файлу launchctl.

  • .launchctl? ⇒ Boolean приватный
  • .running?(formula) ⇒ Boolean приватный

    Проверяет, запущена ли служба для указанной формулы.

  • .systemctl ⇒ Pathname? приватный

    Путь к исполняемому файлу systemctl.

  • .systemctl? ⇒ Boolean приватный
  • .systemd_quote(str) ⇒ String приватный

    Заключает строку в кавычки для использования в командных строках systemd, например в ExecStart.

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

.installed?(formula) ⇒ Boolean

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

Проверяет, установлен ли файл службы в ожидаемом расположении.

Параметры:

  • formula (Formula)

Возвращает:

  • (Boolean)


21
22
23
24
# File 'utils/service.rb', line 21

def self.installed?(formula)
  (launchctl? && formula.launchd_service_path.exist?) ||
    (systemctl? && formula.systemd_service_path.exist?)
end

.launchctl ⇒ Pathname?

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

Путь к исполняемому файлу launchctl.

Возвращает:

  • (Pathname, nil)


28
29
30
31
32
33
# File 'utils/service.rb', line 28

def self.launchctl
  return @launchctl if defined? @launchctl
  return if ENV["HOMEBREW_TEST_GENERIC_OS"]

  @launchctl = T.let(which("launchctl"), T.nilable(Pathname))
end

.launchctl? ⇒ Boolean

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

Возвращает:

  • (Boolean)


45
46
47
# File 'utils/service.rb', line 45

def self.launchctl?
  !launchctl.nil?
end

.running?(formula) ⇒ Boolean

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

Проверяет, запущена ли служба для указанной формулы.

Параметры:

  • formula (Formula)

Возвращает:

  • (Boolean)


9
10
11
12
13
14
15
16
17
# File 'utils/service.rb', line 9

def self.running?(formula)
  if launchctl?
    quiet_system(launchctl, "list", formula.plist_name)
  elsif systemctl?
    quiet_system(systemctl, "is-active", "--quiet", formula.service_name)
  else
    false
  end
end

.systemctl ⇒ Pathname?

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

Путь к исполняемому файлу systemctl.

Возвращает:

  • (Pathname, nil)


37
38
39
40
41
42
# File 'utils/service.rb', line 37

def self.systemctl
  return @systemctl if defined? @systemctl
  return if ENV["HOMEBREW_TEST_GENERIC_OS"]

  @systemctl = T.let(which("systemctl"), T.nilable(Pathname))
end

.systemctl? ⇒ Boolean

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

Возвращает:

  • (Boolean)


50
51
52
# File 'utils/service.rb', line 50

def self.systemctl?
  !systemctl.nil?
end

.systemd_quote(str) ⇒ String

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

Заключает строку в кавычки для использования в командных строках systemd, например в ExecStart. https://www.freedesktop.org/software/systemd/man/latest/systemd.syntax.html#Quoting

Параметры:

  • str (String)

Возвращает:

  • (String)


57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
# File 'utils/service.rb', line 57

def self.systemd_quote(str)
  result = +"\""
  # No need to escape single quotes and spaces, as we're always double
  # quoting the entire string.
  str.each_char do |char|
    result << case char
    when "\a" then "\\a"
    when "\b" then "\\b"
    when "\f" then "\\f"
    when "\n" then "\\n"
    when "\r" then "\\r"
    when "\t" then "\\t"
    when "\v" then "\\v"
    when "\\" then "\\\\"
    when "\"" then "\\\""
    else char
    end
  end
  result << "\""
  result.freeze
end

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

Spec-Zone.ru

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