;;; git-email.el --- Work with git and email -*- lexical-binding: t; -*- ;; Copyright (C) 2021 yoctocell ;; Author: yoctocell ;; URL: https://git.sr.ht/~yoctocell/git-email ;; Version: 0.1.0 ;; Package-Requires: ((emacs "25.1")) ;; Keywords: git email ;; License: GNU General Public License >= 3 ;; This program is free software: you can redistribute it and/or modify ;; it under the terms of the GNU General Public License as published by ;; the Free Software Foundation, either version 3 of the License, or ;; (at your option) any later version. ;; This program is distributed in the hope that it will be useful, ;; but WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ;; GNU General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with this program. If not, see . ;;; Commentary: ;;; Code: (defgroup git-email nil "Work with git and email." :group 'convenience) (defcustom git-email--compose-message-function 'message-mail "The function used to compose patch mail." :group 'git-email :type 'symbol) (defun git-email--extract-header (header patch-file) "Extract HEADER from PATCH-FILE." (with-temp-buffer (insert-file-contents patch-file) (goto-char (point-min)) (buffer-substring-no-properties (re-search-forward (format " *%s: +" header)) (point-at-eol)))) (defun git-email-send-email (patch-file) "Given a PATCH-FILE, send an email." (interactive) (let ((subject (git-email--extract-header "subject" patch-file)) (from (git-email--extract-header "from" patch-file)) (in-reply-to (git-email--extract-header "in-reply-to" patch-file)) (msg-id (git-email--extract-header "message-id" patch-file))) (funcall git-email--compose-message-function "test" subject `(("in-reply-to" ,in-reply-to) ("message-id" ,msg-id) ("from" ,from))))) (provide 'git-email) ;;; git-email.el ends here