[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[bug#47661] [PATCH 01/33] profiles: Add hook for Emacs subdirs.
From: |
Leo Prikler |
Subject: |
[bug#47661] [PATCH 01/33] profiles: Add hook for Emacs subdirs. |
Date: |
Thu, 8 Apr 2021 19:49:35 +0200 |
* guix/profiles.scm (emacs-subdirs): New variable.
(%default-profile-hooks): Add it here.
* guix/status.scm (hook-message): Add a message for emacs-subdirs.
---
guix/profiles.scm | 41 +++++++++++++++++++++++++++++++++++++++++
guix/status.scm | 2 ++
2 files changed, 43 insertions(+)
diff --git a/guix/profiles.scm b/guix/profiles.scm
index 67d90532c1..26fe266a61 100644
--- a/guix/profiles.scm
+++ b/guix/profiles.scm
@@ -1115,6 +1115,46 @@ MANIFEST. Single-file bundles are required by programs
such as Git and Lynx."
`((type . profile-hook)
(hook . ca-certificate-bundle))))
+(define (emacs-subdirs manifest)
+ (define build
+ (with-imported-modules (source-module-closure
+ '((guix build profiles)
+ (guix build utils)))
+ #~(begin
+ (use-modules (guix build utils)
+ (guix build profiles)
+ (ice-9 ftw) ; scandir
+ (srfi srfi-1) ; append-map
+ (srfi srfi-26))
+
+ (let ((destdir (string-append #$output "/share/emacs/site-lisp"))
+ (subdirs
+ (append-map
+ (lambda (dir)
+ (filter
+ file-is-directory?
+ (map (cute string-append dir "/" <>)
+ (scandir dir (negate (cute member <> '("."
"..")))))))
+ (filter file-exists?
+ (map (cute string-append <> "/share/emacs/site-lisp")
+ '#$(manifest-inputs manifest))))))
+ (mkdir-p destdir)
+ (with-directory-excursion destdir
+ (call-with-output-file "subdirs.el"
+ (lambda (port)
+ (write
+ `(normal-top-level-add-to-load-path
+ (list ,@subdirs))
+ port)
+ (newline port)
+ #t)))))))
+ (gexp->derivation "emacs-subdirs" build
+ #:local-build? #t
+ #:substitutable? #f
+ #:properties
+ `((type . profile-hook)
+ (hook . emacs-subdirs))))
+
(define (glib-schemas manifest)
"Return a derivation that unions all schemas from manifest entries and
creates the Glib 'gschemas.compiled' file."
@@ -1672,6 +1712,7 @@ MANIFEST."
fonts-dir-file
ghc-package-cache-file
ca-certificate-bundle
+ emacs-subdirs
glib-schemas
gtk-icon-themes
gtk-im-modules
diff --git a/guix/status.scm b/guix/status.scm
index 362ae2882c..2683678201 100644
--- a/guix/status.scm
+++ b/guix/status.scm
@@ -379,6 +379,8 @@ the current build phase."
(G_ "building GHC package cache..."))
('ca-certificate-bundle
(G_ "building CA certificate bundle..."))
+ ('emacs-subdirs
+ (G_ "listing Emacs subdirs..."))
('glib-schemas
(G_ "generating GLib schema cache..."))
('gtk-icon-themes
--
2.31.1
- [bug#47661] [PATCH 00/33] Improve Emacs UX., Leo Prikler, 2021/04/08
- [bug#47661] [PATCH 01/33] profiles: Add hook for Emacs subdirs.,
Leo Prikler <=
- [bug#47661] [PATCH 02/33] gnu: emacs: Wrap EMACSLOADPATH., Leo Prikler, 2021/04/08
- [bug#47661] [PATCH 08/33] gnu: Add emacs-telega-contrib., Leo Prikler, 2021/04/08
- [bug#47661] [PATCH 07/33] gnu: emacs-telega: Adjust to changes in emacs-build-system., Leo Prikler, 2021/04/08
- [bug#47661] [PATCH 04/33] build-system: emacs: Use subdirectories again., Leo Prikler, 2021/04/08
- [bug#47661] [PATCH 16/33] gnu: emacs-org-contrib: Adjust to changes in emacs-build-system., Leo Prikler, 2021/04/08
- [bug#47661] [PATCH 11/33] gnu: emacs-ert-runner: Adjust to changes in emacs-build-system., Leo Prikler, 2021/04/08
- [bug#47661] [PATCH 03/33] gnu: emacs: Patch more program file names., Leo Prikler, 2021/04/08
- [bug#47661] [PATCH 09/33] gnu: emacs-emacsql: Adjust to changes in emacs-build-system., Leo Prikler, 2021/04/08
- [bug#47661] [PATCH 10/33] gnu: emacs-howm: Adjust to changes in emacs-build-system., Leo Prikler, 2021/04/08
- [bug#47661] [PATCH 06/33] gnu: emacs-guix: Adjust to changes in emacs-build-system., Leo Prikler, 2021/04/08