import rt 2.0.14
[freeside.git] / FS / bin / freeside-adduser
index 4517a83..9d42463 100644 (file)
@@ -1,22 +1,25 @@
 #!/usr/bin/perl -w
 #
-# $Id: freeside-adduser,v 1.1 2001-10-30 10:20:32 ivan Exp $
+# $Id: freeside-adduser,v 1.4 2002-02-06 14:58:05 ivan Exp $
 
 use strict;
-use vars qw($opt_h $opt_c);
+use vars qw($opt_h $opt_c $opt_s);
 use Getopt::Std;
 
 my $FREESIDE_CONF = "/usr/local/etc/freeside";
 
-getopts("ch:");
+getopts("ch:s:");
 die &usage if $opt_c && ! $opt_h;
-my $secretfile = shift or die &usage;
 my $user = shift or die &usage;
 
-my @args = ( 'htpasswd' );
-push @args, '-c' if $opt_c;
-push @args, $opt_h, $user;
-system(@args) == 0 or die "htpasswd failed: $?";
+if ( $opt_h ) {
+  my @args = ( 'htpasswd' );
+  push @args, '-c' if $opt_c;
+  push @args, $opt_h, $user;
+  system(@args) == 0 or die "htpasswd failed: $?";
+}
+
+my $secretfile = $opt_s || 'secrets';
 
 open(MAPSECRETS,">>$FREESIDE_CONF/mapsecrets")
   or die "can't open $FREESIDE_CONF/mapsecrets: $!";
@@ -24,7 +27,7 @@ print MAPSECRETS "$user $secretfile\n";
 close MAPSECRETS or die "can't close $FREESIDE_CONF/mapsecrets: $!";
 
 sub usage {
-  die "Usage:\n\n  freeside-adduser [ -h htpasswd_file [ -c ] ] secretfile username"
+  die "Usage:\n\n  freeside-adduser [ -h htpasswd_file [ -c ] ] [ -s secretfile ] username"
 }
 
 =head1 NAME
@@ -33,9 +36,9 @@ freeside-adduser - Command line interface to add (freeside) users.
 
 =head1 SYNOPSIS
 
-  freeside-adduser [ -h htpasswd_file [ -c ] ] username
+  freeside-adduser [ -h htpasswd_file [ -c ] ] [ -s secretfile ] username
 
-=head DESCRIPTION
+=head1 DESCRIPTION
 
 Adds a user to the Freeside billing system.  This is for adding users (internal
 sales/tech folks) to the web interface, not for adding customer accounts.
@@ -44,6 +47,8 @@ sales/tech folks) to the web interface, not for adding customer accounts.
 
   -c: Passed to htpasswd
 
+  -s: Specify an alternate secret file
+
 =head1 SEE ALSO
 
 L<htpasswd>, base Freeside documentation