diff options
| author | Craig Jennings <c@cjennings.net> | 2026-04-05 07:00:44 -0500 |
|---|---|---|
| committer | Craig Jennings <c@cjennings.net> | 2026-04-05 07:00:44 -0500 |
| commit | 10e2929d5be68ec1fda8b5b4ed08511eac02e7b3 (patch) | |
| tree | acb0e0e0f6af410463a4e9e2b4e86b7815c8ece7 /modules/calendar-sync.el | |
| parent | 91c8f727f6a5881adf40ebca48af4456ad14174c (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.el | 18 |
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) |
