barcat.git
2 years agosimplify test names of example code
Mischa POSLAWSKY [Sat, 13 Mar 2021 04:15:36 +0000 (05:15 +0100)]
simplify test names of example code

Keep only the first command or more significant parameter to minimally
identify the concerning script.

Add diagnostics output of the full command on failure.

2 years agotest return status of example commands and pipes
Mischa POSLAWSKY [Sat, 13 Mar 2021 04:05:34 +0000 (05:05 +0100)]
test return status of example commands and pipes

Explicitly run with bash so intermediate failure can be detected using the
pipefail option.

2 years agoadjust example commands for testing
Mischa POSLAWSKY [Sat, 13 Mar 2021 03:59:43 +0000 (04:59 +0100)]
adjust example commands for testing

2 years agoscript to run examples from documentation
Mischa POSLAWSKY [Sat, 13 Mar 2021 03:54:50 +0000 (04:54 +0100)]
script to run examples from documentation

2 years agotest and warn about invalid marker values
Mischa POSLAWSKY [Fri, 12 Mar 2021 01:23:07 +0000 (02:23 +0100)]
test and warn about invalid marker values

2 years agoeval test options to allow quoted values
Mischa POSLAWSKY [Sat, 13 Mar 2021 05:58:13 +0000 (06:58 +0100)]
eval test options to allow quoted values

Shell scripting fix for whitespace in set parameters.

2 years agosilence warnings on spark
Mischa POSLAWSKY [Fri, 12 Mar 2021 01:06:53 +0000 (02:06 +0100)]
silence warnings on spark

2 years agotest spark option
Mischa POSLAWSKY [Fri, 12 Mar 2021 01:05:20 +0000 (02:05 +0100)]
test spark option

2 years agoannotate intentional lvalue substr
Mischa POSLAWSKY [Mon, 21 Feb 2022 13:25:00 +0000 (14:25 +0100)]
annotate intentional lvalue substr

Advised against by perlcritic and PBP because of confusion and efficiency.
The latter seems contrary to actual benchmark results in v5.24-5.28,
where this form is at least 5% faster (even with a dummy length argument).

2 years agoend subroutines with return
Mischa POSLAWSKY [Sat, 22 Feb 2020 00:47:57 +0000 (01:47 +0100)]
end subroutines with return

Stern perlcritic complaint, referencing page 197 of PBP.

2 years agocode cleanup following some perlcritic warnings
Mischa POSLAWSKY [Mon, 21 Feb 2022 12:24:27 +0000 (13:24 +0100)]
code cleanup following some perlcritic warnings

Rules about mixed precedence, uninitialized local, and capture variable use
all improve clarity without disadvantages.

2 years agoenable /x in all regular expressions
Mischa POSLAWSKY [Sat, 22 Feb 2020 00:51:56 +0000 (01:51 +0100)]
enable /x in all regular expressions

Enforce extended legibility as recommended by PBP page 236.

2 years agoenable /ms in all regular expressions
Mischa POSLAWSKY [Sun, 16 Feb 2020 21:05:51 +0000 (22:05 +0100)]
enable /ms in all regular expressions

Recommended options (PBP pages 237-241) for consistent behaviour.

4 years agostable enough version 1.07 v1.07
Mischa POSLAWSKY [Sat, 25 Jan 2020 03:01:57 +0000 (04:01 +0100)]
stable enough version 1.07

4 years agopostgresql client invocation example
Mischa POSLAWSKY [Sun, 16 Feb 2020 21:08:16 +0000 (22:08 +0100)]
postgresql client invocation example

Personal favourite to quickly visualise statistics.

4 years agorename remaining graph references in documentation
Mischa POSLAWSKY [Fri, 7 Feb 2020 19:25:20 +0000 (20:25 +0100)]
rename remaining graph references in documentation

Commands still using the old name after the change in commit:
v1.03-0-g9cb7fa212a (2019-09-07) [hello barcat =^.^=]

4 years agodocument remaining color options
Mischa POSLAWSKY [Wed, 29 Jan 2020 17:44:43 +0000 (18:44 +0100)]
document remaining color options

4 years agocleanup superfluous hide checks in show_lines()
Mischa POSLAWSKY [Wed, 29 Jan 2020 17:29:01 +0000 (18:29 +0100)]
cleanup superfluous hide checks in show_lines()

