data-service/guix-data-service/config.scm.in

74 lines
3.1 KiB
Scheme

;;; Guix Data Service -- Information about Guix over time
;;; Copyright © 2017, 2018 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2019 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 (guix-data-service config)
#:use-module (guix store)
#:export (%config
assets-dir-in-store?))
(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)))
(doc-dir . ,(let ((install-dir
"@prefix@/share/doc/guix-data-service")
(dev-dir
(getcwd)))
(if (file-exists? install-dir)
install-dir
dev-dir)))
(dumps-dir . ,(let ((install-dir
"/var/lib/guix-data-service/dumps")
(dev-dir
(string-append (getcwd) "/dumps")))
(if (file-exists? install-dir)
install-dir
dev-dir)))
(host . "localhost")
(port . 8765)
(guix . "@guix@")
(sqitch . "@sqitch@")
(sqitch-psql . "@psql@")
(sqitch-plan . ,(let ((installed-plan
"@prefix@/share/guix-data-service/sqitch/sqitch.plan")
(dev-plan
"@abs_top_builddir@/sqitch/sqitch.plan"))
(if (file-exists? installed-plan)
installed-plan
dev-plan)))
(database-user . "guix_data_service")
(database-host . "localhost")
(database-name . "guix_data_service"))))
(lambda (key)
(assoc-ref config key))))
(define assets-dir-in-store?
(string-prefix? (%store-prefix)
(%config 'assets-dir)))