diff options
author | Artur Malabarba <bruce.connor.am@gmail.com> | 2015-01-12 23:26:58 -0200 |
---|---|---|
committer | Artur Malabarba <bruce.connor.am@gmail.com> | 2015-01-16 22:19:17 -0200 |
commit | 2fe6110d710b71b90f90c84bfa8eaf6b129eb0a6 (patch) | |
tree | 452d85cd327b56ddbb755e93b3e03830858f72da /lisp/emacs-lisp/package.el | |
parent | be6dbd4b1ea00be1d63121cdc05d61424129a6ba (diff) | |
download | emacs-2fe6110d710b71b90f90c84bfa8eaf6b129eb0a6.tar.gz emacs-2fe6110d710b71b90f90c84bfa8eaf6b129eb0a6.tar.bz2 emacs-2fe6110d710b71b90f90c84bfa8eaf6b129eb0a6.zip |
* emacs-lisp/package.el (package-dir-info): New function.
Find package information for a directory. The return result is a
`package-desc'.
Diffstat (limited to 'lisp/emacs-lisp/package.el')
-rw-r--r-- | lisp/emacs-lisp/package.el | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/lisp/emacs-lisp/package.el b/lisp/emacs-lisp/package.el index d5906675596..77b15c104ef 100644 --- a/lisp/emacs-lisp/package.el +++ b/lisp/emacs-lisp/package.el @@ -1281,6 +1281,24 @@ The return result is a `package-desc'." (package--read-pkg-desc 'tar) (kill-buffer (current-buffer)))))) +(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 + (insert-file-contents (pop files)) + (if (setq info (ignore-errors (package-buffer-info))) + (setq files nil) + (setf (package-desc-kind info) 'dir)))))))) + (defun package--read-pkg-desc (kind) "Read a `define-package' form in current buffer. Return the pkg-desc, with desc-kind set to KIND." |