From 37e375e3a6c0ccebf8fbadc2074f4cbb1d0eaeff Mon Sep 17 00:00:00 2001 From: Renato Botelho Date: Tue, 30 Aug 2005 14:44:26 +0000 Subject: Add qmail-vida 0.53, SMTP_AUTH/APOP support for qmail. PR: ports/85250 Submitted by: FURUTATE,Mikihiko --- mail/qmail-vida/files/mkaliasdir | 109 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 109 insertions(+) create mode 100644 mail/qmail-vida/files/mkaliasdir (limited to 'mail/qmail-vida/files/mkaliasdir') diff --git a/mail/qmail-vida/files/mkaliasdir b/mail/qmail-vida/files/mkaliasdir new file mode 100644 index 000000000000..fab410af6370 --- /dev/null +++ b/mail/qmail-vida/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 +# +# $FreeBSD: /tmp/pcvs/ports/mail/qmail-vida/files/Attic/mkaliasdir,v 1.1 2005-08-30 14:44:26 garga Exp $ +# +# Dan Cross +# + +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 = ); +close (ME); + +die "Error opening $aliases: $!\n" unless open(ALIASES, "$aliases"); + +while () +{ + chop; + + $mode = ">"; + + s/#.*$//; + + ($target, $data) = split(/:/, $_, 2); + + $data =~ s/^\s+//; + $data =~ s/\s+$//; + + next if (/^$/); + + if ($data =~ /^$/) + { + while (chop($data = )) + { + $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; -- cgit v1.2.3