[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[O] Recurse through a directory tree in org-agenda
From: |
Yuri Niyazov |
Subject: |
[O] Recurse through a directory tree in org-agenda |
Date: |
Fri, 1 May 2015 21:22:20 -0700 |
It is common to have something like this in an org configuration:
(customize-set-variable 'org-agenda-files '("~/org"))
This means that all the org files in ~/org (but not all the org files
in subdirectories of "~/org") will be automatically included in the
agenda.
It seems like a common request on this mailing list is: what if I
created a fairly involved directory tree with org files throughout,
how do I include all those directories in org-agenda-files? And also,
what if I modify my filesystem and create a new directory somewhere
under "~/org" - do I have to restart Emacs or rerun the code that
configures org?
Here's a solution that seems to take care of everything automatically
for me (and also filters out things that I don't want to include, like
directories named "zz_old", ".git" and "zz_journal")
(require 'find-lisp)
(require 'cl)
(defun yn/recurse-subdirectories (directory)
(let ((predicate
(lambda (pred)
(lexical-let ((p pred))
(lambda (dir parent)
(and (not (or (string= dir ".git")
(string= dir "zz_old")
(string= dir "zz_journal")))
(funcall p dir parent)))))))
(append
(find-lisp-find-files-internal
directory
(funcall predicate 'find-lisp-file-predicate-is-directory)
(funcall predicate 'find-lisp-default-directory-predicate))
(cons directory nil))))
(defadvice org-agenda-files (before yn/org-agenda-files
(&optional unrestricted archives))
(customize-set-variable 'org-agenda-files (yn/recurse-subdirectories
org-directory)))
(ad-activate 'org-agenda-files)
I don't have contributor papers signed with the FSF (yet) but
obviously the intent of this message is for everyone to use this.
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [O] Recurse through a directory tree in org-agenda,
Yuri Niyazov <=