aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorArtur Malabarba2015-01-12 23:26:58 -0200
committerArtur Malabarba2015-01-16 22:19:17 -0200
commit2fe6110d710b71b90f90c84bfa8eaf6b129eb0a6 (patch)
tree452d85cd327b56ddbb755e93b3e03830858f72da
parentbe6dbd4b1ea00be1d63121cdc05d61424129a6ba (diff)
downloademacs-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/ChangeLog2
-rw-r--r--lisp/emacs-lisp/package.el18
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
72015-01-16 Jorgen Schaefer <contact@jorgenschaefer.de> 92015-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.
1286The 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.
1286Return the pkg-desc, with desc-kind set to KIND." 1304Return the pkg-desc, with desc-kind set to KIND."