# `@actions/exec` ## Usage #### Basic You can use this package to execute tools in a cross platform way: ```js const exec = require('@actions/exec'); await exec.exec('node index.js'); ``` #### Args You can also pass in arg arrays: ```js const exec = require('@actions/exec'); await exec.exec('node', ['index.js', 'foo=bar']); ``` #### Output/options Capture output or specify [other options](https://github.com/actions/toolkit/blob/d9347d4ab99fd507c0b9104b2cf79fb44fcc827d/packages/exec/src/interfaces.ts#L5): ```js const exec = require('@actions/exec'); let myOutput = ''; let myError = ''; const options = {}; options.listeners = { stdout: (data: Buffer) => { myOutput += data.toString(); }, stderr: (data: Buffer) => { myError += data.toString(); } }; options.cwd = './lib'; await exec.exec('node', ['index.js', 'foo=bar'], options); ``` #### Exec tools not in the PATH You can specify the full path for tools not in the PATH: ```js const exec = require('@actions/exec'); await exec.exec('"/path/to/my-tool"', ['arg1']); ```