20 | #!/bin/sh |
HGTMP="" | |
cleanup_exit() { | |
rm -rf "$HGTMP" | |
} | |
# Remove temporary files even if we get interrupted | |
trap "cleanup_exit" 0 # normal exit | |
trap "exit 255" HUP INT QUIT ABRT TERM | |
140
140:b39b7473c873
.hgeditor: modernize syntax and fix shellcheck warnings
Anton Shestakov <av6@dwimlabs.net>
previous changes: 120:b8da199312e2
line |
diff
|
HGTMP=$(mktemp -d "${TMPDIR-/tmp}/hgeditor.XXXXXX") |
140:b39b7473c873
.hgeditor: modernize syntax and fix shellcheck warnings
Anton Shestakov <av6@dwimlabs.net>
previous changes: 120:b8da199312e2
line |
diff
|
if [ -z "$HGTMP" ] || ! [ -d "$HGTMP" ]; then |
140:b39b7473c873
.hgeditor: modernize syntax and fix shellcheck warnings
Anton Shestakov <av6@dwimlabs.net>
previous changes: 120:b8da199312e2
line |
diff
|
echo "Could not create temporary directory! Exiting." 1>&2 |
140:b39b7473c873
.hgeditor: modernize syntax and fix shellcheck warnings
Anton Shestakov <av6@dwimlabs.net>
previous changes: 120:b8da199312e2
line |
diff
|
exit 1 |
140:b39b7473c873
.hgeditor: modernize syntax and fix shellcheck warnings
Anton Shestakov <av6@dwimlabs.net>
previous changes: 120:b8da199312e2
line |
diff
|
fi |
20 | |
141
141:66e31ac77c94
.hgrc: have a committemplate and use it in .hgeditor for showing diff
Anton Shestakov <av6@dwimlabs.net>
previous changes: 140:b39b7473c873
line |
diff
|
LINE=$(fgrep 'HG: --- 8< ---' -nm1 "$1" | cut -d: -f1) |
141:66e31ac77c94
.hgrc: have a committemplate and use it in .hgeditor for showing diff
Anton Shestakov <av6@dwimlabs.net>
previous changes: 140:b39b7473c873
line |
diff
|
if [ -n "$LINE" ]; then |
141:66e31ac77c94
.hgrc: have a committemplate and use it in .hgeditor for showing diff
Anton Shestakov <av6@dwimlabs.net>
previous changes: 140:b39b7473c873
line |
diff
|
head -n "$(( LINE - 1 ))" "$1" > "$HGTMP/msg" |
141:66e31ac77c94
.hgrc: have a committemplate and use it in .hgeditor for showing diff
Anton Shestakov <av6@dwimlabs.net>
previous changes: 140:b39b7473c873
line |
diff
|
tail -n +"$(( LINE + 1 ))" "$1" | sed -e 's/^HG: //g' > "$HGTMP/diff" |
141:66e31ac77c94
.hgrc: have a committemplate and use it in .hgeditor for showing diff
Anton Shestakov <av6@dwimlabs.net>
previous changes: 140:b39b7473c873
line |
diff
|
else |
141:66e31ac77c94
.hgrc: have a committemplate and use it in .hgeditor for showing diff
Anton Shestakov <av6@dwimlabs.net>
previous changes: 140:b39b7473c873
line |
diff
|
cat "$1" > "$HGTMP/msg" |
141:66e31ac77c94
.hgrc: have a committemplate and use it in .hgeditor for showing diff
Anton Shestakov <av6@dwimlabs.net>
previous changes: 140:b39b7473c873
line |
diff
|
fi |
20 | |
MD5=$(which md5sum 2>/dev/null) || \ | |
MD5=$(which md5 2>/dev/null) | |
140
140:b39b7473c873
.hgeditor: modernize syntax and fix shellcheck warnings
Anton Shestakov <av6@dwimlabs.net>
previous changes: 120:b8da199312e2
line |
diff
|
[ -x "${MD5}" ] && CHECKSUM=$(${MD5} "$HGTMP/msg") |
20 | if [ -s "$HGTMP/diff" ]; then |
120
120:b8da199312e2
.hgeditor: enable spell checker in message window
Anton Shestakov <av6@dwimlabs.net>
previous changes: 119:d54e285942f3
line |
diff
|
vim -f "+e $HGTMP/diff" '+set buftype=help filetype=diff' "+vsplit $HGTMP/msg" '+setlocal spell' || exit $? |
20 | else |
120
120:b8da199312e2
.hgeditor: enable spell checker in message window
Anton Shestakov <av6@dwimlabs.net>
previous changes: 119:d54e285942f3
line |
diff
|
vim -f "$HGTMP/msg" '+setlocal spell' || exit $? |
20 | fi |
[ -x "${MD5}" ] && (echo "$CHECKSUM" | ${MD5} -c >/dev/null 2>&1 && exit 13) | |
mv "$HGTMP/msg" "$1" | |
exit $? |