Splitting shell strings while preserving SGR escape sequences
When I was creating catls
, I needed to spawn a program and prints output (stdout and/or stderr) of said program to process.stdout
with some prefix (e.g. indentation, bullets, numbers, etc.) whilst preserving some of UNIX control sequences (specifically, sequences that control colors).
Run one of the commands below (in top-level folder of this repository):
pnpx execute runPreloadedNode test/split-shell-buffer/preview.ts
pnpx execute runPreloadedNode test/split-shell-buffer/preview.discrete.ts
NOTE: Documentation is lacking (because I'm lazy), pull requests are welcomed.
NOTE: The following code snippets are executed in async context.
fromChildProcess
The code below spawns a program and prints output (stdout + stderr) of said program with indent.
const { stdout } = require('process')
const { spawn } = require('child_process')
const { fromChildProcess, writeln } = require('split-shell-buffer')
const cp = spawn('myprogram')
const splitter = fromChildProcess(cp).withIndent(4)
await writeln(stdout, splitter)
Generated using TypeDoc