5 # Each note is just a file. Stored under /var/spool/admin/notes/[open|ack]/<package>/<note>
8 # note ack <note> - moves note to "acknowledged" spool
9 # note list [package] show notes for a given package, or all notes
10 # note delete <note> - delete a note from the system
11 # note edit <package> [file] - edit or create a note
14 # discard unchanged new note file
15 # quiet options to suppress new note name echo
16 # semi-quiet to just output the number
17 # renumber? to renumber all notes/reset sequence
19 # clean up unlocked temp files
21 SPOOL=/var/lib/admin/notes
28 #cd $SPOOL || { echo "can't chdir to $SPOOL" ; exit 1; }
30 [ -z "$1" ] && set list
38 file=$(find $SPOOL -type f -name "$1")
39 if [ -z "$file" ] ; then
40 [ -z "$quiet" ] || printf "no such note $1\n"
47 file=$(find $SPOOL/open -type f -name "$1")
48 if [ -z "$file" ] ; then
49 [ -z "$quiet" ] || printf "no such open note $1\n"
58 -a) find $SPOOL/ack -type f -printf '%P\n' | sort -n
60 *) find $SPOOL/open -type f -printf '%P\n' | sort -n
65 len=$(find $SPOOL/open -type f -printf "%P\n" | awk ' { if ( length > x ) { x = length } }END{ print x }')
66 find $SPOOL/open -type f -printf "%P\n" | sort -n | while read note ; do
67 subject=$(head -1 $SPOOL/open/$note)
68 date=$(stat -c '%y' $SPOOL/open/$note | cut -f1 -d' ')
69 owner=$(stat -c '%U' $SPOOL/open/$note)
70 printf '%*s %8s %s %s\n' $len $note $owner "$date" "$subject"
75 subfile=$(echo $file | sed -e "s|$SPOOL/open/||")
76 filedir=$(dirname $subfile)
77 mkdir -p $SPOOL/ack/$filedir
78 mv $file $SPOOL/ack/$filedir
81 # new -- edit a new file for package general (or ZPMNOTEPACKAGE)
82 # new package -- edit a new note for package
83 # new package file -- use file for new package note
84 if [ $# -eq 0 ]; then set ${ZPMNOTEPACKAGE:-general}; fi
86 # edit a new file for the note
88 tmp=$(mktemp -p $SPOOL/open)
90 [ -f $SPOOL/.template ] && cp $SPOOL/.template $tmp
92 file=$(zpm sequence notes)
93 mv $tmp $SPOOL/open/$pkg/$file || { rm -f $tmp; exit 1; }
98 # take note from file or stdin
100 mkdir -p $SPOOL/open/$pkg
103 tmp=$(mktemp -p $SPOOL/open)
105 file=$(zpm sequence notes)
106 mv $tmp $SPOOL/open/$pkg/$file || { rm -f $tmp ; exit 1; }
110 tmp=$(mktemp -p $SPOOL/open)
112 #flock -n -E3 $tmp vim $tmp
113 #if [ $? -eq 3 ]; then echo already editing $1; exit 1; fi
114 file=$(zpm sequence notes)
115 mv $tmp $SPOOL/open/$pkg/$file || { rm -f $tmp; exit 1; }
122 flock -n -E3 $file vim $file
123 if [ $? -eq 3 ]; then echo already editing $1; exit 1; fi
138 echo '$0: unknown command ' $cmd 1>&2