Improve UX & output of doom/bump-* commands
This commit is contained in:
parent
35b99fb272
commit
196490c772
1 changed files with 35 additions and 37 deletions
|
@ -79,36 +79,35 @@ Grabs the latest commit id of the package using 'git'."
|
||||||
straight-vc-git-default-branch))
|
straight-vc-git-default-branch))
|
||||||
(oldid (or (plist-get plist :pin)
|
(oldid (or (plist-get plist :pin)
|
||||||
(doom-package-get package :pin)))
|
(doom-package-get package :pin)))
|
||||||
id url)
|
(url (straight-vc-git--destructure recipe (upstream-repo upstream-host)
|
||||||
(when (or (eq (plist-get plist :built-in) t)
|
(straight-vc-git--encode-url upstream-repo upstream-host)))
|
||||||
(and (eq (plist-get plist :built-in) 'prefer)
|
(id (or (when url
|
||||||
(locate-library (symbol-name package))))
|
(cdr (doom-call-process
|
||||||
(user-error "%s: skipping built-in package" package))
|
"git" "ls-remote" url
|
||||||
(setq url (straight-vc-git--destructure recipe (upstream-repo upstream-host)
|
(unless select
|
||||||
(straight-vc-git--encode-url upstream-repo upstream-host))
|
(or branch straight-vc-git-default-branch)))))
|
||||||
id (when url
|
(user-error "%s: no id from %s" package url)))
|
||||||
(cdr (doom-call-process
|
(id (car (split-string
|
||||||
"git" "ls-remote" url
|
(if select
|
||||||
(unless select
|
(completing-read "Commit: " (split-string id "\n" t))
|
||||||
(or branch straight-vc-git-default-branch))))))
|
id)))))
|
||||||
(unless id
|
(when (and oldid
|
||||||
(user-error "%s: no id from %s" package url))
|
(plist-member plist :pin)
|
||||||
(let* ((id (car (split-string
|
(equal oldid id))
|
||||||
(if select
|
(user-error "%s: no update necessary" package))
|
||||||
(completing-read "Commit: " (split-string id "\n" t))
|
(save-excursion
|
||||||
id)))))
|
(if (re-search-forward ":pin +\"\\([^\"]+\\)\"" end t)
|
||||||
(when (and oldid (equal oldid id))
|
(replace-match id t t nil 1)
|
||||||
(user-error "%s: no update necessary" package))
|
(goto-char (1- end))
|
||||||
(save-excursion
|
(insert " :pin " (prin1-to-string id))))
|
||||||
(if (re-search-forward ":pin +\"\\([^\"]+\\)\"" end t)
|
(cond ((not oldid)
|
||||||
(replace-match id t t nil 1)
|
(message "%s: → %s" package (substring id 0 10)))
|
||||||
(thing-at-point--end-of-sexp)
|
((< (length oldid) (length id))
|
||||||
(backward-char)
|
(message "%s: extended to %s..." package id))
|
||||||
(insert " :pin " (prin1-to-string id))))
|
((message "%s: %s → %s"
|
||||||
(message "Updated %S: %s -> %s"
|
package
|
||||||
package
|
(substring oldid 0 10)
|
||||||
(substring oldid 0 10)
|
(substring id 0 10)))))))
|
||||||
(substring id 0 10))))))
|
|
||||||
|
|
||||||
;;;###autoload
|
;;;###autoload
|
||||||
(defun doom/bump-packages-in-buffer (&optional select)
|
(defun doom/bump-packages-in-buffer (&optional select)
|
||||||
|
@ -141,12 +140,12 @@ each package."
|
||||||
(interactive
|
(interactive
|
||||||
(let* ((module (completing-read
|
(let* ((module (completing-read
|
||||||
"Bump module: "
|
"Bump module: "
|
||||||
(let ((modules (cons (list :core) (doom-module-list 'all))))
|
(let ((modules (doom-module-list 'all)))
|
||||||
(mapcar (lambda (m)
|
(mapcar (lambda (m)
|
||||||
(if (listp m)
|
(if (listp m)
|
||||||
(format "%s %s" (car m) (cdr m))
|
(format "%s %s" (car m) (cdr m))
|
||||||
(format "%s" m)))
|
(format "%s" m)))
|
||||||
(append (list ":private")
|
(append '(:private :core)
|
||||||
(delete-dups (mapcar #'car modules))
|
(delete-dups (mapcar #'car modules))
|
||||||
modules)))
|
modules)))
|
||||||
nil t nil nil))
|
nil t nil nil))
|
||||||
|
@ -154,18 +153,18 @@ each package."
|
||||||
(list (intern (car module))
|
(list (intern (car module))
|
||||||
(ignore-errors (intern (cadr module)))
|
(ignore-errors (intern (cadr module)))
|
||||||
current-prefix-arg)))
|
current-prefix-arg)))
|
||||||
(mapc (lambda (module)
|
(mapc (fn! ((cat . mod))
|
||||||
(if-let (packages-file
|
(if-let (packages-file
|
||||||
(pcase category
|
(pcase cat
|
||||||
(:private (doom-glob doom-private-dir "packages.el"))
|
(:private (doom-glob doom-private-dir "packages.el"))
|
||||||
(:core (doom-glob doom-core-dir "packages.el"))
|
(:core (doom-glob doom-core-dir "packages.el"))
|
||||||
(_ (doom-module-locate-path category module "packages.el"))))
|
(_ (doom-module-locate-path cat mod "packages.el"))))
|
||||||
(with-current-buffer
|
(with-current-buffer
|
||||||
(or (get-file-buffer packages-file)
|
(or (get-file-buffer packages-file)
|
||||||
(find-file-noselect packages-file))
|
(find-file-noselect packages-file))
|
||||||
(doom/bump-packages-in-buffer select)
|
(doom/bump-packages-in-buffer select)
|
||||||
(save-buffer))
|
(save-buffer))
|
||||||
(message "Module %s has no packages.el file" (cons category module))))
|
(message "Module %s has no packages.el file" (cons cat mod))))
|
||||||
(if module
|
(if module
|
||||||
(list (cons category module))
|
(list (cons category module))
|
||||||
(cl-remove-if-not (lambda (m) (eq (car m) category))
|
(cl-remove-if-not (lambda (m) (eq (car m) category))
|
||||||
|
@ -178,7 +177,6 @@ each package."
|
||||||
(interactive
|
(interactive
|
||||||
(list (completing-read "Bump package: "
|
(list (completing-read "Bump package: "
|
||||||
(mapcar #'car (doom-package-list 'all)))))
|
(mapcar #'car (doom-package-list 'all)))))
|
||||||
|
|
||||||
(let* ((packages (doom-package-list 'all))
|
(let* ((packages (doom-package-list 'all))
|
||||||
(modules (plist-get (alist-get package packages) :modules)))
|
(modules (plist-get (alist-get package packages) :modules)))
|
||||||
(unless modules
|
(unless modules
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue