Function: auth-source-backends-parser-macos-keychain

auth-source-backends-parser-macos-keychain is a byte-compiled function defined in auth-source.el.gz.

Signature

(auth-source-backends-parser-macos-keychain ENTRY)

Source Code

;; Defined in /usr/src/emacs/lisp/auth-source.el.gz
(defun auth-source-backends-parser-macos-keychain (entry)
  ;; take macos-keychain-{internet,generic}:XYZ and use it as macOS
  ;; Keychain "XYZ" matching any user, host, and protocol
  (when (and (stringp entry) (string-match "^macos-keychain-internet:\\(.+\\)"
                                           entry))
    (setq entry `(:source (:macos-keychain-internet
                           ,(match-string 1 entry)))))
  (when (and (stringp entry) (string-match "^macos-keychain-generic:\\(.+\\)"
                                           entry))
    (setq entry `(:source (:macos-keychain-generic
                           ,(match-string 1 entry)))))
  ;; take 'macos-keychain-internet or generic and use it as a Mac OS
  ;; Keychain collection matching any user, host, and protocol
  (when (eq entry 'macos-keychain-internet)
    (setq entry '(:source (:macos-keychain-internet default))))
  (when (eq entry 'macos-keychain-generic)
    (setq entry '(:source (:macos-keychain-generic default))))
  (cond
   ;; the macOS Keychain
   ((and
     (not (null (plist-get entry :source))) ; the source must not be nil
     (listp (plist-get entry :source))      ; and it must be a list
     (or
      (plist-get (plist-get entry :source) :macos-keychain-generic)
      (plist-get (plist-get entry :source) :macos-keychain-internet)))

    (let* ((source-spec (plist-get entry :source))
           (keychain-generic (plist-get source-spec :macos-keychain-generic))
           (keychain-type (if keychain-generic
                              'macos-keychain-generic
                            'macos-keychain-internet))
           (source (plist-get source-spec (if keychain-generic
                                              :macos-keychain-generic
                                            :macos-keychain-internet))))

      (when (symbolp source)
        (setq source (symbol-name source)))

      (auth-source-backend
       :source source
       :type keychain-type
       :search-function #'auth-source-macos-keychain-search
       :create-function #'auth-source-macos-keychain-create)))))