Added all of the MH sources, including RCS files, in
[mmh] / docs / historical / mh-6.8.5 / miscellany / scripts / amhmail.sh
1 #! /bin/sh 
2 #
3 #    amhmail - aliased version of mhmail(1)
4 #
5 #       This program has the same syntax as does mhmail(1).  The differences
6 #       are that amhmail will do aliasing of addresses by using ali(1) which
7 #       mhmail(1) does not do.
8 #
9 #       The other difference is that amhmail will prompt you if the body of
10 #       the message is not specified on the command line and stdin is a
11 #       terminal.
12 #
13 #       WARNING:  DON'T CALL THIS FILE 'mhmail' or 'ali'!
14 #
15 #       Andy Crump (andyc@inteloc)
16 #       phone: 681-4697, MS: JF1-70
17 #
18
19 PGM="`basename $0`"
20 USAGE="syntax: $PGM [addrs ... [-body text] [-cc addrs ...] [-from addr] [-s su
21 bject] [-(help)]]"
22
23 if [ $# -eq 0 ]; then   # If no arguments, do an inc(1)
24         inc
25         exit 0
26 fi
27
28 BODY="NO BODY"
29 CC=
30 FROM=
31 SUBJECT=
32 ADDRS=
33
34 while [ $# -ne 0 ]
35 do 
36         case $1 in 
37         -help)                  # Help message only
38                 echo "$USAGE"
39                 exit 0
40                 ;;
41         -b*)                    # -body option, next argument is the text
42                 shift
43                 BODY="$1"
44                 if [ $# -ne 0 ]; then
45                         shift
46                 fi
47                 ;;
48         -s*)                    # -subject option, next argument is the text
49                 shift
50                 SUBJECT="$1"
51                 if [ $# -ne 0 ]; then
52                         shift
53                 fi
54                 ;;
55         -c*)                    # -cc option, all non (-) arguments are taken 
56                                 #  to be cc's.
57                 shift;
58                 BREAK=0;
59                 while [ $BREAK -eq 0 ]
60                 do
61                         case "$1" in
62                         -*)
63                                 BREAK=1;
64                                 CC="`ali $CC`";
65                                 continue;
66                                 ;;
67                         *)
68                                 CC="$CC $1"
69                                 if [ $# -ne 0 ]; then
70                                         shift;
71                                 else
72                                         BREAK=1;
73                                         CC="`ali $CC`";
74                                         continue;
75                                 fi
76                                 ;;
77                         esac
78                 done
79                 ;;
80         -f*)                    # -from option, next argument is the text
81                 shift
82                 FROM="$1"
83                 if [ $# -ne 0 ]; then
84                         shift
85                 fi
86                 ;;
87         -*)                     # what is this??
88                 echo "$PGM : $1 unknown option."
89                 echo "$USAGE"
90                 exit 1
91                 ;;
92         *)                      # the addresses or garbage
93                 if [ ! -z "$ADDRS" ]; then      # if we already have the 
94                                                 # addresses, this must be 
95                                                 # garbage
96                         echo "$USAGE"
97                         exit 1
98                 fi
99
100                 BREAK=0
101                 while [ $BREAK -eq 0 ]
102                 do
103                         case "$1" in
104                         -*)
105                                 BREAK=1
106                                 ADDRS="`ali $ADDRS`"
107                                 continue
108                                 ;;
109                         *)
110                                 ADDRS="$ADDRS $1"
111                                 if [ $# -ne 0 ]; then
112                                         shift
113                                 else
114                                         BREAK=1
115                                         ADDRS="`ali $ADDRS`"
116                                         continue
117                                 fi
118                                 ;;
119                         esac
120                 done
121                 ;;
122         esac
123 done
124
125 #
126 # Build the command line
127 #
128
129 CMDLINE="mhmail $ADDRS"
130
131 if [ "$BODY" != "NO BODY" ]; then
132         CMDLINE="$CMDLINE -b \"$BODY\""
133 else
134         if [ -t 0 ]; then               # if stdin is a terminal
135                 echo "$PGM : Body of message is being read from stdin."
136                 echo "  Please enter your message and then type ctrl-D."
137                 echo ""
138         fi
139 fi
140 if [ ! -z "$CC" ]; then
141         CMDLINE="$CMDLINE -cc $CC"
142 fi
143 if [ ! -z "$FROM" ]; then
144         CMDLINE="$CMDLINE -from $FROM"
145 fi
146 if [ ! -z "$SUBJECT" ]; then
147         CMDLINE="$CMDLINE -subject \"$SUBJECT\""
148 fi
149
150 eval "$CMDLINE"         # do it!
151 exit 0