From a38992edf77b409259eac3b3201374d5ce160a9f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominik=20Pant=C5=AF=C4=8Dek?= Date: Thu, 16 Mar 2023 11:28:38 +0100 Subject: [PATCH] Use member id as primary key. --- brmsaptool.scm | 1 + members-base.scm | 18 +++++++++++------- 2 files changed, 12 insertions(+), 7 deletions(-) diff --git a/brmsaptool.scm b/brmsaptool.scm index cf2b17e..e0e754f 100644 --- a/brmsaptool.scm +++ b/brmsaptool.scm @@ -69,6 +69,7 @@ ;; Load the members database (required for everything anyway) (define MB (load-members "members" #t)) +(print MB) ;; ... (void) diff --git a/members-base.scm b/members-base.scm index 8a086c9..ae64717 100644 --- a/members-base.scm +++ b/members-base.scm @@ -141,10 +141,14 @@ (define (members-base-load-member mdir fname symlinks) (let* ((mr0 (make-dict)) (mr-fn (dict-set mr0 'file-name fname)) - (mr-sl (dict-set mr-fn 'symlinks symlinks))) - (dict-set mr-sl 'info + (mr-sl (dict-set mr-fn 'symlinks symlinks)) + (mr-id (dict-set mr-sl 'id + (string->number + (symbol->string + (get-4digit-symbol-from-list (cons fname symlinks))))))) + (dict-set mr-id 'info (load-member-file - (make-pathname mdir fname))))) + (make-pathname mdir (symbol->string fname)))))) ;; Loads members database, if the second argument is true, shows ;; progress. Members database is a dictionary with id being the key @@ -162,16 +166,16 @@ (when progress? (display ".")) (members-base-load-member dn - (symbol->string symfn) + symfn symlinks)) fss)) (mb (dict-reduce (make-dict) - (lambda (acc key val) - #f) + (lambda (acc symfn mr) + (dict-set acc (dict-ref mr 'id) mr)) mb0))) (when progress? (print " ok.")) - mb0))) + mb))) (define (find-member-by-id mb id) #f)