Existing code duplicated in commit v1.03-16-g62a8af4725 (2019-09-08)
[stat (-s) option to summarise totals at end].

4 years agoprepare decremented hidemin value
Mischa POSLAWSKY [Wed, 29 Jan 2020 17:26:29 +0000 (18:26 +0100)]
prepare decremented hidemin value

Avoid repeated calculation for cleaner code.

4 years agomove subroutine sival() out of readline loop
Mischa POSLAWSKY [Wed, 29 Jan 2020 17:23:40 +0000 (18:23 +0100)]
move subroutine sival() out of readline loop

Satisfy perlcritic complaint about being nested.

4 years agorefer to bold as bright in black colour documentation
Mischa POSLAWSKY [Sat, 25 Jan 2020 02:17:44 +0000 (03:17 +0100)]
refer to bold as bright in black colour documentation

4 years agoconsistent documentation syntax of options
Mischa POSLAWSKY [Sat, 25 Jan 2020 00:01:17 +0000 (01:01 +0100)]
consistent documentation syntax of options

4 years agoalign long options in usage
Mischa POSLAWSKY [Fri, 24 Jan 2020 23:57:04 +0000 (00:57 +0100)]
align long options in usage

4 years agoabbreviate usage output
Mischa POSLAWSKY [Fri, 24 Jan 2020 23:49:52 +0000 (00:49 +0100)]
abbreviate usage output

Modify pod document before formatting short usage lists to fit most options
on single lines, similar to and expected for most command line interfaces.

4 years agot: ignore t1801 warning missing Tie::Array::Sorted
Mischa POSLAWSKY [Fri, 24 Jan 2020 22:27:25 +0000 (23:27 +0100)]
t: ignore t1801 warning missing Tie::Array::Sorted

Non-fatal message should not fail tests.

4 years agot: execute multiple arguments in shell wrapper
Mischa POSLAWSKY [Fri, 24 Jan 2020 22:25:29 +0000 (23:25 +0100)]
t: execute multiple arguments in shell wrapper

Support combined *.in filename with other parameters, so shell execution can
be applied on t1801-progress.

4 years agoclean up common value range calculation
Mischa POSLAWSKY [Fri, 24 Jan 2020 22:00:21 +0000 (23:00 +0100)]
clean up common value range calculation

4 years agosilence warning calculating size of zero values
Mischa POSLAWSKY [Fri, 24 Jan 2020 21:59:27 +0000 (22:59 +0100)]
silence warning calculating size of zero values

4 years agotest value parameters and option parsing
Mischa POSLAWSKY [Fri, 24 Jan 2020 21:54:10 +0000 (22:54 +0100)]
test value parameters and option parsing

4 years agowrap long code lines to 80 characters
Mischa POSLAWSKY [Fri, 24 Jan 2020 21:50:49 +0000 (22:50 +0100)]
wrap long code lines to 80 characters

Some illegible oneliners crept in.

4 years agoignore interval option without input file
Mischa POSLAWSKY [Fri, 24 Jan 2020 20:59:05 +0000 (21:59 +0100)]
ignore interval option without input file

4 years agosimplify users example code (s/sed/tr/)
Mischa POSLAWSKY [Tue, 21 Jan 2020 16:02:33 +0000 (17:02 +0100)]
simplify users example code (s/sed/tr/)

4 years agolexical sub feature no longer required
Mischa POSLAWSKY [Tue, 21 Jan 2020 16:02:23 +0000 (17:02 +0100)]
lexical sub feature no longer required

Replaced by a variable in commit v1.06-4-gca702a0a92 (2019-09-24)
[customizable format for markers option].  Reverts v1.01-11-g754ddc0faf
(2019-09-05) [enable lexical subs before perl v5.26].

4 years agoclean up doubly titled xml example
Mischa POSLAWSKY [Tue, 21 Jan 2020 16:02:17 +0000 (17:02 +0100)]
clean up doubly titled xml example

Line left after replacement in commit v1.04-1-ge8e86ee4ef (2019-09-10)
[reorder examples by complexity].

4 years agooptional width of sparkline lines
Mischa POSLAWSKY [Mon, 14 Oct 2019 23:06:59 +0000 (01:06 +0200)]
optional width of sparkline lines

