diff options
author | jeff <jeff> | 2009-12-21 14:37:23 +0000 |
---|---|---|
committer | jeff <jeff> | 2009-12-21 14:37:23 +0000 |
commit | d3916ae37c77a9bd8a9f1a33e0e9679b143d9fdf (patch) | |
tree | bc0e3ed049a2d44ca7a9f31e01a2b12a0d877b40 /bin | |
parent | d3a1ad461c8cad4cfa4000490ddd441bebcc7309 (diff) |
move cch conf into database and add a couple small tools for processing updates more manually
Diffstat (limited to 'bin')
-rwxr-xr-x | bin/fetch_and_expand_taxes | 55 | ||||
-rwxr-xr-x | bin/reassemble_taxes | 35 |
2 files changed, 90 insertions, 0 deletions
diff --git a/bin/fetch_and_expand_taxes b/bin/fetch_and_expand_taxes new file mode 100755 index 0000000..186d6df --- /dev/null +++ b/bin/fetch_and_expand_taxes @@ -0,0 +1,55 @@ +#!/usr/bin/perl -w + +use strict; +use LWP::UserAgent; +use HTTP::Request; +use HTTP::Response; +use FS::UID qw(adminsuidsetup); +use FS::Conf; + +my $user = shift or die &usage; +my $dir = shift or die &usage; + + +adminsuidsetup $user; + +my $conf = new FS::Conf; + +chdir $dir or die "can't change to $dir: $!\n"; + +die "direct download of tax data not enabled\n" + unless $conf->exists('taxdatadirectdownload'); +my ( $urls, $username, $secret, $states ) = + $conf->config('taxdatadirectdownload'); +die "No tax download URL provided. ". + "Did you set the taxdatadirectdownload configuration value?\n" + unless $urls; + +my $ua = new LWP::UserAgent; + foreach my $url (split ',', $urls) { + my @name = split '/', $url; #somewhat restrictive + my $name = pop @name; + $name =~ /(.*)/; # untaint that which we trust; + $name = $1; + + open my $taxfh, ">$name" or die "Can't open $name: $!\n"; + + my $res = $ua->request( + new HTTP::Request( GET => $url), + sub { #my ($data, $response_object) = @_; + print $taxfh $_[0] or die "Can't write to $dir.new/$name: $!\n"; + }, + ); + die "download of $url failed: ". $res->status_line + unless $res->is_success; + close $taxfh; + $secret =~ /(.*)/; # untaint that which we trust; + $secret = $1; + system('unzip', "-P", $secret, $name) == 0 + or die "unzip -P $secret $name failed"; +} + +sub usage { + die "Usage:\n\n fetch_and_expand_taxes user dir\n"; +} + diff --git a/bin/reassemble_taxes b/bin/reassemble_taxes new file mode 100755 index 0000000..001240b --- /dev/null +++ b/bin/reassemble_taxes @@ -0,0 +1,35 @@ +#!/usr/bin/perl -w + +use strict; +use FS::UID qw(adminsuidsetup); +use FS::Conf; + +my $user = shift or die &usage; +my $dir = shift or die &usage; + + +adminsuidsetup $user; + +my $conf = new FS::Conf; + +chdir $dir or die "can't change to $dir: $!\n"; +die "pmzclfull.zip already exists\n" if -f 'pmzclfull.zip'; + +die "direct download of tax data not enabled\n" + unless $conf->exists('taxdatadirectdownload'); +my ( $urls, $username, $secret, $states ) = + $conf->config('taxdatadirectdownload'); +die "No tax download URL provided. ". + "Did you set the taxdatadirectdownload configuration value?\n" + unless $urls; + +my @filelist = qw( code.dbf detail.dbf geocode.dbf npanxx.dbf plus4.dbf + txmatrix.dbf zip.dbf ); + +system('zip', "-P", $secret, 'pmzclfull.zip', @filelist) == 0 + or die "zip failed\n"; + +sub usage { + die "Usage:\n\n reassemble_taxes user dir\n"; +} + |