UNPKG

7.01 kBSource Map (JSON)View Raw
1{"version":3,"sources":["../../../src/main-process/utils/exec.js"],"names":["logger","scriptDirname","__dirname","createEnvObject","env","process","BOARD_ID","id","runSync","script","args","cwd","debug","result","error","message","stderr","toString","stdout","trim","runSyncOk","status","runSyncAsUser","Error","runAsync","info","childProcess","stdio","on","data","runAsyncAsUser","runPipe","runPipeAsUser"],"mappings":"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","file":"exec.js","sourcesContent":["import { spawn, spawnSync } from 'child_process';\nimport Logger from 'nightingale';\nimport { user, device } from '../params';\n\nconst logger = new Logger('app:commands:exec');\n\nconst scriptDirname = `${__dirname}/../../../scripts/`;\n\ntype StdioOptionValueType = 'ignore' | 'pipe' | 'inherit';\ntype StdioOptionType = StdioOptionValueType | Array<StdioOptionValueType | any>;\ntype RunOptionsType = {|\n cwd?: ?string,\n env?: ?Object,\n stdio?: ?StdioOptionType,\n|};\ntype ArgsType = Array<string | number>;\n\nconst createEnvObject = env => ({\n ...process.env,\n ...env,\n BOARD_ID: device.id,\n});\n\nexport const runSync = (script: string, args: ArgsType = [], { cwd, env }: RunOptionsType = {}) => {\n logger.debug('run', { script, args, cwd, env });\n const result = spawnSync(script, args, {\n cwd: cwd || scriptDirname,\n env: createEnvObject(env),\n });\n\n if (result.error) {\n logger.error(result.error.message);\n }\n\n if (result.stderr) {\n const stderr = result.stderr.toString();\n if (stderr) {\n logger.error(stderr, { script, args, env });\n }\n }\n\n if (result.stdout) {\n const stdout = result.stdout.toString().trim();\n logger.debug(stdout, { script, args });\n return stdout;\n } else {\n return '';\n }\n};\n\nexport const runSyncOk = (\n script: string,\n args: ArgsType = [],\n { cwd, env }: RunOptionsType = {},\n) => {\n const result = spawnSync(script, args, { cwd: cwd || scriptDirname, env: createEnvObject(env) });\n return !result.status;\n};\n\nexport const runSyncAsUser = (\n script: string,\n args: ArgsType,\n { cwd, env }: RunOptionsType = {},\n) => {\n if (env) throw new Error('env not supported in runSyncAsUser');\n return runSync('sudo', ['-u', user, script, ...args], { cwd });\n};\n\nexport const runAsync = (script: string, args: ArgsType, { cwd, env }: RunOptionsType = {}) => {\n logger.info('exec', { script, args });\n const childProcess = spawn(script, args, {\n cwd: cwd || scriptDirname,\n env: createEnvObject(env),\n stdio: 'pipe',\n });\n childProcess.stdout.on('data', data => logger.debug(data.toString()));\n childProcess.stderr.on('data', data => logger.error(data.toString()));\n return childProcess;\n};\n\nexport const runAsyncAsUser = (script: string, args: ArgsType) =>\n runAsync('sudo', ['-u', user, script, ...args]);\n\nexport const runPipe = (script: string, args: ArgsType, { cwd, env }: RunOptionsType = {}) => {\n logger.debug('pipe', { script, args, cwd, env });\n const result = spawnSync(script, args, { cwd: cwd || scriptDirname, env: createEnvObject(env) });\n if (result.error) {\n logger.error(result.error.message);\n return null;\n }\n\n if (result.stderr) {\n const stderr = result.stderr.toString();\n if (stderr) {\n logger.error(stderr, { script, args });\n return null;\n }\n }\n\n return result.stdout;\n};\n\nexport const runPipeAsUser = (script: string, args: ArgsType) =>\n runPipe('sudo', ['-u', user, script, ...args]);\n"]}
\No newline at end of file