diff --git a/Makefile b/Makefile index dcc7722..a469490 100644 --- a/Makefile +++ b/Makefile @@ -157,7 +157,7 @@ member-record.so: member-record.o member-record.o: member-record.import.scm member-record.import.scm: $(MEMBER-RECORD-SOURCES) -CONFIGURATION-SOURCES=configuration.scm +CONFIGURATION-SOURCES=configuration.scm month.import.scm configuration.so: configuration.o configuration.o: configuration.import.scm diff --git a/brmsaptool.scm b/brmsaptool.scm index 977d004..eba698b 100644 --- a/brmsaptool.scm +++ b/brmsaptool.scm @@ -36,7 +36,8 @@ CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ansi members-base primes - member-record) + member-record + configuration) ;; Print banner (print "brmsaptool 0.4 (c) 2023 Brmlab, z.s.") diff --git a/configuration.scm b/configuration.scm index 8e6218d..b4eb765 100644 --- a/configuration.scm +++ b/configuration.scm @@ -29,17 +29,33 @@ configuration ( *current-month* + *member-file-context* + *member-file-check-syntax* + *member-default-joined* ) (import scheme (chicken base) (chicken time) - (chicken time posix)) + (chicken time posix) + month) + ;; Current month - if changed, we get the actual state for given month. (define *current-month* (make-parameter (let ((d (seconds->local-time (current-seconds)))) (list (+ 1900 (vector-ref d 5)) (vector-ref d 4))))) + ;; Configuration of error reporting + (define *member-file-context* (make-parameter 3)) + + ;; Tolerance to formal errors (invalid key or key without value): + ;; 'error - show source and exits with error + ;; 'warning - show source and error, continue + ;; 'quiet - ignore + (define *member-file-check-syntax* (make-parameter 'error)) + + (define *member-default-joined* (make-parameter (make-month 2015 1))) + ) diff --git a/member-file.scm b/member-file.scm index f860e23..c080520 100644 --- a/member-file.scm +++ b/member-file.scm @@ -28,9 +28,6 @@ (module member-file ( - *member-file-context* - *member-file-check-syntax* - *member-default-joined* member-file-error-symbol load-member-file member-file-tests! @@ -48,7 +45,8 @@ period testing listing - ansi) + ansi + configuration) ;; Specification of known keys for various types of parsing (define known-keys '(nick mail phone name born joined destroyed @@ -57,17 +55,6 @@ (define start/stop-keys '(student suspend)) (define multi-keys '(card desfire credit)) - ;; Configuration of error reporting - (define *member-file-context* (make-parameter 3)) - - ;; Tolerance to formal errors (invalid key or key without value): - ;; 'error - show source and exits with error - ;; 'warning - show source and error, continue - ;; 'quiet - ignore - (define *member-file-check-syntax* (make-parameter 'error)) - - (define *member-default-joined* (make-parameter (make-month 2015 1))) - ;; Symbol used for error reporting in member file keys. (define member-file-error-symbol (string->symbol