Author: sparky
Date: Sun Dec 19 20:42:14 2010
New Revision: 12001

Modified:
   toys/rsget.pl/RSGet/Get.pm
   toys/rsget.pl/RSGet/HTTPRequest.pm
   toys/rsget.pl/RSGet/Line.pm
Log:
- some colors on terminal


Modified: toys/rsget.pl/RSGet/Get.pm
==============================================================================
--- toys/rsget.pl/RSGet/Get.pm  (original)
+++ toys/rsget.pl/RSGet/Get.pm  Sun Dec 19 20:42:14 2010
@@ -83,7 +83,7 @@
                my $outifstr = $outif ? "[$outif]" :  "";
 
                hadd %$self,
-                       _line => new RSGet::Line( "[$getter->{short}]$outifstr 
" );
+                       _line => new RSGet::Line( "[$getter->{short}]$outifstr 
", undef, undef, "green" );
                $self->print( "start" );
                $self->linedata();
        }

Modified: toys/rsget.pl/RSGet/HTTPRequest.pm
==============================================================================
--- toys/rsget.pl/RSGet/HTTPRequest.pm  (original)
+++ toys/rsget.pl/RSGet/HTTPRequest.pm  Sun Dec 19 20:42:14 2010
@@ -344,12 +344,9 @@
        $r = '<fieldset id="log"><legend>log</legend><ul>';
        
        for ( my $i = $#RSGet::Line::dead; $i >= $start; $i-- ) {
-               my $line = $RSGet::Line::dead[ $i ];
+               my ( $line, $color ) = @{ $RSGet::Line::dead[ $i ] };
                my $class = '';
-               $class = ' class="blue"' if $line =~ /PARTIAL/;
-               $class = ' class="green"' if $line =~ /DONE/;
-               $class = ' class="orange"' if $line =~ /^\[\S+\] WARNING/;
-               $class = ' class="red"' if $line =~ /ERROR/;
+               $class = qq{ class="$color"} if $color;
                $r .= qq#<li$class># . href( $line ) . '</li>';
        }
 

Modified: toys/rsget.pl/RSGet/Line.pm
==============================================================================
--- toys/rsget.pl/RSGet/Line.pm (original)
+++ toys/rsget.pl/RSGet/Line.pm Sun Dec 19 20:42:14 2010
@@ -19,6 +19,23 @@
 my $term_size_columns;
 my $term_size_rows;
 
+my %color_to_term = (
+       red => 31,
+       green => 32,
+       yellow => 33,
+       orange => 33,
+       blue => 34,
+       magenta => 35,
+       cyan => 36,
+       bold => 1,
+       "" => 0,
+);
+sub color_term
+{
+       my $color = shift || "";
+       return "\033[" . $color_to_term{$color} . "m";
+}
+
 sub term_size
 {
        local $SIG{__DIE__};
@@ -51,19 +68,20 @@
        my @print;
        my @newdead;
 
+       my $endcolor = color_term();
        if ( $last_day != $l[3] ) {
                $last_day = $l[3];
                my $date = sprintf "[Current date: %d-%.2d-%.2d]", $l[5] + 
1900, $l[4] + 1, $l[3];
-               push @print, "\r" . $date . "\033[J\n";
-               push @newdead, $date;
+               push @print, "\r" . color_term( "green" ) . $date . $endcolor . 
"\033[J\n";
+               push @newdead, [ $date, "green" ];
        }
 
        foreach my $key ( sort { $a <=> $b } keys %dead ) {
-               my $text = $dead{$key};
+               my ( $text, $color ) = @{ $dead{$key} };
                $text = $time . $text if $text =~ /\S/;
 
-               push @print, "\r" . $text . "\033[J\n";
-               push @newdead, $text;
+               push @print, "\r" . color_term( $color ) . $text . $endcolor . 
"\033[J\n";
+               push @newdead, [ $text, $color ];
        }
 
        print @print unless $nooutput;
@@ -103,12 +121,16 @@
                        $status[ $#status ] .= $s;
                }
        }
-       my @print = ( " \\$h/" );
+
+       my $endcolor = color_term();
+       my $bold = color_term( "bold" );
+
+       my @print = ( " $bold\\$h/$endcolor" );
        foreach ( @status ) {
-               my $l = " |" . ( " " x ($columns - 4 - length $_ )) . $_ . "|";
+               my $l = " $bold|$endcolor" . ( " " x ($columns - 4 - length $_ 
)) . $_ . "$bold|$endcolor";
                push @print, $l;
        }
-       push @print, " /$horiz\\";
+       push @print, " $bold/$horiz\\$endcolor";
        print map { "\r\n$_\033[K" } @print;
        return scalar @print;
 }
@@ -119,6 +141,7 @@
     my $columns = shift() - 1;
        my @print;
 
+       my $endcolor = color_term();
        foreach my $key ( sort { $a <=> $b } keys %active ) {
                my $line = $active{$key};
 
@@ -126,7 +149,7 @@
                my $tl = length $line->[0] . $text;
                substr $text, 4, $tl - $columns + 3, '...'
                        if $tl > $columns;
-               push @print, "\r\n\033[K" . $line->[0] . $text;
+               push @print, "\r\n\033[K" . color_term( $line->[3] ) . 
$line->[0] . $text . $endcolor;
        }
 
        print @print;
@@ -157,10 +180,11 @@
        my $head = shift;
        my $text = shift;
        my $assoc = shift;
+       my $color = shift;
        $head = "" unless defined $head;
 
        my $line = "" . ($last_line++);
-       $active{ $line } = [ $head, "", $assoc ];
+       $active{ $line } = [ $head, "", $assoc, $color ];
 
        my $self = \$line;
        bless $self, $class;
@@ -190,6 +214,13 @@
        $active{ $$self }->[2] = $data;
 }
 
+sub color
+{
+       my $self = shift;
+       my $color = shift;
+       $active{ $$self }->[3] = $color;
+}
+
 sub clone
 {
        my $self = shift;
@@ -202,7 +233,7 @@
        my $self = shift;
        my $line = $$self;
        my $l = $active{ $line };
-       $dead{ $line } = $l->[0] . $l->[1];
+       $dead{ $line } = [ $l->[0] . $l->[1], $l->[3] ];
        delete $active{ $line };
 }
 
@@ -227,7 +258,7 @@
        }
 
        $SIG{__WARN__} = sub {
-               new RSGet::Line( "WARNING: ", shift );
+               RSGet::Line->new( "WARNING: ", shift, undef, "orange" );
                update();
        };
 
_______________________________________________
pld-cvs-commit mailing list
pld-cvs-commit@lists.pld-linux.org
http://lists.pld-linux.org/mailman/listinfo/pld-cvs-commit

Reply via email to