summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2021-05-23Rework url-retrieve-synchronously wrapperKyle Meyer
piem-download-and-decompress calls url-retrieve-synchronously, checks for a 200 status, and then manually removes the header. This works okay, but it'd be good for the error handling to match what's done by url-insert-file-contents. Introduce a new macro that largely copies what is done by url-insert-file-contents. The main difference is that url-insert is used instead of url-insert-buffer-contents so that the contents can be inserted literally. This approach is based on Emacs's 5f9671e57e (lisp/emacs-lisp/package.el: Fix decoding of downloaded files, 2019-05-18). Message-Id: <20210523214623.31331-3-kyle@kyleam.com>
2021-05-23b4: Check for message ID match when using current buffer's URLKyle Meyer
If piem-mid-to-thread-functions fails to generate the thread, piem-b4--get-am-files tries to download the mbox from the URL associated with the current buffer. However, it uses the message ID returned by piem-mid rather than the message ID passed by piem-b4-am-from-mid. That's not a safe assumption for non-interactive calls to piem-b4-am-from-mid. Construct the URL with the message ID passed by piem-b4-am-from-mid, and skip the download completely if that message ID doesn't match the one for the current buffer. Message-Id: <20210523214623.31331-2-kyle@kyleam.com>
2021-05-23piem-use-magit: Unconditionally set to tKyle Meyer
When piem is loaded, piem-use-magit is enabled if Magit has already been loaded. This approach is potentially confusing: a user may want to use Magit, be happy that it seems to just work, and then confused when it doesn't work in some later session where loading Magit happens to not be triggered before loading piem. All the relevant sites have fboundp guards (and those are cheap), so there's no advantage to disabling this if Magit isn't enabled at load time. Set piem-use-magit to t by default. Message-Id: <20210522203905.16504-3-kyle@kyleam.com>
2021-05-23piem-use-magit: Reword docstring to clarify scopeKyle Meyer
This option isn't really about using Magit wherever possible, but, as the manual already states, using Magit for some user-facing operations. Message-Id: <20210522203905.16504-2-kyle@kyleam.com>
2021-03-12piem: Add :maildir keyword to piem-inboxesXinglu Chen
Previously the user was able to configure a maildir to inject threads into, but the user might want the maildir to be different depending on which mailing list the threads was coming from. With the `:maildir` keyword, users can configure the maildir on a per-list basis. If there is not `:maildir` configured for a mailing list, it will fallback to the value of `piem-maildir-directory`. Message-Id: <702dccedfc5e67a41bb0dd58fe66af6e3f204bb5.1615568004.git.public@yoctocell.xyz>
2021-02-24Release version 0.2.0v0.2.0Kyle Meyer
2021-02-24manual: Move under Documentation/Kyle Meyer
2021-02-22Require Transient 0.3.0Kyle Meyer
Transient 0.3.0 was just released. Require it, and stop using now obsolete macros. Message-Id: <20210222034807.23437-1-kyle@kyleam.com>
2021-02-07piem-copy-mid-url: AutoloadKyle Meyer
piem-copy-mid-url will usually be called through piem-dispatch, which is autoloaded, so autoloading piem-copy-mid-url doesn't matter in that context, but users are of course free to bind/call piem-copy-mid-url directly.
2021-02-07Merge branch 'km/copy-mid-url'Kyle Meyer
2021-02-07manual: Add section on "copy public-inbox link" functionalityKyle Meyer
Cc: Xinglu Chen <public@yoctocell.xyz> Message-Id: <20210207075738.8752-6-kyle@kyleam.com>
2021-02-07piem-copy-mid-url: Allow overriding browse-url-browser-functionKyle Meyer
I don't use EWW as my default browser for browse-url, but, for public-inbox HTTP access, I primarily use EWW. Add an option that makes it easier to do so without adding lots of regular expressions to browse-url-browser-function. Message-Id: <20210207075738.8752-5-kyle@kyleam.com>
2021-02-07piem-copy-mid-url: Add support for browsing urlKyle Meyer
I find the notmuch-show-stash-mlarchive-link-and-go command useful. It's like notmuch-show-stash-mlarchive-link but calls browse-url on the copied URL. Make piem-copy-mid-url do the same when given a prefix argument. Message-Id: <20210207075738.8752-4-kyle@kyleam.com>
2021-02-07piem-dispatch: Add command for copying public-inbox URLsKyle Meyer
piem-notmuch configures notmuch-show-stash-mlarchive-link-alist with a custom piem function that's useful for grabbing the pubic-inbox URL. Add a command to piem-dispatch that provides similar functionality. Message-Id: <20210207075738.8752-3-kyle@kyleam.com>
2021-02-07piem: Add helper to construct message ID linkKyle Meyer
There are two spots that use (piem-inbox-get :url ...) and piem-escape-mid to construct the public-inbox link, and there is about to be another. Extract this shared logic. Cc: Xinglu Chen <public@yoctocell.xyz> Message-Id: <20210207075738.8752-2-kyle@kyleam.com>
2021-02-07manual: Add a "Related projects and tools" sectionKyle Meyer
Message-Id: <20210206180630.3676-4-kyle@kyleam.com>
2021-02-07manual: contributing: Mention range-diffKyle Meyer
Message-Id: <20210206180630.3676-3-kyle@kyleam.com>
2021-02-07manual: contributing: Remove some unnecessary bitsKyle Meyer
Cut off part of a sentence that adds no additional information, and discard a footnote. Message-Id: <20210206180630.3676-2-kyle@kyleam.com>
2021-02-06manual: Add a missing wordKyle Meyer
2021-02-06Merge branch 'xc/notmuch-configure-mailing'Kyle Meyer
2021-02-06notmuch: Configure mailing list archive linksXinglu Chen
This adds an entry to `notmuch-show-stash-mlarchive-link-alist` that reads the `piem-inboxes` variable and returns the public-inbox archive url. This means that users don't have to manually add public-inbox archive urls to `notmuch-show-stash-mlarchive-link-alist`. [km: added explicit error when inbox not found and fixed a few typos] Message-Id: <8e8677cde716973081232aa65a37fa2fc621b15f.1612600790.git.public@yoctocell.xyz>
2021-02-06Update copyright lines for a +1 contributor worldKyle Meyer
I considered having each contributor keep their own copyright line for each file up to date (like in Guix), but I don't want to have to remember to pester patch submitters for that in reviews. Instead go with a public-inbox-inspired "all contributors".
2021-02-02piem-inbox-coderepo-maybe-read: Support project.elXinglu Chen
Add support for reading directory using project.el. project.el is a built-in library that offers similar functionality to projectile. It is also available on GNU ELPA. [km: repositioned fboundp call] Message-Id: <8ce1733ac0d0f63622d9060015949f31ce83d6ee.1612294275.git.public@yoctocell.xyz>
2021-01-29Prefer string-suffix-p to string-match-pKyle Meyer
It's faster and to my eyes slightly more readable. This changes the behavior of piem--ensure-trailing-slash for the edge case of "/". While I think the new behavior makes more sense, it doesn't matter in practice.
2021-01-29notmuch: Define group for piem-notmuch-modeKyle Meyer
Silence this warning: defcustom for ‘piem-notmuch-mode’ fails to specify containing group (I'm not sure why, but I don't see this when I run `make compile'.) Reported-by: Jonas Bernoulli <jonas@bernoul.li>
2021-01-23Add a few basic testsKyle Meyer
The more interesting things will involve more work and setup to test, but at least start testing some simple things. This project's Makefile was originally based off of Elfeed's, and the changes from this commit are adapted from there as well. Message-Id: <20210123044300.31326-1-kyle@kyleam.com>
2021-01-23manual: Discard stale note about -gnus limitationKyle Meyer
Xinglu Chen taught piem-gnus how to generate an am-ready mbox for an entire thread in c9228b9 (gnus: Add piem-gnus-mid-to-thread, 2021-01-20). Message-Id: <20210123023338.12211-1-kyle@kyleam.com>
2021-01-20gnus: Add piem-gnus-mid-to-threadXinglu Chen
Inserts a string of the whole thread in mbox format. Message-Id: <796fb84d852f2a5adea1502db144dae1bdc4fe0c.1611132172.git.public@yoctocell.xyz>
2021-01-19inject: Anchor 'From mboxrd@z ...' searchKyle Meyer
piem--write-mbox-to-maildir finds the bounds for each message by doing a plain search for "From mboxrd@z", but of course nothing prevents that from being within the text of the message. Anchor it to the start of the line to prevent false positives. Message-Id: <20210119054042.11985-1-kyle@kyleam.com>
2021-01-18manual: Fix a typoKyle Meyer
2021-01-18.dir-locals.el: Set indent-tabs-mode and sentence-end-double-spaceKyle Meyer
2021-01-03gnus, notmuch: Absorb now-shared bits into patch attachment helperKyle Meyer
With the previous commit, -notmuch more closely follows -gnus in its handling of attachments (e.g., getting the content with mm-display-inline). Replace piem-am-patch-attachment-p with a helper that has this shared logic. Message-Id: <20210104015435.18397-4-kyle@kyleam.com>
2021-01-03piem-notmuch-am-ready-mbox: Improve handling of attachmentsKyle Meyer
piem-notmuch-am-ready-mbox tries to get attached patches from the plist returned by notmuch-show-get-message-properties. This works okay for simple cases, but it doesn't find a patch if the content is encoded or if the MIME tree isn't structured as expected. Instead use mm-decode functions to get a list of handles and display their content. This new approach, as well as the previous one, probably isn't compatible with `format-patch --attach' patches, but I'm not going to worry about that until I actually see such a patch in the wild. Message-Id: <20210104015435.18397-3-kyle@kyleam.com>
2021-01-03piem-notmuch--with-current-message: Declare debug and indent specsKyle Meyer
Message-Id: <20210104015435.18397-2-kyle@kyleam.com>
2021-01-03Decode more message headersKyle Meyer
piem-extract-mbox-info feeds the "from" header value through rfc2047-decode-string, but the same treatment should be applied to other header values. Message-Id: <20210103063425.22718-1-kyle@kyleam.com>
2021-01-03Update copyright year to 2021Kyle Meyer
2020-12-24piem-inboxes: Document that :url must include trailing slashKyle Meyer
2020-12-14piem-b4-am-ready-from-mid: Use consistent spelling for message IDKyle Meyer
It looks like all other spots that aren't specifically referring to the header use "message ID".
2020-12-08process buffer: Restore header's leading newlineKyle Meyer
94d0281 (process buffer: Add time to header, 2020-11-27) was just supposed to add a "time:" field, but it also dropped the leading "\n". Add it back, and also avoid the unnecessary concat call. Message-Id: <87h7ovstub.fsf@kyleam.com>
2020-11-28process buffer: Add time to headerKyle Meyer
Recording the time makes it easier to digest and group the subprocess commands when inspecting the buffer later. Message-Id: <20201127205815.17313-1-kyle@kyleam.com>
2020-11-27piem: Put dispatch transient in its own sectionKyle Meyer
The dispatch transient is under the "Patch handling" section, which doesn't really fit because it already has a command that isn't related to patch handling (piem-inject-thread-into-maildir) and will gain more.
2020-11-22gnus, notmuch: Consider text/plain patch attachmentsKyle Meyer
When inspecting attachments for generating an am-ready mbox, both -notmuch and -gnus limit the operation to attachments with text/x-diff or text/x-patch content types. That has worked okay for me, though I've run into a few cases where I couldn't apply a patch attachment because it had a text/plain content type. To do something useful in this case, check the file name to see whether it looks like a patch. Message-Id: <20201122204609.12604-5-kyle@kyleam.com>
2020-11-22Use when-let in a few more spotsKyle Meyer
Message-Id: <20201122204609.12604-4-kyle@kyleam.com>
2020-11-22gnus, notmuch: Share "attachment is patch?" logicKyle Meyer
This will gain another condition. Avoid repeating it across two spots. Message-Id: <20201122204609.12604-3-kyle@kyleam.com>
2020-11-22gnus: Prefer mm-handle-media-type over direct accessKyle Meyer
Message-Id: <20201122204609.12604-2-kyle@kyleam.com>
2020-11-15Merge branch 'km/am-create-worktree'Kyle Meyer
2020-11-15manual: Document worktree-related optionsKyle Meyer
Message-Id: <20201115061518.22191-7-kyle@kyleam.com>
2020-11-15am: Allow flipping worktree creation with prefix argumentKyle Meyer
I tend to use a few dedicated worktrees for projects and am not interested in creating a worktree for each patch series I apply. However, I can imagine wanting to create one every now and then. Make it possible by adding a prefix argument to piem-am and piem-b4-am-from-mid that flips the meaning of piem-am-create-worktree. Message-Id: <20201115061518.22191-6-kyle@kyleam.com>
2020-11-15am: Add option to configure how worktree is readKyle Meyer
It seems likely that piem-am-read-worktree won't quite behave as some callers want. Let users specify a custom function. Message-Id: <20201115061518.22191-5-kyle@kyleam.com>
2020-11-15am: Support creating a new worktreeKyle Meyer
On the guix-patches list, simon described a workflow in which a new worktree is used to apply patches. Such a workflow is fairly straightforward to support in piem-am (and thus piem-b4-am-from-mid). Aside form reading the worktree from the caller, the main change needed is to replace 'git checkout (-b BRANCH|--detatched) [base]' with 'git worktree add (-b BRANCH|--detatched) PATH [base]'. Teach piem-am to use a worktree when piem-am-create-worktree is non-nil. Suggested-by: zimoun <zimon.toutoune@gmail.com> Ref: https://yhetil.org/guix-patches/86361cys9h.fsf@tournier.info Message-Id: <20201115061518.22191-4-kyle@kyleam.com>