From e1271456817bfc60198af53515cc520d4164cfb2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominik=20Pant=C5=AF=C4=8Dek?= Date: Sat, 1 Apr 2023 10:30:22 +0200 Subject: [PATCH] Load bank only if needed. --- src/bbstool.scm | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/src/bbstool.scm b/src/bbstool.scm index a6ec1b6..4e6eeb2 100644 --- a/src/bbstool.scm +++ b/src/bbstool.scm @@ -53,6 +53,7 @@ CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ;; Command-line options and configurable parameters (define *members-directory* (make-parameter "members")) (define *apikeys-file* (make-parameter "apikey.ntlm")) +(define -needs-bank- (make-parameter #f)) (define -member-id- (make-parameter #f)) (define -member-nick- (make-parameter #f)) (define -action- (make-parameter #f)) @@ -75,7 +76,9 @@ CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. (-context (n) "Member-File parser Error Context (lines)" (*member-file-context* (string->number n))) (-mi (id) "Specify member by id" (-member-id- (string->number id))) (-mn (nick) "Specify member by nick" (-member-nick- nick)) - (-info () "Print information" (-action- 'print-info)) + (-info () "Print information" + (-needs-bank- #t) + (-action- 'print-info)) (-stats (file:gnuplot-data) "Get stats for all months" (-action- 'print-stats) (-fname- file:gnuplot-data)) @@ -92,7 +95,9 @@ CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. (-action- 'gencards) (-fname- (list file:cards file:desfires))) (-problems () "Prints all files with problems" (-action- 'problems)) - (-fees () "Prints fees table" (-action- 'fees)) + (-fees () "Prints fees table" + (-needs-bank- #t) + (-action- 'fees)) ) ;; Run tests @@ -113,9 +118,11 @@ CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. (newline)) ;; Load the members database (required for everything anyway) -(define MB (members-payments-process - (load-members (*members-directory*) #t) - (*apikeys-file*))) +(define MB + (let ((mb (load-members (*members-directory*) #t))) + (if (-needs-bank-) + (members-payments-process mb (*apikeys-file*)) + mb))) ;; If a member is specified by either id or nick, get its record (define mr