diff options
-rw-r--r-- | mumi/xapian.scm | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/mumi/xapian.scm b/mumi/xapian.scm index 3dee381..f1ad7a4 100644 --- a/mumi/xapian.scm +++ b/mumi/xapian.scm @@ -30,7 +30,7 @@ #:use-module (xapian wrap) #:use-module (xapian xapian) #:use-module (rnrs bytevectors) - #:export (index-files search)) + #:export (index! index-files search)) (define (parse-emails files) (n-par-map 4 @@ -178,3 +178,17 @@ messages and index their contents in the Xapian database at DBPATH." (enquire-mset (enquire db query) #:maximum-items pagesize)))))) +(define* (index! #:key full?) + "Index all Debbugs log files corresponding to the selected +packages. When FULL? is #T process also archived issues." + (let* ((packages (%config 'packages)) + (active-numbers (extract-bug-numbers packages)) + (archived-numbers (extract-bug-numbers packages #:archived? #t)) + (active-files + (map bug-id->log-file active-numbers)) + (archived-files + (map (cut bug-id->log-file <> #:archived? #t) + archived-numbers))) + (index-files (if full? + (append active-files archived-files) + active-files)))) |