summaryrefslogtreecommitdiff
path: root/modules/calendar-sync.el
diff options
context:
space:
mode:
authorCraig Jennings <c@cjennings.net>2026-04-05 07:00:44 -0500
committerCraig Jennings <c@cjennings.net>2026-04-05 07:00:44 -0500
commit10e2929d5be68ec1fda8b5b4ed08511eac02e7b3 (patch)
treeacb0e0e0f6af410463a4e9e2b4e86b7815c8ece7 /modules/calendar-sync.el
parent91c8f727f6a5881adf40ebca48af4456ad14174c (diff)
refactor(calendar-sync): extract require-calendars guard from 4 locations
Replaced 4 copies of "if null calendars, warn" with a shared calendar-sync--require-calendars predicate.
Diffstat (limited to 'modules/calendar-sync.el')
-rw-r--r--modules/calendar-sync.el18
1 files changed, 10 insertions, 8 deletions
diff --git a/modules/calendar-sync.el b/modules/calendar-sync.el
index 1f79aa6b..b9cc57f4 100644
--- a/modules/calendar-sync.el
+++ b/modules/calendar-sync.el
@@ -1277,11 +1277,16 @@ Logs timing for each phase to *Messages* for performance diagnosis."
(message "calendar-sync: [%s] Sync complete (%.1fs total) → %s"
name total-elapsed file))))))))))
+(defun calendar-sync--require-calendars ()
+ "Return non-nil if calendars are configured, else warn and return nil."
+ (or calendar-sync-calendars
+ (progn (message "calendar-sync: No calendars configured (set calendar-sync-calendars)")
+ nil)))
+
(defun calendar-sync--sync-all-calendars ()
"Sync all configured calendars asynchronously.
Each calendar syncs in parallel."
- (if (null calendar-sync-calendars)
- (message "calendar-sync: No calendars configured (set calendar-sync-calendars)")
+ (when (calendar-sync--require-calendars)
(message "calendar-sync: Syncing %d calendar(s)..." (length calendar-sync-calendars))
(dolist (calendar calendar-sync-calendars)
(calendar-sync--sync-calendar calendar))))
@@ -1306,8 +1311,7 @@ When called non-interactively with nil, syncs all calendars."
(let ((choices (cons "all" (calendar-sync--calendar-names))))
(completing-read "Sync calendar: " choices nil t nil nil "all")))))
(cond
- ((null calendar-sync-calendars)
- (message "calendar-sync: No calendars configured (set calendar-sync-calendars)"))
+ ((not (calendar-sync--require-calendars)) nil)
((or (null calendar-name) (string= calendar-name "all"))
(calendar-sync--sync-all-calendars))
(t
@@ -1320,8 +1324,7 @@ When called non-interactively with nil, syncs all calendars."
(defun calendar-sync-status ()
"Display sync status for all configured calendars."
(interactive)
- (if (null calendar-sync-calendars)
- (message "calendar-sync: No calendars configured")
+ (when (calendar-sync--require-calendars)
(let ((status-lines '()))
(dolist (calendar calendar-sync-calendars)
(let* ((name (plist-get calendar :name))
@@ -1364,8 +1367,7 @@ Syncs all calendars immediately, then every `calendar-sync-interval-minutes'."
(interactive)
(when calendar-sync--timer
(cancel-timer calendar-sync--timer))
- (if (null calendar-sync-calendars)
- (message "calendar-sync: No calendars configured (set calendar-sync-calendars)")
+ (when (calendar-sync--require-calendars)
;; Sync immediately
(calendar-sync--sync-all-calendars)
;; Start timer for future syncs (convert minutes to seconds)