From: Jan Engelhardt Date: Tue, 12 May 2020 20:43:58 +0000 (+0200) Subject: geoip: replace xt_geoip_build's -S option by new option -i X-Git-Tag: v3.10~4 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=b87366bb83af294fb80c9716be0e1efbf481ceeb;p=thirdparty%2Fxtables-addons.git geoip: replace xt_geoip_build's -S option by new option -i The Maxmind DB came with potentially multiple files, but DBIP is currently just one. Drop the -S argument and instead introduce -i. --- diff --git a/geoip/xt_geoip_build b/geoip/xt_geoip_build index e7ad9bf..750bf98 100755 --- a/geoip/xt_geoip_build +++ b/geoip/xt_geoip_build @@ -17,19 +17,15 @@ my $csv = Text::CSV_XS->new({ binary => 1, eol => $/, }); # or Text::CSV -my $source_dir = "."; +my $input_file = "dbip-country-lite.csv"; my $target_dir = "."; &Getopt::Long::Configure(qw(bundling)); &GetOptions( "D=s" => \$target_dir, - "S=s" => \$source_dir, + "i=s" => \$input_file, ); -if (!-d $source_dir) { - print STDERR "Source directory \"$source_dir\" does not exist.\n"; - exit 1; -} if (!-d $target_dir) { print STDERR "Target directory \"$target_dir\" does not exist.\n"; exit 1; @@ -41,9 +37,11 @@ sub collect { my ($file, $fh, $row); my (%country); - - $file = "$source_dir/dbip-country-lite.csv"; - open($fh, '<', $file) || die "Can't open DBIP database\n"; + if ($input_file eq "-") { + open($fh, "<&STDIN"); + } else { + open($fh, "<", $input_file) || die "Cannot open $input_file: $!\n"; + } while ($row = $csv->getline($fh)) { my ($cc, $range); diff --git a/geoip/xt_geoip_build.1 b/geoip/xt_geoip_build.1 index 3b6ead3..ac3e6d3 100644 --- a/geoip/xt_geoip_build.1 +++ b/geoip/xt_geoip_build.1 @@ -5,7 +5,7 @@ xt_geoip_build \(em convert GeoIP.csv to packed format for xt_geoip .SH Syntax .PP \fI/usr/libexec/xt_geoip/\fP\fBxt_geoip_build\fP [\fB\-D\fP -\fItarget_dir\fP] [\fB\-S\fP \fIsource_dir\fP] +\fItarget_dir\fP] [\fB\-i\fP \fIinput_file\fP] .SH Description .PP xt_geoip_build is used to build packed raw representations of the range @@ -24,11 +24,9 @@ script requires it to be called with a path. \fB\-D\fP \fItarget_dir\fP Specifies the target directory into which the files are to be put. Defaults to ".". .TP -\fB\-S\fP \fIsource_dir\fP -Specifies the source directory from which to read the three files by the name -of \fBGeoLite2\-Country\-Blocks\-IPv4.csv\fP, -\fBGeoLite2\-Country\-Blocks\-IPv6.csv\fP and -\fBGeoLite2\-Country\-Locations\-en.csv\fP. Defaults to ".". +\fB\-i\fP \fIinput_file\fP +Specifies the source location of the DBIP CSV file. Defaults to +"dbip-country-lite.csv". Use "-" to read from stdin. .SH Application .PP Shell commands to build the databases and put them to where they are expected: