@baseplate-dev/sync
Version:
Library for syncing Baseplate descriptions
45 lines • 1.14 kB
JavaScript
import { pick } from 'es-toolkit';
import { execa, parseCommandString } from 'execa';
const PASSTHROUGH_ENV_VARS = [
// Essential for package management
'HOME',
'PATH',
'NODE_OPTIONS',
'COREPACK_HOME',
'TMP',
'TEMP',
'APPDATA',
// System libraries for native modules
'LD_LIBRARY_PATH',
'DYLD_FALLBACK_LIBRARY_PATH',
'LIBPATH',
// Windows-specific paths
'SYSTEMROOT',
'SYSTEMDRIVE',
// User context
'USER',
// Localization
'TZ',
'LANG',
];
export async function executeCommand(command, options) {
const [file, ...commandArguments] = parseCommandString(command);
const result = await execa(file, commandArguments, {
all: true,
cwd: options.cwd,
env: {
...pick(process.env, PASSTHROUGH_ENV_VARS),
...options.env,
},
extendEnv: false,
timeout: options.timeout,
reject: false,
cancelSignal: options.abortSignal,
});
return {
failed: result.failed,
exitCode: result.exitCode,
output: result.all,
};
}
//# sourceMappingURL=exec.js.map