Improve default config loading.

This commit is contained in:
Dominik Pantůček 2023-07-12 18:35:00 +02:00
parent 362c6b8568
commit 7205fd9382

View file

@ -53,7 +53,10 @@
;; Initial configuration from *etc-hackerbase*
;; Where to load initial configuration from
(define *etc-hackerbase* (make-parameter "/etc/hackerbase"))
(define *etc-hackerbase* (make-parameter
(list "/etc/hackerbase"
;; TODO: $HOME expansion
"/home/hackerbase/.hackerbaserc")))
;; Needed by multiple modules actually
(define *members-directory* (make-parameter #f))
@ -82,11 +85,9 @@
(define *doku-base* (make-parameter #f))
(define =doku-base= "/var/www")
;; Loads the configuration file and possibly changes the default
;; parameters.
(define (load-configuration!)
(when (file-exists? (*etc-hackerbase*))
(let loop ((lines (read-lines (open-input-file (*etc-hackerbase*)))))
(define (load-single-configuration! fname)
(when (file-exists? fname)
(let loop ((lines (read-lines (open-input-file fname))))
(when (not (null? lines))
(let* ((line (car lines))
(kv (parser-parse-line
@ -117,7 +118,18 @@
(when (not (*doku-base*))
(*doku-base* v)))
)))
(loop (cdr lines))))))
(loop (cdr lines)))))))
;; Loads the configuration file and possibly changes the default
;; parameters.
(define (load-configuration!)
(let ((fnames (*etc-hackerbase*)))
(if (string? fnames)
(load-single-configuration! fnames)
(let loop ((fnames fnames))
(when (not (null? fnames))
(load-single-configuration! (car fnames))
(loop (cdr fnames))))))
(when (not (*members-directory*))
(*members-directory* =members-directory=))
(when (not (*apikeys-file*))