diff options
| author | Artur Malabarba | 2015-01-12 23:26:58 -0200 |
|---|---|---|
| committer | Artur Malabarba | 2015-01-16 22:19:17 -0200 |
| commit | 2fe6110d710b71b90f90c84bfa8eaf6b129eb0a6 (patch) | |
| tree | 452d85cd327b56ddbb755e93b3e03830858f72da | |
| parent | be6dbd4b1ea00be1d63121cdc05d61424129a6ba (diff) | |
| download | emacs-2fe6110d710b71b90f90c84bfa8eaf6b129eb0a6.tar.gz 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'.
| -rw-r--r-- | lisp/ChangeLog | 2 | ||||
| -rw-r--r-- | lisp/emacs-lisp/package.el | 18 |
2 files changed, 20 insertions, 0 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 93796e67a3d..dce08a42255 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog | |||
| @@ -3,6 +3,8 @@ | |||
| 3 | * emacs-lisp/package.el (package--read-pkg-desc): New | 3 | * emacs-lisp/package.el (package--read-pkg-desc): New |
| 4 | function. Read a `define-package' form in current buffer. Return | 4 | function. Read a `define-package' form in current buffer. Return |
| 5 | the pkg-desc, with desc-kind set to KIND. | 5 | the pkg-desc, with desc-kind set to KIND. |
| 6 | (package-dir-info): New function. Find package information for a | ||
| 7 | directory. The return result is a `package-desc'. | ||
| 6 | 8 | ||
| 7 | 2015-01-16 Jorgen Schaefer <contact@jorgenschaefer.de> | 9 | 2015-01-16 Jorgen Schaefer <contact@jorgenschaefer.de> |
| 8 | 10 | ||
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'." | |||
| 1281 | (package--read-pkg-desc 'tar) | 1281 | (package--read-pkg-desc 'tar) |
| 1282 | (kill-buffer (current-buffer)))))) | 1282 | (kill-buffer (current-buffer)))))) |
| 1283 | 1283 | ||
| 1284 | (defun package-dir-info () | ||
| 1285 | "Find package information for a directory. | ||
| 1286 | The return result is a `package-desc'." | ||
| 1287 | (cl-assert (derived-mode-p 'dired-mode)) | ||
| 1288 | (let* ((desc-file (package--description-file default-directory))) | ||
| 1289 | (if (file-readable-p desc-file) | ||
| 1290 | (with-temp-buffer | ||
| 1291 | (insert-file-contents desc-file) | ||
| 1292 | (package--read-pkg-desc 'dir)) | ||
| 1293 | (let ((files (directory-files default-directory t "\\.el\\'" t)) | ||
| 1294 | info) | ||
| 1295 | (while files | ||
| 1296 | (with-temp-buffer | ||
| 1297 | (insert-file-contents (pop files)) | ||
| 1298 | (if (setq info (ignore-errors (package-buffer-info))) | ||
| 1299 | (setq files nil) | ||
| 1300 | (setf (package-desc-kind info) 'dir)))))))) | ||
| 1301 | |||
| 1284 | (defun package--read-pkg-desc (kind) | 1302 | (defun package--read-pkg-desc (kind) |
| 1285 | "Read a `define-package' form in current buffer. | 1303 | "Read a `define-package' form in current buffer. |
| 1286 | Return the pkg-desc, with desc-kind set to KIND." | 1304 | Return the pkg-desc, with desc-kind set to KIND." |