[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/ebdb 8fcd14c9a9: Add before-save-db and after-save-db h
From: |
Eric Abrahamsen |
Subject: |
[elpa] externals/ebdb 8fcd14c9a9: Add before-save-db and after-save-db hooks, bump version |
Date: |
Wed, 26 Jan 2022 17:50:29 -0500 (EST) |
branch: externals/ebdb
commit 8fcd14c9a9e1710716ddef8195bc123140473912
Author: Eric Abrahamsen <eric@ericabrahamsen.net>
Commit: Eric Abrahamsen <eric@ericabrahamsen.net>
Add before-save-db and after-save-db hooks, bump version
* ebdb.el (ebdb-before-save-db-hook, ebdb-after-save-db-hook): These
may be helpful for users wanting to do something special to persist
databases. Release as 0.8.10.
(ebdb-db-save): Run hooks in :before and :after methods.
---
ebdb.el | 27 ++++++++++++++++++++++-----
1 file changed, 22 insertions(+), 5 deletions(-)
diff --git a/ebdb.el b/ebdb.el
index 7b690042cb..f49a063583 100644
--- a/ebdb.el
+++ b/ebdb.el
@@ -2,7 +2,7 @@
;; Copyright (C) 2016-2021 Free Software Foundation, Inc.
-;; Version: 0.8.9
+;; Version: 0.8.10
;; Package-Requires: ((emacs "25.1") (seq "2.15"))
;; Maintainer: Eric Abrahamsen <eric@ericabrahamsen.net>
@@ -465,6 +465,18 @@ Run with one argument, the database being loaded."
:group 'ebdb
:type 'hook)
+(defcustom ebdb-before-save-db-hook nil
+ "Hook run before each database is saved.
+Run with one argument, the database being saved."
+ :group 'ebdb
+ :type 'hook)
+
+(defcustom ebdb-after-save-db-hook nil
+ "Hook run after each database is saved.
+Run with one argument, the database being saved."
+ :group 'ebdb
+ :type 'hook)
+
(defcustom ebdb-initialize-hook nil
"Normal hook run after the EBDB initialization function `ebdb-initialize'."
:group 'ebdb
@@ -4294,10 +4306,13 @@ their :records slot to nil before calling this method
with
the persistent save, or allow them to propagate.")
(cl-defmethod ebdb-db-save :before ((db ebdb-db) &optional _prompt force)
- "Prepare DB to be saved."
+ "Prepare DB to be saved.
+Possibly raise an error if the database is not editable. Lastly
+run `ebdb-before-save-db-hook'."
(when (and (null force)
(ebdb-db-dirty db))
- (ebdb-db-editable db)))
+ (ebdb-db-editable db))
+ (run-hook-with-args 'ebdb-before-save-db-hook db))
(cl-defmethod ebdb-db-save ((db ebdb-db) &optional _prompt force)
"Mark DB and all its records as \"clean\" after saving."
@@ -4317,13 +4332,15 @@ the persistent save, or allow them to propagate.")
(signal 'error err))))))
(cl-defmethod ebdb-db-save :after ((db ebdb-db) &optional _prompt _force)
- "After saving DB, also delete its auto-save file, if any."
+ "After saving DB, also delete its auto-save file, if any.
+Also run `ebdb-after-save-db-hook'."
(let ((auto-save-file
(ebdb-db-make-auto-save-file-name
(slot-value db 'file))))
(setf (slot-value db 'sync-time) (current-time))
(when (file-exists-p auto-save-file)
- (delete-file auto-save-file))))
+ (delete-file auto-save-file))
+ (run-hook-with-args 'ebdb-after-save-db-hook db)))
(cl-defgeneric ebdb-db-add-record (db record)
"Associate RECORD with DB.")
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [elpa] externals/ebdb 8fcd14c9a9: Add before-save-db and after-save-db hooks, bump version,
Eric Abrahamsen <=