elmalias - expand and display Elm address aliases


SYNOPSIS

       elmalias [ -adenrsuvV ] [ -f format ] [ name  ... ]

       $lib/prlong [ options ... ] < file


DESCRIPTION

       Elmalias  allows you to examine information about aliases.
       The alias databases are consulted for  each  name  on  the
       command  line, and the alias value is displayed, one value
       per line of output.  If name is not a known alias, then it
       is  displayed  unchanged.  If no name is given on the com-
       mand line then all alias values in the databases are  dis-
       played.   All  of these actions are default behaviors that
       may be modified by command line options.

       There are two possible alias  databases,  a  user-specific
       alias  file  (usually in $HOME/.elm/aliases) and a system-
       wide alias file (usually  in  $lib/aliases).   By  default
       both  files are searched, first the user-specific file and
       then the system-wide file.  If  an  alias  file  does  not
       exist  then elmalias silently ignores it and continues on.
       The -s and -u command line options (discussed shortly) can
       restrict what files are files searched.

       There  are  two types of aliases, Person aliases and Group
       aliases.  A Person alias expands to an individual  address
       and  a  Group  alias contains a list of addresses, some of
       which may be aliases.  By default, elmalias  displays  the
       defined  value  of  an  alias, regardless of type.  The -e
       command line option (discussed shortly) fully expands  out
       Group aliases.

       The default output produced is just the ``Address'' infor-
       mation for each name on the command  line.   A  number  of
       command  line  options  (discussed shortly) may be used to
       select different output information or specify a format of
       your choosing.  The following information is maintained in
       the alias databases, and may be accessed by  the  elmalias
       utility:

            o Alias (the alias name)
            o Last Name
            o Name (the user's full name)
            o Comment (not displayed in mail headers)
            o Address (the alias value)
            o Type (Person, Group, or Unknown)


       When the name specified on the command line is not a known
       alias, both the ``Alias'' and ``Address'' information will

       The available command line options are:


       -a     Selects  an   alternative   output   format.    The
              ``Alias''  information  is displayed in addition to
              and preceding the usual ``Address'' information.

       -d     Turns debugging on. Has no effect  unless  elmalias
              was compiled with debugging enabled.

       -e     Tells elmalias to fully expand group aliases.  This
              option can be used only when names are given on the
              command line.

       -f     The  output  produced will be in the specified for-
              mat.   Format  specifications  will  be   discussed
              shortly.

       -n     Selects an alternative output format.  The ``Name''
              information, if it exists, is displayed in addition
              to and following the usual ``Address'' information.
              The ``Name'' will be enclosed in parenthesis.

       -r     If a specified name does not correspond to a  known
              alias then elmalias will display a message and exit
              with a nonzero status.

       -s     Normally elmalias examines both  the  user-specific
              and  system-wide alias files.  This option requests
              that elmalias use the system-wide alias  file,  and
              unless  the  -u  option is also specified the user-
              specific alias file will be ignored.

       -u     Normally elmalias examines both  the  user-specific
              and  system-wide alias files.  This option requests
              that elmalias use the user-specific alias file, and
              unless  the -s option is also specified the system-
              wide alias file will be ignored.

       -v     Selects  a  verbose  output   format.    Both   the
              ``Alias'' and the ``Name'' information will be dis-
              played in addition to the ``Address''  information.
              The   ``Alias''   information   will   precede  the
              ``Address'' information, and the ``Name''  informa-
              tion will be enclosed in parenthesis and follow it.
              If there is no ``Name'' information for this  alias
              then that portion of the output will be ignored.

       -V     Selects  a  very verbose, multi-line output format.
              Displays all available information on aliases.

       date(1) (System V version) and printf(3).   The  following
       field descriptors may be used in format specifications:

            %a   Alias (the alias name)
            %l   Last Name
            %n   Name (the user's full name)
            %c   Comment (not displayed in mail headers)
            %v   Address (the alias value)
            %t   Type (Person, Group, or Unknown)

       Field  widths  in  a  [-][m][.n] format (again, similar to
       printf(3)) may also  be  used.   For  example,  "%-20.20a"
       means  print the ``Alias'' information left justified in a
       field twenty characters long, with the value truncated  to
       twenty characters.

       The  following special character sequences are also recog-
       nized in format specifications:

            \b   A backspace.
            \f   A formfeed.
            \n   A newline.
            \r   A return.
            \t   A tab.
            \c   Literal character ``c''.

       There is a very simplistic conditional  evaluation  mecha-
       nism  that may be used in format specifications.  The con-
       ditional text should be surrounded by question marks,  and
       a  single  character  that specifies the condition immedi-
       ately follows the  first  question  mark.   The  condition
       characters correspond to the ``%'' field specifier charac-
       ters, and the condition is true if the corresponding alias
       information  is defined and nonempty.  For example, if you
       want to display the  ``Name''  information  surrounded  by
       parenthesis,  but omit it if the information is not avail-
       able, you may use ``?n(%n)?'' in the format specification.

       The  command line switches that select an alternative for-
       mat correspond to the following format specifiers.

            default   "%v"
            -a   "%-20.20a %v"
            -n   "%v?n (%n)?"
            -v   "%-20.20a %v?n (%n)?"
            -V   "Alias:\t\t%a\n\
                   Address:\t%v\n\
                   Type:\t\t%t\n\
                 ?n  Name:\t\t%n\n?\
                 ?l  Last Name:\t%l\n?\
                 ?c  Comment:\t%c\n?"

       across multiple lines.  It is useful to reformat output of
       elmalias.  Prlong reads data from its standard input,  one
       line  at a time, and tries to place as much information as
       possible on each  output  line.   A  field  seperator,  by
       default a single space, seperates each input record in the
       output lines.  Every output line is preceded by  a  leader
       field.   By default the leader of the first output line is
       an empty string, and the leader for all subsequent  output
       lines  is  a single tab.  prlong will never split an input
       record.  If an input record  exceeds  the  maximum  output
       line  length,  it will appear unmodified on an output line
       all by itself.

       The following options may be used  to  modify  the  prlong
       behavior.

       -w width    Constrains  output  lines  to width columns in
                   length (not counting an appended newline char-
                   acter).  The default is 78 columns.  The width
                   calculation assumes that tabstops occur  every
                   eight spaces.

       -f string   Seperates each input record with the indicated
                   string when  displayed  to  the  output.   The
                   default is a single space.

       -1 string   Specifies the leader string used for the first
                   line of output.  (This  option  is  the  digit
                   ``one''.)  The default is an empty string.

       -l string   Specifies the leader string for all subsequent
                   lines of output.  (This option is a lower-case
                   ``ell''.) The default is a single tab.


EXAMPLES

       Consider an aliases.text file that contains:

            friends = List of Friends = tom, dick, harry
            tom = Tom Smith = sleepy!tom
            dick = Dick Jones = dopey!dick
            harry = = grumpy!harry

       Below  are shown some example commands and the output pro-
       duced.

            $ elmalias friends
            tom,dick,harry
            $ elmalias mike
            mike
            $ elmalias -r mike
            elmalias: "mike" is not a known alias
            $ elmalias -n friends
            friends              tom,dick,harry
            $ elmalias -V friends
            Alias:          friends
              Address:      tom,dick,harry
              Type:         Group
              Name:         List of Friends
              Last Name:    List of Friends
            $ elmalias -e friends
            tom@sleepy.acme.com
            dick@dopey.acme.com
            harry@grumpy.acme.com
            $ elmalias -ve friends
            tom                  tom@sleepy.acme.com (Tom Smith)
            dick                 dick@dopey.acme.com (Dick Jones)
            harry                harry@grumpy.acme.com
            $ elmalias -f "alias %a is \"%v\" ?n(%n)?" -e friends
            alias tom is "tom@sleepy.acme.com" (Tom Smith)
            alias dick is "dick@dopey.acme.com" (Dick Jones)
            alias harry is "harry@grumpy.acme.com"
            $ elmalias -en friends | /usr/lib/elm/prlong -w40
            tom@sleepy.acme.com (Tom Smith)
                    dick@dopey.acme.com (Dick Jones)
                    harry@grumpy.acme.com
            $ elmalias -en friends | /usr/lib/elm/prlong -1 "To: " -f ", " -w40
            To: tom@sleepy.acme.com (Tom Smith),
                    dick@dopey.acme.com (Dick Jones),
                    harry@grumpy.acme.com


The checkalias(1L) and listalias(1L) scripts distributed with the
Elm  package  provide further examples of the elmalias and prlong
utilities.


AUTHOR

       Elm Development Group


SEE ALSO

       checkalias(1L), elm(1L), listalias(1L), newalias(1L)


BUGS

       There is no centralized, comprehensive  interface  to  the
       Elm  2.4  alias  system, so every program in the Elm suite
       that uses aliases implements  its  own  interfaces.   It's
       possible  for  inconsistencies  to  creep  in between what
       elmalias says and what some Elm utility does.  If you find
       an inconsistency please report it to us!

       Boy, there sure are a lot of command line switches in this
       thing.

       Note that the precedence of aliases is user file then sys-
       tem  file.  This means that a user can 'overload' an alias
       something for the system administrator  to  keep  in  mind
       when creating the system alias file.


BUG REPORTS TO

       Bill Pemberton  flash@virginia.edu


COPYRIGHTS

       Copyright 1993-1995 by The USENET Community Trust