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" 1>&2
47 file=$(find $SPOOL/open -type f -name "$1")
48 if [ -z "$file" ] ; then
49 [ -z "$quiet" ] || printf "no such open note $1\n" 1>&2
57 notefile=$(findnote $1)
58 printf "%s\n" $(basename $(dirname $notefile))
62 -a) find $SPOOL/ack -type f -printf '%P\n' | sort -n
64 *) find $SPOOL/open -type f -printf '%P\n' | sort -n
69 len=$(find $SPOOL/open -type f -printf "%P\n" | awk ' { if ( length > x ) { x = length } }END{ print x }')
70 find $SPOOL/open -type f -printf "%P\n" | sort -n | while read note ; do
71 subject=$(head -1 $SPOOL/open/$note)
72 date=$(stat -c '%y' $SPOOL/open/$note | cut -f1 -d' ')
73 owner=$(stat -c '%U' $SPOOL/open/$note)
74 printf '%*s %8s %s %s\n' $len $note $owner "$date" "$subject"
79 subfile=$(echo $file | sed -e "s|$SPOOL/open/||")
80 filedir=$(dirname $subfile)
81 mkdir -p $SPOOL/ack/$filedir
82 mv $file $SPOOL/ack/$filedir
85 # new -- edit a new file for package general (or ZPMNOTEPACKAGE)
86 # new package -- edit a new note for package
87 # new package file -- use file for new package note
88 if [ $# -eq 0 ]; then set ${ZPMNOTEPACKAGE:-general}; fi
90 # edit a new file for the note
92 tmp=$(mktemp -p $SPOOL/open)
94 [ -f $SPOOL/.template ] && cp $SPOOL/.template $tmp
96 file=$(zpm sequence notes)
97 mv $tmp $SPOOL/open/$pkg/$file || { rm -f $tmp; exit 1; }
102 # take note from file or stdin
104 mkdir -p $SPOOL/open/$pkg
107 tmp=$(mktemp -p $SPOOL/open)
109 file=$(zpm sequence notes)
110 mv $tmp $SPOOL/open/$pkg/$file || { rm -f $tmp ; exit 1; }
114 tmp=$(mktemp -p $SPOOL/open)
116 #flock -n -E3 $tmp vim $tmp
117 #if [ $? -eq 3 ]; then echo already editing $1; exit 1; fi
118 file=$(zpm sequence notes)
119 mv $tmp $SPOOL/open/$pkg/$file || { rm -f $tmp; exit 1; }
126 flock -n -E3 $file vim $file
127 if [ $? -eq 3 ]; then echo already editing $1; exit 1; fi
142 echo '$0: unknown command ' $cmd 1>&2