对于上下文,我在Mac上,我试图通过他们的command-line tool编写1Password CLI登录脚本。我正在尝试使用以下命令以编程方式登录:
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
我最初的直觉是,它与命令执行提示符有关,在下图中显示了这个特殊的关键字符:
相关代码是用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作为登录所需的主密码,但我试图找出为什么我的节点应用程序首先崩溃:)
1条答案
按热度按时间yizd12fk1#
显然,我非常接近使用
spawn
的解决方案,但我需要指定stdio
的配置。下面是我如何使用spawn
的示例片段: