aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristopher Baines <mail@cbaines.net>2023-06-02 16:28:13 +0100
committerChristopher Baines <mail@cbaines.net>2023-06-02 16:28:13 +0100
commitf8cbed79d32542756f9ca24a8ea889bd75207c97 (patch)
tree51d32b2747d37020946ace2001b4861689a57ee2
parent2a2a6a5db25d167ee3b915dd5f5143421c11e39b (diff)
downloadbffe-f8cbed79d32542756f9ca24a8ea889bd75207c97.tar
bffe-f8cbed79d32542756f9ca24a8ea889bd75207c97.tar.gz
Add config.scm
-rw-r--r--.gitignore1
-rw-r--r--Makefile.am1
-rw-r--r--bffe/config.scm.in42
-rw-r--r--configure.ac1
4 files changed, 45 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore
index edb2997..cfad523 100644
--- a/.gitignore
+++ b/.gitignore
@@ -11,6 +11,7 @@ build-aux/install-sh
build-aux/missing
scripts/bffe
+bffe/config.scm
pre-inst-env
.local.envrc
diff --git a/Makefile.am b/Makefile.am
index 0bbeb9e..ff9fdad 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -28,6 +28,7 @@ godir = $(prefix)/lib/guile/$(GUILE_EFFECTIVE_VERSION)/site-ccache
assetsdir = $(datadir)/@PACKAGE@
SOURCES = \
+ bffe/config.scm \
bffe/server.scm \
bffe/view/util.scm \
bffe/view/home.scm \
diff --git a/bffe/config.scm.in b/bffe/config.scm.in
new file mode 100644
index 0000000..d897a87
--- /dev/null
+++ b/bffe/config.scm.in
@@ -0,0 +1,42 @@
+;;; Build Farm Front-End
+;;;
+;;; Copyright © 2023 Christopher Baines <mail@cbaines.net>
+;;;
+;;; This program is free software: you can redistribute it and/or
+;;; modify it under the terms of the GNU Affero 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
+;;; Affero General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU Affero General Public
+;;; License along with this program. If not, see
+;;; <http://www.gnu.org/licenses/>.
+
+(define-module (bffe config)
+ #:use-module (guix store)
+ #:export (%config))
+
+(define %config
+ (let ((config
+ ;; Try to find the "assets" directory relative to the executable
+ ;; first. This is useful when using "pre-inst-env".
+ `((assets-dir . ,(let ((install-dir
+ "@prefix@/share/guix-data-service/assets")
+ (dev-dir
+ (string-append (getcwd) "/assets")))
+ (if (file-exists? install-dir)
+ install-dir
+ dev-dir)))
+ (template-dir . ,(let ((install-dir
+ "@prefix@/share/bffe/templates")
+ (dev-dir
+ (string-append (getcwd) "/templates")))
+ (if (file-exists? install-dir)
+ install-dir
+ dev-dir))))))
+ (lambda (key)
+ (assq-ref config key))))
diff --git a/configure.ac b/configure.ac
index c660bc0..6b5f15d 100644
--- a/configure.ac
+++ b/configure.ac
@@ -29,6 +29,7 @@ AC_PATH_PROG([guix], [guix])
dnl Substitute placeholders to generate these target files
AC_CONFIG_FILES([Makefile])
+AC_CONFIG_FILES([bffe/config.scm])
AC_CONFIG_FILES([scripts/bffe], [chmod +x scripts/bffe])
AC_CONFIG_FILES([pre-inst-env], [chmod +x pre-inst-env])