]> git.donarmstrong.com Git - debbugs.git/blobdiff - bin/local-debbugs
write out config local files
[debbugs.git] / bin / local-debbugs
index b75d55f65d416cd400a6e91ec61ceb0db2a6de1b..4cfb7858fd4501d1f806d7d648d24286206a9fa2 100755 (executable)
@@ -143,7 +143,7 @@ my %option_defaults = (port => 8080,
                      );
 
 GetOptions(\%options,
-          'daemon|D','show|s','search|select|S','mirror|M', 'stop',
+          'daemon|D','show|s','search|select|S','mirror|M', 'stop|exit|quit',
           'detach!',
           'css=s','cgi_bin|cgi-bin|cgi=s',
           'verbose|v+','quiet|q+',
@@ -158,7 +158,7 @@ $DEBUG = $options{debug};
 
 my @USAGE_ERRORS;
 if (1 != grep {exists $options{$_}} qw(daemon show search mirror stop)) {
-     push @USAGE_ERRORS,"You must pass one (and only one) of --daemon --show --search or --mirror";
+     push @USAGE_ERRORS,"You must pass one (and only one) of --daemon --show --search --mirror or --stop";
 }
 $options{verbose} = $options{verbose} - $options{quiet};
 
@@ -183,6 +183,24 @@ if ($options{daemon}) {
          print STDERR "Unable to determine if daemon is running: $!\n";
          exit 1;
      }
+     my $conf = IO::File->new($options{mirror_location}.'/debbugs_config_local','w') or
+        die "Unable to open $options{mirror_location}/debbugs_config_local for writing: $!";
+     print {$conf} <<"EOF";
+\$gConfigDir = "$options{mirror_location}";
+\$gSpoolDir = "$options{mirror_location}";
+\$gWebHost = 'localhost:$options{port}';
+\$gPackageSource = '';
+\$gPseudoDescFile = '';
+\$gPseudoMaintFile = '';
+\$gMaintainerFile = '';
+\$gMaintainerFileOverride = '';
+\$config{source_maintainer_file} = '';
+\$config{source_maintainer_file_override} = '';
+\$gProject = 'Local Debbugs';
+1;
+EOF
+     close $conf;
+     $ENV{DEBBUGS_CONFIG_FILE} = $options{mirror_location}.'/debbugs_config_local';
      # ok, now lets daemonize
 
      # XXX make sure that all paths have been turned into absolute
@@ -222,6 +240,7 @@ if ($options{daemon}) {
          sub handle_request {
               my ($self,$cgi) = @_;
 
+              $ENV{DEBBUGS_CONFIG_FILE} = $options{mirror_location}.'/debbugs_config_local';
               my $base_uri = 'http://'.$cgi->virtual_host;
               if ($cgi->virtual_port ne 80) {
                    $base_uri .= ':'.$cgi->virtual_port;
@@ -438,9 +457,8 @@ sub run_rsync{
                              );
      my ($output,$error) = ('','');
      my $h = IPC::Run::start(['rsync',@{$param{options}}],
-                            \undef,\$output,\$error);
+                            \undef,$param{log},$param{log});
      while ($h->pump) {
-        print {$param{log}} $output,$error;
         #print {$param{debug}} $error if defined $param{debug};
      }
      $h->finish();