summaryrefslogtreecommitdiff
path: root/guix/build/emacs-build-system.scm
diff options
context:
space:
mode:
authorEfraim Flashner <efraim@flashner.co.il>2017-10-01 19:59:55 +0300
committerEfraim Flashner <efraim@flashner.co.il>2017-10-01 22:16:22 +0300
commit64df08f0cfac8f7a329002afa3461fd62a4b229c (patch)
tree019909423138ceb49cdd86f1af48d366503db68f /guix/build/emacs-build-system.scm
parentb83ad3ace56c65a367e8f58c7b78323cf251b94b (diff)
parent0ef1c223071869488c35b72b7407234c11425589 (diff)
downloadguix-patches-64df08f0cfac8f7a329002afa3461fd62a4b229c.tar
guix-patches-64df08f0cfac8f7a329002afa3461fd62a4b229c.tar.gz
Merge remote-tracking branch 'origin/master' into core-updates
Diffstat (limited to 'guix/build/emacs-build-system.scm')
-rw-r--r--guix/build/emacs-build-system.scm45
1 files changed, 32 insertions, 13 deletions
diff --git a/guix/build/emacs-build-system.scm b/guix/build/emacs-build-system.scm
index bda699ddf4..2404dbddb4 100644
--- a/guix/build/emacs-build-system.scm
+++ b/guix/build/emacs-build-system.scm
@@ -110,22 +110,41 @@ store in '.el' files."
(define source (getcwd))
- (define (install-file? file stat)
- (let ((stripped-file (string-trim (string-drop file (string-length source)) #\/)))
- (and (any (cut string-match <> stripped-file) include)
- (not (any (cut string-match <> stripped-file) exclude)))))
+ (define* (install-file? file stat #:key verbose?)
+ (let* ((stripped-file (string-trim
+ (string-drop file (string-length source)) #\/)))
+ (define (match-stripped-file action regex)
+ (let ((result (string-match regex stripped-file)))
+ (when (and result verbose?)
+ (format #t "info: ~A ~A as it matches \"~A\"\n"
+ stripped-file action regex))
+ result))
+
+ (when verbose?
+ (format #t "info: considering installing ~A\n" stripped-file))
+
+ (and (any (cut match-stripped-file "included" <>) include)
+ (not (any (cut match-stripped-file "excluded" <>) exclude)))))
(let* ((out (assoc-ref outputs "out"))
(elpa-name-ver (store-directory->elpa-name-version out))
- (target-directory (string-append out %install-suffix "/" elpa-name-ver)))
- (for-each
- (lambda (file)
- (let* ((stripped-file (string-drop file (string-length source)))
- (target-file (string-append target-directory stripped-file)))
- (format #t "`~a' -> `~a'~%" file target-file)
- (install-file file (dirname target-file))))
- (find-files source install-file?)))
- #t)
+ (target-directory (string-append out %install-suffix "/" elpa-name-ver))
+ (files-to-install (find-files source install-file?)))
+ (cond
+ ((not (null? files-to-install))
+ (for-each
+ (lambda (file)
+ (let* ((stripped-file (string-drop file (string-length source)))
+ (target-file (string-append target-directory stripped-file)))
+ (format #t "`~a' -> `~a'~%" file target-file)
+ (install-file file (dirname target-file))))
+ files-to-install)
+ #t)
+ (else
+ (format #t "error: No files found to install.\n")
+ (find-files source (lambda (file stat)
+ (install-file? file stat #:verbose? #t)))
+ #f))))
(define* (move-doc #:key outputs #:allow-other-keys)
"Move info files from the ELPA package directory to the info directory."