Print basic user information.

This commit is contained in:
Dominik Pantůček 2023-03-11 22:34:13 +01:00
parent 90abcaa03c
commit 518f23338b

View file

@ -536,13 +536,24 @@
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; Run everything
(define action (make-parameter #f))
(define member-parm (make-parameter #f))
;; Print banner
(print "brmsaptool 0.1 (c) 2023 Brmlab, z.s.")
(newline)
;; Handle options
(parse-command-line
(("-h" print-help)
("-M" (lambda (dn) (*members-directory* dn)))))
("-M" (lambda (dn) (*members-directory* dn)))
("-mi" (lambda (id)
(action 'member-by-id)
(member-parm (string->number id))))
("-mn" (lambda (nick)
(action 'member-by-nick)
(member-parm nick)))
))
;; Run tests
(print "Running self-tests:")
@ -552,9 +563,34 @@
(print "All self-tests ok!")
(newline)
;; Perform requested action
;; Load the members database
(display "Loading members ")
(define MDB (load-members))
(print " ok.")
(print "Members in database: " (length MDB))
(newline)
;; Perform requested action
(case (action)
((member-by-id member-by-nick)
(let ((mr (if (eq? (action) 'member-by-id)
(find-member-by-id MDB (member-parm))
(find-member-by-nick MDB (member-parm)))))
(if mr
(let* ((id (dict-ref mr 'id))
(name (dict-ref mr 'name))
(info (dict-ref mr 'info))
(sinfo (sort info
(lambda (a b)
(string<?
(symbol->string (car a))
(symbol->string (car b)))))))
(print "User " id " alias " name)
(let loop ((sinfo sinfo))
(when (not (null? sinfo))
(let ((kv (car sinfo)))
(print " " (car kv) ":\t" (cdr kv))
(loop (cdr sinfo))))))
(let ()
(print "No such member " (member-parm) ".")))))
((#f) (print "No action specified.")))