@@ -108,6 +108,42 @@ list_to_be_updated ()
108108 ) < $ISSUES
109109}
110110
111+ generate_html ()
112+ {
113+ pr " <table border=1>"
114+ echo " <tr>"
115+ echo " <th>#"
116+ echo " <th>Description"
117+ echo " <th>Resolution"
118+ echo " <th>Reference"
119+ echo " <th>Archived on"
120+ echo " <th>Resolved on"
121+ echo " <th>Spec up-to-date?"
122+ (
123+ IFS=' '
124+ i=0
125+ while read desc res ref date1 date2 spec; do
126+ i=` expr $i + 1`
127+ echo " <tr valign=baseline>"
128+ echo " <td>$i "
129+ echo " <td>$desc "
130+ echo " <td>$res "
131+ case " $ref " in
132+ http:* | ftp:* ) echo " <td><a href='$ref '>here</a>" ;;
133+ * ) echo " <td>$ref " ;;
134+ esac
135+
136+ echo " <td>$date1 "
137+ echo " <td>$date2 "
138+ echo " <td>$spec "
139+ done < $ISSUES
140+ )
141+ pr " </table>"
142+ pr " <p>Last update: " ` ls -l $ISSUES | cut -c 42-47` \
143+ " (HTML version generated: " ` date " $DATEFRM " ` " )"
144+
145+ }
146+
111147add_issue ()
112148{
113149 if [ -z " $ref " ]; then
@@ -121,6 +157,7 @@ add_issue ()
121157 ref=` echo $ref | tr " & " " " `
122158 desc=` echo $desc | tr " & " " " `
123159 pr " $desc - $ref " ` date " $DATEFRM " ` " - no" >> $ISSUES
160+ generate_html > $HTML
124161}
125162
126163resolve_issue ()
@@ -129,14 +166,14 @@ resolve_issue ()
129166 pr " Number: \c"
130167 read num
131168 fi
169+ case " $num " in
170+ [0-9] | [0-9][0-9] | [0-9][0-9][0-9] | [0-9][0-9][0-9][0-9]) ;;
171+ * ) pr " Error: not a valid issue number: $num " >&2 ; return 2;;
172+ esac
132173 if [ -z " $res " ]; then
133174 pr " Resolution: \c"
134175 read res
135176 fi
136- case " $num " in
137- [0-9] | [0-9][0-9] | [0-9][0-9][0-9] | [0-9][0-9][0-9][0-9]) ;;
138- * ) pr " Error: not a valid issue number: $num " >&2 ; exit 2;;
139- esac
140177 res=` echo $res | tr " & " " " `
141178 date=` date " $DATEFRM " `
142179 (
@@ -152,6 +189,7 @@ resolve_issue ()
152189 done < $ISSUES > $TMP
153190 )
154191 mv $TMP $ISSUES
192+ generate_html > $HTML
155193}
156194
157195update_issue ()
@@ -162,7 +200,7 @@ update_issue ()
162200 fi
163201 case " $num " in
164202 [0-9] | [0-9][0-9] | [0-9][0-9][0-9] | [0-9][0-9][0-9][0-9]) ;;
165- * ) pr " Error: not a valid issue number: $num " >&2 ; exit 2;;
203+ * ) pr " Error: not a valid issue number: $num " >&2 ; return 2;;
166204 esac
167205 (
168206 IFS=' '
@@ -180,69 +218,37 @@ update_issue ()
180218 done < $ISSUES > $TMP
181219 )
182220 mv $TMP $ISSUES
183- }
184-
185- generate_html ()
186- {
187- pr " <table border=1>"
188- echo " <tr>"
189- echo " <th>#"
190- echo " <th>Description"
191- echo " <th>Resolution"
192- echo " <th>Reference"
193- echo " <th>Archived on"
194- echo " <th>Resolved on"
195- echo " <th>Spec up-to-date?"
196- (
197- IFS=' '
198- i=0
199- while read desc res ref date1 date2 spec; do
200- i=` expr $i + 1`
201- echo " <tr valign=baseline>"
202- echo " <td>$i "
203- echo " <td>$desc "
204- echo " <td>$res "
205- case " $ref " in
206- http:* | ftp:* ) echo " <td><a href='$ref '>here</a>" ;;
207- * ) echo " <td>$ref " ;;
208- esac
209-
210- echo " <td>$date1 "
211- echo " <td>$date2 "
212- echo " <td>$spec "
213- done < $ISSUES
214- )
215- pr " </table>"
216- pr " <p>Last update: " ` ls -l $ISSUES | cut -c 42-47` \
217- " (HTML version generated: " ` date " $DATEFRM " ` " )"
218-
221+ generate_html > $HTML
219222}
220223
221224interactive ()
222225{
223- pr " Choose one of:"
224- while [ " $reply " = " " ]; do
225- pr " l list the issues"
226- pr " t list only unresolved issues"
227- pr " y list issues to be updated in the spec"
228- pr " a add an issue"
229- pr " r mark an issue as resolved"
230- pr " u mark the spec as up-to-date w.r.t. an issue"
231- pr " g generate HTML page with the issues"
232- pr " q quit"
233- pr " ? \c"
234- read reply
235- case " $reply " in
236- l) list_issues;;
237- a) add_issue; generate_html > $HTML ;;
238- r) resolve_issue; generate_html > $HTML ;;
239- u) update_issue; generate_html > $HTML ;;
240- g) generate_html;;
241- t) list_unresolved;;
242- y) list_to_be_updated;;
243- q) ;;
244- * ) pr " Not understood, please try again" ; reply=;;
245- esac
226+ while [ " $reply " != ' q' ]; do
227+ reply=
228+ pr " Choose one of:"
229+ while [ " $reply " = " " ]; do
230+ pr " l list the issues"
231+ pr " t list only unresolved issues"
232+ pr " y list issues to be updated in the spec"
233+ pr " a add an issue"
234+ pr " r mark an issue as resolved"
235+ pr " u mark the spec as up-to-date w.r.t. an issue"
236+ pr " g generate HTML page with the issues"
237+ pr " q quit"
238+ pr " ? \c"
239+ read reply
240+ case " $reply " in
241+ l) list_issues;;
242+ a) add_issue; generate_html > $HTML ;;
243+ r) resolve_issue; generate_html > $HTML ;;
244+ u) update_issue; generate_html > $HTML ;;
245+ g) generate_html;;
246+ t) list_unresolved;;
247+ y) list_to_be_updated;;
248+ q) ;;
249+ * ) pr " Not understood, please try again" ; reply=;;
250+ esac
251+ done
246252 done
247253}
248254
@@ -251,12 +257,13 @@ if [ $# = 0 ]; then
251257else
252258 case " $1 " in
253259 -l) list_issues;;
254- -a) ref=$2 ; shift 2; desc=" $* " ; add_issue; generate_html > $HTML ; ;
255- -r) num=$2 ; shift 2; res=" $* " ; resolve_issue; generate_html > $HTML ; ;
256- -u) num=$2 ; update_issue; generate_html > $HTML ; ;
260+ -a) ref=$2 ; shift 2; desc=" $* " ; add_issue;;
261+ -r) num=$2 ; shift 2; res=" $* " ; resolve_issue;;
262+ -u) num=$2 ; update_issue;;
257263 -g) generate_html;;
258264 -t) list_unresolved;;
259265 -y) list_to_be_updated;;
266+ -? ) quick_help;;
260267 * ) quick_help; exit 1;;
261268 esac
262269fi
0 commit comments