Print basic user information.
This commit is contained in:
parent
90abcaa03c
commit
518f23338b
1 changed files with 38 additions and 2 deletions
|
@ -536,13 +536,24 @@
|
||||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
;; Run everything
|
;; Run everything
|
||||||
|
|
||||||
|
(define action (make-parameter #f))
|
||||||
|
(define member-parm (make-parameter #f))
|
||||||
|
|
||||||
;; Print banner
|
;; Print banner
|
||||||
(print "brmsaptool 0.1 (c) 2023 Brmlab, z.s.")
|
(print "brmsaptool 0.1 (c) 2023 Brmlab, z.s.")
|
||||||
(newline)
|
(newline)
|
||||||
|
|
||||||
|
;; Handle options
|
||||||
(parse-command-line
|
(parse-command-line
|
||||||
(("-h" print-help)
|
(("-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
|
;; Run tests
|
||||||
(print "Running self-tests:")
|
(print "Running self-tests:")
|
||||||
|
@ -552,9 +563,34 @@
|
||||||
(print "All self-tests ok!")
|
(print "All self-tests ok!")
|
||||||
(newline)
|
(newline)
|
||||||
|
|
||||||
;; Perform requested action
|
;; Load the members database
|
||||||
(display "Loading members ")
|
(display "Loading members ")
|
||||||
(define MDB (load-members))
|
(define MDB (load-members))
|
||||||
(print " ok.")
|
(print " ok.")
|
||||||
(print "Members in database: " (length MDB))
|
(print "Members in database: " (length MDB))
|
||||||
(newline)
|
(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.")))
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue