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
|
#! /bin/csh
# 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.
#
# ----------------------------------------------------------------------------
unalias rm set find echo sleep tail sed cmp echo cat mail
set helpfile = "${iraf}local/help.log"
set arcfile = "/u1/ftp/iraf/v212/help.log"
set tmpfile = "/tmp/help."
set lokfile = "/tmp/help.lok"
set number = 1
set keywords = ""
set from = "`whoami`"
set date = "`date`"
#set irafmail = "iraf@iraf.noao.edu valdes"
set irafmail = "sites@tucana.tuc.noao.edu valdes"
set newsgroup = "$1"
# Get exclusive access to the helpfile.
if (-e $lokfile) then
find $helpfile -newer $lokfile -exec rm -f $lokfile \;
while (-e $lokfile)
echo "waiting for access to system helpfile"
sleep 15
end
endif
date > $lokfile
onintr cleanup
# If we were called as "helplog -e", simply edit the locked helpfile.
if ("$1" == "-e") then
vi + $helpfile
goto cleanup
endif
# Increment the help record number.
set number = "`grep '^NUMBER:' $helpfile | tail -1 | sed -e 's/^NUMBER:.//'`"
if ("$number" == "") then
set number = 1
else
set number = "`expr $number + 1`"
endif
# Format new help entry in a temporary file and edit it.
set tmpfile = $tmpfile$number
if (-e $tmpfile) then
echo "file $tmpfile already exists"
rm -i $tmpfile
if (-e $tmpfile) then
goto edithelp
endif
endif
echo "NUMBER: $number" >> $tmpfile
echo "KEYWORDS: $keywords" >> $tmpfile
echo "DATE: $date" >> $tmpfile
echo "FROM: $from" >> $tmpfile
echo "" >> $tmpfile
echo "Q: ..." >> $tmpfile
echo "" >> $tmpfile
echo "A: ..." >> $tmpfile
edithelp:
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 ($status) then
while ($newsgroup != "system" && $newsgroup != "applications" && $newsgroup != "none")
echo -n "Newsgroup (none|system|applications): "
set newsgroup = "$<"
end
set keywords = "`grep '^KEYWORDS:' $tmpfile | tail -1 | sed -e 's/^KEYWORDS:.//'`"
echo "" >> $helpfile; cat $tmpfile >> $helpfile
echo "" >> $arcfile; cat $tmpfile >> $arcfile
mail -s "helplog.$number"": $keywords" $irafmail < $tmpfile
if ($newsgroup != "none") then
mail -s "helplog.$number"": $keywords"\
adass-iraf-{$newsgroup}@iraf.noao.edu < $tmpfile
endif
rm -f $tmpfile $tmpfile.ORIG
else
echo "system helpfile not modified"
rm -f $tmpfile $tmpfile.ORIG
endif
# Cleanup (vector here on interrupt).
cleanup:
if (-e $lokfile) then
rm -f $lokfile
endif
|