# note delete <note> - delete a note from the system
# note edit <package> [file] - edit or create a note
+# TODO
+# discard unchanged new note file
+# quiet options to suppress new note name echo
+# semi-quiet to just output the number
+# renumber? to renumber all notes/reset sequence
+# lock the temp files
+# clean up unlocked temp files
+
SPOOL=/var/lib/admin/notes
OPEN=$SPOOL/open
[ -z "$1" ] && set list
+quiet=
+
cmd=$1
shift
findnote() {
file=$(find $SPOOL -type f -name "$1")
if [ -z "$file" ] ; then
- printf "no such note $1\n"
+ [ -z "$quiet" ] || printf "no such note $1\n"
exit 1
fi
echo $file
findopen() {
file=$(find $SPOOL/open -type f -name "$1")
if [ -z "$file" ] ; then
- printf "no such open note $1\n"
+ [ -z "$quiet" ] || printf "no such open note $1\n"
exit 1
fi
echo $file
mv $file $SPOOL/ack/$filedir
;;
new)
- if [ $# -eq 1 ]; then set general $1; fi
+ # new -- edit a new file for package general (or ZPMNOTEPACKAGE)
+ # new package -- edit a new note for package
+ # new package file -- use file for new package note
+ if [ $# -eq 0 ]; then set ${ZPMNOTEPACKAGE:-general}; fi
+
+ # edit a new file for the note
+ if [ $# -eq 1 ]; then
+ tmp=$(mktemp -p $SPOOL/open)
+ pkg=$1
+ [ -f $SPOOL/.template ] && cp $SPOOL/.template $tmp
+ ${EDITOR:-vi} $tmp
+ file=$(zpm sequence notes)
+ mv $tmp $SPOOL/open/$pkg/$file || { rm -f $tmp; exit 1; }
+ echo "$pkg/$file"
+ exit 0
+ fi
+
+ # take note from file or stdin
pkg=$1 ; shift
mkdir -p $SPOOL/open/$pkg
case $1 in
cat - > $tmp
file=$(zpm sequence notes)
mv $tmp $SPOOL/open/$pkg/$file || { rm -f $tmp ; exit 1; }
- echo created $file
+ echo $file
;;
*)
tmp=$(mktemp -p $SPOOL/open)
#if [ $? -eq 3 ]; then echo already editing $1; exit 1; fi
file=$(zpm sequence notes)
mv $tmp $SPOOL/open/$pkg/$file || { rm -f $tmp; exit 1; }
- echo created $file
+ echo $file
;;
esac
;;
flock -n -E3 $file vim $file
if [ $? -eq 3 ]; then echo already editing $1; exit 1; fi
;;
+ resolve)
+ file=$(findnote $1)
+ echo $file
+ ;;
remove)
file=$(findnote $1)
rm $file