Как я могу обработать приглашение ввода с узлом при выполнении команды через child_process? - PullRequest
1 голос
/ 04 июня 2019

Для контекста, я работаю на Mac и пытаюсь создать сценарий входа в CLI 1Password с помощью инструмента командной строки .Я пытаюсь программно подписать, используя команду, которая выглядит следующим образом:

op signin <signinaddress> <emailaddress> <secretkey> --output=raw

, и я пытался с / без аргумента --output = raw, но каждый раз, когда я просто получаю ошибку, которая выглядит как

[LOG] 2019/06/04 00:57:45 (ERROR) operation not supported on socket

child process exited with code 1

Моя первоначальная догадка заключалась в том, что она имела какое-то отношение к командной строке выполнения команд, отображая этот специальный символ ключа на следующем рисунке:

op signin prompt img

Соответствующий код написан на TypeScript и выглядит следующим образом:

import { spawn } from 'child_process'

// ends up being `op signin <signinaddress> <emailaddress> <secretkey>`
const op = spawn(opExecutable, args);
let result: string | null = null

op.on('message', (message, sendHandle) => {
  console.log('message', message, sendHandle)
});
op.stdout.on('data', (data) => {
  console.log(`stdout: ${data}`);
  if (data && typeof data.toString === 'function') {
    result = data.toString()
  }
});

op.on('close', (code, ...args) => {
  console.log(`child process exited with code ${code}`, args);
});

В конце концов, я хотел бы запустить на всех платформах и иметь возможность передать в stdin мастер-пароль, необходимый для подписив, но я пытаюсь выяснить, почему мое приложение узла падает в первую очередь:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...