X-Git-Url: https://git.exim.org/exim.git/blobdiff_plain/571b27158aa468eda77b1a20ed80bed1f342e15d..4729b6937b582a029147ba51298f5c300c5b1891:/src/src/exigrep.src diff --git a/src/src/exigrep.src b/src/src/exigrep.src index 1899267be..fd07fd8f1 100644 --- a/src/src/exigrep.src +++ b/src/src/exigrep.src @@ -5,9 +5,11 @@ use strict; BEGIN { pop @INC if $INC[-1] eq '.' }; use Pod::Usage; -use Getopt::Long; +use Getopt::Long qw(:config no_ignore_case); +use File::Basename; -# Copyright (c) 2007-2015 University of Cambridge. +# Copyright (c) 2007-2017 University of Cambridge. +# Copyright (c) The Exim Maintainers 2020 # See the file NOTICE for conditions of use and distribution. # Except when they appear in comments, the following placeholders in this @@ -158,7 +160,8 @@ my $compressors = { gz => { cmd => 'zcat', args => '' }, bz2 => { cmd => 'bzcat', args => '' }, xz => { cmd => 'xzcat', args => '' }, - lzma => { cmd => 'lzma', args => '-dc' } + lzma => { cmd => 'lzma', args => '-dc' }, + zst => { cmd => 'zstdcat', args => '' }, }; my $csearch = 0; @@ -229,6 +232,12 @@ GetOptions( -noperldoc => system('perldoc -V 2>/dev/null >&2') ); }, + 'version' => sub { + print basename($0) . ": $0\n", + "build: EXIM_RELEASE_VERSIONEXIM_VARIANT_VERSION\n", + "perl(runtime): $]\n"; + exit 0; + }, ) and @ARGV or pod2usage; $pattern = shift @ARGV; @@ -237,7 +246,8 @@ $pattern = quotemeta $pattern if $literal; # Start a pager if output goes to a terminal if (-t 1 and $use_pager) { - foreach ($ENV{PAGER}//(), 'less', 'more') + # for perl >= v5.10.x: foreach ($ENV{PAGER}//(), 'less', 'more') + foreach (defined $ENV{PAGER} ? $ENV{PAGER} : (), 'less', 'more') { local $ENV{LESS} .= ' --no-init --quit-if-one-screen'; open(my $pager, '|-', $_) or next; @@ -305,8 +315,8 @@ given host, for example. If no file names are given on the command line, the standard input is read. -For known file extensions indicating compression (F<.gz>, F<.bz2>, F<.xz>, and F<.lzma>) -a suitable de-compressor is used, if available. +For known file extensions indicating compression (F<.gz>, F<.bz2>, F<.xz>, +F<.lzma>, and F<.zst>) a suitable de-compressor is used, if available. The output is sent through a pager if a terminal is connected to STDOUT. As pager are considered: C<$ENV{PAGER}>, C, C. @@ -346,7 +356,7 @@ Do not use a pager, even if STDOUT is connected to a terminal. =item B<-h>|B<--help> Print a short reference help. For more detailed help try L, -or C. +or C. =item B<-m>|B<--man>