summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRicardo Wurmus <rekado@elephly.net>2020-04-22 10:58:34 +0200
committerRicardo Wurmus <rekado@elephly.net>2020-04-22 10:58:34 +0200
commita5e068e3fb906d1e09e8581cc7d5016f78e4572c (patch)
tree2e95d1b1a8598adb6c48cdb33e8ca7f83c8c87d8
parentaea19d8e632b66e0258ac898e54cfa12f77b6e47 (diff)
xapian: Add index!.
-rw-r--r--mumi/xapian.scm16
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))))