The index is now a central part of the system, as it should. We store articles just like git stores its objects, in a two-tier directory. For example, article whose message id hashes to deadbeef is stored at index/de/ad/deadbeef. Articles in groups are now hardlinked to the index, the main repository of articles. Group's article names are now cached in groups/<g>/.meta/. The meta information is incrementally augmented every time it's necessary. Commands LIST and GROUP are now served at constant time. Other little fixes were done a long the way.
9 lines
300 B
Common Lisp
9 lines
300 B
Common Lisp
#-quicklisp
|
|
(let ((quicklisp-init (merge-pathnames "quicklisp/setup.lisp"
|
|
(user-homedir-pathname))))
|
|
(when (probe-file quicklisp-init)
|
|
(load quicklisp-init)))
|
|
(ql:quickload :loop :silent t)
|
|
(in-package #:loop)
|
|
(index-from-fs!)
|
|
(format t "Index built.~%")
|