die if no relevant services
[freeside.git] / bin / svc_acct.import
index c4b8c5e..c22cb0d 100755 (executable)
@@ -1,5 +1,7 @@
 #!/usr/bin/perl -Tw
 #
+# $Id: svc_acct.import,v 1.4 1999-03-24 00:43:38 ivan Exp $
+#
 # ivan@sisd.com 98-mar-9
 #
 # changed 'password' field to '_password' because PgSQL 6.3 reserves this word
 # arbitrary radius attributes ivan@sisd.com 98-aug-9
 #
 # don't import /var/spool/freeside/conf/shells!  ivan@sisd.com 98-aug-13
+#
+# $Log: svc_acct.import,v $
+# Revision 1.4  1999-03-24 00:43:38  ivan
+# die if no relevant services
+#
+# Revision 1.3  1998/12/10 07:23:16  ivan
+# use FS::Conf, need user (for datasrc)
+#
+# Revision 1.2  1998/10/13 12:07:51  ivan
+# Assigns password from the shadow file for RADIUS password "UNIX"
+#
 
 use strict;
 use vars qw(%part_svc);
 use Date::Parse;
 use FS::SSH qw(iscp);
-use FS::UID qw(adminsuidsetup);
+use FS::UID qw(adminsuidsetup datasrc);
 use FS::Record qw(qsearch);
 use FS::svc_acct;
+use FS::part_svc;
 
-adminsuidsetup;
+my $user = shift or die &usage;
+adminsuidsetup $user;
 
-#my($spooldir)="/var/spool/freeside/export";
-my($spooldir)="unix/";
+my($spooldir)="/usr/local/etc/freeside/export.". datasrc;
 
 $FS::svc_acct::nossh_hack = 1;
 
@@ -33,6 +47,8 @@ $FS::svc_acct::nossh_hack = 1;
 
 %part_svc=map { $_->svcpart, $_ } qsearch('part_svc',{'svcdb'=>'svc_acct'});
 
+die "No services with svcdb svc_acct!\n" unless %part_svc;
+
 print "\n\n", &menu_svc, "\n", <<END;
 Most accounts probably have entries in passwd and users (with Port-Limit
 nonexistant or 1).
@@ -122,6 +138,7 @@ while (<USERS>) {
       or die "1Unexpected line in users.import: $_";
     my($password,$expiration);
     ($username,$password,$expiration)=(lc($1),$2,$4);
+    $password = '' if $password eq 'UNIX';
     $upassword{$username}=$password;
     undef %param;
   } else {
@@ -225,3 +242,9 @@ foreach $username ( keys %upassword ) {
   delete $upassword{$username};
 }
 
+#
+
+sub usage {
+  die "Usage:\n\n  svc_acct.export user\n";
+}
+