Better default configuration parameters handling.
This commit is contained in:
parent
6cf116ce98
commit
9576a24ebb
2 changed files with 38 additions and 34 deletions
|
@ -55,19 +55,23 @@
|
||||||
(define *etc-hackerbase* (make-parameter "/etc/hackerbase"))
|
(define *etc-hackerbase* (make-parameter "/etc/hackerbase"))
|
||||||
|
|
||||||
;; Needed by multiple modules actually
|
;; 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)
|
;; 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
|
;; 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
|
;; Where are the bank CSV files
|
||||||
(define *bank-dir* (make-parameter #f))
|
(define *bank-dir* (make-parameter #f))
|
||||||
|
|
||||||
;; From address for emails
|
;; 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
|
;; Loads the configuration file and possibly changes the default
|
||||||
;; parameters.
|
;; parameters.
|
||||||
|
@ -82,12 +86,31 @@
|
||||||
(let ((k (car kv))
|
(let ((k (car kv))
|
||||||
(v (cdr kv)))
|
(v (cdr kv)))
|
||||||
(case k
|
(case k
|
||||||
((members-directory) (*members-directory* v))
|
((members-directory)
|
||||||
((apikeys-file) (*apikeys-file* v))
|
(when (not (*members-directory*))
|
||||||
((jendasap-checked) (*jendasap-checked* v))
|
(*members-directory* v)))
|
||||||
((bank-dir) (*bank-dir* v))
|
((apikeys-file)
|
||||||
((email-from) (*email-from* v))
|
(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=)))
|
||||||
|
|
||||||
)
|
)
|
||||||
|
|
|
@ -60,13 +60,6 @@
|
||||||
(define -send-emails- (make-parameter #f))
|
(define -send-emails- (make-parameter #f))
|
||||||
(define -quiet- (make-parameter #f))
|
(define -quiet- (make-parameter #f))
|
||||||
|
|
||||||
;; Configuration overrides
|
|
||||||
(define =members-directory= (make-parameter #f))
|
|
||||||
(define =apikeys-file= (make-parameter #f))
|
|
||||||
(define =jendasap-checked= (make-parameter #f))
|
|
||||||
(define =bank-dir= (make-parameter #f))
|
|
||||||
(define =email-from= (make-parameter #f))
|
|
||||||
|
|
||||||
;; Arguments parsing
|
;; Arguments parsing
|
||||||
(command-line
|
(command-line
|
||||||
print-help
|
print-help
|
||||||
|
@ -86,18 +79,18 @@
|
||||||
(-config (fname) "Initial configuration"
|
(-config (fname) "Initial configuration"
|
||||||
(*etc-hackerbase* fname))
|
(*etc-hackerbase* fname))
|
||||||
(-members (dir) "Members base directory"
|
(-members (dir) "Members base directory"
|
||||||
(=members-directory= dir))
|
(*members-directory* dir))
|
||||||
(-month (YYYY-MM) "Specify current month"
|
(-month (YYYY-MM) "Specify current month"
|
||||||
(-normal-month- #f)
|
(-normal-month- #f)
|
||||||
(*current-month* (string->month YYYY-MM)))
|
(*current-month* (string->month YYYY-MM)))
|
||||||
(-tstyle (style) "Use given table style: debug, ascii, unicode"
|
(-tstyle (style) "Use given table style: debug, ascii, unicode"
|
||||||
(*table-border-style* (string->symbol style)))
|
(*table-border-style* (string->symbol style)))
|
||||||
(-apikey (fname) "File with Fio API keys"
|
(-apikey (fname) "File with Fio API keys"
|
||||||
(=apikeys-file= fname))
|
(*apikeys-file* fname))
|
||||||
(-bankdir (dir) "Where are bank CSV files"
|
(-bankdir (dir) "Where are bank CSV files"
|
||||||
(=bank-dir= dir))
|
(*bank-dir* dir))
|
||||||
(-checked (file) "JendaSAP checked.ntlm file"
|
(-checked (file) "JendaSAP checked.ntlm file"
|
||||||
(=jendasap-checked= file))
|
(*jendasap-checked* file))
|
||||||
(-ml-all () "Load all mailman lists"
|
(-ml-all () "Load all mailman lists"
|
||||||
(-ml-all- #t))
|
(-ml-all- #t))
|
||||||
(-destroyed () "Show destroyed members in -fees"
|
(-destroyed () "Show destroyed members in -fees"
|
||||||
|
@ -112,7 +105,7 @@
|
||||||
(-quiet- #t)
|
(-quiet- #t)
|
||||||
(*progress-quiet* #t))
|
(*progress-quiet* #t))
|
||||||
(-from (email) "Sender email address"
|
(-from (email) "Sender email address"
|
||||||
(=email-from= email))
|
(*email-from* email))
|
||||||
""
|
""
|
||||||
"Query options:"
|
"Query options:"
|
||||||
(-mi (id) "Specify member by id" (-member-id- (string->number id)))
|
(-mi (id) "Specify member by id" (-member-id- (string->number id)))
|
||||||
|
@ -176,18 +169,6 @@
|
||||||
;; Load default configuration
|
;; Load default configuration
|
||||||
(load-configuration!)
|
(load-configuration!)
|
||||||
|
|
||||||
;; Override from command-line
|
|
||||||
(when (=members-directory=)
|
|
||||||
(*members-directory* (=members-directory=)))
|
|
||||||
(when (=apikeys-file=)
|
|
||||||
(*apikeys-file* (=apikeys-file=)))
|
|
||||||
(when (=jendasap-checked=)
|
|
||||||
(*jendasap-checked* (=jendasap-checked=)))
|
|
||||||
(when (=bank-dir=)
|
|
||||||
(*bank-dir* (=bank-dir=)))
|
|
||||||
(when (=email-from=)
|
|
||||||
(*email-from* (=email-from=)))
|
|
||||||
|
|
||||||
;; Run tests
|
;; Run tests
|
||||||
(when (-run-tests?-)
|
(when (-run-tests?-)
|
||||||
(run-all-tests!)
|
(run-all-tests!)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue