From 9c55d0015717c198dce748afd97db12eb70586c7 Mon Sep 17 00:00:00 2001 From: Eric Wong Date: Sun, 28 Feb 2021 18:25:26 +0600 Subject: lei p2q: patch-to-query generator for "lei q --stdin" Instead of teaching the to-be-implemented "lei show" to search threads/messages based commits, this orthogonal sub-command is designed to generate queries for use with "lei q --stdin". URI-escaped query parameters may be generated with --uri for HTTP(S) public-inbox instances, but otherwise the output is designed for "lei q --stdin". To find threads for a given git commit from a git worktree: lei p2q $COMMIT_OID | lei q --stdin -t ... It can also read via --stdin|- curl $INBOX_URL/$MSGID/raw | lei p2q - | lei q --stdin -t Or from the filesystem: lei p2q $(git format-patch -1) | lei q --stdin -t This defaults to only generating "dfpost:"-prefixed terms since I've found those most useful for finding messages relating to a commit. This is subject to change. --want=s@ is a comma-separated or multi-value list of prefixes that defaults to "dfpost7". Not all are implemented, yet, but s, dfn, dfpre, and dfpost all seem to mostly work. Phrase handling may need to be tweaked to work with Xapian. OR, NEAR, ADJ, AND, NOT may be used with --want (e.g. --want=dfpost,OR,dfn) Prefixing the field prefix with '+' or '-' (e.g. --want=+dfpost) generates "+dfpost:$EXTRACTED_OID" for Xapian. For non-boolean search prefixes, wildcard (*) may also be supplied: (--want=dfn*) For boolean search prefixes, suffixing the field prefix with a digit (e.g. --want=dfpost7) provides a minimum length, allowing truncated variations to be searched. This is helpful for finding older messages as git chooses longer dfpost|dfpre abbreviations as repos get larger. Automatic date range generation is not implemented, yet. --- MANIFEST | 2 ++ 1 file changed, 2 insertions(+) (limited to 'MANIFEST') diff --git a/MANIFEST b/MANIFEST index 11ec5c01..5044e21c 100644 --- a/MANIFEST +++ b/MANIFEST @@ -187,6 +187,7 @@ lib/PublicInbox/LeiHelp.pm lib/PublicInbox/LeiImport.pm lib/PublicInbox/LeiMirror.pm lib/PublicInbox/LeiOverview.pm +lib/PublicInbox/LeiP2q.pm lib/PublicInbox/LeiQuery.pm lib/PublicInbox/LeiSearch.pm lib/PublicInbox/LeiStore.pm @@ -373,6 +374,7 @@ t/lei-import-maildir.t t/lei-import-nntp.t t/lei-import.t t/lei-mirror.t +t/lei-p2q.t t/lei-q-remote-import.t t/lei-q-thread.t t/lei.t -- cgit v1.2.3-24-ge0c7