;;; 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 . (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))))))