Show More
@@ -1,21 +1,42 | |||
|
1 | 1 | #!/bin/bash |
|
2 | 2 | # |
|
3 | 3 | # This is an example of using HGEDITOR to automate the signing of |
|
4 | 4 | # commits and so on. |
|
5 | 5 | |
|
6 | MANIFEST=`grep '^HG: manifest hash' $1 | cut -b 19-` | |
|
7 | if grep -q "^HG: merge resolve" $1 ; then | |
|
6 | T1=""; T2="" | |
|
7 | cleanup_exit() { | |
|
8 | rm -f "$T1" "$T2" | |
|
9 | exit $1 | |
|
10 | } | |
|
11 | ||
|
12 | case "${EDITOR:=vi}" in | |
|
13 | emacs) | |
|
14 | EDITOR="$EDITOR -nw" | |
|
15 | ;; | |
|
16 | gvim|vim) | |
|
17 | EDITOR="$EDITOR -f -o" | |
|
18 | ;; | |
|
19 | esac | |
|
20 | ||
|
21 | if grep -q "^HG: merge resolve" "$1" ; then | |
|
8 | 22 | # we don't sign merges |
|
9 | $EDITOR $1 | |
|
23 | exec $EDITOR "$1" | |
|
10 | 24 | else |
|
11 | T=`mktemp` | |
|
12 |
|
|
|
13 | # show a diff so writing commit comments is easier | |
|
14 | hg diff $CHANGED >> $T | |
|
15 | echo -e "\n\nmanifest hash: $MANIFEST" > $1 | |
|
16 | emacs -nw $T $1 | |
|
17 | head -1 $1 > $T | |
|
18 | echo >> $T | |
|
19 | gpg -a -u $HGUSER -o - --clearsign $1 >> $T | |
|
20 | mv $T $1 | |
|
25 | T1=`mktemp`; T2=`mktemp` | |
|
26 | MANIFEST=`grep '^HG: manifest hash' "$1" | cut -b 19-` | |
|
27 | ||
|
28 | echo -e "\n\nmanifest hash: $MANIFEST" >> "$T1" | |
|
29 | grep -vE '^(HG: manifest hash .*)?$' "$1" >> "$T1" | |
|
30 | hg diff >> "$T2" | |
|
31 | ||
|
32 | CHECKSUM=`md5sum "$T1"` | |
|
33 | $EDITOR "$T1" "$T2" || cleanup_exit $? | |
|
34 | echo "$CHECKSUM" | md5sum -c 2>/dev/null && cleanup_exit 0 | |
|
35 | { | |
|
36 | head -1 "$T1" | |
|
37 | echo | |
|
38 | grep -v "^HG:" "$T1" | gpg -a -u "${HGUSER:-$EMAIL}" --clearsign | |
|
39 | } > "$T2" && mv "$T2" "$1" | |
|
40 | cleanup_exit $? | |
|
21 | 41 | fi |
|
42 |
General Comments 0
You need to be logged in to leave comments.
Login now