[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/org 61e0837: org-attach: Possibly delete empty attach d
From: |
ELPA Syncer |
Subject: |
[elpa] externals/org 61e0837: org-attach: Possibly delete empty attach directory |
Date: |
Fri, 9 Jul 2021 15:57:12 -0400 (EDT) |
branch: externals/org
commit 61e08373257dbbcd914c0bb41362630620e9e958
Author: Marco Wahl <marcowahlsoft@gmail.com>
Commit: Marco Wahl <marcowahlsoft@gmail.com>
org-attach: Possibly delete empty attach directory
* lisp/org-attach.(org-attach-sync): Enable possible deletion of empty
attachment directories. `org-attach-sync-delete-empty-dir' controls
the action: Never delete, Always delete or Query the user (default).
---
etc/ORG-NEWS | 6 ++++++
lisp/org-attach.el | 27 +++++++++++++++++++++++----
2 files changed, 29 insertions(+), 4 deletions(-)
diff --git a/etc/ORG-NEWS b/etc/ORG-NEWS
index 719ac35..78a57ba 100644
--- a/etc/ORG-NEWS
+++ b/etc/ORG-NEWS
@@ -188,6 +188,12 @@ it is correctly configured as a Git repository.
See [[msg:875z8njaol.fsf@protesilaos.com][this thread]].
+*** New option ~org-attach-sync-delete-empty-dir~
+
+~org-attach-sync-delete-empty-dir~ controls the deletion of an empty
+attachment directory at calls of ~org-attach-sync~. There is
+Never delete, Always delete and Query the user (default).
+
** New features
*** ~ox-koma-letter.el~ is now part of Org's core
diff --git a/lisp/org-attach.el b/lisp/org-attach.el
index 715fe3e..e8e8ade 100644
--- a/lisp/org-attach.el
+++ b/lisp/org-attach.el
@@ -245,6 +245,17 @@ Each entry in this list is a list of three elements:
(function :tag "Command")
(string :tag "Docstring"))))
+(defcustom org-attach-sync-delete-empty-dir 'query
+ "Determine what to do with an empty attachment directory on sync.
+When set to nil, don't touch the directory. When set to `query',
+ask the user instead, else remove without asking."
+ :group 'org-attach
+ :package-version '(Org . "9.5")
+ :type '(choice
+ (const :tag "Never delete" nil)
+ (const :tag "Always delete" t)
+ (const :tag "Query the user" query)))
+
;;;###autoload
(defun org-attach ()
"The dispatcher for attachment commands.
@@ -600,14 +611,22 @@ with no prompts."
(defun org-attach-sync ()
"Synchronize the current outline node with its attachments.
-This can be used after files have been added externally."
+Useful after files have been added/removed externally. Option
+`org-attach-sync-delete-empty-dir' controls the behavior for
+empty attachment directories."
(interactive)
(let ((attach-dir (org-attach-dir)))
- (when attach-dir
+ (if (not attach-dir)
+ (org-attach-tag 'off)
(run-hook-with-args 'org-attach-after-change-hook attach-dir)
(let ((files (org-attach-file-list attach-dir)))
- (org-attach-tag (not files))))
- (unless attach-dir (org-attach-tag t))))
+ (org-attach-tag (not files)))
+ (when org-attach-sync-delete-empty-dir
+ (when (and (directory-empty-p attach-dir)
+ (if (eq 'query org-attach-sync-delete-empty-dir)
+ (yes-or-no-p "Attachment directory is empty. Delete?")
+ t))
+ (delete-directory attach-dir))))))
(defun org-attach-file-list (dir)
"Return a list of files in the attachment directory.
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [elpa] externals/org 61e0837: org-attach: Possibly delete empty attach directory,
ELPA Syncer <=