Mercurial > hg
view hgeditor @ 859:6390c377a9e6
Trap OSError when deleting env vars
On the other OS, it seems that case insensitivity for
environment vars can bite users when using some unknown
combination of python 2.4.1 and win2kSP4+minsys (and
probably other vversions of these softwares).
The best way to avoid problems in those weird cases is to
ignore OSError exception during env var deletion.
author | Edouard Gomez <ed.gomez@free.fr> |
---|---|
date | Tue, 09 Aug 2005 09:36:34 -0800 |
parents | 9c918287d10b |
children | 1bc619b12025 |
line wrap: on
line source
#!/bin/sh # # This is an example of using HGEDITOR to automate the signing of # commits and so on. # change this to one to turn on GPG support SIGN=0 # If you want to pass your favourite editor some other parameters # only for Mercurial, modify this: case "${EDITOR}" in "") EDITOR="vi" ;; emacs) EDITOR="$EDITOR -nw" ;; gvim|vim) EDITOR="$EDITOR -f -o" ;; esac HGTMP="" cleanup_exit() { rm -rf "$HGTMP" } # Remove temporary files even if we get interrupted trap "cleanup_exit" 0 # normal exit trap "exit 255" 1 2 3 6 15 # HUP INT QUIT ABRT TERM HGTMP="${TMPDIR-/tmp}/hgeditor.$RANDOM.$RANDOM.$RANDOM.$$" (umask 077 && mkdir "$HGTMP") || { echo "Could not create temporary directory! Exiting." 1>&2 exit 1 } ( cd "`hg root`" grep '^HG: changed' "$1" | cut -b 13- | while read changed; do hg diff "$changed" >> "$HGTMP/diff" done ) echo > "$HGTMP/msg" if [ "$SIGN" == "1" ]; then MANIFEST=`grep '^HG: manifest hash' "$1" | cut -b 19-` echo -e "\nmanifest hash: $MANIFEST" >> "$HGTMP/msg" fi grep -vE '^(HG: manifest hash .*)?$' "$1" >> "$HGTMP/msg" CHECKSUM=`md5sum "$HGTMP/msg"` $EDITOR "$HGTMP/msg" "$HGTMP/diff" || exit $? echo "$CHECKSUM" | md5sum -c >/dev/null 2>&1 && exit 13 if [ "$SIGN" == "1" ]; then { head -n 1 "$HGTMP/msg" echo grep -v "^HG:" "$HGTMP/msg" | gpg -t -a -u "${HGUSER}" --clearsign } > "$HGTMP/msg.gpg" && mv "$HGTMP/msg.gpg" "$1" else mv "$HGTMP/msg" "$1" fi exit $?