Spec-Zone.ru › Hammerspoon

hs.task

Выполнять процессы в фоновом режиме и собирать их вывод

Примечания:

  • Это не предназначено для использования с процессами, которые никогда не завершаются. Хотя запустить такие вещи с hs.task возможно, невозможно читать их вывод во время работы, и если они генерируют значительный вывод, внутренние буферы ОС в конечном итоге заполнятся, и задача будет приостановлена.
  • Объект hs.task может быть использован только один раз

Обзор API

  • Функции — API-вызовы, предлагаемые напрямую расширением
    • new
  • Методы — API-вызовы, которые могут быть выполнены только на объекте, возвращаемом конструктором
    • closeInput
    • environment
    • interrupt
    • isRunning
    • pause
    • pid
    • resume
    • setCallback
    • setEnvironment
    • setInput
    • setStreamingCallback
    • setWorkingDirectory
    • start
    • terminate
    • terminationReason
    • terminationStatus
    • waitUntilExit
    • workingDirectory

Документация API

Функции

new
Подпись hs.task.new(launchPath, callbackFn[, streamCallbackFn][, arguments]) -> hs.task object
Тип Функция
Описание

Создает новый объект hs.task

Параметры
  • launchPath — Строка, содержащая путь к исполняемому файлу. Это должен быть полный путь к исполняемому файлу, а не просто исполняемый файл, который находится в пути вашей среды (например, /bin/ls вместо просто ls).
  • callbackFn — Функция обратного вызова, которая будет вызываться при завершении задачи или nil, если вызов обратного вызова не требуется. Функция должна принимать три аргумента:
    • exitCode — Целое число, содержащее код завершения процесса
    • stdOut — Строка, содержащая стандартный вывод процесса
    • stdErr — Строка, содержащая стандартный вывод ошибок процесса
  • streamCallbackFn — Необязательная функция обратного вызова, которая будет вызываться всякий раз, когда задача выводит данные в stdout или stderr. Функция должна возвращать логическое значение — true, чтобы продолжить вызов обратного вызова потока, false, чтобы остановить его вызов. Функция должна принимать три аргумента:
    • task — Объект hs.task или nil, если это окончательный вывод завершенной задачи.
    • stdOut — Строка, содержащая стандартный вывод, полученный с момента последнего вызова этого обратного вызова
    • stdErr — Строка, содержащая стандартный вывод ошибок, полученный с момента последнего вызова этого обратного вызова
  • arguments — Необязательная таблица строк аргументов командной строки для исполняемого файла
Возвращает
  • Объект hs.task
Примечания
  • Аргументы не обрабатываются через оболочку, поэтому вам не нужно выполнять цитирование или экранирование. Они передаются исполняемому файлу точно так, как предоставлены.
  • При использовании обратного вызова потока обратный вызов может быть вызван один последний раз после того, как уже был вызван обратный вызов завершения. В этом случае аргумент task обратного вызова потока будет nil, а не объектом пользовательских данных задачи, и значение возврата обратного вызова потока будет проигнорировано.
Источник extensions/task/libtask.m строка 176

Методы

closeInput
Подпись hs.task:closeInput() -> hs.task object
Тип Метод
Описание

Закрывает стандартный ввод задачи

Параметры
  • Нет
Возвращает
  • Объект hs.task
Примечания
  • Это следует вызывать только для задач с обратным вызовом потока — задачи без него автоматически закроют stdin, когда все данные, предоставленные через hs.task:setInput(), будут записаны
  • Это в первую очередь полезно для отправки EOF в длительно работающие задачи
Источник extensions/task/libtask.m строка 323
окружение
Подпись hs.task:environment() -> environment
Тип Метод
Описание

Возвращает переменные окружения в виде таблицы для задачи.

Параметры
  • Нет
Возвращает
  • таблица переменных окружения для задачи, где каждый ключ — имя переменной окружения.
