so Search.tsf and Search.rdf work
[freeside.git] / FS / bin / freeside-daily
index 00de298..75bbca7 100755 (executable)
@@ -5,7 +5,7 @@ use Fcntl qw(:flock);
 use Date::Parse;
 use Getopt::Std;
 use FS::UID qw(adminsuidsetup driver_name dbh datasrc);
-use FS::Record qw(qsearch qsearchs);
+use FS::Record qw(qsearch qsearchs dbdef);
 use FS::Conf;
 use FS::cust_main;
 
@@ -57,13 +57,12 @@ foreach $cust_main ( @cust_main ) {
 
 if ( driver_name eq 'Pg' ) {
   dbh->{AutoCommit} = 1; #so we can vacuum
-  foreach my $statement ( 'vacuum', 'vacuum analyze' ) {
-    my $sth = dbh->prepare($statement) or die dbh->errstr;
+  foreach my $table ( dbdef->tables ) {
+    my $sth = dbh->prepare("VACUUM ANALYZE $table") or die dbh->errstr;
     $sth->execute or die $sth->errstr;
   }
 }
 
-#local hack
 my $conf = new FS::Conf;
 my $dest = $conf->config('dump-scpdest');
 if ( $dest ) {
@@ -75,7 +74,20 @@ if ( $dest ) {
   } else {
     die "database dumps not yet supported for ". driver_name;
   }
-  scp("/var/tmp/$database.sql", $dest);
+  if ( $conf->config('dump-pgpid') ) {
+    eval 'use GnuPG';
+    my $gpg = new GnuPG;
+    $gpg->encrypt( plaintext => "/var/tmp/$database.sql",
+                   output    => "/var/tmp/$database.gpg",
+                   recipient => $conf->config('dump-pgpid'),
+                 );
+    chmod 0600, '/var/tmp/$database.gpg';
+    scp("/var/tmp/$database.gpg", $dest);
+    unlink "/var/tmp/$database.gpg" or die $!;
+  } else {
+    chmod 0600, '/var/tmp/$database.sql';
+    scp("/var/tmp/$database.sql", $dest);
+  }
   unlink "/var/tmp/$database.sql" or die $!;
 }