Mercurial > hg > mercurial-crew-with-dirclash
view hgeditor @ 668:d93f0b127b6a
Dont trap SIGHUP on the other OS
# HG changeset patch
# User Edouard Gomez <ed.gomez@free.fr>
# Node ID 34a547cb33fe515ef4cdc8ccd173546671253ae9
# Parent 8c89408a7154d2da94766e957a088407fd0fef93
Dont trap SIGHUP on the other OS
HG doesn't work anymore on the other OS since signals are trapped.
This is due to the fact that as explained in Python docs not all
signals are defined for all platforms, so python was complaning about
missing signal.SIGHUP.
author | Edouard Gomez <ed.gomez@free.fr> |
---|---|
date | Sun, 10 Jul 2005 16:02:39 -0800 |
parents | 0100a43788ca |
children | d6723636c172 |
line wrap: on
line source
#!/bin/sh # # This is an example of using HGEDITOR to automate the signing of # commits and so on. T1=""; T2="" cleanup_exit() { rm -f "$T1" "$T2" exit $1 } # If you want to pass your favourite editor some other parameters # only for Mercurial, modify this: case "${EDITOR:=vi}" in emacs) EDITOR="$EDITOR -nw" ;; gvim|vim) EDITOR="$EDITOR -f -o" ;; esac if grep -q "^HG: merge resolve" "$1" ; then # we don't sign merges exec $EDITOR "$1" else # Remove temporary files even if we get interrupted trap "cleanup_exit 255" TERM KILL INT QUIT ABRT T1=`mktemp`; T2=`mktemp` # Add manifest hash in order to sign whole repository state. # Remove HG: prefix, as we want that to be stored. grep '^HG: manifest hash' "$1" | cut -b 5- >> "$T1" # Add all other state information grep -v '^HG: manifest hash' "$1" >> "$T1" ( cd "`hg root`" grep '^HG: changed' "$1" | cut -b 13- | while read changed; do hg diff "$changed" >> "$T2" done ) CHECKSUM=`md5sum "$T1"` $EDITOR "$T1" "$T2" || cleanup_exit $? echo "$CHECKSUM" | md5sum -c --status && cleanup_exit 13 { head -n 1 "$T1" echo grep -v "^HG:" "$T1" | gpg -t -a -u "${HGUSER}" --clearsign } > "$T2" && mv "$T2" "$1" cleanup_exit $? fi