Примечания
  • если вы ещё не установили таблицу окружения с помощью метода hs.task:setEnvironment, этот метод вернёт копию таблицы окружения Hammerspoon, поскольку именно её задача будет наследовать по умолчанию.
Источник extensions/task/libtask.m строка 745
прервать
Подпись hs.task:interrupt() -> hs.task object
Тип Метод
Описание

Прерывает задачу

Параметры
  • Нет
Возвращает
  • объект hs.task
Примечания
  • Это отправит SIGINT процессу
Источник extensions/task/libtask.m строка 535
работает
Подпись hs.task:isRunning() -> boolean
Тип Метод
Описание

Проверка, работает ли задача.

Параметры
  • Нет
Возвращает
  • true, если задача выполняется, или false, если нет.
Примечания
  • Задача, которая ещё не запущена, также вернёт false.
Источник extensions/task/libtask.m строка 683
приостановить
Подпись hs.task:pause() -> boolean
Тип Метод
Описание

Приостанавливает задачу

Параметры
  • Нет
Возвращает
  • Если задача была успешно приостановлена, возвращает объект задачи; иначе возвращает false
Примечания
  • Если задача не приостановлена, сообщение об ошибке будет выведено в консоль Hammerspoon
  • Этот метод можно вызывать несколько раз, но потребуется соответствующее количество вызовов hs.task:resume() для продолжения процесса
Источник extensions/task/libtask.m строка 563
pid
Подпись hs.task:pid() -> integer
Тип Метод
Описание

Получение PID запущенной/завершенной задачи

Параметры
  • Нет
Возвращает
  • Целое число, содержащее PID задачи
Примечания
  • PID по-прежнему будет возвращён, если задача уже завершена и процесс завершён
Источник extensions/task/libtask.m строка 433
возобновить
Подпись hs.task:resume() -> boolean
Тип Метод
Описание

Возобновляет задачу

Параметры
  • Нет
Возвращает
  • Если задача была успешно возобновлена, возвращает объект задачи; иначе возвращает false
Примечания
  • Если задача не возобновлена успешно, сообщение об ошибке будет выведено в консоль Hammerspoon
Источник extensions/task/libtask.m строка 596
установитьОбработчик
Подпись hs.task:setCallback(fn) -> hs.task object
Тип Метод
Описание

Установка или удаление обработчика для задачи.

Параметры
  • fn - функция, которая вызывается при завершении или прерывании задачи, или nil для удаления существующего обработчика
Возвращает
  • объект hs.task
Источник extensions/task/libtask.m строка 254
установитьОкружение
Подпись hs.task:setEnvironment(environment) -> hs.task object | false
Тип Метод
Описание

Установка переменных окружения для задачи.

Параметры
  • environment - таблица пар «ключ-значение», представляющих переменные окружения, которые будут установлены для задачи.
Возвращает
  • объект hs.task или false, если таблица не была установлена (обычно потому, что задача уже запущена или завершена)
Примечания
  • Если вы не устанавливаете таблицу окружения с помощью этого метода, задача будет наследовать переменные окружения приложения Hammerspoon. Установите это в пустую таблицу, если вы хотите, чтобы для задачи не были установлены никакие переменные.
Источник extensions/task/libtask.m строка 770
END_OF_DOCUMENT_MARKER
setInput
Подпись hs.task:setInput(inputData) -> hs.task object
Тип Метод
Описание

Устанавливает стандартные входные данные для задачи

Параметры
  • inputData - Данные в строковом формате, передаваемые задаче в качестве стандартного ввода
Возвращает
  • Объект hs.task
Примечания
  • Этот метод может быть вызван до запуска задачи, чтобы подготовить некоторый ввод для неё (особенно если это не потоковая задача)
  • Если этот метод вызывается несколько раз, любой ввод, который ещё не был передан задаче, игнорируется (для потоковых задач данные обычно потребляются очень быстро, но пока нет способа синхронизировать это)
