]> git.eshelyaron.com Git - emacs.git/commitdiff
; Raise an error if a VC package checkout is empty
authorPhilip Kaludercic <philipk@posteo.net>
Tue, 14 Feb 2023 18:49:51 +0000 (19:49 +0100)
committerPhilip Kaludercic <philipk@posteo.net>
Tue, 14 Feb 2023 18:50:01 +0000 (19:50 +0100)
* lisp/emacs-lisp/package-vc.el (package-vc--unpack): Check if PKG-DIR
is empty before proceeding with the installation.

lisp/emacs-lisp/package-vc.el

index 4a9870529497739648f8a8e4cd7094bc176e85dc..bad59aa6c0f3995808cfbfe626e7ec758069cec7 100644 (file)
@@ -611,7 +611,7 @@ checkout.  This overrides the `:branch' attribute in PKG-SPEC."
   (pcase-let* (((map :lisp-dir) pkg-spec)
                (name (package-desc-name pkg-desc))
                (dirname (package-desc-full-name pkg-desc))
-               (pkg-dir (expand-file-name dirname package-user-dir)))
+               (pkg-dir (file-name-as-directory (expand-file-name dirname package-user-dir))))
     (when (string-empty-p name)
       (user-error "Empty package name"))
     (setf (package-desc-dir pkg-desc) pkg-dir)
@@ -620,6 +620,9 @@ checkout.  This overrides the `:branch' attribute in PKG-SPEC."
           (package--delete-directory pkg-dir)
         (error "There already exists a checkout for %s" name)))
     (package-vc--clone pkg-desc pkg-spec pkg-dir rev)
+    (when (directory-empty-p pkg-dir)
+      (delete-directory pkg-dir)
+      (error "Empty checkout for %s" name))
 
     ;; When nothing is specified about a `lisp-dir', then should
     ;; heuristically check if there is a sub-directory with lisp