command-line - own - nodejs cli
Probar si la salida real es un terminal o no en node.js (1)
Estoy escribiendo una interfaz de línea de comandos para uno de mis programas, y me gustaría usar la salida coloreada de winston si es apropiado (la salida es un terminal y no se redirige a un archivo).
En bash se puede hacer con la prueba -t
, como lo indica correctamente la respuesta de SO . Pero estoy buscando la alternativa de node.js para probar esto.
De manera similar a los ejemplos de bash a los que se vincula, Node tiene el módulo ''tty'' para lidiar con esto.
Para verificar si la salida está redirigida, puede usar el método ''isatty''. Docs aquí: http://nodejs.org/docs/v0.5.0/api/tty.html#tty.isatty
Por ejemplo, para verificar si la salida estándar está redirigida:
var tty = require(''tty'');
if (tty.isatty(process.stdout.fd)) {
console.log(''not redirected'');
}
else {
console.log(''redirected'');
}
Actualizar
En las nuevas versiones de Node (a partir de la versión 0.12.0), la API proporciona una marca en la salida estándar para que pueda hacer esto:
if (process.stdout.isTTY) {
console.log(''not redirected'');
}
else {
console.log(''redirected'');
}