読者です 読者をやめる 読者になる 読者になる

node.jsで出力がTTYかどうか判断する

node.js

perlでいうと

if (-t STDOUT) {
    say 'tty';
}
else {
    say 'not tty';
}

こういうことがやりたくてnodeだとこうするといけるみたい。

var tty = require('tty');

if (tty.isatty(1)) {
    console.log('tty');
}
else {
    console.log('not tty');
}

1はSTDOUTね。これで

$ node test.js
tty
$ node test.js > foo.txt
$ cat foo.txt
not tty

ってなる。

標準出力に色つけて出力すると、ログとかに書き出したときエスケープシーケンスが入るのでそういうときに使えるかな。