rotate sparkless indicators default
[barcat.git] / barcat
diff --git a/barcat b/barcat
index 253ec8685c81d922d87c5d189af3770e4f160628..2339bc7e2b8ed8dc8b604ec06e10ed557f9ebcfe 100755 (executable)
--- a/barcat
+++ b/barcat
@@ -64,6 +64,17 @@ GetOptions(\%opt,
                        )],
                        whites => [qw( 1;30 0;37 1;37 )],
                        greys  => [map {"38;5;$_"} 0, 232..255, 15],
+                       random => [map {"38;5;$_"} List::Util::shuffle(17..231)],
+                       rainbow=> [map {"38;5;$_"}
+                               196, # r
+                               (map { 196 + $_*6   } 0..4), # +g
+                               (map { 226 - $_*6*6 } 0..4), # -r
+                               (map {  46 + $_     } 0..4), # +b
+                               (map {  51 - $_*6   } 0..4), # -g
+                               (map {  21 + $_*6*6 } 0..4), # +r
+                               (map { 201 - $_     } 0..4), # -b
+                               196,
+                       ],
                }->{$_[1]} // [ split /[^0-9;]/, $_[1] ];
        },
        'stat|s!',
@@ -100,8 +111,8 @@ $opt{'value-length'} = 1 if $opt{unmodified};
 $opt{'signal-stat'} //= exists $SIG{INFO} ? 'INFO' : 'QUIT';
 $opt{markers} //= '=avg >31.73v <68.27v +50v |0';
 $opt{palette} //= $opt{color} && [31, 90, 32];
-$opt{indicators} = [split //,
-       $opt{indicators} || ($opt{ascii} ? ' .oO' : ' ▁▂▃▄▅▆▇█')
+$opt{indicators} = [split //, $opt{indicators} ||
+       ($opt{ascii} ? ' .oO' : $opt{spark} ? ' ▁▂▃▄▅▆▇█' : ' ▏▎▍▌▋▊▉█')
 ] if defined $opt{indicators} or $opt{spark};
 $opt{hidemin} = ($opt{hidemin} || 1) - 1;
 $opt{input} = (@ARGV && $ARGV[0] =~ m/\A[-0-9]/) ? \@ARGV : undef
@@ -657,6 +668,10 @@ Sparkline graphics of simple input given as inline parameters:
 
     barcat -_ 3 1 4 1 5 0 9 2 4
 
+Misusing the spark functionality to draw a lolcat line:
+
+    seq $(tput cols) | barcat --spark --indicator=- --palette=rainbow
+
 =head1 AUTHOR
 
 Mischa POSLAWSKY <perl@shiar.org>