my %CMDARGS = (
ping => '-c 1',
curl => '-sS',
- 'cat \Klog/' => '/var/log/apache2/',
+ 'cat \Khttpd/' => '/var/log/apache2/',
);
my $filename = 'barcat';
local $/ = "\n\n";
while (readline $input) {
- # find code snippets in the appropriate section
+ # find scriptlets in the appropriate section
/^=head1 EXAMPLES/ ... /^=head1/ or next;
- /^\h/ or next;
+ /^\h/ or next; # indented code snippet
+ /\A\h*>/ and next; # psql prompt
chomp;
# compose an identifier from significant parts
s/\\\n\s*//g; # line continuations
s/^[(\h]+//; # subshell
s/^echo\ .*?\|\s*//; # preceding input
+ s/'(\S+)[^']*'/$1/g; # quoted arguments
s/\|.*//; # subsequent pipes
s/^cat\ //; # local file
s/^curl\ // and do { # remote url
# run and report unexpected results
ok(eval {
- run(\@cmd, \undef, \my $output);
- $? == 0 or die "error status ", $? >> 8, "\n";
+ run(\@cmd, \undef, \my $output, \my $error);
+ die("error message:\n $error\n") if $error;
+ $? == 0 or die "exit status ", $? >> 8, "\n";
length $output or die "empty output\n";
return 1;
}, $name) or diag("Failed command\n@cmd\nfrom $filename line $.: $@");