rpedit (877B)
1 #!/bin/sh 2 3 usage() { 4 printf "usage: %s [-h] [-m folder] id\n" "$(basename $1)" 2>&1 5 exit 1 6 } 7 8 folder="" 9 10 while getopts "hm:" opt; 11 do 12 case $opt in 13 m) 14 folder="$OPTARG" 15 ;; 16 *) 17 usage $0 18 ;; 19 esac 20 done 21 shift $(expr $OPTIND - 1) 22 23 if [ "$1" = "--" ]; 24 then 25 shift 1 26 fi 27 28 if [ $# -lt 1 ]; 29 then 30 usage $0 31 fi 32 33 if [ -z "$folder" ]; 34 then 35 folder=$(rpsel) 36 fi 37 38 id=$(rpids -m $folder -- $* | awk -F' ' '{print $1}') 39 if [ -z "$id" ]; 40 then 41 usage $0 42 fi 43 44 tmpfile=$(mktemp /tmp/rpedit.XXXXXXX.eml) 45 signalh() { 46 rm -f $tmpfile 47 } 48 trap 'signalh' 3 6 9 15 49 50 rpview -m $folder -r $id > $tmpfile 51 md5before=$(md5sum $tmpfile) 52 eval $EDITOR $tmpfile 53 md5after=$(md5sum $tmpfile) 54 55 if [ "$md5before" != "$md5after" ]; 56 then 57 rprm -qm $folder $id 58 mid=$(rpadd -m $folder -f seen $tmpfile) 59 if [ $? -eq 0 ]; 60 then 61 PAGER= rpscan -m $folder $mid 62 fi 63 else 64 echo "Nothing changed. Aborting." 65 fi 66 67 signalh 68