summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorArun Isaac2024-01-13 01:04:55 +0000
committerArun Isaac2024-01-13 01:04:55 +0000
commit763d01a80a36482d69b3bd548cdb30766fb68b08 (patch)
treeab8dc00e92a2de6225f2de61c0e6f25cb2772a68
parentd63f2df9d10ab425930900283323aba4b96b8a8c (diff)
downloadccwl-763d01a80a36482d69b3bd548cdb30766fb68b08.tar.gz
ccwl-763d01a80a36482d69b3bd548cdb30766fb68b08.tar.lz
ccwl-763d01a80a36482d69b3bd548cdb30766fb68b08.zip
guix: Add G-expression computed-file to build website.
* .guix/ccwl-package.scm: Import emacs-minimal from (gnu packages emacs), font-charter and font-fira-code from (gnu packages fonts), %guile-build-system-modules from (guix build-system guile), and (guix profiles). (ccwl-website-gexp, ccwl-website): New variables.
-rw-r--r--.guix/ccwl-package.scm52
1 files changed, 51 insertions, 1 deletions
diff --git a/.guix/ccwl-package.scm b/.guix/ccwl-package.scm
index a7f31a6..a70e3e0 100644
--- a/.guix/ccwl-package.scm
+++ b/.guix/ccwl-package.scm
@@ -1,5 +1,5 @@
;;; ccwl --- Concise Common Workflow Language
-;;; Copyright © 2021, 2023 Arun Isaac <arunisaac@systemreboot.net>
+;;; Copyright © 2021, 2023–2024 Arun Isaac <arunisaac@systemreboot.net>
;;;
;;; This file is part of ccwl.
;;;
@@ -18,9 +18,13 @@
(define-module (ccwl-package)
#:use-module ((gnu packages bioinformatics) #:prefix guix:)
+ #:use-module ((gnu packages emacs) #:select (emacs-minimal))
+ #:use-module ((gnu packages fonts) #:select (font-charter font-fira-code))
+ #:use-module ((guix build-system guile) #:select (%guile-build-system-modules))
#:use-module (guix gexp)
#:use-module (guix git-download)
#:use-module (guix packages)
+ #:use-module (guix profiles)
#:use-module (guix utils))
(define-public ccwl
@@ -32,4 +36,50 @@
#:select? (or (git-predicate (dirname (current-source-directory)))
(const #t))))))
+(define ccwl-website-gexp
+ (let ((development-profile
+ (profile
+ (content (package->development-manifest ccwl))
+ (allow-collisions? #t))))
+ (with-imported-modules %guile-build-system-modules
+ #~(begin
+ (use-modules (guix build guile-build-system)
+ (guix build utils))
+
+ (set-path-environment-variable
+ "PATH" (list "/bin") (list #$development-profile #$emacs-minimal))
+ (set-path-environment-variable
+ "LIBRARY_PATH" (list "/lib") (list #$development-profile))
+ (set-path-environment-variable
+ "GUILE_LOAD_PATH"
+ (list (string-append "/share/guile/site/"
+ (target-guile-effective-version)))
+ (list #$development-profile))
+ (set-path-environment-variable
+ "GUILE_LOAD_COMPILED_PATH"
+ (list (string-append "/lib/guile/" (target-guile-effective-version) "/site-ccache"))
+ (list #$development-profile))
+ (copy-recursively #$(package-source ccwl)
+ (getcwd))
+ ;; Emacs modifies README.org presumably for the contained
+ ;; org dynamic block. So, grant write permissions.
+ (chmod "README.org" #o644)
+ (for-each patch-shebang
+ (list "pre-inst-env"
+ "build-aux/generate-cwl-output.sh"
+ "scripts/ccwl"))
+ (substitute* "Makefile"
+ (("\\$\\(GUIX_ENVIRONMENT\\)")
+ #$(profile
+ (content (packages->manifest (list font-charter font-fira-code))))))
+ (invoke "sh" "configure")
+ (invoke "make"
+ "--jobs" (number->string (parallel-job-count)))
+ (invoke "make" "website"
+ "--jobs" (number->string (parallel-job-count)))
+ (copy-recursively "website" #$output)))))
+
+(define-public ccwl-website
+ (computed-file "ccwl-website" ccwl-website-gexp))
+
ccwl