OSDN Git Service

Merge branch 'work-ldp340'
[linuxjm/jm.git] / admin / JMpost
1 #!/usr/bin/bash
2 #
3 # JM にステータスその他をポストするコマンド
4 # パスの通ったディレクトリに tr と nkf が必要です.
5 #
6 #
7 # ***初期設定***
8 #
9 # もし bash コマンドが /usr/bin/bash でない場合は、
10 # 一行目を適宜書き換えてください。
11
12 # 名前とメールアドレス。自分専用で使うときには
13 # 以下の変数を設定しておいてください。
14 #
15 #name="JM Project"
16 #mail="linuxjm-discuss@lists.sourceforge.jp"
17
18 # sendmail コマンド。置き場所が違う場合は書き換えてください。
19 #
20 sendmail="/usr/lib/sendmail"
21
22 # 送信先
23 #
24 jmaddr="linuxjm-discuss@lists.sourceforge.jp"
25
26 # 一時ファイルの置き場所
27 #
28 TMPF="/var/tmp/jm.$$.tmp"
29
30 while getopts 'S:P:F:D:M:R:p:' opt; do
31         case $opt in
32         'S') stat=$OPTARG ;;
33         'P') ppkg=$OPTARG ;;
34         'F') page=$OPTARG ;;
35         'D') date=$OPTARG ;;
36         'M') mail=$OPTARG ;;
37         'R') name=$OPTARG ;;
38         'p') post=$OPTARG ;;
39         '?') cat << EOB > /dev/stderr
40 usage: `basename $0` [-S stat] [-P pkg] [-F page] [-D date]
41         [-M mail] [-R name] filename [-post]
42   -S: page status (one of: TR, DO, DP, PR, RO)
43   -P: package name the page belongs to (please quote if space is included)
44   -F: filename of the manual
45   -D: date string YYYY/MM/DD (today, if ommited)
46   -M: Posters mail address
47   -R: Posters real name (please quote if space is included)
48
49 filename can be ommitted when status is "TR" or "PR".
50
51 if -post flag is specified at last, output is post to JM-ML.
52 Otherwise, output is sent to stdout.
53 EOB
54         exit 0
55         ;;
56         esac
57 done
58 shift `expr $OPTIND - 1`
59
60 if [ ${stat:=undef} = "undef" ]; then
61         echo "Input Page Status"                               > /dev/stderr
62         echo " TR: Translation Reservation"                    > /dev/stderr
63         echo " DO: Draft Only (without proof reservation)"     > /dev/stderr
64         echo " DP: Draft and Proof reservation"                > /dev/stderr
65         echo " PR: Proof Reservation"                          > /dev/stderr
66         echo " RO: Release"                                    > /dev/stderr
67         echo -n "Input a one ov above   : " > /dev/stderr
68         read stat
69 fi
70 stat=`echo $stat | tr a-z A-Z`
71
72 #
73 # File check
74 #
75 if (echo $stat | egrep -q '^[DR]'); then
76         if [ ! -f "$1" ]; then
77                 echo "Sorry, file $1 does not exist"
78                 exit 2;
79         fi
80 fi
81
82 #
83 # page information
84 #
85 if [ "${ppkg:=undef}" = "undef" ]; then
86         echo -n "Package name of the page?  : " > /dev/stderr
87         read ppkg
88 fi
89
90 if [ ${page:=undef} = "undef" ]; then
91         echo -n "Page Filename (as hoge.1)? : " > /dev/stderr
92         read page
93 fi
94
95 if [ ${date:=undef} = "undef" ]; then
96         date=`date "+%Y/%m/%d"`
97 fi
98
99 #
100 # poster's information
101 #
102 if [ ${mail:=undef} = "undef" ]; then
103         echo -n "Your email address?        : " > /dev/stderr
104         read mail
105 fi
106
107 if [ "${name:=undef}" = "undef" ]; then
108         echo -n "Your Real Name?            : " > /dev/stderr
109         read name
110 fi
111
112 cat << EOB > $TMPF
113 From: $mail
114 To: $jmaddr
115 Subject: [POST:$stat] $ppkg $page
116
117 <STATUS>
118 stat: $stat
119 ppkg: $ppkg
120 page: $page
121 date: $date
122 mail: $mail
123 name: $name
124 </STATUS>
125
126 EOB
127
128 if (echo $stat | egrep -q '^[DR]'); then
129         cat $1 >> $TMPF
130 fi
131
132 #
133 # 入力に . だけの行があったらエラーメッセージを出して終了する.
134 #
135 if (grep -q "^\.$" $TMPF); then
136         cat << EOL > /dev/stderr
137 The input contains the line which has a period solely.
138 It will break the sendmail, and will not be formatted
139 by groff as you want.  Please use "\&." instead.
140 EOL
141         rm -f $TMPF
142         exit 1
143 fi
144
145 #
146 # 最後の argument まで shift する。
147 #
148 while [ "$#" -gt 1 ]; do
149         shift;
150 done
151
152 #
153 # write to file or post:
154 #
155 if [ "$1" = "-post" -o "$post" = "ost" ]; then
156         nkf -j $TMPF | $sendmail $jmaddr
157 else
158         nkf -j $TMPF
159 fi
160
161 rm -f $TMPF
162