Awesome
spark.fish
Sparklines for Fish.
Unofficial port of spark.sh with --min
, --max
flags and improved performance.
Installation
Install with Fisher:
fisher install jorgebucaran/spark.fish
Quickstart
You want to visualize a range of numbers right in your terminal.
$ spark 1 2 4 8
▁▂▄█
And here is a sequence of random numbers.
$ seq 64 | sort --random-sort | spark
▅▄▂▇▂▅▆▄▃█▂▅▄▁▆▆▃█▄▁▇▅▂▃▇▃▃▄▇▄▅▆▇▂▅▁▇▁▄▂▆▅▃█▇▆▆▅▆▃▄▄▇▃▂▇█▅▃█▁▂▂▆
You can set the --min=<number>
or --max=<number>
values for your sparkline too.
$ seq 10 20 | spark
▁▂▂▃▄▄▅▆▇▇█
$ seq 10 20 | spark --min=0
▄▅▅▆▆▆▇▇▇██
$ seq 10 20 | spark --min=0 --max=30
▃▄▄▄▄▄▅▅▅▅▆
Wicked Cool Usage
Most of the examples in this section are derived from the original Wicked Cool Usage wiki, ported to Fish.
Line lengths.
$ awk \$0=length (functions --details spark) | spark
▃▆▃▃▃▄▃▂▄▄▄▅▂▄▅▂▆▁▅▂▅▅▃▂▂▆▃█▂▁▁▁
Number of commits in a repo, by author.
$ git shortlog --summary | string match --regex "\d+" | spark
█▁▁▁▃▁▁▄▁▁▁
Total run time of processes.
$ ps -A | string replace --filter --regex -- ".*(\d+):(\d+).*" "\$1 * 3600 + \$2 * 60" | bc | spark
▇▁▂▁▆▁▂▂▁▃▁▃▁▁▁▆▁▁▁▂▁▃▂▁▁▃▁▁▁▁▁▂▁▁▂▁▁▁▁▁▆▂▃▂▁▂▃▁▆▁▁▁▂▁▁▁▁▃▂▂▁▇▁▁▁▁▆
LOC added per commit over the last week.
$ git diff @~7 --numstat | string replace --regex -- "(^\d+).*" "\$1" | spark
▁▁▁▁▁▁▁▁▂▁▁▁▁▁▁▂▂▃█▄▁▁
A moving wave through the terminal.
for i in (seq 100)
for j in (seq (math $COLUMNS - 1))
math "ceil(6 * cos(($i + $j) * pi / 5))"
end | spark | read sparks
echo -n $sparks\r && sleep .1
end
▆▄▂▁▂▄▆▇█▇▆▄▂▁▂▄▆▇█▇▆▄▂▁▂▄▆▇█▇▆▄▂▁▂▄▆▇█▇▆▄▂▁▂▄▆▇█▇▆▄▂▁▂▄▆▇█
Performance
Spark is faster than spark.sh
, reading and writing relatively large datasets under milliseconds.
$ time seq 2000 | sort --random-sort | spark
________________________________________________________
Executed in 27.21 millis fish external
usr time 26.40 millis 0.57 millis 25.83 millis
sys time 4.87 millis 1.58 millis 3.29 millis
$ time seq 2000 | sort --random-sort | spark.sh
________________________________________________________
Executed in 2.73 secs fish external
usr time 2.72 secs 0.33 millis 2.72 secs
sys time 0.02 secs 1.47 millis 0.02 secs