如何读取 STDIN 并启动 blessed 终端应用程序?
How to read STDIN and start blessed terminal app?
我正在构建一个 Node.js 应用程序。我正在尝试读取 STDIN 缓冲区,解析它然后启动我的 blessed 程序,但是如果我尝试读取 STDIN 我的 blessed 程序会立即关闭。
另外,输入无效。
这是一个例子:
// Read stdin into buff
const stdin = process.stdin
stdin.setEncoding('utf8')
let buff = ''
function read() {
let chunk
while ((chunk = stdin.read())) {
buff += chunk
}
}
stdin.on('readable', read)
stdin.on('end', () => {
input = buff
})
创建一些应用程序:
const program = blessed.program()
const screen = blessed.screen({
program: program,
smartCSR: true,
})
// Add box with mouse and keys events, etc.
运行 节目 echo something | node index.js
。应用程序立即关闭。
自己找到解决方案:
const ttyFd = fs.openSync('/dev/tty', 'r+')
const program = blessed.program({
input: tty.ReadStream(ttyFd),
output: tty.WriteStream(ttyFd),
})
const screen = blessed.screen({
program: program,
smartCSR: true,
})
我正在构建一个 Node.js 应用程序。我正在尝试读取 STDIN 缓冲区,解析它然后启动我的 blessed 程序,但是如果我尝试读取 STDIN 我的 blessed 程序会立即关闭。 另外,输入无效。
这是一个例子:
// Read stdin into buff
const stdin = process.stdin
stdin.setEncoding('utf8')
let buff = ''
function read() {
let chunk
while ((chunk = stdin.read())) {
buff += chunk
}
}
stdin.on('readable', read)
stdin.on('end', () => {
input = buff
})
创建一些应用程序:
const program = blessed.program()
const screen = blessed.screen({
program: program,
smartCSR: true,
})
// Add box with mouse and keys events, etc.
运行 节目 echo something | node index.js
。应用程序立即关闭。
自己找到解决方案:
const ttyFd = fs.openSync('/dev/tty', 'r+')
const program = blessed.program({
input: tty.ReadStream(ttyFd),
output: tty.WriteStream(ttyFd),
})
const screen = blessed.screen({
program: program,
smartCSR: true,
})