diff options
| author | Artur Malabarba <bruce.connor.am@gmail.com> | 2015-01-14 13:04:00 -0200 |
|---|---|---|
| committer | Artur Malabarba <bruce.connor.am@gmail.com> | 2015-01-14 13:04:00 -0200 |
| commit | 44d3f7dd079c150d2b484cf804f86ea6cc00f524 (patch) | |
| tree | 9dcf26b7db4b292a6c51da581add6e094b1b0fa2 /lisp/emacs-lisp | |
| parent | 7224ac1ed8898d291230b787dea6f8fb2d87f8ee (diff) | |
| download | emacs-44d3f7dd079c150d2b484cf804f86ea6cc00f524.tar.gz | |
Set 'dir packages to 'tar or 'single after installation.
Diffstat (limited to 'lisp/emacs-lisp')
| -rw-r--r-- | lisp/emacs-lisp/package.el | 18 |
1 files changed, 12 insertions, 6 deletions
diff --git a/lisp/emacs-lisp/package.el b/lisp/emacs-lisp/package.el index dcb63a3e207..27d6b9ce738 100644 --- a/lisp/emacs-lisp/package.el +++ b/lisp/emacs-lisp/package.el @@ -787,12 +787,18 @@ untar into a directory named DIR; otherwise, signal an error." (pcase (package-desc-kind pkg-desc) (`dir (make-directory pkg-dir t) - (dolist (source-file - (directory-files - default-directory 'full "\\`[^.].*\\.el\\'" 'nosort)) - (let ((target-el-file - (expand-file-name (file-name-nondirectory source-file) pkg-dir))) - (copy-file source-file target-el-file t)))) + (let ((file-list + (directory-files + default-directory 'full "\\`[^.].*\\.el\\'" 'nosort))) + (dolist (source-file file-list) + (let ((target-el-file + (expand-file-name (file-name-nondirectory source-file) pkg-dir))) + (copy-file source-file target-el-file t))) + ;; Now that the files have been installed, this package is + ;; indistinguishable from a `tar' or a `single'. Let's make + ;; things simple by ensuring we're one of them. + (setf (package-desc-kind pkg-desc) + (if (> (length file-list) 1) 'tar 'single)))) (`tar (make-directory package-user-dir t) ;; FIXME: should we delete PKG-DIR if it exists? |
