org-persist.el: Do not add write hooks when there is no write access

This commit is contained in:
Ihor Radchenko 2021-10-19 20:17:27 +08:00
parent 2b33ef3c97
commit ccb0271e1a
No known key found for this signature in database
GPG Key ID: 6470762A7DA11D8B
1 changed files with 12 additions and 2 deletions

View File

@ -278,8 +278,18 @@ When BUFFER is `all', unregister VAR in all buffers."
(delete-directory (file-name-directory persist-file))))))))
(setq org-persist--index (nreverse new-index))))
(add-hook 'kill-emacs-hook #'org-persist-gc)
(add-hook 'kill-emacs-hook #'org-persist-write-all 100)
;; Automatically write the data, but only when we have write access.
(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)))))))
(if (not (file-writable-p dir))
(message "Missing write access rights to org-persist-directory: %S"
org-persist-directory)
(add-hook 'kill-emacs-hook #'org-persist-gc)
(add-hook 'kill-emacs-hook #'org-persist-write-all 100)))
(add-hook 'after-init-hook #'org-persist-read-all)
(provide 'org-persist)