diff options
author | Xinglu Chen <public@yoctocell.xyz> | 2021-03-13 11:05:44 +0100 |
---|---|---|
committer | Xinglu Chen <public@yoctocell.xyz> | 2021-03-13 11:06:32 +0100 |
commit | 5efe4a452a8934e50184346381b796604e7bf34b (patch) | |
tree | 45a47864af1a45bdf07bf7457ec0c8ea918599ad | |
parent | 7a763c4e3bbe71b0016785709e0c9a56eabbfce6 (diff) |
Add Guix package definition.
* git-email.scm: New file.
-rw-r--r-- | git-email.scm | 103 |
1 files changed, 103 insertions, 0 deletions
diff --git a/git-email.scm b/git-email.scm new file mode 100644 index 0000000..e6d804f --- /dev/null +++ b/git-email.scm @@ -0,0 +1,103 @@ +;;; Guix package definition for git-email +;;; +;;; Copyright (C) 2021 all contributors <~yoctocell/git-email-devel@lists.sr.ht> +;;; +;;; 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 <https://www.gnu.org/licenses/>. + +(define-module (git-email) + #:use-module (guix packages) + #:use-module (guix build utils) + #:use-module (guix build-system emacs) + #:use-module (guix gexp) + #:use-module (guix git-download) + #:use-module ((guix licenses) #:prefix license:) + #:use-module (gnu packages version-control) + #:use-module (gnu packages mail) + #:use-module (gnu packages texinfo) + #:use-module (gnu packages emacs) + #:use-module (gnu packages emacs-xyz) + #:use-module (ice-9 popen) + #:use-module (ice-9 rdelim)) + +;;; Commentary: +;;; +;;; This file contains package definitinons for git-email. One is for +;;; the stable release, the other for the development version. +;;; +;;; Code: + +;;; Stable release + +(define-public git-email + (package + (name "git-email") + (version "0.2.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://git.sr.ht/~yoctocell/git-email") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "09vmh3x1rjxxl9g9p01afil1zlpk7rf0pjmzyvcbid9wczyllkhq")) + ;; (modules '((guix build utils))) + (snippet + ;; Not yet in Guix proper + '(delete-file "git-email-piem.el")))) + (build-system emacs-build-system) + (propagated-inputs + `(("emacs" ,emacs) + ("emacs-magit" ,emacs-magit) + ("notmuch" ,notmuch))) + (license license:gpl3+) + (home-page "https://sr.ht/~yoctocell/git-email") + (synopsis "Integrate git with email") + (description "git-email provides functions for formatting and sending Git patches +via email, without leaving Emacs."))) + + +;;; Development version + +(define %source-dir + (dirname (current-filename))) + +;; Copied from guile-daemon. +(define (git-output . args) + "Execute 'git ARGS ...' command and return its output without trailing +newspace." + (with-directory-excursion %source-dir + (let* ((port (apply open-pipe* OPEN_READ "git" args)) + (output (read-string port))) + (close-port port) + (string-trim-right output #\newline)))) + +;; (define-public git-email-dev +;; (let ((commit (git-output "rev-parse" "--short" "HEAD"))) +;; (package +;; (inherit git-email) +;; (name "git-email-dev") +;; (version (git-version "0.2.0" "0" commit)) +;; (source (local-file %source-dir +;; #:recursive? #t +;; #:select? (git-predicate %source-dir))) +;; (native-inputs +;; `(("texinfo" ,texinfo))) +;; (propagated-inputs +;; `(("emacs" ,emacs) +;; ("emacs-magit" ,emacs-magit) +;; ("notmuch" ,notmuch) +;; ,@(package-propagated-inputs git-email)))))) + + |