FazBrowse GitHub Viewer | Trending |
URL:
| Home
Tools: [Download Repo ZIP]   [Original HTTPS Page]

GitHub Viewer

import path from 'path'; // import { exec, execSync } from 'child_process'; // import shellExec from 'shell-exec'; // Current version does not support custom cwd import * as childProcess from 'child_process'; export const shellExec = (cmdInput, opts) => { const executable = Array.isArray(cmdInput) ? cmdInput.join(';') : cmdInput; const cwd = opts?.cwd ?? process.cwd(); const options = { ...opts, stdio: 'pipe', cwd, }; const { platform } = process; try { const cmd = platform === 'win32' ? 'cmd' : 'sh'; const arg = platform === 'win32' ? '/C' : '-c'; const child = childProcess.spawn(cmd, [arg, executable], options); return new Promise((resolve) => { const stdoutList = []; const stderrList = []; if (child.stdout) { child.stdout.on('data', (data) => { if (Buffer.isBuffer(data)) return stdoutList.push(data.toString()); return stdoutList.push(data); }); } if (child.stderr) { child.stderr.on('data', (data) => { if (Buffer.isBuffer(data)) return stderrList.push(data.toString()); return stderrList.push(JSON.stringify(data)); }); } const getDefaultResult = () => { const stderr = stderrList.join('\n'); const stdout = stdoutList.join('\n'); return { stdout, stderr, cmd: executable, cwd }; }; child.on('error', (error) => resolve({ ...getDefaultResult(), error })); child.on('close', (code) => resolve({ ...getDefaultResult(), code })); }); } catch (error) { return Promise.reject(error); } }; export const execScriptCommand = async (command) => { const cwd = path.resolve('./metadata/'); // console.log(shellExec.default); const data = await shellExec(command, { cwd }) .then((dataObj) => { return dataObj; }) .catch((error) => { console.log('[execScriptCommand]', error); }); return data; }; export default execScriptCommand;

Back | FazBrowse Home | New Git URL