Output newlines after specified number of records.
Keep current single line by default.

4 years agoround total value slightly in statistics
Mischa POSLAWSKY [Sun, 6 Oct 2019 23:51:05 +0000 (01:51 +0200)]
round total value slightly in statistics

Compensate for cumulative floating point errors showing up.

4 years agonumber of lines distinct from values in statistics
Mischa POSLAWSKY [Sun, 6 Oct 2019 23:48:38 +0000 (01:48 +0200)]
number of lines distinct from values in statistics

Indicate ignored (non-numeric) rows if any.  Unchanged otherwise.

4 years agot: filename shorthand '_?' to compare exit code
Mischa POSLAWSKY [Fri, 4 Oct 2019 03:15:51 +0000 (05:15 +0200)]
t: filename shorthand '_?' to compare exit code

Make it easier to check for non-zero $? by replacing ' |[ $? = N ]' by ' ?N'
for same results with minimal clutter.

4 years agonumeric inline parameters override value input
Mischa POSLAWSKY [Thu, 3 Oct 2019 21:51:57 +0000 (23:51 +0200)]
numeric inline parameters override value input

Commandline shorthand for simple manual entry with unambiguous numbers.

4 years agot: strip options from input file names
Mischa POSLAWSKY [Thu, 3 Oct 2019 21:01:58 +0000 (23:01 +0200)]
t: strip options from input file names

Ignore everything after underscore in output files, so input files do not
need to match irrelevant test options (source data can remain unchanged
regardless of further test variations).

4 years agot: optional input by omitting *.in files
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.

4 years agolimit without arguments for all (statistics only)
Mischa POSLAWSKY [Thu, 3 Oct 2019 20:47:23 +0000 (22:47 +0200)]
limit without arguments for all (statistics only)

4 years agovalue color in spark mode
Mischa POSLAWSKY [Mon, 23 Sep 2019 23:39:23 +0000 (01:39 +0200)]
value color in spark mode

4 years agospark values for minimum and maximum
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.

4 years agotest color output
Mischa POSLAWSKY [Mon, 23 Sep 2019 18:57:58 +0000 (20:57 +0200)]
test color output

4 years agotest more sine wave input
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';

4 years agorenumber first tests
Mischa POSLAWSKY [Mon, 23 Sep 2019 18:15:42 +0000 (20:15 +0200)]
renumber first tests

4 years agointeger sinewave test data input
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.

4 years agowidth option fallback to tput
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.

4 years agoextended palettes for 88-256 color terminals
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.

4 years agonamed palette presets fire, whites
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).

4 years agodistribute palette parameters over value range
Mischa POSLAWSKY [Mon, 23 Sep 2019 15:40:14 +0000 (17:40 +0200)]
distribute palette parameters over value range

4 years agotest combined modifiers on currency input
Mischa POSLAWSKY [Mon, 23 Sep 2019 14:42:36 +0000 (16:42 +0200)]
test combined modifiers on currency input

4 years agotest download examples (currency, earthquakes, pokemon)
Mischa POSLAWSKY [Mon, 23 Sep 2019 14:23:35 +0000 (16:23 +0200)]
test download examples (currency, earthquakes, pokemon)

4 years agominval/maxval options to override bar range
Mischa POSLAWSKY [Mon, 23 Sep 2019 15:27:06 +0000 (17:27 +0200)]
minval/maxval options to override bar range

4 years agocustomizable format for markers option
Mischa POSLAWSKY [Mon, 23 Sep 2019 15:25:26 +0000 (17:25 +0200)]
customizable format for markers option

4 years agopalette option to customize value colors
Mischa POSLAWSKY [Mon, 23 Sep 2019 13:19:04 +0000 (15:19 +0200)]
palette option to customize value colors

4 years agocolored header like values
Mischa POSLAWSKY [Thu, 19 Sep 2019 12:38:03 +0000 (14:38 +0200)]
colored header like values

4 years agoheader option to prepend value scale
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>.

4 years agooverride version option to only show main program v1.06
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.

4 years agoexplain spark option parameters
Mischa POSLAWSKY [Mon, 23 Sep 2019 23:39:03 +0000 (01:39 +0200)]
explain spark option parameters

4 years agodocument spark option
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).

