chezmoi_dotfiles/dot_config/emacs/core/autoload/packages.el

203 lines
7.8 KiB
EmacsLisp
Raw Normal View History

2021-03-19 14:08:04 +00:00
;;; core/autoload/packages.el -*- lexical-binding: t; -*-
;;;###autoload
(defun doom/reload-packages ()
"Reload `doom-packages', `package' and `quelpa'."
(interactive)
;; HACK straight.el must be loaded for this to work
(message "Reloading packages")
(doom-initialize-packages t)
(message "Reloading packages...DONE"))
;;
;;; Bump commands
(defun doom--package-merge-recipes (package plist)
(require 'straight)
(doom-plist-merge
(plist-get plist :recipe)
(if-let (recipe (straight-recipes-retrieve package))
(cdr (if (memq (car recipe) '(quote \`))
(eval recipe t)
recipe))
(let ((recipe (plist-get (cdr (assq package doom-packages))
:recipe)))
(if (keywordp (car recipe))
recipe
(cdr recipe))))))
(defun doom--package-to-bump-string (package plist)
"Return a PACKAGE and its PLIST in 'username/repo@commit' format."
(format "%s@%s"
(plist-get (doom--package-merge-recipes package plist) :repo)
(substring-no-properties (plist-get plist :pin) 0 7)))
(defun doom--package-at-point (&optional point)
"Return the package and plist from the (package! PACKAGE PLIST...) at point."
(save-match-data
(save-excursion
(and point (goto-char point))
(while (and (or (atom (sexp-at-point))
(doom-point-in-string-or-comment-p))
(search-backward "(" nil t)))
(when (eq (car-safe (sexp-at-point)) 'package!)
(cl-destructuring-bind (beg . end)
(bounds-of-thing-at-point 'sexp)
(let* ((doom-packages nil)
(buffer-file-name
(or buffer-file-name
(bound-and-true-p org-src-source-file-name)))
(package (eval (sexp-at-point) t)))
(list :beg beg
:end end
:package (car package)
:plist (cdr package))))))))
;;;###autoload
(defun doom/bumpify-package-at-point ()
"Convert `package!' call at point to a bump string."
(interactive)
(cl-destructuring-bind (&key package plist beg end)
(doom--package-at-point)
(when-let (str (doom--package-to-bump-string package plist))
(goto-char beg)
(delete-region beg end)
(insert str))))
;;;###autoload
(defun doom/bumpify-packages-in-buffer ()
"Convert all `package!' calls in buffer into bump strings."
(interactive)
(save-excursion
(goto-char (point-min))
(while (search-forward "(package!" nil t)
(unless (doom-point-in-string-or-comment-p)
(doom/bumpify-package-at-point)))))
;;;###autoload
(defun doom/bump-package-at-point (&optional select)
"Inserts or updates a `:pin' for the `package!' statement at point.
Grabs the latest commit id of the package using 'git'."
(interactive "P")
(doom-initialize-packages)
(cl-destructuring-bind (&key package plist beg end)
(or (doom--package-at-point)
(user-error "Not on a `package!' call"))
(let* ((recipe (doom--package-merge-recipes package plist))
(branch (plist-get recipe :branch))
(oldid (or (plist-get plist :pin)
(doom-package-get package :pin)))
(url (straight-vc-git--destructure recipe (upstream-repo upstream-host)
(straight-vc-git--encode-url upstream-repo upstream-host)))
(id (or (when url
(cdr (doom-call-process
"git" "ls-remote" url
(unless select branch))))
(user-error "Couldn't find a recipe for %s" package)))
(id (car (split-string
(if select
(completing-read "Commit: " (split-string id "\n" t))
id)))))
(when (and oldid
(plist-member plist :pin)
(equal oldid id))
(user-error "%s: no update necessary" package))
(save-excursion
(if (re-search-forward ":pin +\"\\([^\"]+\\)\"" end t)
(replace-match id t t nil 1)
(goto-char (1- end))
(insert " :pin " (prin1-to-string id))))
(cond ((not oldid)
(message "%s: → %s" package (substring id 0 10)))
((< (length oldid) (length id))
(message "%s: extended to %s..." package id))
((message "%s: %s → %s"
package
(substring oldid 0 10)
(substring id 0 10)))))))
;;;###autoload
(defun doom/bump-packages-in-buffer (&optional select)
"Inserts or updates a `:pin' for the `package!' statement at point.
Grabs the latest commit id of the package using 'git'."
(interactive "P")
(save-excursion
(goto-char (point-min))
(doom-initialize-packages)
(let (packages)
(while (search-forward "(package! " nil t)
(unless (let ((ppss (syntax-ppss)))
(or (nth 4 ppss)
(nth 3 ppss)
(save-excursion
(and (goto-char (match-beginning 0))
(not (plist-member (sexp-at-point) :pin))))))
(condition-case e
(push (doom/bump-package-at-point) packages)
(user-error (message "%s" (error-message-string e))))))
(if packages
(message "Updated %d packages\n- %s" (length packages) (string-join packages "\n- "))
(message "No packages to update")))))
;;;###autoload
(defun doom/bump-module (category &optional module select)
"Bump packages in CATEGORY MODULE.
If SELECT (prefix arg) is non-nil, prompt you to choose a specific commit for
each package."
(interactive
(let* ((module (completing-read
"Bump module: "
(let ((modules (doom-module-list 'all)))
(mapcar (lambda (m)
(if (listp m)
(format "%s %s" (car m) (cdr m))
(format "%s" m)))
(append '(:private :core)
(delete-dups (mapcar #'car modules))
modules)))
nil t nil nil))
(module (split-string module " " t)))
(list (intern (car module))
(ignore-errors (intern (cadr module)))
current-prefix-arg)))
(mapc (fn! ((cat . mod))
(if-let (packages-file
(pcase cat
Update dot_bashrc Update dot_config/bspwm/executable_bspwmrc Update dot_config/doom/config.el Update dot_config/doom/custom.el Update dot_config/doom/packages.el Update dot_config/emacs/README.md Update dot_config/emacs/bin/executable_doom Update dot_config/emacs/bin/executable_org-capture Update dot_config/emacs/bin/executable_org-tangle Update dot_config/emacs/core/autoload/buffers.el Update dot_config/emacs/core/autoload/config.el Update dot_config/emacs/core/autoload/debug.el Update dot_config/emacs/core/autoload/files.el Update dot_config/emacs/core/autoload/fonts.el Update dot_config/emacs/core/autoload/help.el Update dot_config/emacs/core/autoload/output.el Update dot_config/emacs/core/autoload/packages.el Update dot_config/emacs/core/autoload/plist.el Update dot_config/emacs/core/autoload/process.el Update dot_config/emacs/core/autoload/projects.el Update dot_config/emacs/core/autoload/store.el Update dot_config/emacs/core/autoload/text.el Update dot_config/emacs/core/autoload/themes.el Update dot_config/emacs/core/autoload/ui.el Update dot_config/emacs/core/cli/autoloads.el Update dot_config/emacs/core/cli/byte-compile.el Update dot_config/emacs/core/cli/doctor.el Update dot_config/emacs/core/cli/env.el Update dot_config/emacs/core/cli/install.el Update dot_config/emacs/core/cli/packages.el Update dot_config/emacs/core/cli/sync.el Update dot_config/emacs/core/cli/upgrade.el Update dot_config/emacs/core/core-cli.el Update dot_config/emacs/core/core-editor.el Update dot_config/emacs/core/core-keybinds.el Update dot_config/emacs/core/core-lib.el Update dot_config/emacs/core/core-modules.el Update dot_config/emacs/core/core-packages.el Update dot_config/emacs/core/core-projects.el Update dot_config/emacs/core/core-ui.el Update dot_config/emacs/core/core.el Update dot_config/emacs/core/packages.el Update dot_config/emacs/docs/faq.org Update dot_config/emacs/docs/getting_started.org Update dot_config/emacs/docs/modules.org Update dot_config/emacs/early-init.el Update dot_config/emacs/init.el Update dot_config/emacs/init.example.el Update dot_config/emacs/modules/app/calendar/autoload.el Update dot_config/emacs/modules/app/calendar/config.el Update dot_config/emacs/modules/app/calendar/packages.el Update dot_config/emacs/modules/app/irc/autoload/irc.el Update dot_config/emacs/modules/app/irc/config.el Update dot_config/emacs/modules/app/irc/packages.el Update dot_config/emacs/modules/app/rss/README.org Update dot_config/emacs/modules/app/rss/autoload.el Update dot_config/emacs/modules/app/rss/config.el Update dot_config/emacs/modules/app/rss/packages.el Update dot_config/emacs/modules/app/twitter/autoload.el Update dot_config/emacs/modules/app/twitter/config.el Update dot_config/emacs/modules/app/twitter/packages.el Update dot_config/emacs/modules/checkers/spell/config.el Update dot_config/emacs/modules/checkers/spell/packages.el Update dot_config/emacs/modules/checkers/syntax/packages.el Update dot_config/emacs/modules/completion/company/autoload.el Update dot_config/emacs/modules/completion/company/config.el Update dot_config/emacs/modules/completion/company/packages.el Update dot_config/emacs/modules/completion/helm/autoload/posframe.el Update dot_config/emacs/modules/completion/helm/config.el Update dot_config/emacs/modules/completion/helm/packages.el Update dot_config/emacs/modules/completion/ido/packages.el Update dot_config/emacs/modules/completion/ivy/README.org Update dot_config/emacs/modules/completion/ivy/autoload/ivy.el Update dot_config/emacs/modules/completion/ivy/config.el Update dot_config/emacs/modules/completion/ivy/packages.el Update dot_config/emacs/modules/config/default/+emacs-bindings.el Update dot_config/emacs/modules/config/default/+evil-bindings.el Update dot_config/emacs/modules/config/default/autoload/files.el Update dot_config/emacs/modules/config/default/autoload/text.el Update dot_config/emacs/modules/config/default/config.el Update dot_config/emacs/modules/config/default/packages.el Update dot_config/emacs/modules/config/literate/README.org Update dot_config/emacs/modules/config/literate/autoload.el Update dot_config/emacs/modules/editor/evil/README.org Update dot_config/emacs/modules/editor/evil/autoload/advice.el Update dot_config/emacs/modules/editor/evil/autoload/evil.el Update dot_config/emacs/modules/editor/evil/autoload/textobjects.el Update dot_config/emacs/modules/editor/evil/config.el Update dot_config/emacs/modules/editor/evil/init.el Update dot_config/emacs/modules/editor/evil/packages.el Update dot_config/emacs/modules/editor/file-templates/templates/c++-mode/__hpp Update dot_config/emacs/modules/editor/file-templates/templates/c-mode/__h Update dot_config/emacs/modules/editor/file-templates/templates/emacs-lisp-mode/__package Update dot_config/emacs/modules/editor/file-templates/templates/text-mode/__license-gpl3 Update dot_config/emacs/modules/editor/fold/config.el Update dot_config/emacs/modules/editor/format/config.el Update dot_config/emacs/modules/editor/god/packages.el Update dot_config/emacs/modules/editor/lispy/README.org Update dot_config/emacs/modules/editor/lispy/config.el Update dot_config/emacs/modules/editor/lispy/packages.el Update dot_config/emacs/modules/editor/multiple-cursors/config.el Update dot_config/emacs/modules/editor/multiple-cursors/packages.el Update dot_config/emacs/modules/editor/parinfer/README.org Update dot_config/emacs/modules/editor/parinfer/config.el Update dot_config/emacs/modules/editor/parinfer/packages.el Update dot_config/emacs/modules/editor/rotate-text/packages.el Update dot_config/emacs/modules/editor/snippets/autoload/snippets.el Update dot_config/emacs/modules/editor/snippets/packages.el Update dot_config/emacs/modules/editor/word-wrap/packages.el Update dot_config/emacs/modules/emacs/dired/README.org Update dot_config/emacs/modules/emacs/dired/config.el Update dot_config/emacs/modules/emacs/dired/packages.el Update dot_config/emacs/modules/emacs/ibuffer/README.org Update dot_config/emacs/modules/emacs/undo/README.org Update dot_config/emacs/modules/emacs/undo/config.el Update dot_config/emacs/modules/emacs/undo/packages.el Update dot_config/emacs/modules/emacs/vc/autoload/vc.el Update dot_config/emacs/modules/emacs/vc/config.el Update dot_config/emacs/modules/emacs/vc/packages.el Update dot_config/emacs/modules/email/mu4e/packages.el Update dot_config/emacs/modules/email/notmuch/README.org Update dot_config/emacs/modules/email/notmuch/autoload.el Update dot_config/emacs/modules/email/notmuch/config.el Update dot_config/emacs/modules/email/notmuch/packages.el Update dot_config/emacs/modules/email/wanderlust/packages.el Update dot_config/emacs/modules/input/chinese/README.org Update dot_config/emacs/modules/input/chinese/packages.el Update dot_config/emacs/modules/input/japanese/packages.el Update dot_config/emacs/modules/input/layout/+bepo.el Update dot_config/emacs/modules/input/layout/README.org Update dot_config/emacs/modules/input/layout/autoload/bepo.el Update dot_config/emacs/modules/input/layout/config.el Update dot_config/emacs/modules/lang/agda/packages.el Update dot_config/emacs/modules/lang/cc/README.org Update dot_config/emacs/modules/lang/cc/config.el Update dot_config/emacs/modules/lang/cc/packages.el Update dot_config/emacs/modules/lang/clojure/README.org Update dot_config/emacs/modules/lang/clojure/config.el Update dot_config/emacs/modules/lang/clojure/packages.el Update dot_config/emacs/modules/lang/common-lisp/doctor.el Update dot_config/emacs/modules/lang/common-lisp/packages.el Update dot_config/emacs/modules/lang/coq/packages.el Update dot_config/emacs/modules/lang/crystal/packages.el Update dot_config/emacs/modules/lang/csharp/README.org Update dot_config/emacs/modules/lang/csharp/config.el Update dot_config/emacs/modules/lang/csharp/packages.el Update dot_config/emacs/modules/lang/dart/config.el Update dot_config/emacs/modules/lang/dart/packages.el Update dot_config/emacs/modules/lang/data/packages.el Update dot_config/emacs/modules/lang/elixir/README.org Update dot_config/emacs/modules/lang/elixir/config.el Update dot_config/emacs/modules/lang/elixir/packages.el Update dot_config/emacs/modules/lang/elm/packages.el Update dot_config/emacs/modules/lang/emacs-lisp/autoload.el Update dot_config/emacs/modules/lang/emacs-lisp/config.el Update dot_config/emacs/modules/lang/emacs-lisp/demos.org Update dot_config/emacs/modules/lang/emacs-lisp/packages.el Update dot_config/emacs/modules/lang/erlang/packages.el Update dot_config/emacs/modules/lang/ess/packages.el Update dot_config/emacs/modules/lang/factor/config.el Update dot_config/emacs/modules/lang/factor/packages.el Update dot_config/emacs/modules/lang/fsharp/README.org Update dot_config/emacs/modules/lang/fsharp/packages.el Update dot_config/emacs/modules/lang/gdscript/config.el Update dot_config/emacs/modules/lang/gdscript/packages.el Update dot_config/emacs/modules/lang/go/README.org Update dot_config/emacs/modules/lang/go/packages.el Update dot_config/emacs/modules/lang/haskell/packages.el Update dot_config/emacs/modules/lang/idris/packages.el Update dot_config/emacs/modules/lang/java/+meghanada.el Update dot_config/emacs/modules/lang/java/autoload/java.el Update dot_config/emacs/modules/lang/java/config.el Update dot_config/emacs/modules/lang/java/packages.el Update dot_config/emacs/modules/lang/javascript/config.el Update dot_config/emacs/modules/lang/javascript/packages.el Update dot_config/emacs/modules/lang/json/README.org Update dot_config/emacs/modules/lang/json/packages.el Update dot_config/emacs/modules/lang/julia/README.org Update dot_config/emacs/modules/lang/julia/config.el Update dot_config/emacs/modules/lang/julia/packages.el Update dot_config/emacs/modules/lang/latex/+viewers.el Update dot_config/emacs/modules/lang/latex/README.org Update dot_config/emacs/modules/lang/latex/autoload.el Update dot_config/emacs/modules/lang/latex/config.el Update dot_config/emacs/modules/lang/latex/packages.el Update dot_config/emacs/modules/lang/lean/config.el Update dot_config/emacs/modules/lang/lean/packages.el Update dot_config/emacs/modules/lang/ledger/config.el Update dot_config/emacs/modules/lang/ledger/packages.el Update dot_config/emacs/modules/lang/lua/packages.el Update dot_config/emacs/modules/lang/markdown/config.el Update dot_config/emacs/modules/lang/markdown/packages.el Update dot_config/emacs/modules/lang/nix/autoload.el Update dot_config/emacs/modules/lang/nix/config.el Update dot_config/emacs/modules/lang/nix/packages.el Update dot_config/emacs/modules/lang/ocaml/README.org Update dot_config/emacs/modules/lang/ocaml/config.el Update dot_config/emacs/modules/lang/ocaml/packages.el Update dot_config/emacs/modules/lang/org/README.org Update dot_config/emacs/modules/lang/org/autoload/contrib-present.el Update dot_config/emacs/modules/lang/org/autoload/org-export.el Update dot_config/emacs/modules/lang/org/autoload/org-refile.el Update dot_config/emacs/modules/lang/org/autoload/org.el Update dot_config/emacs/modules/lang/org/config.el Update dot_config/emacs/modules/lang/org/contrib/brain.el Update dot_config/emacs/modules/lang/org/contrib/present.el Update dot_config/emacs/modules/lang/org/contrib/pretty.el Update dot_config/emacs/modules/lang/org/contrib/roam.el Update dot_config/emacs/modules/lang/org/packages.el Update dot_config/emacs/modules/lang/php/README.org Update dot_config/emacs/modules/lang/php/packages.el Update dot_config/emacs/modules/lang/purescript/config.el Update dot_config/emacs/modules/lang/purescript/packages.el Update dot_config/emacs/modules/lang/python/config.el Update dot_config/emacs/modules/lang/python/packages.el Update dot_config/emacs/modules/lang/racket/README.org Update dot_config/emacs/modules/lang/racket/packages.el Update dot_config/emacs/modules/lang/raku/packages.el Update dot_config/emacs/modules/lang/rest/README.org Update dot_config/emacs/modules/lang/ruby/README.org Update dot_config/emacs/modules/lang/ruby/config.el Update dot_config/emacs/modules/lang/ruby/packages.el Update dot_config/emacs/modules/lang/rust/README.org Update dot_config/emacs/modules/lang/rust/autoload.el Update dot_config/emacs/modules/lang/rust/config.el Update dot_config/emacs/modules/lang/rust/packages.el Update dot_config/emacs/modules/lang/scala/autoload.el Update dot_config/emacs/modules/lang/scala/packages.el Update dot_config/emacs/modules/lang/scheme/README.org Update dot_config/emacs/modules/lang/scheme/autoload.el Update dot_config/emacs/modules/lang/scheme/config.el Update dot_config/emacs/modules/lang/scheme/packages.el Update dot_config/emacs/modules/lang/sh/autoload.el Update dot_config/emacs/modules/lang/sh/executable_config.el Update dot_config/emacs/modules/lang/sh/packages.el Update dot_config/emacs/modules/lang/sml/packages.el Update dot_config/emacs/modules/lang/solidity/packages.el Update dot_config/emacs/modules/lang/swift/config.el Update dot_config/emacs/modules/lang/swift/packages.el Update dot_config/emacs/modules/lang/web/doctor.el Update dot_config/emacs/modules/lang/web/packages.el Update dot_config/emacs/modules/lang/yaml/README.org Update dot_config/emacs/modules/lang/yaml/packages.el Update dot_config/emacs/modules/os/macos/config.el Update dot_config/emacs/modules/os/tty/README.org Update dot_config/emacs/modules/os/tty/config.el Update dot_config/emacs/modules/os/tty/packages.el Update dot_config/emacs/modules/term/eshell/README.org Update dot_config/emacs/modules/term/eshell/config.el Update dot_config/emacs/modules/term/eshell/packages.el Update dot_config/emacs/modules/term/vterm/README.org Update dot_config/emacs/modules/term/vterm/autoload.el Update dot_config/emacs/modules/term/vterm/config.el Update dot_config/emacs/modules/term/vterm/packages.el Update dot_config/emacs/modules/tools/ansible/packages.el Update dot_config/emacs/modules/tools/biblio/packages.el Update dot_config/emacs/modules/tools/debugger/autoload/debugger.el Update dot_config/emacs/modules/tools/debugger/config.el Update dot_config/emacs/modules/tools/debugger/packages.el Update dot_config/emacs/modules/tools/direnv/config.el Update dot_config/emacs/modules/tools/direnv/packages.el Update dot_config/emacs/modules/tools/docker/config.el Update dot_config/emacs/modules/tools/docker/packages.el Update dot_config/emacs/modules/tools/editorconfig/README.org Update dot_config/emacs/modules/tools/editorconfig/config.el Update dot_config/emacs/modules/tools/editorconfig/packages.el Update dot_config/emacs/modules/tools/ein/README.org Update dot_config/emacs/modules/tools/ein/packages.el Update dot_config/emacs/modules/tools/eval/autoload/eval.el Update dot_config/emacs/modules/tools/eval/autoload/repl.el Update dot_config/emacs/modules/tools/eval/packages.el Update dot_config/emacs/modules/tools/gist/config.el Update dot_config/emacs/modules/tools/lookup/README.org Update dot_config/emacs/modules/tools/lookup/autoload/docsets.el Update dot_config/emacs/modules/tools/lookup/autoload/lookup.el Update dot_config/emacs/modules/tools/lookup/config.el Update dot_config/emacs/modules/tools/lookup/packages.el Update dot_config/emacs/modules/tools/lsp/+eglot.el Update dot_config/emacs/modules/tools/lsp/+lsp.el Update dot_config/emacs/modules/tools/lsp/README.org Update dot_config/emacs/modules/tools/lsp/autoload/flycheck-eglot.el Update dot_config/emacs/modules/tools/lsp/autoload/lsp-mode.el Update dot_config/emacs/modules/tools/lsp/packages.el Update dot_config/emacs/modules/tools/magit/autoload.el Update dot_config/emacs/modules/tools/magit/config.el Update dot_config/emacs/modules/tools/magit/packages.el Update dot_config/emacs/modules/tools/pass/packages.el Update dot_config/emacs/modules/tools/pdf/config.el Update dot_config/emacs/modules/tools/pdf/packages.el Update dot_config/emacs/modules/tools/prodigy/config.el Update dot_config/emacs/modules/tools/prodigy/packages.el Update dot_config/emacs/modules/tools/taskrunner/README.org Update dot_config/emacs/modules/tools/terraform/config.el Update dot_config/emacs/modules/tools/upload/README.org Update dot_config/emacs/modules/tools/upload/config.el Update dot_config/emacs/modules/tools/upload/packages.el Update dot_config/emacs/modules/ui/doom-dashboard/config.el Update dot_config/emacs/modules/ui/doom/README.org Update dot_config/emacs/modules/ui/doom/config.el Update dot_config/emacs/modules/ui/doom/packages.el Update dot_config/emacs/modules/ui/emoji/README.org Update dot_config/emacs/modules/ui/emoji/packages.el Update dot_config/emacs/modules/ui/hl-todo/config.el Update dot_config/emacs/modules/ui/hl-todo/packages.el Update dot_config/emacs/modules/ui/indent-guides/config.el Update dot_config/emacs/modules/ui/ligatures/config.el Update dot_config/emacs/modules/ui/modeline/+light.el Update dot_config/emacs/modules/ui/modeline/README.org Update dot_config/emacs/modules/ui/modeline/config.el Update dot_config/emacs/modules/ui/modeline/packages.el Update dot_config/emacs/modules/ui/nav-flash/autoload.el Update dot_config/emacs/modules/ui/nav-flash/config.el Update dot_config/emacs/modules/ui/nav-flash/packages.el Update dot_config/emacs/modules/ui/ophints/config.el Update dot_config/emacs/modules/ui/popup/autoload/popup.el Update dot_config/emacs/modules/ui/popup/config.el Update dot_config/emacs/modules/ui/tabs/packages.el Update dot_config/emacs/modules/ui/treemacs/config.el Update dot_config/emacs/modules/ui/treemacs/packages.el Update dot_config/emacs/modules/ui/unicode/README.org Update dot_config/emacs/modules/ui/vc-gutter/config.el Update dot_config/emacs/modules/ui/window-select/packages.el Update dot_config/emacs/modules/ui/workspaces/autoload/workspaces.el Update dot_config/emacs/modules/ui/workspaces/config.el Update dot_config/emacs/modules/ui/zen/README.org Update dot_config/emacs/modules/ui/zen/config.el Update dot_config/emacs/modules/ui/zen/packages.el Update dot_config/emacs/test/shell.nix Update dot_config/mimeapps.list Update dot_config/mpv/mpv.conf Update dot_config/polybar/config Update dot_config/sxhkd/sxhkdrc Update dot_local/spells/executable_linkhandler
2021-06-17 14:06:47 +00:00
(:private (car (doom-glob doom-private-dir "packages.el")))
(:core (car (doom-glob doom-core-dir "packages.el")))
2021-03-19 14:08:04 +00:00
(_ (doom-module-locate-path cat mod "packages.el"))))
(with-current-buffer
(or (get-file-buffer packages-file)
(find-file-noselect packages-file))
(doom/bump-packages-in-buffer select)
(save-buffer))
(message "Module %s has no packages.el file" (cons cat mod))))
(if module
(list (cons category module))
(cl-remove-if-not (lambda (m) (eq (car m) category))
(append '((:core) (:private))
(doom-module-list 'all))))))
;;;###autoload
(defun doom/bump-package (package)
"Bump PACKAGE in all modules that install it."
(interactive
(list (intern (completing-read "Bump package: "
(mapcar #'car (doom-package-list 'all))))))
(let* ((packages (doom-package-list 'all))
(modules (plist-get (alist-get package packages) :modules)))
(unless modules
(user-error "This package isn't installed by any Doom module"))
(dolist (module modules)
(when-let (packages-file (doom-module-locate-path (car module) (cdr module)))
(doom/bump-module (car module) (cdr module))))))
;;
;;; Bump commits
;;;###autoload
(defun doom/commit-bumps ()
(interactive))