mirror of
https://github.com/dimitri/el-get.git
synced 2024-09-29 13:08:51 +08:00
Merge pull request #577 from DarwinAwardWinner/dep-fix
Fix for installing packages with already-installed dependencies
This commit is contained in:
commit
3bebbeb519
|
@ -471,15 +471,14 @@ PACKAGE may be either a string or the corresponding symbol."
|
|||
;; once the first is installed
|
||||
(el-get-verbose-message "el-get-install %s: %S" package packages)
|
||||
(setq el-get-next-packages (cdr packages))
|
||||
(add-hook 'el-get-post-install-hooks 'el-get-install-next-packages))
|
||||
(add-hook 'el-get-post-init-hooks 'el-get-install-next-packages))
|
||||
|
||||
(let ((package (car packages)))
|
||||
(if (not (el-get-package-is-installed package))
|
||||
(el-get-do-install package)
|
||||
;; if package is already installed, skip to the next
|
||||
(message "el-get: `%s' package is already installed" package)
|
||||
(el-get-init package)
|
||||
(el-get-install-next-packages package)))))
|
||||
(el-get-init package)))))
|
||||
|
||||
(defun el-get-reinstall (package)
|
||||
"Remove PACKAGE and then install it again."
|
||||
|
|
33
test/el-get-issue-583.el
Normal file
33
test/el-get-issue-583.el
Normal file
|
@ -0,0 +1,33 @@
|
|||
;; https://github.com/dimitri/el-get/issues/583
|
||||
;;
|
||||
;; Installing, removing, and installing a package doesn't
|
||||
;;
|
||||
;; Also related: https://github.com/dimitri/el-get/issues/576
|
||||
|
||||
(let ((el-get-default-process-sync t)
|
||||
(el-get-verbose t)
|
||||
(el-get-sources
|
||||
'((:name a
|
||||
:type builtin
|
||||
:depends (b c d e f))
|
||||
(:name b
|
||||
:type builtin)
|
||||
(:name c
|
||||
:type builtin)
|
||||
(:name d
|
||||
:type builtin)
|
||||
(:name e
|
||||
:type builtin)
|
||||
(:name f
|
||||
:type builtin))))
|
||||
(require 'el-get)
|
||||
;; Ensure a is uninstalled
|
||||
(ignore-errors (el-get-remove 'a))
|
||||
;; Install a and all deps
|
||||
(el-get-install 'a)
|
||||
;; Remove a, leaving deps installed
|
||||
(el-get-remove 'a)
|
||||
;; Try to install a again, this fails and only inits b and c.
|
||||
(el-get-install 'a)
|
||||
(assert (el-get-package-is-installed 'a) nil
|
||||
"Package A should be installed but isn't."))
|
Loading…
Reference in New Issue
Block a user