[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
01/03: gnu: Add package-elisp-from-package
From: |
guix-commits |
Subject: |
01/03: gnu: Add package-elisp-from-package |
Date: |
Mon, 7 Jan 2019 08:45:45 -0500 (EST) |
ambrevar pushed a commit to branch master
in repository guix.
commit 7d5856bd4570a6c5a3cf1daf6273b638e09b6d50
Author: Tim Gesthuizen <address@hidden>
Date: Fri Jan 4 22:34:36 2019 +0100
gnu: Add package-elisp-from-package
Add a function to generate package definitions that packages single elisp
files from other packages.
* gnu/packages/emacs.scm (package-elisp-from-package): New function
---
gnu/packages/emacs.scm | 32 +++++++++++++++++++++++++++++++-
1 file changed, 31 insertions(+), 1 deletion(-)
diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm
index ec67f27..cbfec8f 100644
--- a/gnu/packages/emacs.scm
+++ b/gnu/packages/emacs.scm
@@ -35,7 +35,7 @@
;;; Copyright © 2018 Sohom Bhattacharjee <address@hidden>
;;; Copyright © 2018 Mathieu Lirzin <address@hidden>
;;; Copyright © 2018 Pierre Neidhardt <address@hidden>
-;;; Copyright © 2018 Tim Gesthuizen <address@hidden>
+;;; Copyright © 2018, 2019 Tim Gesthuizen <address@hidden>
;;; Copyright © 2018 Jack Hill <address@hidden>
;;; Copyright © 2018 Pierre-Antoine Rouby <address@hidden>
;;; Copyright © 2018 Alex Branham <address@hidden>
@@ -331,6 +331,36 @@ editor (without an X toolkit)" )
(lambda _
(invoke "mkdir" "-p" "src/deps")))))))))
+(define-public (package-elisp-from-package
+ source-package package-name source-files)
+ "Returns a package definition that packages emacs-lisp files from the
+SOURCE-PACKAGEs source. The package has the name PACKAGE-NAME and packages
+the files SOURCE-FILES from the source in its root directory."
+ (let ((orig (package-source source-package)))
+ (package
+ (inherit source-package)
+ (name package-name)
+ (build-system emacs-build-system)
+ (source (origin
+ (method (origin-method orig))
+ (uri (origin-uri orig))
+ (sha256 (origin-sha256 orig))
+ (file-name (string-append package-name "-"
+ (package-version source-package)))
+ (modules '((guix build utils)
+ (srfi srfi-1)
+ (ice-9 ftw)))
+ (snippet
+ `(let* ((source-files (quote ,source-files))
+ (basenames (map basename source-files)))
+ (map copy-file
+ source-files basenames)
+ (map delete-file-recursively
+ (fold delete
+ (scandir ".")
+ (append '("." "..") basenames)))
+ #t)))))))
+
;;;
;;; Emacs hacking.