4 years agoremove lower scan line from spark default
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.

4 years agoforce exit on interrupt signal
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.

4 years agosignal-stat option to override signal name
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).

4 years agoprefer SIGINFO for statistics if available
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).

4 years agoshow statistics on SIGQUIT
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.

4 years agot: multiple command arguments
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.

4 years agotest for continuous progress option -t-1
Mischa POSLAWSKY [Wed, 11 Sep 2019 18:36:05 +0000 (20:36 +0200)]
test for continuous progress option -t-1

4 years agograph-format option to change bar character
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!

4 years agoonly ignore interrupt signal after input
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.

4 years agoprogress after line count with negative --interval
Mischa POSLAWSKY [Wed, 11 Sep 2019 14:51:55 +0000 (16:51 +0200)]
progress after line count with negative --interval

4 years agorespond to alarm signal regardless of interval
Mischa POSLAWSKY [Wed, 11 Sep 2019 14:42:25 +0000 (16:42 +0200)]
respond to alarm signal regardless of interval

4 years agot: report missing output as TODO
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.

4 years agot: replace shell scripts by pipe parameters in name
Mischa POSLAWSKY [Wed, 11 Sep 2019 12:26:22 +0000 (14:26 +0200)]
t: replace shell scripts by pipe parameters in name

4 years agotest unmarked, limits, stats, color
Mischa POSLAWSKY [Wed, 11 Sep 2019 00:42:57 +0000 (02:42 +0200)]
test unmarked, limits, stats, color

4 years agocolored values in summary stats
Mischa POSLAWSKY [Tue, 10 Sep 2019 22:00:41 +0000 (00:00 +0200)]
colored values in summary stats

4 years agoincrease value length for newline substitution
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].

4 years agot: colorize results on tty output
Mischa POSLAWSKY [Tue, 10 Sep 2019 19:50:49 +0000 (21:50 +0200)]
t: colorize results on tty output

4 years agot: exit code reflects test failures
Mischa POSLAWSKY [Tue, 10 Sep 2019 19:48:22 +0000 (21:48 +0200)]
t: exit code reflects test failures

4 years agot: replace diff by comm for linewise comparison
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.

4 years agotest various formatting and options
Mischa POSLAWSKY [Tue, 10 Sep 2019 16:30:16 +0000 (18:30 +0200)]
test various formatting and options

4 years agodocumentation intro, info options
Mischa POSLAWSKY [Tue, 10 Sep 2019 01:48:57 +0000 (03:48 +0200)]
documentation intro, info options

4 years agoinline podexit code for --help, alias to -?
Mischa POSLAWSKY [Tue, 10 Sep 2019 01:48:47 +0000 (03:48 +0200)]
inline podexit code for --help, alias to -?

4 years agobrief usage documentation reformatted from pod
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.

4 years agotest inputless command behaviour v1.05
Mischa POSLAWSKY [Mon, 9 Sep 2019 21:57:49 +0000 (23:57 +0200)]
test inputless command behaviour

Start t00* by testing parameter handling.

4 years agotest field selection and human readable output
Mischa POSLAWSKY [Mon, 9 Sep 2019 21:59:19 +0000 (23:59 +0200)]
test field selection and human readable output

4 years agotest commands to compare usage output, prevent regeneration
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.

4 years agoregenerate test output on regress.t -G option
Mischa POSLAWSKY [Mon, 9 Sep 2019 20:54:20 +0000 (22:54 +0200)]
regenerate test output on regress.t -G option

4 years agoparse options to regress.t
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.

4 years agospaces and options in test file names
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.

4 years agoinitial regression test suite
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.

4 years agounmodified should avoid value alignment
Mischa POSLAWSKY [Mon, 9 Sep 2019 17:19:04 +0000 (19:19 +0200)]
unmodified should avoid value alignment

4 years agocustomisable spark characters
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.

4 years agospark option to replace lines by single characters
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>.

4 years agoearthquake feed example
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.

4 years agodate alternative on BSD variants including OSX
Mischa POSLAWSKY [Mon, 9 Sep 2019 17:32:13 +0000 (19:32 +0200)]
date alternative on BSD variants including OSX

4 years agoreplace perl in example date parsing
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.

4 years agoadditional git example for date history
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.

4 years agoreset SIGINT after first ignoral
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.