X-Git-Url: http://git.shiar.nl/barcat.git/blobdiff_plain/ce4b0d2b0ea9193cf2b557bbdf6b27056390a9ba..f4423db9671d9650e7a39482ffc935d373e72ef5:/barcat diff --git a/barcat b/barcat index 2a7bdbf..82cf7d6 100755 --- a/barcat +++ b/barcat @@ -47,6 +47,9 @@ GetOptions(\%opt, ); }, 'markers|m=s', + 'spark!' => sub { + $opt{spark} = [split //, '⎽▁▂▃▄▅▆▇█']; + }, 'stat|s!', 'unmodified|u!', 'width|w=i', @@ -164,6 +167,12 @@ sub sival { while ($nr <= $#lines) { $nr >= $opt{hidemax} and last if defined $opt{hidemax}; my $val = $values[$nr]; + + if ($opt{spark}) { + print $opt{spark}->[ ($val - $minval) / $maxval * $#{$opt{spark}} ]; + next; + } + if (length $val) { my $color = !$opt{color} ? undef : $val == $order[0] ? 32 : # max @@ -176,9 +185,11 @@ while ($nr <= $#lines) { printf '%-*s', $len + length($val), $line; print $barmark[$_] // '-' for 1 .. $size && (($values[$nr] || 0) - $minval) * $size + .5; say ''; - +} +continue { $nr++; } +say '' if $opt{spark}; } show_lines(); @@ -355,6 +366,11 @@ Any kind of database query with counts, preserving returned alignment: echo 'SELECT count(*),schemaname FROM pg_tables GROUP BY 2' | psql -t | barcat -u +Earthquakes worldwide magnitude 1+ in the last 24 hours: + + https://earthquake.usgs.gov/earthquakes/feed/v1.0/summary/1.0_day.csv | + column -tns, | graph -f4 -u -l80% + External datasets, like movies per year: curl https://github.com/prust/wikipedia-movie-data/raw/master/movies.json | @@ -389,12 +405,11 @@ Or the top 3 most frequent authors with statistics over all: git shortlog -sn | barcat -L3 -s -Activity of the last days: +Activity of the last days (substitute date C<-v-{}d> on BSD): - git log --pretty=%cd --date=format:%F --since=1month | - perl -MTime::Piece -pE - 'for ($t //= localtime; $t->ymd gt $_; $t -= 24*60*60) {say $t->ymd}' | - sort | uniq -c | awk '$1--' | graph + ( git log --pretty=%ci --since=30day | cut -b-10 + seq 0 30 | xargs -i date +%F -d-{}day ) | + sort | uniq -c | awk '$1--' | graph --spark =head1 AUTHOR