1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
|
;;; mumi -- Mediocre, uh, mail interface
;;; Copyright © 2017, 2018, 2019, 2020 Ricardo Wurmus <rekado@elephly.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 (mumi config)
#:use-module (debbugs)
#: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)))))
(mail-dir . ,(let ((maybe-dir
(string-append (getcwd) "/mails")))
(if (and (getenv "MUMI_UNINSTALLED")
(file-exists? maybe-dir))
maybe-dir
(let ((dir "@localstatedir@/mumi/mails"))
(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)
(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"))
(mu-executable . "@MUMIMU@")
(debbugs . ,%gnu)
(debbugs-domain . "debbugs.gnu.org"))))
(lambda (key)
(assoc-ref config key))))
|