added sendmailrestart and sendmailconfigpath config files
[freeside.git] / bin / svc_acct_sm.export
index ce49007..0893c94 100755 (executable)
@@ -1,6 +1,6 @@
 #!/usr/bin/perl -Tw
 #
-# $Id: svc_acct_sm.export,v 1.2 1998-12-10 07:23:17 ivan Exp $
+# $Id: svc_acct_sm.export,v 1.5 2000-07-03 09:03:14 ivan Exp $
 # 
 # Create and export config files for sendmail, qmail
 #
 # /var/spool/freeside/conf and sendmail updates ivan@sisd.com 98-aug-14
 #
 # $Log: svc_acct_sm.export,v $
-# Revision 1.2  1998-12-10 07:23:17  ivan
+# Revision 1.5  2000-07-03 09:03:14  ivan
+# added sendmailrestart and sendmailconfigpath config files
+#
+# Revision 1.4  2000/06/29 14:02:29  ivan
+# add sendmailrestart configuration file
+#
+# Revision 1.3  2000/06/12 08:37:56  ivan
+# sendmail fix from Jeff Finucane
+#
+# Revision 1.2  1998/12/10 07:23:17  ivan
 # use FS::Conf, need user (for datasrc)
 #
 
@@ -61,15 +70,18 @@ adminsuidsetup $user;
 
 $conf = new FS::Conf;
 
-my($shellmachine);
-my(@qmailmachines);
+my($shellmachine, @qmailmachines);
 if ( $conf->exists('qmailmachines') ) {
   $shellmachine = $conf->config('shellmachine');
   @qmailmachines = $conf->config('qmailmachines');
 }
 
-my @sendmailmachines = $conf->config('sendmailmachines')
-  if $conf->exists('sendmailmachines');
+my(@sendmailmachines, $sendmailconfigpath, $sendmailrestart);
+if $conf->exists('sendmailmachines') {
+  @sendmailmachines = $conf->config('sendmailmachines');
+  $sendmailconfigpath = $conf->config('sendmailconfigpath') || '/etc';
+  $sendmailrestart = $conf->config('sendmailrestart');
+}
 
 my $mydomain = $conf->config('domain');
 
@@ -90,8 +102,6 @@ unless ( flock(EXPORT,LOCK_EX|LOCK_NB) ) {
 seek(EXPORT,0,0);
 print EXPORT $$,"\n";
 
-my(@svc_acct_sm)=qsearch('svc_acct_sm',{});
-
 ( open(RCPTHOSTS,">$spooldir/rcpthosts")
   and flock(RCPTHOSTS,LOCK_EX|LOCK_NB) 
 ) or die "Can't open $spooldir/rcpthosts: $!";
@@ -153,10 +163,10 @@ foreach $svc_acct_sm ( qsearch('svc_acct_sm') ) {
     print RECIPIENTMAP "$domuser\@$domain:$username\@$mydomain\n";
   }
 
-  print VIRTUSERTABLE @sendmail;
-
 }
 
+print VIRTUSERTABLE @sendmail;
+
 chmod 0644, "$spooldir/sendmail.cw",
             "$spooldir/virtusertable",
             "$spooldir/rcpthosts",
@@ -182,18 +192,22 @@ close VIRTUALDOMAINS;
 
 my($sendmailmachine);
 foreach $sendmailmachine (@sendmailmachines) {
-  scp("$spooldir/sendmail.cw","root\@$sendmailmachine:/etc/sendmail.cw.new")
+  scp("$spooldir/sendmail.cw","root\@$sendmailmachine:$sendmailconfigpath/sendmail.cw.new")
     == 0 or die "scp error: $!";
-  scp("$spooldir/virtusertable","root\@$sendmailmachine:/etc/virtusertable.new")
+  scp("$spooldir/virtusertable","root\@$sendmailmachine:$sendmailconfigpath/virtusertable.new")
     == 0 or die "scp error: $!";
   ssh("root\@$sendmailmachine",
     "( ".
-      "mv /etc/sendmail.cw.new /etc/sendmail.cw; ".
-      "mv /etc/virtusertable.new /etc/virtusertable; ".
-      #"/etc/init.d/sendmail restart; ".
+      "mv $sendmailconfigpath/sendmail.cw.new $sendmailconfigpath/sendmail.cw; ".
+      "mv $sendmailconfigpath/virtusertable.new $sendmailconfigpath/virtusertable; ".
+      $sendmailrestart.
     " )"
   )
     == 0 or die "ssh error: $!";
+  if ( $conf->config('sendmailrestart') ) {
+    ssh("root\@$sendmailmachine", $conf->config('sendmailrestart') )
+      == 0 or die "ssh error: $!";
+  }
 }
 
 my($qmailmachine);