[PATCH v2] contrib/nmbug: new script for sharing tags with prefix notmuch::
David Bremner
david at tethera.net
Sat Oct 29 10:27:33 PDT 2011
From: David Bremner <bremner at debian.org>
In this initial version, we take care of import and export of the
appropriate tags in line oriented format amenable to easy merging.
We also provide (not very robust/clever) commands commit/push/pull
to deal with a git repo that as already been set up.
---
fixed silly debugging output.
add some convenience commands.
contrib/nmbug | 77 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 77 insertions(+), 0 deletions(-)
create mode 100755 contrib/nmbug
diff --git a/contrib/nmbug b/contrib/nmbug
new file mode 100755
index 0000000..a449d60
--- /dev/null
+++ b/contrib/nmbug
@@ -0,0 +1,77 @@
+#!/bin/bash
+# Copyright (c) 2011 David Bremner
+# License: same as notmuch
+
+NMHOME=${HOME}/.nmbug
+
+NMTAGS=($(notmuch search --output=tags "*"|grep "^notmuch::"))
+
+function dump() {
+ notmuch dump -- $(printf " tag:%s" ${NMTAGS[*]}) |\
+ while read -r msgid rest
+ do
+ outfile=$NMHOME/tags/$(echo $msgid | sha1sum - | cut -f1 -d' ')
+ printf "msg-id: %s\n" $msgid > $outfile
+ tmp=${rest#\(}
+ read -r -a tags <<<${tmp%\)};
+ for tag in "${tags[@]}"; do
+ case $tag in
+ notmuch::*)
+ echo "tag: $tag" >> $outfile
+ ;;
+ *)
+ # nothing
+ esac
+ done
+ done
+
+}
+
+function cat_file() {
+ tags=""
+ id=""
+ cat $1 |\
+ while read -r what data
+ do
+ case $what in
+ msg-id:)
+ printf "%s (" $data
+ ;;
+ tag:)
+ printf "%s " $data
+ ;;
+ *)
+ echo "Syntax error $what"
+ exit 1
+ esac
+ done
+ echo ")"
+}
+
+function restore() {
+ find $NMHOME/tags -type f |\
+ while read -r filename
+ do
+ cat_file $filename
+ done | notmuch restore --match=notmuch::
+}
+case $1 in
+ dump)
+ dump
+ ;;
+ restore)
+ restore
+ ;;
+ commit)
+ (cd $NMHOME && git add tags && git commit)
+ ;;
+ push)
+ (cd $NMHOME && git push)
+ ;;
+ pull)
+ (cd $NMHOME && git pull)
+ ;;
+ *)
+ echo unknown command $1;
+esac
+
--
1.7.6.3
More information about the notmuch
mailing list