]> pd.if.org Git - zpackage/blobdiff - zpm-note
don't run ldconfig if etc doesn't exist
[zpackage] / zpm-note
index 72f5f401a9d8c2c514a7868c98af78dabcf74580..f78bdd81c96861cdae5359b06827ba0155b2f7a4 100755 (executable)
--- a/zpm-note
+++ b/zpm-note
@@ -18,8 +18,9 @@
 # lock the temp files
 # clean up unlocked temp files
 
-SPOOL=/var/lib/admin/notes
-OPEN=$SPOOL/open
+: ${ZPMSPOOL:=/var/lib/admin/notes}
+
+OPEN=$ZPMSPOOL/open
 
 set -e
 
@@ -35,7 +36,7 @@ cmd=$1
 shift
 
 findnote() {
-       file=$(find $SPOOL -type f -name "$1")
+       file=$(find $ZPMSPOOL -type f -name "$1")
        if [ -z "$file" ] ; then
                [ -z "$quiet" ] || printf "no such note $1\n" 1>&2
                exit 1
@@ -44,7 +45,7 @@ findnote() {
 }
 
 findopen() {
-       file=$(find $SPOOL/open -type f -name "$1")
+       file=$(find $ZPMSPOOL/open -type f -name "$1")
        if [ -z "$file" ] ; then
                [ -z "$quiet" ] || printf "no such open note $1\n" 1>&2
                exit 1
@@ -59,27 +60,33 @@ case $cmd in
                ;;
        list)
                case $1 in
-                       -a) find $SPOOL/ack -type f -printf '%P\n' | sort -n
+                       -a) find $ZPMSPOOL/ack -type f -printf '%P\n' | sort -n
                                ;;
-                       *) find $SPOOL/open -type f -printf '%P\n' | sort -n
+                       ?*) if [ -d $ZPMSPOOL/open/$1 ] ; then
+                               find $ZPMSPOOL/open/$1 -type f -printf '%P\n' | sort -n
+                       else
+                               exit 1
+                       fi
+                               ;;
+                       *) find $ZPMSPOOL/open -type f -printf '%P\n' | sort -n
                                ;;
                esac
                ;;
        detail)
-               len=$(find $SPOOL/open -type f -printf "%P\n" | awk ' { if ( length > x ) { x = length } }END{ print x }')
-               find $SPOOL/open -type f -printf "%P\n" | sort -n | while read note ; do
-                       subject=$(head -1 $SPOOL/open/$note)    
-                       date=$(stat -c '%y' $SPOOL/open/$note | cut -f1 -d' ')
-                       owner=$(stat -c '%U' $SPOOL/open/$note)
+               len=$(find $ZPMSPOOL/open -type f -printf "%P\n" | awk ' { if ( length > x ) { x = length } }END{ print x }')
+               find $ZPMSPOOL/open -type f -printf "%P\n" | sort -n | while read note ; do
+                       subject=$(head -1 $ZPMSPOOL/open/$note) 
+                       date=$(stat -c '%y' $ZPMSPOOL/open/$note | cut -f1 -d' ')
+                       owner=$(stat -c '%U' $ZPMSPOOL/open/$note)
                        printf '%*s %8s %s %s\n' $len $note $owner "$date" "$subject"
                done
                ;;
        ack)
                file=$(findopen $1)
-               subfile=$(echo $file | sed -e "s|$SPOOL/open/||")
+               subfile=$(echo $file | sed -e "s|$ZPMSPOOL/open/||")
                filedir=$(dirname $subfile)
-               mkdir -p $SPOOL/ack/$filedir
-               mv $file $SPOOL/ack/$filedir
+               mkdir -p $ZPMSPOOL/ack/$filedir
+               mv $file $ZPMSPOOL/ack/$filedir
                ;;
        new)
                # new -- edit a new file for package general (or ZPMNOTEPACKAGE)
@@ -89,37 +96,33 @@ case $cmd in
 
                # edit a new file for the note
                if [ $# -eq 1 ]; then
-                       tmp=$(mktemp -p $SPOOL/open)
+                       tmp=$(mktemp -p $ZPMSPOOL/open)
                        pkg=$1
-                       [ -f $SPOOL/.template ] && cp $SPOOL/.template $tmp
+                       [ -f $ZPMSPOOL/.template ] && cp $ZPMSPOOL/.template $tmp
+                       #flock -n -E3 $tmp vim $tmp
+                       #if [ $? -eq 3 ]; then echo already editing $1; exit 1; fi
                        ${EDITOR:-vi} $tmp
-                       file=$(zpm sequence notes)
-                       mv $tmp $SPOOL/open/$pkg/$file || { rm -f $tmp; exit 1; }
-                       echo "$pkg/$file"
-                       exit 0
+               else
+                       # take note from file or stdin
+                       pkg=$1 ; shift
+                       mkdir -p $ZPMSPOOL/open/$pkg
+                       case $1 in
+                               '-')
+                                       tmp=$(mktemp -p $ZPMSPOOL/open)
+                                       cat - > $tmp
+                                       ;;
+                               *)
+                                       tmp=$(mktemp -p $ZPMSPOOL/open)
+                                       cp $1 $tmp
+                                       ;;
+                       esac
                fi
-
-               # take note from file or stdin
-               pkg=$1 ; shift
-               mkdir -p $SPOOL/open/$pkg
-               case $1 in
-                       '-')
-                               tmp=$(mktemp -p $SPOOL/open)
-                               cat - > $tmp
-                               file=$(zpm sequence notes)
-                               mv $tmp $SPOOL/open/$pkg/$file || { rm -f $tmp ; exit 1; }
-                               echo $file
-                               ;;
-                       *)
-                               tmp=$(mktemp -p $SPOOL/open)
-                               cp $1 $tmp
-                               #flock -n -E3 $tmp vim $tmp
-                               #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 $file
-                               ;;
-               esac
+               file=$(zpm sequence notes)
+               mkdir -p $ZPMSPOOL/open/$pkg
+               mv $tmp $ZPMSPOOL/open/$pkg/$file || { rm -f $tmp; exit 1; }
+               # TODO run newhooks in $ZPMSPOOL/.hook/newnote
+               echo "$pkg/$file"
+               exit 0
                ;;
        edit)
                file=$(findnote $1)