Skip to main content

Function: runCommand()

function runCommand(
command: "minikube" | "az" | "scriptjs",
args: string[],
options: object,
permissionSecrets?: Record<string, number>,
desktopApiSend?: (channel: string, data: object) => void,
desktopApiReceive?: (channel: string, listener: (cmdId: string, data: string | number) => void) => void): object

Runs a shell command and returns an object that mimics the interface of a ChildProcess object returned by Node's spawn function.

This function is intended to be used only when Headlamp is in app mode.

Parameters

ParameterTypeDescription
command"minikube" | "az" | "scriptjs"The command to run.
argsstring[]An array of arguments to pass to the command.
optionsobjectAdditional options for the command.
permissionSecrets?Record<string, number>Internal use. A record of permission secrets that may be required for the command.
desktopApiSend?(channel: string, data: object) => voidInternal use. The function to send data to the main process.
desktopApiReceive?(channel: string, listener: (cmdId: string, data: string | number) => void) => voidInternal use. The function to receive data from the main process.

Returns

object

An object with stdout, stderr, and on properties. You can listen for 'data' events on stdout and stderr, and 'exit' events with on.

on()

on: (event: string, listener: (code: number | null) => void) => void;

Parameters

ParameterType
eventstring
listener(code: number | null) => void

Returns

void

stderr

stderr: object;

stderr.on()

on: (event: string, listener: (chunk: any) => void) => void;

Parameters

ParameterType
eventstring
listener(chunk: any) => void

Returns

void

stdout

stdout: object;

stdout.on()

on: (event: string, listener: (chunk: any) => void) => void;

Parameters

ParameterType
eventstring
listener(chunk: any) => void

Returns

void

See

handleRunCommand in app/electron/main.ts

This function uses the desktopApi.send and desktopApi.receive methods to communicate with the main process.

Example

How it can be used in a plugin:

  declare const pluginRunCommand: typeof runCommand;
const minikube = pluginRunCommand('minikube', ['status'], {});

minikube.stdout.on('data', (data) => {
console.log('stdout:', data);
});
minikube.stderr.on('data', (data) => {
console.log('stderr:', data);
});
minikube.on('exit', (code) => {
console.log('exit code:', code);
});

Defined in

src/components/App/runCommand.ts:50