rpcountmail - rohrpost - A commandline mail client to change the world as we see it.
(HTM) git clone git://r-36.net/rohrpost
(DIR) Log
(DIR) Files
(DIR) Refs
(DIR) README
(DIR) LICENSE
---
rpcountmail (3889B)
---
1 #!/bin/sh
2 # $NetBSD: countmail,v 1.5 2002/07/02 17:18:21 mycroft Exp $
3
4 # Modified to fit rohrpost in 2011 by Christoph Lohmann <20h@r-36.net>.
5
6 #
7 # Copyright (c) 1998, 2002 The NetBSD Foundation, Inc.
8 # All rights reserved.
9 #
10 # This code is derived from software contributed to The NetBSD Foundation
11 # by Charles M. Hannum.
12 #
13 # Redistribution and use in source and binary forms, with or without
14 # modification, are permitted provided that the following conditions
15 # are met:
16 # 1. Redistributions of source code must retain the above copyright
17 # notice, this list of conditions and the following disclaimer.
18 # 2. Redistributions in binary form must reproduce the above copyright
19 # notice, this list of conditions and the following disclaimer in the
20 # documentation and/or other materials provided with the distribution.
21 # 3. All advertising materials mentioning features or use of this software
22 # must display the following acknowledgement:
23 # This product includes software developed by the NetBSD
24 # Foundation, Inc. and its contributors.
25 # 4. Neither the name of The NetBSD Foundation nor the names of its
26 # contributors may be used to endorse or promote products derived
27 # from this software without specific prior written permission.
28 #
29 # THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
30 # ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
31 # TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
32 # PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
33 # BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
34 # CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
35 # SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
36 # INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
37 # CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
38 # ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
39 # POSSIBILITY OF SUCH DAMAGE.
40 #
41
42 # Count the messages in your mailbox, using only POSIX shell builtins.
43 #
44 # Caveats:
45 #
46 # The read loop is horrendously slow on every implementation I've
47 # tried. I suggest using from(1) and wc(1) instead, though these are
48 # not shell builtins.
49
50 # for krb.
51 #set -- `from -t`
52 #v=$3
53 #set -- `from | wc -l`
54 #v=$1
55 #v=`from | wc -l`
56 v=$(rpstats -a)
57
58 #v=0
59 #exec 0</var/mail/$USER
60 #while read line; do
61 # case "$line" in
62 # "From "*) v=$(($v + 1)) ;;
63 # esac
64 #done
65 #exec 0<&-
66
67 set --
68 g=0
69 v=000$v
70
71 while :; do
72
73 case $v in
74 '' | 0 | 00) break ;;
75 *000) ;;
76 *)
77 case $g in
78 0) x= ;;
79 1) x=THOUSAND ;;
80 2) x=MILLION ;;
81 3) x=BILLION ;;
82 4) x=TRILLION ;;
83 5) x=QUADRILLION ;;
84 6) x=QUINTILLION ;;
85 7) x=SEXTILLION ;;
86 8) x=SEPTILLION ;;
87 *)
88 echo "YOU HAVE TOO MUCH MAIL!" 1>&2
89 exit 1
90 ;;
91 esac
92
93 case $v in
94 *10) y=TEN ;;
95 *11) y=ELEVEN ;;
96 *12) y=TWELVE ;;
97 *13) y=THIRTEEN ;;
98 *14) y=FOURTEEN ;;
99 *15) y=FIFTEEN ;;
100 *16) y=SIXTEEN ;;
101 *17) y=SEVENTEEN ;;
102 *18) y=EIGHTEEN ;;
103 *19) y=NINETEEN ;;
104 *2?) y=TWENTY ;;
105 *3?) y=THIRTY ;;
106 *4?) y=FORTY ;;
107 *5?) y=FIFTY ;;
108 *6?) y=SIXTY ;;
109 *7?) y=SEVENTY ;;
110 *8?) y=EIGHTY ;;
111 *9?) y=NINETY ;;
112 *) y= ;;
113 esac
114
115 case $v in
116 *[01]? | *?0) ;;
117 *) y=$y- ;;
118 esac
119
120 case $v in
121 *1?) ;;
122 *1) y=${y}ONE ;;
123 *2) y=${y}TWO ;;
124 *3) y=${y}THREE ;;
125 *4) y=${y}FOUR ;;
126 *5) y=${y}FIVE ;;
127 *6) y=${y}SIX ;;
128 *7) y=${y}SEVEN ;;
129 *8) y=${y}EIGHT ;;
130 *9) y=${y}NINE ;;
131 esac
132
133 case $v in
134 *1??) z=ONE ;;
135 *2??) z=TWO ;;
136 *3??) z=THREE ;;
137 *4??) z=FOUR ;;
138 *5??) z=FIVE ;;
139 *6??) z=SIX ;;
140 *7??) z=SEVEN ;;
141 *8??) z=EIGHT ;;
142 *9??) z=NINE ;;
143 *) z= ;;
144 esac
145
146 set $z ${z:+HUNDRED} $y $x $*
147 ;;
148 esac
149
150 g=$(($g + 1))
151 v=${v%%???}
152
153 done
154
155 p=S
156
157 case "$*" in
158 "") set ZERO ;;
159 ONE) p= ;;
160 esac
161
162 echo "$*!
163
164 $* MAIL MESSAGE$p!
165
166 HAHAHAHAHA!"