packages.el (2568B)
1 ;; -*- lexical-binding: t; -*- 2 ;;; Meta-configuration and package manager setup. 3 4 (defvar elpaca-installer-version 0.7) 5 (defvar elpaca-directory (expand-file-name "elpaca/" user-emacs-directory)) 6 (defvar elpaca-builds-directory (expand-file-name "builds/" elpaca-directory)) 7 (defvar elpaca-repos-directory (expand-file-name "repos/" elpaca-directory)) 8 (defvar elpaca-order '(elpaca :repo "https://github.com/progfolio/elpaca.git" 9 :ref nil :depth 1 10 :files (:defaults "elpaca-test.el" (:exclude "extensions")) 11 :build (:not elpaca--activate-package))) 12 (let* ((repo (expand-file-name "elpaca/" elpaca-repos-directory)) 13 (build (expand-file-name "elpaca/" elpaca-builds-directory)) 14 (order (cdr elpaca-order)) 15 (default-directory repo)) 16 (add-to-list 'load-path (if (file-exists-p build) build repo)) 17 (unless (file-exists-p repo) 18 (make-directory repo t) 19 (when (< emacs-major-version 28) (require 'subr-x)) 20 (condition-case-unless-debug err 21 (if-let* ((buffer (pop-to-buffer-same-window "*elpaca-bootstrap*")) 22 ((zerop (apply #'call-process `("git" nil ,buffer t "clone" 23 ,@(when-let* ((depth (plist-get order :depth))) 24 (list (format "--depth=%d" depth) "--no-single-branch")) 25 ,(plist-get order :repo) ,repo)))) 26 ((zerop (call-process "git" nil buffer t "checkout" 27 (or (plist-get order :ref) "--")))) 28 (emacs (concat invocation-directory invocation-name)) 29 ((zerop (call-process emacs nil buffer nil "-Q" "-L" "." "--batch" 30 "--eval" "(byte-recompile-directory \".\" 0 'force)"))) 31 ((require 'elpaca)) 32 ((elpaca-generate-autoloads "elpaca" repo))) 33 (progn (message "%s" (buffer-string)) (kill-buffer buffer)) 34 (error "%s" (with-current-buffer buffer (buffer-string)))) 35 ((error) (warn "%s" err) (delete-directory repo 'recursive)))) 36 (unless (require 'elpaca-autoloads nil t) 37 (require 'elpaca) 38 (elpaca-generate-autoloads "elpaca" repo) 39 (load "./elpaca-autoloads"))) 40 (add-hook 'after-init-hook #'elpaca-process-queues) 41 (elpaca `(,@elpaca-order)) 42 43 (setq use-package-always-defer t) 44 (setq use-package-always-ensure t) 45 46 (elpaca elpaca-use-package 47 (elpaca-use-package-mode))