diff options
author | Sean Whitton <spwhitton@spwhitton.name> | 2019-11-27 09:05:23 -0700 |
---|---|---|
committer | Sean Whitton <spwhitton@spwhitton.name> | 2019-11-27 09:05:23 -0700 |
commit | 38bc9283bfeb1b10f695e82e40e49bbf0e510553 (patch) | |
tree | 3506f50aa424e377a48cef3b2fb60d1a5c2723a6 | |
parent | 72ce929c86b9404e566b84f94769f03686066745 (diff) | |
parent | 0f4661cde91646c0481d00413d1188cf538829d5 (diff) | |
download | mailscripts-38bc9283bfeb1b10f695e82e40e49bbf0e510553.tar.gz |
Merge tag 'debian/0.15-1' into buster-bpo
mailscripts release 0.15-1 for unstable (sid) [dgit]
[dgit distro=debian no-split --quilt=linear]
# gpg: Signature made Thu 21 Nov 2019 03:34:55 PM MST
# gpg: using RSA key 9B917007AE030E36E4FC248B695B7AE4BF066240
# gpg: Good signature from "Sean Whitton <spwhitton@spwhitton.name>" [ultimate]
# Primary key fingerprint: 8DC2 487E 51AB DD90 B5C4 753F 0F56 D055 3B6D 411B
# Subkey fingerprint: 9B91 7007 AE03 0E36 E4FC 248B 695B 7AE4 BF06 6240
-rw-r--r-- | debian/changelog | 12 | ||||
-rwxr-xr-x | email-print-mime-structure | 11 | ||||
-rw-r--r-- | mailscripts.el | 14 | ||||
-rwxr-xr-x | notmuch-extract-patch/notmuch-extract-patch | 12 |
4 files changed, 42 insertions, 7 deletions
diff --git a/debian/changelog b/debian/changelog index d88ba42..c2339c7 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,15 @@ +mailscripts (0.15-1) unstable; urgency=medium + + * notmuch-extract-patch: when checking the reroll count, do not require + that '[PATCH nn/mm]' appear right at the beginning of the subject. + * notmuch-extract-patch: strip text in Subject: before '[PATCH nn/mm]' + to avoid it getting into the commit message. + E.g. the Debian BTS prepends 'Bug#nnnnnn: ' to the Subject: field. + * mailscripts.el: handle situation in which notmuch-show-thread-id + contains an arbitrary search query rather than the thread ID. + + -- Sean Whitton <spwhitton@spwhitton.name> Thu, 21 Nov 2019 15:31:18 -0700 + mailscripts (0.14-1~bpo10+1) buster-backports; urgency=medium * Rebuild for buster-backports. diff --git a/email-print-mime-structure b/email-print-mime-structure index 4f165b1..27fb532 100755 --- a/email-print-mime-structure +++ b/email-print-mime-structure @@ -78,15 +78,16 @@ class MimePrinter(object): nbytes = len(payload) print(f'{prefix}{z.get_content_type()}{cset}{disposition}{fname} {nbytes:d} bytes') - try_decrypt:bool = self.args.pgpkey or self.args.use_gpg_agent + cryptopayload:Optional[Message] = None + ciphertext:Union[List[Message],str,bytes,None] = None + try_pgp_decrypt:bool = self.args.pgpkey or self.args.use_gpg_agent - if try_decrypt and \ + if try_pgp_decrypt and \ (parent is not None) and \ (parent.get_content_type().lower() == 'multipart/encrypted') and \ (str(parent.get_param('protocol')).lower() == 'application/pgp-encrypted') and \ (num == 2): - cryptopayload:Optional[Message] = None - ciphertext:Union[List[Message],str,bytes,None] = z.get_payload() + ciphertext = z.get_payload() if not isinstance(ciphertext, str): logging.warning('encrypted part was not a leaf mime part somehow') return @@ -97,6 +98,8 @@ class MimePrinter(object): if cryptopayload is None: logging.warning(f'Unable to decrypt') return + + if cryptopayload is not None: newprefix = prefix[:-3] + ' ' print(f'{newprefix}↧ (decrypts to)') self.print_tree(cryptopayload, newprefix + '└', z, 0) diff --git a/mailscripts.el b/mailscripts.el index 916aec8..9c51f73 100644 --- a/mailscripts.el +++ b/mailscripts.el @@ -1,7 +1,7 @@ ;;; mailscripts.el --- functions to access tools in the mailscripts package ;; Author: Sean Whitton <spwhitton@spwhitton.name> -;; Version: 0.13 +;; Version: 0.15 ;; Package-Requires: (notmuch projectile) ;; Copyright (C) 2018, 2019 Sean Whitton @@ -68,7 +68,17 @@ particular, this Emacs Lisp function supports passing only entire threads to the notmuch-extract-patch(1) command." (interactive "Dgit repo: \nsbranch name (or leave blank to apply to current HEAD): \np") - (let ((thread-id notmuch-show-thread-id) + (let ((thread-id + ;; If `notmuch-show' was called with a notmuch query rather + ;; than a thread ID, as `org-notmuch-follow-link' in + ;; org-notmuch.el does, then `notmuch-show-thread-id' might + ;; be an arbitrary notmuch query instead of a thread ID. We + ;; need to wrap such a query in thread:{} before passing it + ;; to notmuch-extract-patch(1), or we might not get a whole + ;; thread extracted (e.g. if the query is just id:foo) + (if (string= (substring notmuch-show-thread-id 0 7) "thread:") + notmuch-show-thread-id + (concat "thread:{" notmuch-show-thread-id "}"))) (default-directory (expand-file-name repo))) (mailscripts--check-out-branch branch) (shell-command diff --git a/notmuch-extract-patch/notmuch-extract-patch b/notmuch-extract-patch/notmuch-extract-patch index 4cfda4c..d67e542 100755 --- a/notmuch-extract-patch/notmuch-extract-patch +++ b/notmuch-extract-patch/notmuch-extract-patch @@ -56,10 +56,19 @@ def has_reroll_count(msg, v): or (v == 1 and not any(entry[0] == 'v' for entry in subject_prefix)) def get_subject_prefix(s): - match = re.search(r'''^\[(.*PATCH.*)\]''', s) + match = re.search(r'''\[(.*PATCH.*)\]''', s) if match: return match.group(1).split() +# if Subject: contains [PATCH nn/mm] then any text before that should +# be stripped, as it should not form part of the commit message. (The +# debbugs system prepends 'Bug#nnnnnn: ') +def munge_subject(msg): + match = re.search(r'''\[(.*PATCH.*)\].*$''', msg['subject']) + if match: + del msg['subject'] + msg['subject'] = match.group(0) + def main(): try: opts, query = getopt.getopt(sys.argv[1:], "v:", ["reroll-count="]) @@ -81,6 +90,7 @@ def main(): for m in in_mb: if is_git_patch(m) and has_reroll_count(m, reroll_count): sys.stderr.write(m['subject']+"\n") + munge_subject(m) out_mb.add(m) out_mb.flush() print(open(out_mb_file.name).read()) |