[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] scratch/install-package-from-directory 44d3f7d 3/4: Set 'd
From: |
Artur Malabarba |
Subject: |
[Emacs-diffs] scratch/install-package-from-directory 44d3f7d 3/4: Set 'dir packages to 'tar or 'single after installation. |
Date: |
Wed, 14 Jan 2015 15:21:07 +0000 |
branch: scratch/install-package-from-directory
commit 44d3f7dd079c150d2b484cf804f86ea6cc00f524
Author: Artur Malabarba <address@hidden>
Commit: Artur Malabarba <address@hidden>
Set 'dir packages to 'tar or 'single after installation.
---
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 dcb63a3..27d6b9c 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?