Refactor package management API
To make backtraces a little less cluttered, in case of the notorious arrayp error, which I am yet unable to reproduce or understand.
This commit is contained in:
parent
6e6dfc2215
commit
1a1d74afa3
1 changed files with 39 additions and 37 deletions
|
@ -409,8 +409,7 @@ calls."
|
||||||
"QUELPA -> ELPA"))
|
"QUELPA -> ELPA"))
|
||||||
((plist-get (cdr pkg) :recipe)
|
((plist-get (cdr pkg) :recipe)
|
||||||
"QUELPA")
|
"QUELPA")
|
||||||
(t
|
("ELPA"))))
|
||||||
"ELPA"))))
|
|
||||||
(cl-sort (cl-copy-list packages) #'string-lessp
|
(cl-sort (cl-copy-list packages) #'string-lessp
|
||||||
:key #'car)
|
:key #'car)
|
||||||
"\n")))))
|
"\n")))))
|
||||||
|
@ -421,18 +420,24 @@ calls."
|
||||||
(dolist (pkg packages)
|
(dolist (pkg packages)
|
||||||
(print! "Installing %s" (car pkg))
|
(print! "Installing %s" (car pkg))
|
||||||
(doom--condition-case!
|
(doom--condition-case!
|
||||||
(print! "%s%s"
|
(let ((result
|
||||||
(cond ((and (package-installed-p (car pkg))
|
(or (and (package-installed-p (car pkg))
|
||||||
(not (doom-package-different-backend-p (car pkg)))
|
(not (doom-package-different-backend-p (car pkg)))
|
||||||
(not (doom-package-different-recipe-p (car pkg))))
|
(not (doom-package-different-recipe-p (car pkg)))
|
||||||
(dark (white "⚠ ALREADY INSTALLED")))
|
'already-installed)
|
||||||
((doom-install-package (car pkg) (cdr pkg))
|
(and (doom-install-package (car pkg) (cdr pkg))
|
||||||
(setq success t)
|
(setq success t)
|
||||||
(green "✓ DONE"))
|
'success)
|
||||||
((red "✕ FAILED")))
|
'failure))
|
||||||
(if (plist-member (cdr pkg) :pin)
|
(pin-label
|
||||||
(format " [pinned: %s]" (plist-get (cdr pkg) :pin))
|
(and (plist-member (cdr pkg) :pin)
|
||||||
""))))
|
(format " [pinned: %s]" (plist-get (cdr pkg) :pin)))))
|
||||||
|
(print! "%s%s"
|
||||||
|
(pcase result
|
||||||
|
(`already-installed (dark (white "⚠ ALREADY INSTALLED")))
|
||||||
|
(`success (green "✓ DONE"))
|
||||||
|
(`failure (red "✕ FAILED")))
|
||||||
|
(or pin-label "")))))
|
||||||
(print! (bold (green "Finished!")))
|
(print! (bold (green "Finished!")))
|
||||||
(if success (doom-delete-autoloads-file doom-package-autoload-file))
|
(if success (doom-delete-autoloads-file doom-package-autoload-file))
|
||||||
success)))))
|
success)))))
|
||||||
|
@ -492,34 +497,31 @@ calls."
|
||||||
((not
|
((not
|
||||||
(or auto-accept-p
|
(or auto-accept-p
|
||||||
(y-or-n-p
|
(y-or-n-p
|
||||||
(format
|
(format "%s packages will be deleted:\n\n%s\n\nProceed?"
|
||||||
"%s packages will be deleted:\n\n%s\n\nProceed?"
|
(length packages)
|
||||||
(length packages)
|
(mapconcat
|
||||||
(mapconcat
|
(lambda (sym)
|
||||||
(lambda (sym)
|
(let ((backend (doom-package-backend sym)))
|
||||||
(format "+ %s (%s)" sym
|
(format "+ %s (%s)" sym
|
||||||
(let ((backend (doom-package-backend sym)))
|
(if (doom-package-different-backend-p sym)
|
||||||
(if (doom-package-different-backend-p sym)
|
(pcase backend
|
||||||
(pcase backend
|
(`quelpa "QUELPA->ELPA")
|
||||||
(`quelpa "QUELPA->ELPA")
|
(`elpa "ELPA->QUELPA")
|
||||||
(`elpa "ELPA->QUELPA")
|
(_ "removed"))
|
||||||
(_ "removed"))
|
(upcase (symbol-name backend))))))
|
||||||
(upcase (symbol-name backend))))))
|
(sort (cl-copy-list packages) #'string-lessp)
|
||||||
(sort (cl-copy-list packages) #'string-lessp)
|
"\n")))))
|
||||||
"\n")))))
|
|
||||||
(error "Aborted!"))
|
(error "Aborted!"))
|
||||||
|
|
||||||
((let (success)
|
((let (success)
|
||||||
(dolist (pkg packages)
|
(dolist (pkg packages)
|
||||||
(doom--condition-case!
|
(doom--condition-case!
|
||||||
(print!
|
(let ((result (doom-delete-package pkg t)))
|
||||||
(let ((result (doom-delete-package pkg t)))
|
(if result (setq success t))
|
||||||
(when result (setq success t))
|
(print! (color (if result 'green 'red)
|
||||||
(color (if result 'green 'red)
|
"%s %s"
|
||||||
"%s %s"
|
(if result "✓ Removed" "✕ Failed to remove")
|
||||||
(if result "✓ Removed" "✕ Failed to remove")
|
pkg)))))
|
||||||
pkg)))))
|
|
||||||
|
|
||||||
(print! (bold (green "Finished!")))
|
(print! (bold (green "Finished!")))
|
||||||
(if success (doom-delete-autoloads-file doom-package-autoload-file))
|
(if success (doom-delete-autoloads-file doom-package-autoload-file))
|
||||||
success)))))
|
success)))))
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue