barcat.git
17 months agoversion 1.08 with extra cat v1.08
Mischa POSLAWSKY [Tue, 1 Nov 2022 18:43:50 +0000 (19:43 +0100)]
version 1.08 with extra cat

17 months agodraw mascot cat in usage message
Mischa POSLAWSKY [Tue, 1 Nov 2022 18:41:46 +0000 (19:41 +0100)]
draw mascot cat in usage message

17 months agomove sparkline example below interrupted git group
Mischa POSLAWSKY [Mon, 31 Oct 2022 19:57:55 +0000 (20:57 +0100)]
move sparkline example below interrupted git group

17 months agoempty program arguments do not need to be parsed
Mischa POSLAWSKY [Mon, 31 Oct 2022 19:53:24 +0000 (20:53 +0100)]
empty program arguments do not need to be parsed

Using Getopt::Long takes ~the same time as running the rest of the script,
about 250ms on a rpi1, so runtime can be halved if there's no options.

17 months agot: planned test count beforehand
Mischa POSLAWSKY [Mon, 31 Oct 2022 19:49:22 +0000 (20:49 +0100)]
t: planned test count beforehand

Small effort to indicate units size, allowing rough eta estimation.

17 months agounit rounding corner case
Mischa POSLAWSKY [Mon, 31 Oct 2022 16:08:57 +0000 (17:08 +0100)]
unit rounding corner case

Earlier commits did not account for odd unit offsets with one less digit
like 9950 rounding to 10.0k (or 9.9k with the previous fix) instead of 10k.

17 months agounit formatting of negatives
Mischa POSLAWSKY [Mon, 31 Oct 2022 19:38:28 +0000 (20:38 +0100)]
unit formatting of negatives

17 months agokeep valueless lines as is
Mischa POSLAWSKY [Mon, 31 Oct 2022 19:23:05 +0000 (20:23 +0100)]
keep valueless lines as is

No padding or graph (from negative minimums).

17 months agoshift unit to prevent additional digits after rounding
Mischa POSLAWSKY [Mon, 31 Oct 2022 15:40:35 +0000 (16:40 +0100)]
shift unit to prevent additional digits after rounding

Fix 0.9995 from showing up as 1000m instead of 1.0.

17 months agostatic usage text, generation code into reformat-podusage script
Mischa POSLAWSKY [Mon, 31 Oct 2022 14:33:19 +0000 (15:33 +0100)]
static usage text, generation code into reformat-podusage script

Significantly faster and less convoluted, at the small cost of tracking some
documentation twice.

17 months agot: ensure failure if field gets fed an invalid regexp value
Mischa POSLAWSKY [Tue, 4 Feb 2020 14:06:39 +0000 (15:06 +0100)]
t: ensure failure if field gets fed an invalid regexp value

17 months agonegative limit range counting from end
Mischa POSLAWSKY [Sun, 28 Mar 2021 02:51:55 +0000 (04:51 +0200)]
negative limit range counting from end

17 months agonegative limit counts from last line
Mischa POSLAWSKY [Sat, 27 Mar 2021 22:57:35 +0000 (23:57 +0100)]
negative limit counts from last line

2 years agot: planned feature for negative limits
Mischa POSLAWSKY [Sat, 27 Mar 2021 21:59:58 +0000 (22:59 +0100)]
t: planned feature for negative limits

Do not count names ending in #TODO as failing.

2 years agoapply value formatting to statistics
Mischa POSLAWSKY [Sat, 27 Mar 2021 21:58:25 +0000 (22:58 +0100)]
apply value formatting to statistics

2 years agoascii option to avoid unicode
Mischa POSLAWSKY [Fri, 19 Mar 2021 02:59:09 +0000 (03:59 +0100)]
ascii option to avoid unicode

2 years agocapture error messages from examples
Mischa POSLAWSKY [Fri, 19 Mar 2021 02:40:22 +0000 (03:40 +0100)]
capture error messages from examples

2 years agoIPC::Run to run example commands
Mischa POSLAWSKY [Fri, 19 Mar 2021 02:36:43 +0000 (03:36 +0100)]
IPC::Run to run example commands

2 years agodeclare value formatting functions in options
Mischa POSLAWSKY [Thu, 18 Mar 2021 18:41:37 +0000 (19:41 +0100)]
declare value formatting functions in options

2 years agoround partial sum to avoid floating point errors
Mischa POSLAWSKY [Sat, 13 Mar 2021 06:16:29 +0000 (07:16 +0100)]
round partial sum to avoid floating point errors

Optional value available since commit v1.03-19-g0938debbad (2019-09-08)
[indicate limited results in stats] was overlooked while fixing formatting
in v1.06-24-g28f38df922 (2019-10-08) [round total value in statistics].

2 years agocomment long regexp in usage preparation
Mischa POSLAWSKY [Sat, 13 Mar 2021 06:08:09 +0000 (07:08 +0100)]
comment long regexp in usage preparation

Insert whitespace and comments for readability.

2 years agostrip pipe arguments from test options
Mischa POSLAWSKY [Sat, 13 Mar 2021 06:03:13 +0000 (07:03 +0100)]
strip pipe arguments from test options

Allow combination of -value and |command (or ?status) suffixes,
without the latter part being duplicated.

2 years agofollow download redirects in example scripts
Mischa POSLAWSKY [Sat, 13 Mar 2021 05:51:27 +0000 (06:51 +0100)]
follow download redirects in example scripts

Found by examples.t tester because curl commands were literally incomplete.

2 years agocustom diagnostics in example test failure
Mischa POSLAWSKY [Sat, 13 Mar 2021 05:42:54 +0000 (06:42 +0100)]
custom diagnostics in example test failure

Replace constant "Failed test at line" by a more interesting report of
source location and result discrepancy.

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