aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorXinglu Chen <public@yoctocell.xyz>2021-03-13 11:05:44 +0100
committerXinglu Chen <public@yoctocell.xyz>2021-03-13 11:06:32 +0100
commit5efe4a452a8934e50184346381b796604e7bf34b (patch)
tree45a47864af1a45bdf07bf7457ec0c8ea918599ad
parent7a763c4e3bbe71b0016785709e0c9a56eabbfce6 (diff)
Add Guix package definition.
* git-email.scm: New file.
-rw-r--r--git-email.scm103
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))))))
+
+