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;

Defined in: components/App/runCommand.ts:50

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.
options{ }Additional 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);
});