4 # Author: Petter Reinholdtsen <pere@td.org.uit.no>
9 # Creates an html overview of the aliases file.
11 # 1998-08-20 v1.2 Added comment about where this program was found
12 # 1997-08-20 v1.1 added NIS-support using module Net::NIS
13 # 1997-05-09 v1.0 released
20 print STDERR "Reading aliases from NIS\n" if ($opt_v);
21 eval 'use Net::NIS::Table;';
23 $map = Net::NIS::Table->new("mail.aliases");
24 $aliases = $map->list();
25 for $alias (keys %{$aliases}) {
26 chop($$aliases{$alias}) if ($$aliases{$alias} =~ m/\0$/);
27 if ("\@\0" ne $alias) {
28 @e = split(/\s*,\s*/, $$aliases{$alias});
29 chop($alias) if ($alias =~ m/\0$/);
30 $aliases{$alias} = [@e];
35 print "Reading aliases from $opt_f\n" if ($opt_v);
36 %aliases = &parseAliases($opt_f);
38 %aliases = &parseAliases;
49 <HEAD><TITLE>Aliases</TITLE></HEAD>
50 <!-- Generated by $0 -->
55 <TR><TD valign="top"><UL>
58 for $alias (sort keys %aliases) {
59 print "<LI><A HREF=\"\#$alias\">$alias</A>\n";
61 print "</UL></TD><TD>\n";
63 for $alias (sort keys %aliases) {
64 print "<A NAME=\"$alias\"><H2>$alias</H2>\n<UL>\n";
65 for $entry (sort @{$aliases{$alias}}) {
66 $entry = expandEntry($entry);
72 </TD></TR></TABLE></BODY></HTML>
77 # Expand all aliases to final receivers
83 for $alias (keys %aliases) {
85 for $entry (@{$aliases{$alias}}) {
86 if ($aliases{$entry}) {
87 push(@e, @{$aliases{$entry}});
89 } elsif ($entry =~ /^:include:(.*)$/) {
90 push(@e, getIncEntries($1));
95 $aliases{$alias} = [@e];
101 # Read and expand aliases from alias-file
104 local($aliases) = "/etc/aliases";
106 local($aliases) = @_;
111 open(ALIASES, "<$aliases") || die "Unable to open $aliases for reading";
116 local($alias, $content) = m/^\s*([^:]+):\s*(.*)$/;
117 local(@content) = split(/\s*,\s*/, $content);
121 local($entry) = pop @content;
122 push(@entries, $entry);
124 $a{$alias} = [@entries];
132 # Look up username in passwd
135 ($name,$passwd,$uid,$gid,
136 $quota,$comment,$gcos,$dir,$shell) = getpwnam($entry);
138 return "$gcos <$entry>";
142 # Expand alias include files
144 local($filename) = @_;
146 if ( !open(INCFILE, "<$filename") ) {
147 warn "Unable to open $filename for reading";
148 push(@entries, "[file $filename]");