Module for running external processes

Types

This module provides the following types:

Properties

hs.task.runAsync

JSValue

Run a task, returning a Promise. Swift-retained storage for the JS implementation.

hs.task.shell

JSValue

Run a shell command. Swift-retained storage for the JS implementation.

hs.task.parallel

JSValue

Run multiple tasks in parallel. Swift-retained storage for the JS implementation.

hs.task.sequence

JSValue

Run multiple tasks in sequence. Swift-retained storage for the JS implementation.

hs.task.builder

JSValue

Create a task builder. Swift-retained storage for the JS implementation.

hs.task.TaskBuilder

JSValue

TaskBuilder class. Swift-retained storage for the JS implementation.

Methods

hs.task.new

Create a new task


Declaration

hs.task.new(launchPath, arguments, completionCallback, environment, streamingCallback) -> HSTask

Parameters

  • launchPath string

    The full path to the executable to run

  • arguments string[]

    An array of arguments to pass to the executable

  • completionCallback JSValue

    Optional callback function called when the task terminates

  • environment JSValue

    Optional dictionary of environment variables for the task

  • streamingCallback JSValue

    Optional callback function called when the task produces output

Return Value

A task object. Call start() to begin execution.

hs.task.runAsync

Create and run a task asynchronously


Declaration

hs.task.runAsync(launchPath, args, options, options, options, options, legacyStreamCallback) -> any

Parameters

  • launchPath string

    - Full path to the executable

  • args string[]

    - Array of arguments

  • options Object|Function

    - Options object or legacy callback

  • options Object

    .environment - Environment variables (optional)

  • options string

    .workingDirectory - Working directory (optional)

  • options Function

    .onOutput - Callback for streaming output: (stream, data) => {} (optional)

  • legacyStreamCallback Function

    - Legacy streaming callback (optional)

Return Value

{Promise<{exitCode: number, stdout: string, stderr: string}>}

hs.task.shell

Run a shell command asynchronously


Declaration

hs.task.shell(command, options) -> any

Parameters

  • command string

    - Shell command to execute

  • options Object

    - Options (same as run)

Return Value

{Promise<{exitCode: number, stdout: string, stderr: string}>}

hs.task.parallel

Run multiple tasks in parallel


Declaration

hs.task.parallel(tasks) -> Promise

Parameters

  • tasks Array

    - Array of task specifications: [{path, args, options}, ...]

Return Value

Array of results

hs.task.builder

Create a task builder for fluent API


Declaration

hs.task.builder(launchPath) -> any

Parameters

  • launchPath string

    - Full path to the executable

Return Value

{TaskBuilder}