Only clone packages if necessary

* lisp/emacs-lisp/package-vc.el (package-vc-unpack): Check if
directory exists before cloning.
This commit is contained in:
Philip Kaludercic 2022-10-17 00:13:06 +02:00
parent b4e833b2f8
commit 39c9b6751e
No known key found for this signature in database
GPG key ID: F2C3CC513DB89F66

View file

@ -267,11 +267,12 @@ The output is written out into PKG-FILE."
;; names to avoid an unnecessary error.
(file-name-base repo)))))
;; Clone the repository into `repo-dir'.
(make-directory (file-name-directory repo-dir) t)
(unless (setf (car (alist-get :upstream attr))
(vc-clone backend repo repo-dir))
(error "Failed to clone %s from %s" name repo))
;; Clone the repository into `repo-dir' if necessary
(unless (file-exists-p repo-dir)
(make-directory (file-name-directory repo-dir) t)
(unless (setf (car (alist-get :upstream attr))
(vc-clone backend repo repo-dir))
(error "Failed to clone %s from %s" name repo)))
(unless (eq pkg-dir repo-dir)
;; Link from the right position in `repo-dir' to the package