From 7ab69a17fa0b41baf0046cdf837c867e392fe76c Mon Sep 17 00:00:00 2001 From: Jan Engelhardt Date: Sat, 24 Jul 2010 11:18:24 +0200 Subject: [PATCH] geoip: add -D option to geoip_build_dir.pl This option allows to specify a particular output directory. This help Makefiles in that they do not need to use cd. --- geoip/geoip_build_db.pl | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/geoip/geoip_build_db.pl b/geoip/geoip_build_db.pl index 435593e..511f48e 100755 --- a/geoip/geoip_build_db.pl +++ b/geoip/geoip_build_db.pl @@ -14,9 +14,18 @@ my %country; my %names; my $csv = Text::CSV_XS->new({binary => 0, eol => $/}); # or Text::CSV my $mode = "VV"; +my $target_dir = "."; &Getopt::Long::Configure(qw(bundling)); -&GetOptions("b" => sub { $mode = "NN"; }); +&GetOptions( + "D=s" => \$target_dir, + "b" => sub { $mode = "NN"; }, +); + +if (!-d $target_dir) { + print STDERR "Target directory $target_dir does not exist.\n"; + exit 1; +} while (my $row = $csv->getline(*ARGV)) { if (!defined($country{$row->[4]})) { @@ -37,7 +46,7 @@ foreach my $iso_code (sort keys %country) { scalar(@{$country{$iso_code}}), $iso_code, $names{$iso_code}; - open(my $fh, ">".uc($iso_code).".iv0"); + open(my $fh, "> $target_dir/".uc($iso_code).".iv0"); foreach my $range (@{$country{$iso_code}}) { print $fh pack($mode, $range->[0], $range->[1]); }