aboutsummaryrefslogtreecommitdiff
path: root/modules
diff options
context:
space:
mode:
authorCraig Jennings <c@cjennings.net>2026-08-10 01:59:40 -0500
committerCraig Jennings <c@cjennings.net>2026-08-10 01:59:40 -0500
commitebed67a6e285f7667591034b0bc5f962c45e6307 (patch)
treec3fb60ece7a060f76a40471d54632f4dfdda82d9 /modules
parent36c737f45efc4f9459a7923d62ccf2cf5bf2686a (diff)
downloaddotemacs-ebed67a6e285f7667591034b0bc5f962c45e6307.tar.gz
dotemacs-ebed67a6e285f7667591034b0bc5f962c45e6307.zip
feat(google-keep): load machine-local settings from google-keep.local.elHEADmain
The bridge's interpreter path and account email are machine-local, and this config discards customize output, so nothing persisted them across daemon restarts. The module now loads google-keep.local.el when readable (the calendar-sync.local.el shape) before the interpreter check, so a locally-set venv path is what gets verified. A broken local file reports instead of breaking module load. Three tests cover load, absence, and the error path.
Diffstat (limited to 'modules')
-rw-r--r--modules/google-keep-config.el25
1 files changed, 25 insertions, 0 deletions
diff --git a/modules/google-keep-config.el b/modules/google-keep-config.el
index 1738fa6e..c0a5374f 100644
--- a/modules/google-keep-config.el
+++ b/modules/google-keep-config.el
@@ -46,6 +46,27 @@ Unset until the one-time setup is done; `cj/keep-refresh' warns when nil."
:type 'string
:group 'cj/keep)
+(defcustom cj/keep-local-config-file
+ (expand-file-name "google-keep.local.el" user-emacs-directory)
+ "Machine-local Keep config loaded when readable.
+The intended place for `cj/keep-python' (a machine-local venv path) and
+`cj/keep-email' -- gitignored, same shape as calendar-sync.local.el."
+ :type 'file
+ :group 'cj/keep)
+
+(defun cj/keep--load-local-config ()
+ "Load the machine-local Keep config when available.
+Return non-nil when the file loaded cleanly, nil when it is absent or
+broken; a broken file is reported via `message', never signaled."
+ (when (file-readable-p cj/keep-local-config-file)
+ (condition-case err
+ (load cj/keep-local-config-file nil t)
+ (error
+ (message "google-keep: Failed to load local config %s: %s"
+ (abbreviate-file-name cj/keep-local-config-file)
+ (error-message-string err))
+ nil))))
+
(defvar cj/keep--bridge-script
(expand-file-name "scripts/google-keep/keep-bridge.py" user-emacs-directory)
"Path to the gkeepapi bridge script.")
@@ -202,6 +223,10 @@ Returns the note count."
(keymap-global-set "C-c k" cj/keep-prefix-map)
+;; Machine-local settings (venv interpreter, email) load before the
+;; interpreter warning below, so a venv path set locally is what gets checked.
+(cj/keep--load-local-config)
+
;; Warn at load if the interpreter is missing; gkeepapi/token failures surface
;; at refresh time via the bridge's stderr reason token.
(cj/executable-find-or-warn cj/keep-python "Google Keep bridge" 'google-keep-config)