Mischa POSLAWSKY [Thu, 3 Oct 2019 20:49:11 +0000 (22:49 +0200)]
t: optional input by omitting *.in files
Verify t0* work correctly without dummy input.
Mischa POSLAWSKY [Thu, 3 Oct 2019 20:47:23 +0000 (22:47 +0200)]
limit without arguments for all (statistics only)
Mischa POSLAWSKY [Mon, 23 Sep 2019 23:39:23 +0000 (01:39 +0200)]
value color in spark mode
Mischa POSLAWSKY [Mon, 23 Sep 2019 23:22:36 +0000 (01:22 +0200)]
spark values for minimum and maximum
Special case first and last matches like colors.
Mischa POSLAWSKY [Mon, 23 Sep 2019 18:57:58 +0000 (20:57 +0200)]
test color output
Mischa POSLAWSKY [Mon, 23 Sep 2019 18:18:46 +0000 (20:18 +0200)]
test more sine wave input
Longer range generated by perl -E 'say cos($_/8) for -3..96';
Mischa POSLAWSKY [Mon, 23 Sep 2019 18:15:42 +0000 (20:15 +0200)]
renumber first tests
Mischa POSLAWSKY [Mon, 23 Sep 2019 18:12:44 +0000 (20:12 +0200)]
integer sinewave test data input
Keep potential floating point complications for later tests.
Mischa POSLAWSKY [Mon, 23 Sep 2019 18:03:14 +0000 (20:03 +0200)]
width option fallback to tput
Environment variable is not exported on some systems.
Mischa POSLAWSKY [Mon, 23 Sep 2019 16:27:00 +0000 (18:27 +0200)]
extended palettes for 88-256 color terminals
Preset options for 88-color urxvt or 256-color xterm ea:
instead of 3 shades of whites, offers 12 in ramp88 and 23 in greys;
similarly increases 7 values of fire to 11 for fire88 and 17 for fire256.
Mischa POSLAWSKY [Mon, 23 Sep 2019 15:40:45 +0000 (17:40 +0200)]
named palette presets fire, whites
Inspired by <https://github.com/sindresorhus/sparkly>, a js spark port.
Different from its {style:'fire'} in being 16-color compatible and having
red at the lower end (matching lower temperature to low values).
Mischa POSLAWSKY [Mon, 23 Sep 2019 15:40:14 +0000 (17:40 +0200)]
distribute palette parameters over value range
Mischa POSLAWSKY [Mon, 23 Sep 2019 14:42:36 +0000 (16:42 +0200)]
test combined modifiers on currency input
Mischa POSLAWSKY [Mon, 23 Sep 2019 14:23:35 +0000 (16:23 +0200)]
test download examples (currency, earthquakes, pokemon)
Mischa POSLAWSKY [Mon, 23 Sep 2019 15:27:06 +0000 (17:27 +0200)]
minval/maxval options to override bar range
Mischa POSLAWSKY [Mon, 23 Sep 2019 15:25:26 +0000 (17:25 +0200)]
customizable format for markers option
Mischa POSLAWSKY [Mon, 23 Sep 2019 13:19:04 +0000 (15:19 +0200)]
palette option to customize value colors
Mischa POSLAWSKY [Thu, 19 Sep 2019 12:38:03 +0000 (14:38 +0200)]
colored header like values
Mischa POSLAWSKY [Wed, 18 Sep 2019 21:17:07 +0000 (23:17 +0200)]
header option to prepend value scale
Single top line to indicate minimum and maximum values, similar to scale in
common-lisp vspark <https://github.com/tkych/cl-spark>.
Mischa POSLAWSKY [Sat, 14 Sep 2019 18:39:14 +0000 (20:39 +0200)]
override version option to only show main program
Default Getopt::Long results include environment-specific details unlike
most other programs, maybe enforcing minimal details in some bug reports,
but making test output non-portable.
Mischa POSLAWSKY [Mon, 23 Sep 2019 23:39:03 +0000 (01:39 +0200)]
explain spark option parameters
Mischa POSLAWSKY [Mon, 23 Sep 2019 23:29:44 +0000 (01:29 +0200)]
document spark option
Added in commit
v1.04-17-gf4423db967 (2019-09-10).
Mischa POSLAWSKY [Mon, 23 Sep 2019 13:18:02 +0000 (15:18 +0200)]
remove lower scan line from spark default
Unlike other spark implementations, an additional -lowest- character U+23BD
was added accidentally, which fits perfectly in Unifont, but may be very
unreliable in other fonts.
Mischa POSLAWSKY [Thu, 12 Sep 2019 20:58:31 +0000 (22:58 +0200)]
force exit on interrupt signal
Display everything even if pipe does not abort.
Mischa POSLAWSKY [Thu, 12 Sep 2019 17:00:39 +0000 (19:00 +0200)]
signal-stat option to override signal name
Try to please everybody (or in case of unknown environment differences).
Mischa POSLAWSKY [Thu, 12 Sep 2019 17:07:24 +0000 (19:07 +0200)]
prefer SIGINFO for statistics if available
A far more appropriate signal for non-quitting interrupts,
unfortunately only available on BSDs (bound to ctrl-T).
Keep fallback to SIGQUIT as support on linux does not seem imminent
:(http://lkml.iu.edu/hypermail/linux/kernel/1411.0/03374.html).
Mischa POSLAWSKY [Thu, 12 Sep 2019 16:56:15 +0000 (18:56 +0200)]
show statistics on SIGQUIT
Misuse this signal as it's the best suited on linux being usually bound to
ctrl-\. The same behaviour can also be seen in at least ping from iputils.
GNU dd offers similar progress on SIGUSR1, but this cannot be bound by stty.
Mischa POSLAWSKY [Wed, 11 Sep 2019 18:36:51 +0000 (20:36 +0200)]
t: multiple command arguments
Worked around by bundling -t and -f in t1801, but will not always be
possible.
Mischa POSLAWSKY [Wed, 11 Sep 2019 18:36:05 +0000 (20:36 +0200)]
test for continuous progress option -t-1
Mischa POSLAWSKY [Wed, 11 Sep 2019 15:37:29 +0000 (17:37 +0200)]
graph-format option to change bar character
Set to # to revert back to v0.10 behaviour!
Mischa POSLAWSKY [Wed, 11 Sep 2019 14:55:40 +0000 (16:55 +0200)]
only ignore interrupt signal after input
Assume no input is an unpiped invocation a user tries to abort by ctrl-C.
Mischa POSLAWSKY [Wed, 11 Sep 2019 14:51:55 +0000 (16:51 +0200)]
progress after line count with negative --interval
Mischa POSLAWSKY [Wed, 11 Sep 2019 14:42:25 +0000 (16:42 +0200)]
respond to alarm signal regardless of interval
Mischa POSLAWSKY [Wed, 11 Sep 2019 12:43:15 +0000 (14:43 +0200)]
t: report missing output as TODO
TAP syntax to report expected failure.
Mischa POSLAWSKY [Wed, 11 Sep 2019 12:26:22 +0000 (14:26 +0200)]
t: replace shell scripts by pipe parameters in name
Mischa POSLAWSKY [Wed, 11 Sep 2019 00:42:57 +0000 (02:42 +0200)]
test unmarked, limits, stats, color
Mischa POSLAWSKY [Tue, 10 Sep 2019 22:00:41 +0000 (00:00 +0200)]
colored values in summary stats
Mischa POSLAWSKY [Tue, 10 Sep 2019 19:57:14 +0000 (21:57 +0200)]
increase value length for newline substitution
Off by one since inclusion of placeholders in commit
v1.02-6-g05d1a75398
(2019-09-07) [value placeholder in contents].
Mischa POSLAWSKY [Tue, 10 Sep 2019 19:50:49 +0000 (21:50 +0200)]
t: colorize results on tty output
Mischa POSLAWSKY [Tue, 10 Sep 2019 19:48:22 +0000 (21:48 +0200)]
t: exit code reflects test failures
Mischa POSLAWSKY [Tue, 10 Sep 2019 19:09:53 +0000 (21:09 +0200)]
t: replace diff by comm for linewise comparison
Prevent skipped lines, assuming matching order is retained.
Similar output otherwise after prefix replacement.
Mischa POSLAWSKY [Tue, 10 Sep 2019 16:30:16 +0000 (18:30 +0200)]
test various formatting and options
Mischa POSLAWSKY [Tue, 10 Sep 2019 01:48:57 +0000 (03:48 +0200)]
documentation intro, info options
Mischa POSLAWSKY [Tue, 10 Sep 2019 01:48:47 +0000 (03:48 +0200)]
inline podexit code for --help, alias to -?
Mischa POSLAWSKY [Tue, 10 Sep 2019 01:11:22 +0000 (03:11 +0200)]
brief usage documentation reformatted from pod
Adjust pod text before and after rendering to better match other programs:
compact table of options described by only the first following line.
Mischa POSLAWSKY [Mon, 9 Sep 2019 21:57:49 +0000 (23:57 +0200)]
test inputless command behaviour
Start t00* by testing parameter handling.
Mischa POSLAWSKY [Mon, 9 Sep 2019 21:59:19 +0000 (23:59 +0200)]
test field selection and human readable output
Mischa POSLAWSKY [Mon, 9 Sep 2019 21:54:20 +0000 (23:54 +0200)]
test commands to compare usage output, prevent regeneration
Any corresponding *.sh is run for more complex tests, such as partial output
comparison for --usage results. Does not have to be generated on -G, but
any existing files can be.
Mischa POSLAWSKY [Mon, 9 Sep 2019 20:54:20 +0000 (22:54 +0200)]
regenerate test output on regress.t -G option
Mischa POSLAWSKY [Mon, 9 Sep 2019 21:00:12 +0000 (23:00 +0200)]
parse options to regress.t
Reserve any parameters starting with a dash.
Show usage for unknown commands ie everything.
Mischa POSLAWSKY [Mon, 9 Sep 2019 20:43:34 +0000 (22:43 +0200)]
spaces and options in test file names
Replace underscores by spaces to facilitate human-readable titles in sane
file names, and apply parts following a space and dash ( -*) as command
parameters to allow testing of different options.
Mischa POSLAWSKY [Mon, 9 Sep 2019 19:37:43 +0000 (21:37 +0200)]
initial regression test suite
Simple script to run barcat with different input from *.in, comparing to
expected *.out files and returning results in TAP format. Execution at
t/*.t for prove compatibility.
Mischa POSLAWSKY [Mon, 9 Sep 2019 17:19:04 +0000 (19:19 +0200)]
unmodified should avoid value alignment
Mischa POSLAWSKY [Mon, 9 Sep 2019 17:18:03 +0000 (19:18 +0200)]
customisable spark characters
Distributes over any number of unicode glyphs. Hardcode interpreter for now
so -CA can be applied to easily decode arguments from UTF-8.
Mischa POSLAWSKY [Mon, 9 Sep 2019 17:17:38 +0000 (19:17 +0200)]
spark option to replace lines by single characters
Implement "sparklines" (one-line graph) by simply substituting Unicode block
elements U+2581-2588 relative to values. Inspired by Zach Holman's `spark`
<https://github.com/holman/spark>.
Mischa POSLAWSKY [Mon, 9 Sep 2019 17:19:57 +0000 (19:19 +0200)]
earthquake feed example
As seen on <https://zachholman.com/spark/#cooler-usage>, but better suited
to demonstrate table markup.
Mischa POSLAWSKY [Mon, 9 Sep 2019 17:32:13 +0000 (19:32 +0200)]
date alternative on BSD variants including OSX
Mischa POSLAWSKY [Mon, 9 Sep 2019 16:57:40 +0000 (18:57 +0200)]
replace perl in example date parsing
Time::Piece was released with perl v5.8.9 but may not be installed on
restricted systems. Hardcoding the number of days is less flexible but
"only" relies on a GNU date supporting -d.
Furthermore, git only supports date formatting since version 2.6.0,
so prefer an equivalent cut similar to earlier year selection.
Mischa POSLAWSKY [Mon, 9 Sep 2019 16:56:36 +0000 (18:56 +0200)]
additional git example for date history
Simplified version of a longtime alias of mine.
Mischa POSLAWSKY [Mon, 9 Sep 2019 16:51:10 +0000 (18:51 +0200)]
reset SIGINT after first ignoral
Ensure subsequent signals will break any unexpected hangs.
Mischa POSLAWSKY [Mon, 9 Sep 2019 16:37:39 +0000 (18:37 +0200)]
void color() shorthand to surround value
Include Term::ANSIColor::colored functionality.
Mischa POSLAWSKY [Mon, 9 Sep 2019 16:36:00 +0000 (18:36 +0200)]
color() function to prepare ansi escapes
Replace code for improved descriptiveness, identical output. Minimal
implementation of Term::ANSIColor::color without various unwanted features.
Mischa POSLAWSKY [Sun, 8 Sep 2019 15:34:44 +0000 (17:34 +0200)]
shorten human-readable values to 2-3 digits
Similar to ls e.a. Previously reserved 5 characters in order to align
decimal points, but this is pointless with mixed magnitudes.
Mischa POSLAWSKY [Sun, 8 Sep 2019 14:44:39 +0000 (16:44 +0200)]
fix sival log for negative/zero values
Mischa POSLAWSKY [Sun, 8 Sep 2019 14:39:03 +0000 (16:39 +0200)]
optional decimal point for human-readable integers
Retain input value precision.
Mischa POSLAWSKY [Sun, 8 Sep 2019 14:28:33 +0000 (16:28 +0200)]
declare pod encoding
Most renderers will output in the same encoding as the pod document,
which is ascii (causing an unaccented e for E<eacute>) or worse, latin1.
Best to explicitly use UTF-8 as all i/o should be.
Mischa POSLAWSKY [Sun, 8 Sep 2019 14:16:41 +0000 (16:16 +0200)]
escape unicode character in pod
Avoid perldoc error:
> Non-ASCII character seen before =encoding in 'Pokémon'. Assuming UTF-8
Mischa POSLAWSKY [Sun, 8 Sep 2019 14:12:06 +0000 (16:12 +0200)]
json example alternative without jq
External dependency not usually installed, so describe separately.
Mischa POSLAWSKY [Sun, 8 Sep 2019 14:10:31 +0000 (16:10 +0200)]
explain options introduced in examples
Mischa POSLAWSKY [Sun, 8 Sep 2019 14:11:17 +0000 (16:11 +0200)]
read utf-8 input in letter frequency example
Mischa POSLAWSKY [Sun, 8 Sep 2019 14:02:27 +0000 (16:02 +0200)]
reorder examples by complexity
Move snippets around to logically introduce different features.
Mischa POSLAWSKY [Sat, 7 Sep 2019 18:49:39 +0000 (20:49 +0200)]
do not trim valueless contents
Mischa POSLAWSKY [Sat, 7 Sep 2019 18:28:17 +0000 (20:28 +0200)]
omit empty value statistics
Mischa POSLAWSKY [Sat, 7 Sep 2019 17:32:07 +0000 (19:32 +0200)]
order incoming values before interval
If Tie::Array::Sorted is available, use it to insert input in order instead
of recalculating on every interval. Assumes frequent refreshes of thousands
of lines, in which case it saves significantly, also slowing down less
exponentially (probably O(l) instead of O(t*l²)).
Mischa POSLAWSKY [Sat, 7 Sep 2019 17:04:08 +0000 (19:04 +0200)]
keep ordered values, only resort on interval
Massive speedup per calculation.
Mischa POSLAWSKY [Sat, 7 Sep 2019 16:11:46 +0000 (18:11 +0200)]
indicate limited results in stats
Mischa POSLAWSKY [Sat, 7 Sep 2019 16:10:54 +0000 (18:10 +0200)]
silence warnings on empty input
Mischa POSLAWSKY [Sat, 7 Sep 2019 16:10:03 +0000 (18:10 +0200)]
include total, min, avg, max in stat details
Mischa POSLAWSKY [Sat, 7 Sep 2019 16:05:26 +0000 (18:05 +0200)]
stat (-s) option to summarise totals at end
Mischa POSLAWSKY [Sat, 7 Sep 2019 18:36:44 +0000 (20:36 +0200)]
minor code cleanup for human formatting
Mischa POSLAWSKY [Sat, 7 Sep 2019 14:14:50 +0000 (16:14 +0200)]
align human values, reserve constant length
Mischa POSLAWSKY [Sat, 7 Sep 2019 14:54:18 +0000 (16:54 +0200)]
omit source code position in regex error message
Mischa POSLAWSKY [Sat, 7 Sep 2019 14:39:29 +0000 (16:39 +0200)]
compile regular expression to -f (without /x)
Reports syntax errors immediately.
Mischa POSLAWSKY [Sat, 7 Sep 2019 14:30:38 +0000 (16:30 +0200)]
support values with float suffixes e±N
Mischa POSLAWSKY [Sat, 7 Sep 2019 14:30:03 +0000 (16:30 +0200)]
prepare anchor match during option parsing
Mischa POSLAWSKY [Sat, 7 Sep 2019 14:17:35 +0000 (16:17 +0200)]
prepare regex to match values
Code cleanup, slight speedup.
Mischa POSLAWSKY [Sat, 7 Sep 2019 14:03:35 +0000 (16:03 +0200)]
exponent fallback in case of unit overflow
Guard against missing units.
Mischa POSLAWSKY [Sat, 7 Sep 2019 13:49:36 +0000 (15:49 +0200)]
move human formatting code into sival() function
Mischa POSLAWSKY [Sat, 7 Sep 2019 13:43:10 +0000 (15:43 +0200)]
decrease divider for small human numbers
Mischa POSLAWSKY [Sat, 7 Sep 2019 13:41:57 +0000 (15:41 +0200)]
human-readable (-H) option to abbreviate numbers
Retain 2-3 significant digits and letter n-T for size. Similar to -h in
ls, du, df, free, rsync, sort; except forgoing byte-specific powers of 1024
in favour of actually _human_ SI powers of 1000.
Common option shorthand -h conflicts with help, but capital -H has a
precedent in df --si so may be more appropriate.
Mischa POSLAWSKY [Sat, 7 Sep 2019 03:14:43 +0000 (05:14 +0200)]
combined limit minimum-maximum
Mischa POSLAWSKY [Sat, 7 Sep 2019 02:41:55 +0000 (04:41 +0200)]
minimum limit to override start line number
Internal option --hidemin or by negative -L instead of maximum.
Mischa POSLAWSKY [Sat, 7 Sep 2019 02:40:01 +0000 (04:40 +0200)]
empty limit support (hidemax internally)
Mischa POSLAWSKY [Sat, 7 Sep 2019 01:51:01 +0000 (03:51 +0200)]
limit (-L) option to stop output
Mischa POSLAWSKY [Fri, 6 Sep 2019 22:22:12 +0000 (00:22 +0200)]
hello barcat =^.^=
Everybody loves cats!
Mischa POSLAWSKY [Fri, 6 Sep 2019 22:22:12 +0000 (00:22 +0200)]
rename program to barcat
English word `graph` is too common and indistinct for general distribution,
already conflicting with /usr/bin/graph from plotutils (Debian bug #61319).
Mischa POSLAWSKY [Fri, 6 Sep 2019 22:52:43 +0000 (00:52 +0200)]
graph length rounded to nearest integer
Even distribution, and fixes unexpected overflows due to inexact float
representation after size calculation (round decimals being decremented).
Mischa POSLAWSKY [Fri, 6 Sep 2019 23:47:10 +0000 (01:47 +0200)]
value-length option to override $lenval
Mischa POSLAWSKY [Fri, 6 Sep 2019 22:58:44 +0000 (00:58 +0200)]
field selection by regex anchor
Backwards-compatible with field numbers as digits should not be number
delimiters, or could be queried like -f'(?:0)'.
Mischa POSLAWSKY [Fri, 6 Sep 2019 23:26:20 +0000 (01:26 +0200)]
retain unsubstituted line contents
Fix length recalculation after interval.