Better default configuration parameters handling.

This commit is contained in:
Dominik Pantůček 2023-04-17 19:39:15 +02:00
parent 6cf116ce98
commit 9576a24ebb
2 changed files with 38 additions and 34 deletions

View file

@ -55,19 +55,23 @@
(define *etc-hackerbase* (make-parameter "/etc/hackerbase"))
;; Needed by multiple modules actually
(define *members-directory* (make-parameter "members"))
(define *members-directory* (make-parameter #f))
(define =members-directory= "members")
;; List of bank accounts and Fio API keys (no support for other banks now)
(define *apikeys-file* (make-parameter "apikey.ntlm"))
(define *apikeys-file* (make-parameter #f))
(define =apikeys-file= "apikey.ntlm")
;; Old last checket transaction id support
(define *jendasap-checked* (make-parameter "checked.ntlm"))
(define *jendasap-checked* (make-parameter #f))
(define =jendasap-checked= "checked.ntlm")
;; Where are the bank CSV files
(define *bank-dir* (make-parameter #f))
;; From address for emails
(define *email-from* (make-parameter "Brmlab - Rada <rada@brmlab.cz>"))
(define *email-from* (make-parameter #f))
(define =email-from= "Brmlab - Rada <rada@brmlab.cz>")
;; Loads the configuration file and possibly changes the default
;; parameters.
@ -82,12 +86,31 @@
(let ((k (car kv))
(v (cdr kv)))
(case k
((members-directory) (*members-directory* v))
((apikeys-file) (*apikeys-file* v))
((jendasap-checked) (*jendasap-checked* v))
((bank-dir) (*bank-dir* v))
((email-from) (*email-from* v))
((members-directory)
(when (not (*members-directory*))
(*members-directory* v)))
((apikeys-file)
(when (not (*apikeys-file*))
(*apikeys-file* v)))
((jendasap-checked)
(when (not (*jendasap-checked*))
(*jendasap-checked* v)))
((bank-dir)
(when (not (*bank-dir*))
(*bank-dir* v)))
((email-from)
(when (not (*email-from*))
(*email-from* v)))
)))
(loop (cdr lines)))))))
(loop (cdr lines))))))
(when (not (*members-directory*))
(*members-directory* =members-directory=))
(when (not (*apikeys-file*))
(*apikeys-file* =apikeys-file=))
(when (not (*jendasap-checked*))
(*jendasap-checked* =jendasap-checked=))
;; No bank-dir - #f default
(when (not (*email-from*))
(*email-from* =email-from=)))
)