;;; mumi -- Mediocre, uh, mail interface ;;; Copyright © 2017, 2018, 2019, 2020 Ricardo Wurmus ;;; ;;; 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 ;;; . (define-module (mumi config) #:export (%config mailer-enabled?)) (define mailer-enabled? (make-parameter #t)) (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 ((maybe-dir (string-append (getcwd) "/assets"))) (if (and (getenv "MUMI_UNINSTALLED") (file-exists? maybe-dir)) maybe-dir ;; TODO: use @assetsdir@ variable here "@prefix@/share/mumi/assets"))) (pkg-dir . ,(let ((maybe-dir (string-append (getcwd) "/etc"))) (if (and (getenv "MUMI_UNINSTALLED") (file-exists? maybe-dir)) maybe-dir (let ((dir "@datarootdir@/mumi")) (if (string-prefix? "${prefix}" dir) (string-replace dir "@prefix@" 0 (string-length "${prefix}")) dir))))) (db-dir . ,(let ((maybe-dir (getcwd))) (if (and (getenv "MUMI_UNINSTALLED") (file-exists? maybe-dir)) maybe-dir (let ((dir "@localstatedir@/mumi/db")) (if (string-prefix? "${prefix}" dir) (string-replace dir "@prefix@" 0 (string-length "${prefix}")) dir))))) (key-dir . ,(let ((maybe-dir (getcwd))) (if (and (getenv "MUMI_UNINSTALLED") (file-exists? maybe-dir)) maybe-dir (let ((dir "@localstatedir@/mumi/")) (if (string-prefix? "${prefix}" dir) (string-replace dir "@prefix@" 0 (string-length "${prefix}")) dir))))) (data-dir . ,(let ((maybe-dir (string-append (getcwd) "/data"))) (if (and (getenv "MUMI_UNINSTALLED") (file-exists? maybe-dir)) maybe-dir (let ((dir "@localstatedir@/mumi/data")) (if (string-prefix? "${prefix}" dir) (string-replace dir "@prefix@" 0 (string-length "${prefix}")) dir))))) (host . "localhost") (port . 1234) (cache-ttl . 120) (submission-email-address . "guix-patches@gnu.org") (submission-bug-email-address . "bug-guix@gnu.org") (lists . ("guix-patches@gnu.org" "bug-guix@gnu.org")) (packages . ("guix-patches" "guix")) (debbugs-domain . "debbugs.gnu.org") (qa-scheme . https) (qa-host . "qa.guix.gnu.org")))) (lambda (key) (assoc-ref config key))))