chiark / gitweb /
support genopts
[d.git] / service
diff --git a/service b/service
index 9739cbce34edfdb563c6e2fc0a2899625a591803..14852b233827d0e6ac977681163c14aa51836596 100755 (executable)
--- a/service
+++ b/service
@@ -1,8 +1,8 @@
 #!/usr/bin/perl -w
 our $usage1 = <<'END';
-usage: ../fyvzl [OPTIONS DATABASE-FILE ACTION ARG
+usage: ../fyvzl [<options>] <database-file> <action> <arg>...
 options
-  -l<minrandlength>   (for create/choose, number of letters)
+  -l<minrandlength>   (for create/choose, minimum randlength)
   -m<maxperuser>
   -d<dom>
   -q<qualdom>
@@ -11,21 +11,27 @@ options
 END
 our $usage2 = <<'END';
 actions
-  create [GENOPTS] [REDIRECT] [#COMMENT]  (default for REDIRECT is username)
-  choose [GENOPTS] [REDIRECT] [#COMMENT]  (generate and interactively allocate)
-  update ADDR [REDIRECT] [#COMMENT]
-  show ADDR
+  create [<genopts>] [<redirect>] [#<comment>]  (default redirect is username)
+  choose [<genopts>] [<redirect>] [#<comment>]  (interactively allocate)
+  update <addr> [<redirect>] [#<comment>]
+  show <addr>
   list
   list-actions
-empty string for REDIRECT means reject
+empty string for redirect means reject
 END
 our $usage3 = <<'END';
 privileged actions
-  list-user USER
-  insert-exact ADDR USER REDIRECT COMMENT
-  donate ADDR USER
-  enable-user|disable-user USER
+  list-user <user>
+  insert-exact <addr> <user> <redirect> <comment>
+  donate <addr> <user>
+  enable-user|disable-user <user>
+default generation method is alphanum
 END
+our %usage_genopts = (
+'alphanum' => <<END
+  -l<randlength>     (number of letters+digits)
+END
+);
 #/
 
 use strict;
@@ -403,6 +409,10 @@ while (@ARGV) {
            $showcomment = 1;
        } elsif (s/^-h/-/) {
            print $usage1.$usage2.$usage3 or die $!;
+           foreach my $meth (qw(alphanum)) {
+               print "genopts for $meth generation method\n" or die $!;
+               print $usage_genopts{$meth} or die $!;
+           }
            exit 0;
        } else {
            die "unknown option \`$_'\n";
@@ -421,9 +431,10 @@ if (defined $ENV{'USERV_USER'}) {
 }
 
 $usage2 .= defined $dom
-    ? "ADDR may be a local part, implicitly qualified with \@$dom\n"
-    : "ADDR must be a local part (only)\n";
-$usage2 .= "REDIRECT is implicitly qualified with \@$qualdom if it has no \@\n"
+    ? "addr may be a local part, implicitly qualified with \@$dom\n"
+    : "addr must be a local part (only)\n";
+$usage2 .= "redirect is implicitly qualified with \@$qualdom".
+    " if it has no \@\n"
     if defined $qualdom;
 
 $dbh = DBI->connect("dbi:SQLite:dbname=$dbfile","","",