Function: nnml-generate-nov-databases-directory

nnml-generate-nov-databases-directory is an autoloaded, interactive and byte-compiled function defined in nnml.el.gz.

Signature

(nnml-generate-nov-databases-directory DIR &optional SEEN NO-ACTIVE)

Documentation

Regenerate the NOV database in DIR.

Unless no-active is non-nil, update the active file too.

Key Bindings

Source Code

;; Defined in /usr/src/emacs/lisp/gnus/nnml.el.gz
(defun nnml-generate-nov-databases-directory (dir &optional seen no-active)
  "Regenerate the NOV database in DIR.

Unless no-active is non-nil, update the active file too."
  (interactive (list (let ((file-name-coding-system
			    nnmail-pathname-coding-system))
		       (read-directory-name "Regenerate NOV in: "
					    nnml-directory nil t))))
  (setq dir (file-name-as-directory dir))
  (let ((file-name-coding-system nnmail-pathname-coding-system))
    ;; Only scan this sub-tree if we haven't been here yet.
    (unless (member (file-truename dir) seen)
      (push (file-truename dir) seen)
      ;; We descend recursively
      (dolist (dir (directory-files dir t nil t))
	(when (and (not (string-match "^\\." (file-name-nondirectory dir)))
		   (file-directory-p dir))
	  (nnml-generate-nov-databases-directory dir seen)))
      ;; Do this directory.
      (let ((nnml-files (sort (nnheader-article-to-file-alist dir)
			      #'car-less-than-car)))
	(if (not nnml-files)
	    (let* ((group (nnheader-file-to-group
			   (directory-file-name dir) nnml-directory))
		   (info (cadr (assoc group nnml-group-alist))))
	      (when info
		(setcar info (1+ (cdr info)))))
	  (funcall nnml-generate-active-function dir)
	  ;; Generate the nov file.
	  (nnml-generate-nov-file dir nnml-files)
	  (unless no-active
	    (nnmail-save-active nnml-group-alist nnml-active-file)))))))