Refactor package initialization and refresh logic

This commit is contained in:
James Cherti
2024-08-24 12:36:55 -04:00
parent d620347c70
commit 9fdfca3265
2 changed files with 11 additions and 16 deletions

View File

@@ -251,7 +251,7 @@ When set to non-nil, Emacs will automatically call `package-initialize' and
;; on the window system. The variables must also be set to `nil' so users don't ;; on the window system. The variables must also be set to `nil' so users don't
;; have to call the functions twice to re-enable them. ;; have to call the functions twice to re-enable them.
(unless (memq 'menu-bar minimal-emacs-ui-features) (unless (memq 'menu-bar minimal-emacs-ui-features)
(push '(menu-bar-lines . 0) default-frame-alist) (push '(menu-bar-lines . 0) default-frame-alist)
(unless (memq window-system '(mac ns)) (unless (memq window-system '(mac ns))
(setq menu-bar-mode nil))) (setq menu-bar-mode nil)))

25
init.el
View File

@@ -18,24 +18,19 @@
(minimal-emacs-load-user-init "pre-init.el") (minimal-emacs-load-user-init "pre-init.el")
;;; package.el ;;; package.el
(when (bound-and-true-p minimal-emacs-package-initialize-and-refresh) (when (bound-and-true-p minimal-emacs-package-initialize-and-refresh)
(let ((package-refresh t)) ;; Initialize and refresh package contents again if needed
;; Refresh package contents and install `use-package` if necessary (package-initialize)
(unless (package-installed-p 'use-package) (unless package-archive-contents
(package-refresh-contents t) (package-refresh-contents))
(setq package-refresh nil)
(package-install 'use-package))
;; Ensure `use-package` is available at compile time ;; Install use-package if necessary
(eval-when-compile (unless (package-installed-p 'use-package)
(require 'use-package)) (package-install 'use-package))
;; Initialize the package system ;; Ensure use-package is available at compile time
(package-initialize) (eval-when-compile
(when (and package-refresh (not package-archive-contents)) (require 'use-package)))
;; Refresh package contents again if needed
(package-refresh-contents t))))
;; Ensure the 'use-package' package is installed and loaded ;; Ensure the 'use-package' package is installed and loaded