chiark / gitweb /
print doms
[evade-mail-usrlocal.git] / fyvzl
diff --git a/fyvzl b/fyvzl
index b8ab577d68791e08700ecf27ab2d8bad3e648048..3ccae97d32d6bf2cf8d6b69ba1bf4ac14ecad376 100755 (executable)
--- a/fyvzl
+++ b/fyvzl
@@ -1,6 +1,6 @@
 #!/usr/bin/perl -w
 #
-# usage: ../fyvzl [-lLENGTH] [-mMAXPERUSER] [-dDEFDOM] DATABASE-FILE ACTION ARG
+# usage: ../fyvzl [-lLENGTH] [-mMAXPERUSER] [-dDOM] [-qQUALDOM] DATABASE-FILE ACTION ARG
 # actions
 #   create [REDIRECT-TO]
 #   update LOCAL-PART REDIRECT-TO
@@ -20,8 +20,9 @@ use POSIX;
 
 our $randlength = 6;
 our $maxperuser = 10000;
-our $defdom;
+our $qualdom;
 our $dbh;
+our $dom;
 our $user;
 our $priv;
 
@@ -53,10 +54,12 @@ sub prow ($) {
        print "# user $u ".(isdisabled($u) ? 'disabled' : 'enabled')."\n";
        $last_u = $u;
     }
+    my $pa = $row->{'localpart'};
+    $pa .= '@'.$dom if defined $dom;
     if (defined $row->{'redirect'}) {
-       print "$row->{'localpart'}: $row->{'redirect'}\n";
+       print "$pa: $row->{'redirect'}\n";
     } else {
-       print "# reject $row->{'localpart'}\n";
+       print "# reject $pa\n";
     }
 }
 
@@ -76,8 +79,8 @@ sub goodrand ($) {
 sub qualify ($) {
     my ($t) = @_;
     return $t if $t =~ m/\@/;
-    die "unqualified redirection target\n" unless defined $defdom;
-    return $t.'@'.$defdom;
+    die "unqualified redirection target\n" unless defined $qualdom;
+    return $t.'@'.$qualdom;
 }
 
 sub insertrow ($) {
@@ -217,7 +220,9 @@ while (@ARGV) {
     } elsif (m/^-m(\d+)$/) {
        $maxperuser = $1;
     } elsif (m/^-d(\S+)$/) {
-       $defdom = $1;
+       $dom = $1;
+    } elsif (m/^-q(\S+)$/) {
+       $qualdom = $1;
     } else {
        die "unknown option \`$_'\n";
     }