#! @im_path_perl@ ################################################################ ### ### imali ### ### Author: Internet Message Group ### Created: Apr 23, 1997 ### Revised: Feb 28, 2000 ### BEGIN { @im_my_siteperl@ @im_src_siteperl@ }; my $VERSION = "imali version 20000228(IM140)"; $Prog = 'imali'; ## ## Require packages ## use IM::Config; use IM::Util; use IM::Alias; use integer; use strict; use vars qw($Prog $EXPLANATION @OptConfig $opt_host $opt_file $opt_addrbook $opt_verbose $opt_debug $opt_help); ## ## Environments ## $EXPLANATION = " $Prog :: Internet Message Query Alias $VERSION Usage: $Prog [options] [target...] "; @OptConfig = ( 'host,H;b;;' => "Lookup hosts alias file.", 'file;s;;' => "Set aliases file.", 'addrbook;s;;' => "Set Addrbook file.", 'verbose;b;;' => 'With verbose messages.', 'debug;d;;' => "With debug message.", 'help;b;;' => "Show this message.", ); ## ## Profile and option processing ## init_opt(\@OptConfig); read_cfg(); read_opt(\@ARGV); # help? help($EXPLANATION) && exit $EXIT_SUCCESS if $opt_help; debug_option($opt_debug) if $opt_debug; ## ## Main ## # parse argument my @targets = @ARGV; if (! $opt_host) { alias_read($opt_file, $opt_addrbook); if (scalar(@targets) == 0) { alias_print(); } else { my ($alias, $addr); foreach $alias (@targets) { $addr = alias_lookup($alias); if ($addr) { print $addr, "\n"; } else { im_warn("Unknown mail alias: $alias\n"); } } } } else { hosts_read(expand_path($opt_file)); if (scalar(@targets) == 0) { hosts_print(); } else { my ($alias, $host); foreach $alias (@targets) { $host = hosts_lookup($alias); if ($host) { print $host, "\n"; } else { im_warn("Unknown host alias: $alias\n"); } } } } exit $EXIT_SUCCESS; __END__ =head1 NAME imali - Display mail aliases =head1 SYNOPSIS B [B<--file=file>] [B<--verbose>] [B<--debug>] [B<--help>] [targets ...] =head1 DESCRIPTION I searches the named mail alias files for each of the given aliases. It creates a list of addresses for those aliases, and writes that list on standard output. If I are omitted, all aliases are displayed. =head1 OPTIONS =over 5 =item I<-f, --file = file> Use I as a aliasfile. Default is ~/.im/Aliases. =item I<-v, --verbose> Print verbose messages when running. =item I<-d, --debug> Print debug messages when running. =item I<-h, --help> Print a usage message on standard output and exit successfully. =back =cut ### Copyright (C) 1997, 1998, 1999 IM developing team ### All rights reserved. ### ### Redistribution and use in source and binary forms, with or without ### modification, are permitted provided that the following conditions ### are met: ### ### 1. Redistributions of source code must retain the above copyright ### notice, this list of conditions and the following disclaimer. ### 2. Redistributions in binary form must reproduce the above copyright ### notice, this list of conditions and the following disclaimer in the ### documentation and/or other materials provided with the distribution. ### 3. Neither the name of the team nor the names of its contributors ### may be used to endorse or promote products derived from this software ### without specific prior written permission. ### ### THIS SOFTWARE IS PROVIDED BY THE TEAM AND CONTRIBUTORS ``AS IS'' AND ### ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE ### IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR ### PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE TEAM OR CONTRIBUTORS BE ### LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR ### CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF ### SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR ### BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, ### WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE ### OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN ### IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ### Local Variables: ### mode: perl ### End: