[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/org bad854d 2/6: org-persist.el: Catch write errors
From: |
ELPA Syncer |
Subject: |
[elpa] externals/org bad854d 2/6: org-persist.el: Catch write errors |
Date: |
Tue, 19 Oct 2021 08:57:25 -0400 (EDT) |
branch: externals/org
commit bad854d5fa9cf1d839c71866e96a1ca9f4755105
Author: Ihor Radchenko <yantar92@gmail.com>
Commit: Ihor Radchenko <yantar92@gmail.com>
org-persist.el: Catch write errors
* lisp/org-persist.el (org-persist--get-index): Check index file.
(org-persist--read-index): Warn when index file is missing.
(org-persist-write): Report write access errors.
---
lisp/org-persist.el | 22 ++++++++++++++++++----
1 file changed, 18 insertions(+), 4 deletions(-)
diff --git a/lisp/org-persist.el b/lisp/org-persist.el
index 903667f..ab636ec 100644
--- a/lisp/org-persist.el
+++ b/lisp/org-persist.el
@@ -78,6 +78,7 @@ a data variable. Each plist contains the following
properties:
(defun org-persist--get-index (var &optional buffer)
"Return plist used to store VAR in BUFFER.
When BUFFER is nil, return plist for global VAR."
+ (org-persist--read-index)
(let* ((buffer-file (when buffer (buffer-file-name (or (buffer-base-buffer
buffer)
buffer))))
(inode (when buffer-file (file-attribute-inode-number
(file-attributes buffer-file)))))
@@ -103,10 +104,12 @@ When BUFFER is nil, return plist for global VAR."
(defun org-persist--read-index ()
"Read `org-persist--index'"
(unless org-persist--index
- (when (file-exists-p (org-file-name-concat org-persist-directory
org-persist-index-file))
- (with-temp-buffer
- (insert-file-contents (org-file-name-concat org-persist-directory
org-persist-index-file))
- (setq org-persist--index (read (current-buffer)))))))
+ (if (file-exists-p (org-file-name-concat org-persist-directory
org-persist-index-file))
+ (with-temp-buffer
+ (insert-file-contents (org-file-name-concat org-persist-directory
org-persist-index-file))
+ (setq org-persist--index (read (current-buffer))))
+ (warn "Cannot read org-persist index from %s."
+ (org-file-name-concat org-persist-directory
org-persist-index-file)))))
(cl-defun org-persist-register (var &optional buffer &key inherit)
"Register VAR in BUFFER to be persistent.
@@ -172,6 +175,17 @@ When BUFFER is `all', unregister VAR in all buffers."
(plist-get index :variable))
(unless (file-exists-p org-persist-directory)
(make-directory org-persist-directory))
+ (unless (file-exists-p org-persist-directory)
+ (warn "Failed to create org-persist storage in %s."
+ org-persist-directory)
+ (let ((dir (directory-file-name
+ (file-name-as-directory org-persist-directory))))
+ (while (and (not (file-exists-p dir))
+ (not (equal dir (setq dir (directory-file-name
+ (file-name-directory
dir)))))))
+ (unless (file-writable-p dir)
+ (message "Missing write access rights to
org-persist-directory: %S"
+ org-persist-directory))))
(with-temp-file (org-file-name-concat org-persist-directory
org-persist-index-file)
(prin1 org-persist--index (current-buffer)))
(let ((file (org-file-name-concat org-persist-directory (plist-get
index :persist-file)))
- [elpa] externals/org updated (7810804 -> ccb0271), ELPA Syncer, 2021/10/19
- [elpa] externals/org 3b48224 1/6: org-persist.el: Rename `org-persist-path' to `org-persist-directory', ELPA Syncer, 2021/10/19
- [elpa] externals/org bad854d 2/6: org-persist.el: Catch write errors,
ELPA Syncer <=
- [elpa] externals/org c130f71 3/6: org-persist.el: Fix typo, ELPA Syncer, 2021/10/19
- [elpa] externals/org 46da64c 4/6: org-persist.el: Fix `add-hook' priority argument, ELPA Syncer, 2021/10/19
- [elpa] externals/org 2b33ef3 5/6: org-persist.el/org-persist-write: Do not write when no write access, ELPA Syncer, 2021/10/19
- [elpa] externals/org ccb0271 6/6: org-persist.el: Do not add write hooks when there is no write access, ELPA Syncer, 2021/10/19