Function: package-dir-info
package-dir-info is a byte-compiled function defined in package.el.gz.
Signature
(package-dir-info)
Documentation
Find package information for a directory.
The return result is a package-desc.
Source Code
;; Defined in /usr/src/emacs/lisp/emacs-lisp/package.el.gz
(defun package-dir-info ()
"Find package information for a directory.
The return result is a `package-desc'."
(cl-assert (derived-mode-p 'dired-mode))
(let* ((desc-file (package--description-file default-directory)))
(if (file-readable-p desc-file)
(with-temp-buffer
(insert-file-contents desc-file)
(package--read-pkg-desc 'dir))
(let ((files (directory-files default-directory t "\\.el\\'" t))
info)
(while files
(with-temp-buffer
(let ((file (pop files)))
;; The file may be a link to a nonexistent file; e.g., a
;; lock file.
(when (file-exists-p file)
(insert-file-contents file)
;; When we find the file with the data,
(when (setq info (ignore-errors (package-buffer-info)))
;; stop looping,
(setq files nil)
;; set the 'dir kind,
(setf (package-desc-kind info) 'dir))))))
(unless info
(error "No .el files with package headers in `%s'" default-directory))
;; and return the info.
info))))