aboutsummaryrefslogtreecommitdiff
path: root/mail/qmail/files/mkaliasdir
diff options
context:
space:
mode:
authorTim Vanderhoek <hoek@FreeBSD.org>1998-07-18 19:59:55 +0000
committerTim Vanderhoek <hoek@FreeBSD.org>1998-07-18 19:59:55 +0000
commit64885f557e3e45d5bd8a6b341ff18f66c638dcd2 (patch)
tree805676e4bb8503cc20123cd5bd86c55c4cd5e46a /mail/qmail/files/mkaliasdir
parentb3649ea21c8a450303305f59b6d82c8c307bea43 (diff)
downloadports-64885f557e3e45d5bd8a6b341ff18f66c638dcd2.tar.gz
ports-64885f557e3e45d5bd8a6b341ff18f66c638dcd2.zip
I think most of us are familiar with that particular program.
Notes
Notes: svn path=/head/; revision=11951
Diffstat (limited to 'mail/qmail/files/mkaliasdir')
-rw-r--r--mail/qmail/files/mkaliasdir109
1 files changed, 109 insertions, 0 deletions
diff --git a/mail/qmail/files/mkaliasdir b/mail/qmail/files/mkaliasdir
new file mode 100644
index 000000000000..78bb69b80fd3
--- /dev/null
+++ b/mail/qmail/files/mkaliasdir
@@ -0,0 +1,109 @@
+#!/usr/bin/perl
+#
+# Script to populate a Qmail ~alias directory with entries from
+# an [SZ]mail{er} or sendmail-like aliases file
+#
+# $Id: mkaliasdir,v 1.2 1997/02/22 07:47:18 tenser Exp $
+#
+# Dan Cross <tenser@spitfire.ecsel.psu.edu>
+#
+
+require 'getopts.pl';
+
+$ALIASES = "/etc/aliases";
+
+die "$0 must be run as root!\n" if ($< != 0);
+
+do Getopts('vf:');
+
+$verbose = 0 unless ($verbose = $opt_v);
+$aliases = $ALIASES unless ($aliases = $opt_f);
+
+if (($aliasdir = (getpwnam("qalias"))[7]) eq "")
+{
+ die "User qalias does not exist, bailing!\n";
+}
+
+if (($qmaildir = (getpwnam("qmaild"))[7]) eq "")
+{
+ die "User qmaild does not exist, bailing!\n";
+}
+
+$ME = "$qmaildir/control/me";
+
+die "Error opening $ME: $!\n" unless open(ME, "$ME");
+chop($me = <ME>);
+close (ME);
+
+die "Error opening $aliases: $!\n" unless open(ALIASES, "$aliases");
+
+while (<ALIASES>)
+{
+ chop;
+
+ $mode = ">";
+
+ s/#.*$//;
+
+ ($target, $data) = split(/:/, $_, 2);
+
+ $data =~ s/^\s+//;
+ $data =~ s/\s+$//;
+
+ next if (/^$/);
+
+ if ($data =~ /^$/)
+ {
+ while (chop($data = <ALIASES>))
+ {
+ $data =~ s/^\s+//;
+ $data =~ s/\s+$//;
+
+ last if ($data !~ /^$/);
+ }
+ }
+
+ $f = "$aliasdir/.qmail-$target";
+
+ @data = split(/\,/, $data);
+ $datum = $data[0];
+
+ if ($datum =~ /^:include:/i)
+ {
+ $datum =~ s/^:include://i;
+ $verbose && print "Symlinking $f to $datum...\n";
+ symlink($datum, $f);
+ shift(@data);
+ $f = $datum;
+ $mode = ">>";
+ }
+
+ open(ALIAS, "$mode$f") || die "Error creating $f: $!\n";
+
+ $verbose && print "Creating $f...\n";
+
+ foreach $datum (@data)
+ {
+ $datum =~ s/"$// if ($datum =~ s/^"// ||
+ $datum =~ s/^\|[ \t]*"/|/);
+
+ if ($datum =~ /^[|\/]/)
+ {
+ print ALIAS $datum, "\n";
+ }
+ else
+ {
+ $datum = "&" . $datum;
+ $datum .= "\@$me" unless ($datum =~ /\@/);
+ print ALIAS "$datum\n";
+ }
+
+ $verbose && print "\tPopulating $f with $datum...\n";
+ }
+
+ close(ALIAS);
+}
+
+close(ALIASES);
+
+exit 0;