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;
{
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);
.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
\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: