Salvando a saída colorida independentemente da fonte

1

Como posso salvar a saída colorida em um arquivo, independentemente da origem, quando as fontes se apagam, se detectarem que a stdout não é um terminal?

    
por PSkocik 13.03.2015 / 09:35

1 resposta

1

O script a seguir que consegui reunir parece funcionar:

#!/usr/bin/env ruby
# -*- coding: utf-8 -*-

require 'pty'
PTY.spawn(*ARGV) do |r,w,pid|
  begin
    while $_ = r.gets
      STDOUT.print $_
    end
  rescue Errno::EIO
  end
end

Ele executa seus argumentos de CLI em um pseudoterminal e encaminha a saída para STDOUT.

Exemplo de uso:

./script.rb ls --color=auto >| file #file will have them ANSI color code sequences in it because ls did run in a terminal.
    
por 13.03.2015 / 11:24