目的
gitやbundleなどの
- コンソールに出力する場合は色をつける
- パイプなど、結果を利用する場合は色を付けない
という挙動を実現する
方法
Rubyの場合
コード
hello.rb
# !/usr/bin/env ruby
message = 'hello, world'
if STDOUT.tty?
puts "\033[32m#{message}\033[0m"
else
puts message
end
結果
node.jsの場合
コード
hello.js
# !/usr/bin/env node
var message = 'hello, world'
if (process.stdout.isTTY) {
console.log("\033[32m" + message + "\033[0m");
} else {
console.log(message);
}
結果
結論
自作コマンドが捗る

