Mercurial > index.cgi > dotfiles
annotate bin/hgeditor @ 84:fe021064d723
Adding 'hgeditor' to repo & environment
| author | Steve Huston <huston@srhuston.net> | 
|---|---|
| date | Wed, 24 Apr 2013 11:40:27 -0400 | 
| parents | |
| children | 
| rev | line source | 
|---|---|
| 84 
fe021064d723
Adding 'hgeditor' to repo & environment
 Steve Huston <huston@srhuston.net> parents: diff
changeset | 1 #!/bin/sh | 
| 
fe021064d723
Adding 'hgeditor' to repo & environment
 Steve Huston <huston@srhuston.net> parents: diff
changeset | 2 | 
| 
fe021064d723
Adding 'hgeditor' to repo & environment
 Steve Huston <huston@srhuston.net> parents: diff
changeset | 3 HGTMP="" | 
| 
fe021064d723
Adding 'hgeditor' to repo & environment
 Steve Huston <huston@srhuston.net> parents: diff
changeset | 4 cleanup_exit() { | 
| 
fe021064d723
Adding 'hgeditor' to repo & environment
 Steve Huston <huston@srhuston.net> parents: diff
changeset | 5 rm -rf "$HGTMP" | 
| 
fe021064d723
Adding 'hgeditor' to repo & environment
 Steve Huston <huston@srhuston.net> parents: diff
changeset | 6 } | 
| 
fe021064d723
Adding 'hgeditor' to repo & environment
 Steve Huston <huston@srhuston.net> parents: diff
changeset | 7 | 
| 
fe021064d723
Adding 'hgeditor' to repo & environment
 Steve Huston <huston@srhuston.net> parents: diff
changeset | 8 # Remove temporary files even if we get interrupted | 
| 
fe021064d723
Adding 'hgeditor' to repo & environment
 Steve Huston <huston@srhuston.net> parents: diff
changeset | 9 trap "cleanup_exit" 0 # normal exit | 
| 
fe021064d723
Adding 'hgeditor' to repo & environment
 Steve Huston <huston@srhuston.net> parents: diff
changeset | 10 trap "exit 255" HUP INT QUIT ABRT TERM | 
| 
fe021064d723
Adding 'hgeditor' to repo & environment
 Steve Huston <huston@srhuston.net> parents: diff
changeset | 11 | 
| 
fe021064d723
Adding 'hgeditor' to repo & environment
 Steve Huston <huston@srhuston.net> parents: diff
changeset | 12 HGTMP=$(mktemp -d ${TMPDIR-/tmp}/hgeditor.XXXXXX) | 
| 
fe021064d723
Adding 'hgeditor' to repo & environment
 Steve Huston <huston@srhuston.net> parents: diff
changeset | 13 [ x$HGTMP != x -a -d $HGTMP ] || { | 
| 
fe021064d723
Adding 'hgeditor' to repo & environment
 Steve Huston <huston@srhuston.net> parents: diff
changeset | 14 echo "Could not create temporary directory! Exiting." 1>&2 | 
| 
fe021064d723
Adding 'hgeditor' to repo & environment
 Steve Huston <huston@srhuston.net> parents: diff
changeset | 15 exit 1 | 
| 
fe021064d723
Adding 'hgeditor' to repo & environment
 Steve Huston <huston@srhuston.net> parents: diff
changeset | 16 } | 
| 
fe021064d723
Adding 'hgeditor' to repo & environment
 Steve Huston <huston@srhuston.net> parents: diff
changeset | 17 | 
| 
fe021064d723
Adding 'hgeditor' to repo & environment
 Steve Huston <huston@srhuston.net> parents: diff
changeset | 18 ( | 
| 
fe021064d723
Adding 'hgeditor' to repo & environment
 Steve Huston <huston@srhuston.net> parents: diff
changeset | 19 grep '^HG: changed' "$1" | cut -b 13- | while read changed; do | 
| 
fe021064d723
Adding 'hgeditor' to repo & environment
 Steve Huston <huston@srhuston.net> parents: diff
changeset | 20 "$HG" diff "$changed" >> "$HGTMP/diff" | 
| 
fe021064d723
Adding 'hgeditor' to repo & environment
 Steve Huston <huston@srhuston.net> parents: diff
changeset | 21 done | 
| 
fe021064d723
Adding 'hgeditor' to repo & environment
 Steve Huston <huston@srhuston.net> parents: diff
changeset | 22 ) | 
| 
fe021064d723
Adding 'hgeditor' to repo & environment
 Steve Huston <huston@srhuston.net> parents: diff
changeset | 23 | 
| 
fe021064d723
Adding 'hgeditor' to repo & environment
 Steve Huston <huston@srhuston.net> parents: diff
changeset | 24 cat "$1" > "$HGTMP/msg" | 
| 
fe021064d723
Adding 'hgeditor' to repo & environment
 Steve Huston <huston@srhuston.net> parents: diff
changeset | 25 | 
| 
fe021064d723
Adding 'hgeditor' to repo & environment
 Steve Huston <huston@srhuston.net> parents: diff
changeset | 26 MD5=$(which md5sum 2>/dev/null) || \ | 
| 
fe021064d723
Adding 'hgeditor' to repo & environment
 Steve Huston <huston@srhuston.net> parents: diff
changeset | 27 MD5=$(which md5 2>/dev/null) | 
| 
fe021064d723
Adding 'hgeditor' to repo & environment
 Steve Huston <huston@srhuston.net> parents: diff
changeset | 28 [ -x "${MD5}" ] && CHECKSUM=`${MD5} "$HGTMP/msg"` | 
| 
fe021064d723
Adding 'hgeditor' to repo & environment
 Steve Huston <huston@srhuston.net> parents: diff
changeset | 29 if [ -s "$HGTMP/diff" ]; then | 
| 
fe021064d723
Adding 'hgeditor' to repo & environment
 Steve Huston <huston@srhuston.net> parents: diff
changeset | 30 vim "+e $HGTMP/diff" '+set buftype=help filetype=diff' "+split $HGTMP/msg" "+wincmd r" "+resize 10" || exit $? | 
| 
fe021064d723
Adding 'hgeditor' to repo & environment
 Steve Huston <huston@srhuston.net> parents: diff
changeset | 31 else | 
| 
fe021064d723
Adding 'hgeditor' to repo & environment
 Steve Huston <huston@srhuston.net> parents: diff
changeset | 32 vim "$HGTMP/msg" || exit $? | 
| 
fe021064d723
Adding 'hgeditor' to repo & environment
 Steve Huston <huston@srhuston.net> parents: diff
changeset | 33 fi | 
| 
fe021064d723
Adding 'hgeditor' to repo & environment
 Steve Huston <huston@srhuston.net> parents: diff
changeset | 34 [ -x "${MD5}" ] && (echo "$CHECKSUM" | ${MD5} -c >/dev/null 2>&1 && exit 13) | 
| 
fe021064d723
Adding 'hgeditor' to repo & environment
 Steve Huston <huston@srhuston.net> parents: diff
changeset | 35 | 
| 
fe021064d723
Adding 'hgeditor' to repo & environment
 Steve Huston <huston@srhuston.net> parents: diff
changeset | 36 mv "$HGTMP/msg" "$1" | 
| 
fe021064d723
Adding 'hgeditor' to repo & environment
 Steve Huston <huston@srhuston.net> parents: diff
changeset | 37 | 
| 
fe021064d723
Adding 'hgeditor' to repo & environment
 Steve Huston <huston@srhuston.net> parents: diff
changeset | 38 exit $? | 