Источник extensions/task/libtask.m строка 278
setStreamingCallback
Подпись hs.task:setStreamingCallback(fn) -> hs.task object
Тип Метод
Описание

Устанавливает функцию обратного вызова потока для задачи

Параметры
  • fn - Функция, которая будет вызываться, когда задача выводит данные в stdout или stderr, или nil для удаления обратного вызова
Возвращает
  • Объект hs.task
Примечания
  • Для получения информации о требованиях к функции обратного вызова см. hs.task.new()
  • Если обратный вызов удаляется без предварительного возвращения false, любые дальнейшие выводы stdout/stderr от задачи будут молча отброшены
Источник extensions/task/libtask.m строка 351
setWorkingDirectory
Подпись hs.task:setWorkingDirectory(path) -> hs.task object | false
Тип Метод
Описание

Устанавливает рабочую директорию для задачи.

Параметры
  • path - строка, содержащая путь, который должен быть рабочей директорией для задачи.
Возвращает
  • Объект hs.task или false, если рабочая директория не была установлена (обычно потому, что задача уже запущена или завершена)
Примечания
  • Вы можете установить рабочую директорию только если задача ещё не запущена.
  • Это установит только директорию, в которой задача начнёт работу. Сама задача может изменить директорию во время выполнения.
Источник extensions/task/libtask.m строка 401
start
Подпись hs.task:start() -> hs.task object | false
Тип Метод
Описание

Запускает задачу

Параметры
  • Нет
Возвращает
  • Если задача была запущена успешно, возвращает объект задачи; в противном случае возвращает false
Примечания
  • Если задача не запущена успешно, сообщение об ошибке будет выведено в консоль Hammerspoon
Источник extensions/task/libtask.m строка 454
terminate
Подпись hs.task:terminate() -> hs.task object
Тип Метод
Описание

Прерывает задачу

Параметры
  • Нет
Возвращает
  • Объект hs.task
Примечания
  • Это отправит SIGTERM в процесс
Источник extensions/task/libtask.m строка 507
terminationReason
Подпись hs.task:terminationReason() -> exitCode | false
Тип Метод
Описание

Возвращает причину завершения задачи или false, если задача всё ещё выполняется.

Параметры
  • Нет
Возвращает
  • строковое значение "exit", если процесс завершился нормально, или "interrupt", если он был убит сигналом. Возвращает false, если причина завершения недоступна (задача всё ещё выполняется или ещё не была запущена).
Источник extensions/task/libtask.m строка 710
terminationStatus
Подпись hs.task:terminationStatus() -> exitCode | false
Тип Метод
Описание

Возвращает состояние завершения задачи, или false, если задача всё ещё выполняется.

Параметры
  • Нет
Возвращает
  • числовой exitCode задачи или булево значение false, если задача ещё не завершена (либо потому, что она ещё не запущена, либо потому, что она всё ещё выполняется).
Источник extensions/task/libtask.m строка 652
waitUntilExit
Подпись hs.task:waitUntilExit() -> hs.task object
Тип Метод
Описание

Блокирует Hammerspoon до завершения задачи

Параметры
  • Нет
Возвращает
  • Объект hs.task
Примечания
  • Вся активность Lua и Hammerspoon будет заблокирована этим методом. Его использование крайне не рекомендуется.
Источник extensions/task/libtask.m строка 628
workingDirectory
Подпись hs.task:workingDirectory() -> path
Тип Метод
Описание

Возвращает рабочую директорию для задачи.

Параметры
  • Нет
Возвращает
  • строка, содержащая рабочую директорию для задачи.
Примечания
  • Это возвращает только директорию, в которой задача начинает работу. Если задача сама меняет директорию, это значение не будет отражать это изменение.
Источник extensions/task/libtask.m строка 379

© 2014–2017 Hammerspoon contributors
Licensed under the MIT License.
https://www.hammerspoon.org/docs/hs.task.html

Spec-Zone.ru

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