1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
|
#!/bin/bash
#
# HELPLOG -- Format, edit, and log a new help digest to the system help file.
#
# Usage:
#
# helplog [none|system|applications] log a new help digest
# helplog -e edit the helpfile (with locking)
#
# The system helpfile is locked for exclusive access while a help digest is
# being logged, or while the helpfile is being edited. Logging can be
# aborted either by typing <ctrl/c>, or by editing the editor with ":q!"
# (i.e., by exiting the editor without modifying the temporary file being
# edited). Help logs are formatted and edited in a small temporary file in
# /tmp and are added at the end of the helpfile only if the task is not
# aborted and the edit modifies the input help log template. To go back and
# edit a previously logged help digest use "helplog -e".
#
# Record Format:
#
# NUMBER: record number, decimal, sequential.
# KEYWORDS: search keywords (eg task/package, category)
# DATE: date help digest logged, unix format date string
# FROM: user login name
# Q: digest of question
# A: digest of answer
#
# New records are added to the tail of the bugfile. Left justify field labels,
# indent text to the first tab stop, one blank line between bug entries.
#
# ----------------------------------------------------------------------------
iraf="`/bin/echo ${iraf}/ | tr -s '/'`"
helpfile="${iraf}local/help.log"
arcfile="/u1/ftp/iraf/v216/help.log"
tmpfile="/tmp/help."
lokfile="/tmp/help.lok"
number=1
keywords=""
from="`whoami`"
date="`date`"
#irafmail="iraf@iraf.noao.edu valdes"
irafmail="sites@tucana.tuc.noao.edu valdes"
newsgroup="$1"
# Cleanup (vector here on interrupt).
cleanup() {
if [ -e $lokfile ]; then
rm -f $lokfile
fi
exit 0
}
# Get exclusive access to the helpfile.
if [ -e $lokfile ]; then
find $helpfile -newer $lokfile -exec rm -f $lokfile \;
while [ -e $lokfile ]; do
/bin/echo "waiting for access to system helpfile"
sleep 15
done
fi
date > $lokfile
trap cleanup 2
# If we were called as "helplog -e", simply edit the locked helpfile.
if [ "$1" = "-e" ]; then
vi + $helpfile
cleanup
fi
# Increment the help record number.
number="`grep '^NUMBER:' $helpfile | tail -1 | sed -e 's/^NUMBER:.//'`"
if [ "$number" = "" ]; then
number=1
else
number="`expr $number + 1`"
fi
# Format new help entry in a temporary file and edit it.
SKP=0
tmpfile=$tmpfile$number
if [ -e $tmpfile ]; then
/bin/echo "file $tmpfile already exists"
rm -i $tmpfile
if [ -e $tmpfile ]; then
SKP=1
fi
fi
if [ $SKP = 0 ]; then
/bin/echo "NUMBER: $number" >> $tmpfile
/bin/echo "KEYWORDS: $keywords" >> $tmpfile
/bin/echo "DATE: $date" >> $tmpfile
/bin/echo "FROM: $from" >> $tmpfile
/bin/echo "" >> $tmpfile
/bin/echo "Q: ..." >> $tmpfile
/bin/echo "" >> $tmpfile
/bin/echo "A: ..." >> $tmpfile
fi
cp $tmpfile $tmpfile.ORIG
vi $tmpfile
# Add new help entry to helpfile (exiting the editor without modifying the file
# causes the help to be discarded).
cmp -s $tmpfile $tmpfile.ORIG
if [ $? = 0 ]; then
/bin/echo "system helpfile not modified"
rm -f $tmpfile $tmpfile.ORIG
else
while [ $newsgroup != "system" -a $newsgroup != "applications" -a $newsgroup != "none" ]; do
/bin/echo -n "Newsgroup (none|system|applications): "
read newsgroup
done
keywords="`grep '^KEYWORDS:' $tmpfile | tail -1 | sed -e 's/^KEYWORDS:.//'`"
/bin/echo "" >> $helpfile; cat $tmpfile >> $helpfile
if [ -e $arcfile ]; then
/bin/echo "" >> $arcfile; cat $tmpfile >> $arcfile
fi
mail -s "helplog.$number"": $keywords" $irafmail < $tmpfile
if [ $newsgroup != "none" ]; then
mail -s "helplog.$number"": $keywords"\
adass-iraf-{$newsgroup}@iraf.noao.edu < $tmpfile
fi
rm -f $tmpfile $tmpfile.ORIG
fi
cleanup
|