diff options
author | Kyle Meyer <kyle@kyleam.com> | 2014-02-15 15:05:23 -0500 |
---|---|---|
committer | Kyle Meyer <kyle@kyleam.com> | 2014-02-15 15:06:16 -0500 |
commit | dc26eb48626fdc60226834a573711ffbe840e31c (patch) | |
tree | bb593b64fe00a4ca5f5103e78bc82f06d367a165 /bog.el | |
parent | 9f58e9ba0d43f7bda3c07a493b1f5f4d146976e3 (diff) | |
download | bog-dc26eb48626fdc60226834a573711ffbe840e31c.tar.gz |
ENH: Use stage for renaming BibTeX files
This avoids filtering all the names in the BibTeX directory to those
that match the citekey pattern, and it more consistent with how PDF are
renamed.
Diffstat (limited to 'bog.el')
-rw-r--r-- | bog.el | 43 |
1 files changed, 24 insertions, 19 deletions
@@ -89,10 +89,11 @@ default value of `org-bibtex-key-property'." :group 'bog :type 'string) -(defcustom bog-pdf-directory-stage - (expand-file-name "pdf-stage" bog-notes-directory) - "The name of the directory to search for new PDFs in. -`bog-rename-staged-pdf-to-citekey' will search here for files to +(defcustom bog-stage-directory + (expand-file-name "stage" bog-notes-directory) + "The name of the directory to search for new files. +`bog-rename-staged-pdf-to-citekey' and +`bog-rename-staged-bib-to-citekey' will search here for files to rename." :group 'bog :type 'string) @@ -244,7 +245,7 @@ text under point if it matches `bog-citekey-format' or using ;;;###autoload (defun bog-rename-staged-pdf-to-citekey () - "Rename PDF in `bog-pdf-directory-stage' to `bog-pdf-directory'/<citekey>.pdf. + "Rename PDF in `bog-stage-directory' to `bog-pdf-directory'/<citekey>.pdf. The citekey will be taken from the text under point if it matches `bog-citekey-format' or using `bog-citekey-func'." (interactive) @@ -255,7 +256,7 @@ The citekey will be taken from the text under point if it matches (let* ((pdf-file (bog-citekey-as-pdf citekey)) (choices (file-expand-wildcards - (concat (file-name-as-directory bog-pdf-directory-stage) "*.pdf"))) + (concat (file-name-as-directory bog-stage-directory) "*.pdf"))) (num-choices (length choices)) staged-pdf) (cond @@ -309,20 +310,23 @@ text under point if it matches `bog-citekey-format' or using (bibtex-search-entry citekey)) ;;;###autoload -(defun bog-rename-and-clean-new-bib-files () - "Prepare new BibTeX files. -New files are determined as files in `bog-bib-directory' that do -not have a basename matching `bog-citekey-format'. This is only -useful if you use the non-standard setup of one entry per BibTeX -file." +(defun bog-clean-and-rename-staged-bibs () + "Clean and rename BibTeX files in `bog-stage-directory'. + +New BibTeX files are searched for in `bog-stage-directory', and +`bog-prepare-bib-file' will be run one each file before it is +moved to `bog-bib-directory'/<citekey>.bib. + +This function is only useful if you use the non-standard setup of +one entry per BibTeX file." (interactive) - (let* ((new (--filter (not (string-match bog-citekey-format it)) - (bog-bib-citekeys))) - (new (--map (concat (expand-file-name it bog-bib-directory) ".bib") - new))) - (--each new (bog-prepare-bib-file it t)))) + (let ((staged + (file-expand-wildcards + (concat (file-name-as-directory bog-stage-directory) "*.bib")))) + (--each staged + (bog-prepare-bib-file it t bog-bib-directory)))) -(defun bog-prepare-bib-file (file &optional new-key) +(defun bog-prepare-bib-file (file &optional new-key new-directory) (save-excursion (let ((was-open (get-file-buffer file)) (buffer (find-file-noselect file))) @@ -331,7 +335,8 @@ file." (bibtex-skip-to-valid-entry) (bibtex-clean-entry new-key) (let* ((citekey (bibtex-key-in-head)) - (bib-file (concat citekey ".bib"))) + (bib-file + (expand-file-name (concat citekey ".bib") new-directory))) (when (get-buffer bib-file) (error "Buffer for %s already exists" bib-file)) (rename-file file bib-file) |