fix org-caldav: odstraň url-basic-auth-storage pre-registration (broke Emacs 31), spoléhej na ~/.authinfo + native url-auth
This commit is contained in:
41
config.el
41
config.el
@@ -1733,49 +1733,22 @@ current frame."
|
|||||||
;;; --- Tier 1: High impact ---
|
;;; --- Tier 1: High impact ---
|
||||||
|
|
||||||
;; org-caldav — CalDAV sync for org (Baikal, Basic auth over HTTPS)
|
;; org-caldav — CalDAV sync for org (Baikal, Basic auth over HTTPS)
|
||||||
;; Add to ~/.authinfo (chmod 600):
|
;; Credentials via ~/.authinfo (chmod 600):
|
||||||
;; machine cal.apps.sukany.cz login martin password YOUR_PASSWORD
|
;; machine cal.apps.sukany.cz login martin password YOUR_PASSWORD
|
||||||
(use-package! org-caldav
|
(use-package! org-caldav
|
||||||
:commands my/org-caldav-sync
|
:commands my/org-caldav-sync
|
||||||
:config
|
:config
|
||||||
(defun my/caldav-preregister-basic-auth ()
|
|
||||||
"Read CalDAV credentials from auth-source and pre-register for Basic auth.
|
|
||||||
This bypasses auth-source retry issues during CalDAV requests.
|
|
||||||
Requires ~/.authinfo entry:
|
|
||||||
machine cal.apps.sukany.cz login martin password <pass>"
|
|
||||||
(require 'url-auth)
|
|
||||||
(require 'auth-source)
|
|
||||||
(let* ((entry (car (auth-source-search
|
|
||||||
:host "cal.apps.sukany.cz"
|
|
||||||
:user "martin"
|
|
||||||
:max 1
|
|
||||||
:require '(:user :secret))))
|
|
||||||
(user (when entry (plist-get entry :user)))
|
|
||||||
(secret (when entry (plist-get entry :secret)))
|
|
||||||
(pass (when secret (if (functionp secret) (funcall secret) secret))))
|
|
||||||
(if (and user pass)
|
|
||||||
(progn
|
|
||||||
;; Pre-register in url-basic-auth-storage: (server realm user pass)
|
|
||||||
(setq url-basic-auth-storage
|
|
||||||
(cl-remove "cal.apps.sukany.cz" url-basic-auth-storage
|
|
||||||
:key #'car :test #'equal))
|
|
||||||
(push (list "cal.apps.sukany.cz" "BaikalDAV" user pass)
|
|
||||||
url-basic-auth-storage)
|
|
||||||
t)
|
|
||||||
(user-error "CalDAV: no credentials found.\nAdd to ~/.authinfo:\n machine cal.apps.sukany.cz login martin password <pass>"))))
|
|
||||||
|
|
||||||
(defun my/org-caldav-sync ()
|
|
||||||
"Sync org-caldav: personal calendar (twoway) + family calendar (read-only)."
|
|
||||||
(interactive)
|
|
||||||
(my/caldav-preregister-basic-auth)
|
|
||||||
;; Personal calendar — twoway, new events created here
|
|
||||||
(setq org-caldav-url "https://cal.apps.sukany.cz/dav.php/calendars/martin"
|
(setq org-caldav-url "https://cal.apps.sukany.cz/dav.php/calendars/martin"
|
||||||
org-caldav-calendar-id "default"
|
org-caldav-calendar-id "default"
|
||||||
org-caldav-inbox "~/org/caldav-inbox.org"
|
org-caldav-inbox "~/org/caldav-inbox.org"
|
||||||
org-caldav-files '("~/org/personal.org" "~/org/work.org")
|
org-caldav-files '("~/org/personal.org" "~/org/work.org")
|
||||||
org-caldav-sync-direction 'twoway)
|
org-caldav-sync-direction 'twoway)
|
||||||
(org-caldav-sync)
|
(defun my/org-caldav-sync ()
|
||||||
(message "CalDAV sync complete: personal (twoway)")))
|
"Sync org-caldav — personal calendar (twoway).
|
||||||
|
Credentials must be in ~/.authinfo:
|
||||||
|
machine cal.apps.sukany.cz login martin password <pass>"
|
||||||
|
(interactive)
|
||||||
|
(org-caldav-sync)))
|
||||||
|
|
||||||
(map! :leader "o c" #'my/org-caldav-sync)
|
(map! :leader "o c" #'my/org-caldav-sync)
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user