diff --git a/src/configuration.scm b/src/configuration.scm index 55e8931..377c14d 100644 --- a/src/configuration.scm +++ b/src/configuration.scm @@ -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 ")) + (define *email-from* (make-parameter #f)) + (define =email-from= "Brmlab - Rada ") ;; 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=))) ) diff --git a/src/hackerbase.scm b/src/hackerbase.scm index 4624a40..4d4c487 100644 --- a/src/hackerbase.scm +++ b/src/hackerbase.scm @@ -60,13 +60,6 @@ (define -send-emails- (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 (command-line print-help @@ -86,18 +79,18 @@ (-config (fname) "Initial configuration" (*etc-hackerbase* fname)) (-members (dir) "Members base directory" - (=members-directory= dir)) + (*members-directory* dir)) (-month (YYYY-MM) "Specify current month" (-normal-month- #f) (*current-month* (string->month YYYY-MM))) (-tstyle (style) "Use given table style: debug, ascii, unicode" (*table-border-style* (string->symbol style))) (-apikey (fname) "File with Fio API keys" - (=apikeys-file= fname)) + (*apikeys-file* fname)) (-bankdir (dir) "Where are bank CSV files" - (=bank-dir= dir)) + (*bank-dir* dir)) (-checked (file) "JendaSAP checked.ntlm file" - (=jendasap-checked= file)) + (*jendasap-checked* file)) (-ml-all () "Load all mailman lists" (-ml-all- #t)) (-destroyed () "Show destroyed members in -fees" @@ -112,7 +105,7 @@ (-quiet- #t) (*progress-quiet* #t)) (-from (email) "Sender email address" - (=email-from= email)) + (*email-from* email)) "" "Query options:" (-mi (id) "Specify member by id" (-member-id- (string->number id))) @@ -176,18 +169,6 @@ ;; Load default 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 (when (-run-tests?-) (run-all-tests!)