;; ;; brmsaptool.scm ;; ;; Brmlab members management tool. ;; ;; ISC License ;; ;; Copyright 2023 Brmlab, z.s. ;; Dominik Pantůček ;; ;; Permission to use, copy, modify, and/or distribute this software ;; for any purpose with or without fee is hereby granted, provided ;; that the above copyright notice and this permission notice appear ;; in all copies. ;; ;; THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL ;; WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED ;; WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE ;; AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR ;; CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS ;; OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, ;; NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN ;; CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ;; (import testing listing dictionary month period member-file command-line utils ansi members-base) ;; Print banner (print "brmsaptool 0.2 (c) 2023 Brmlab, z.s.") (newline) ;; Run tests (listing-tests!) (dictionary-tests!) (month-tests!) (period-tests!) (utils-tests!) (ansi-tests!) (member-file-tests!) (command-line-tests!) (members-base-tests!) (newline) ;; Command-line options and configurable parameters (define *members-directory* (make-parameter "members")) ;; Arguments parsing (command-line print-help (-h () "This help" (print "Command-line options:") (newline) (print-help) (newline) (exit 0)) (-MB (dir) "Members base directory" (*members-directory* dir)) (-mfkw () "Member-File invalid Key Warning" (*member-file-check-syntax* 'warning)) (-mfkq () "Member-File invalid Key Quiet" (*member-file-check-syntax* 'quiet)) (-mfec (n) "Member-File parser Error Context (lines)" (*member-file-context* (string->number n)))) ;; Load the members database (required for everything anyway) (define MB (load-members "members" #t)) (print MB) ;; ... (void)