Refactor initialization and bootstrap regarding straight
Thinking of migrating to elpaca, and thought I would make it more approachable.
This commit is contained in:
parent
ca2288a73f
commit
3e1c6b3fe7
2 changed files with 44 additions and 45 deletions
|
@ -25,36 +25,9 @@ A literate programming file for bootstraping my Emacs Configuration.
|
||||||
#+end_src
|
#+end_src
|
||||||
* Introduction
|
* Introduction
|
||||||
This file contains all the variable definitions and library loading for the other files in my project.
|
This file contains all the variable definitions and library loading for the other files in my project.
|
||||||
** Straight Package Installer
|
|
||||||
I'm going to be installing everything using the [[https://github.com/raxod502/straight.el#getting-started][straight.el]] for package installation and management. Before I can /tangle/ these files, I need =straight= to grab the latest =org=, so the following initialization code is actually in [[file:initialize][initialize]], but if you are reading this online, configuring =straight= amounts to the following:
|
|
||||||
|
|
||||||
#+begin_src emacs-lisp :tangle no
|
I'm installing everything using the [[https://github.com/raxod502/straight.el#getting-started][straight.el]] for package installation and management. This is initialization code configured in [[file:initialize][initialize]], and calls to =use-package= now accepts a =:straight= parameter that allows me to retrieve special versions of some packages.
|
||||||
(defvar bootstrap-version)
|
|
||||||
|
|
||||||
(let ((bootstrap-file
|
|
||||||
(expand-file-name "straight/repos/straight.el/bootstrap.el" user-emacs-directory))
|
|
||||||
(bootstrap-version 5))
|
|
||||||
(unless (file-exists-p bootstrap-file)
|
|
||||||
(with-current-buffer
|
|
||||||
(url-retrieve-synchronously
|
|
||||||
"https://raw.githubusercontent.com/raxod502/straight.el/develop/install.el"
|
|
||||||
'silent 'inhibit-cookies)
|
|
||||||
(goto-char (point-max))
|
|
||||||
(eval-print-last-sexp)))
|
|
||||||
(load bootstrap-file nil 'nomessage))
|
|
||||||
#+end_src
|
|
||||||
|
|
||||||
To get the Straight project working with =use-package=:
|
|
||||||
#+begin_src emacs-lisp :tangle no
|
|
||||||
(straight-use-package 'use-package)
|
|
||||||
#+end_src
|
|
||||||
|
|
||||||
While the above code enables the =:straight t= extension to =use-package=, let's have that as the default:
|
|
||||||
#+begin_src emacs-lisp :tangle no
|
|
||||||
(use-package straight
|
|
||||||
:custom (straight-use-package-by-default t
|
|
||||||
straight-default-vc 'git))
|
|
||||||
#+end_src
|
|
||||||
See the details in [[https://dev.to/jkreeftmeijer/emacs-package-management-with-straight-el-and-use-package-3oc8][this essay]].
|
See the details in [[https://dev.to/jkreeftmeijer/emacs-package-management-with-straight-el-and-use-package-3oc8][this essay]].
|
||||||
|
|
||||||
** OS Path and Native Compilation
|
** OS Path and Native Compilation
|
||||||
|
|
60
initialize
60
initialize
|
@ -14,6 +14,49 @@ do
|
||||||
ln -s --force $HAMACS_DIR/$LINK $HAMACS_DEST
|
ln -s --force $HAMACS_DIR/$LINK $HAMACS_DEST
|
||||||
done
|
done
|
||||||
|
|
||||||
|
cat > $HAMACS_DEST/early-init.el <<EOF
|
||||||
|
;;; early-init.el --- Hamacs Early Init -*- lexical-binding: t; -*-
|
||||||
|
;;
|
||||||
|
;;; Commentary:
|
||||||
|
;;
|
||||||
|
;; This is my early Emacs configuration file. See init.el for the real
|
||||||
|
;; boot process. Since we are using straight or elpaca, we just need to
|
||||||
|
;; stop the normal package process.
|
||||||
|
;;
|
||||||
|
;;; Code:
|
||||||
|
|
||||||
|
;; We'll be using straight. So, we don't want duplicated package loading:
|
||||||
|
(setq package-enable-at-startup nil)
|
||||||
|
|
||||||
|
;; While I would rather program my configurations, sometimes the Emacs
|
||||||
|
;; menu system is _good enough_, but I want it in its own file:
|
||||||
|
|
||||||
|
(setq custom-file (expand-file-name "custom.el" user-emacs-directory))
|
||||||
|
(when (file-exists-p custom-file)
|
||||||
|
(load custom-file))
|
||||||
|
|
||||||
|
;; Let's build the \`exec-path' from the _real_ shell path:
|
||||||
|
EOF
|
||||||
|
|
||||||
|
IFS=":" read -r -a PATH_ARRAY <<< "${PATH}"
|
||||||
|
for P in "${PATH_ARRAY[@]}"
|
||||||
|
do
|
||||||
|
echo "(add-to-list 'exec-path \"${P}\")" >> $HAMACS_DEST/early-init.el
|
||||||
|
done
|
||||||
|
|
||||||
|
cat >> $HAMACS_DEST/early-init.el <<EOF
|
||||||
|
;; Local Variables:
|
||||||
|
;; no-byte-compile: t
|
||||||
|
;; no-native-compile: t
|
||||||
|
;; no-update-autoloads: t
|
||||||
|
;; End:
|
||||||
|
|
||||||
|
;;; early-init.el ends here
|
||||||
|
EOF
|
||||||
|
|
||||||
|
echo Created $HAMACS_DEST/early-init.el
|
||||||
|
|
||||||
|
|
||||||
cat > $HAMACS_DEST/init.el <<EOF
|
cat > $HAMACS_DEST/init.el <<EOF
|
||||||
;;; init.el --- Hamacs Init -*- lexical-binding: t; -*-
|
;;; init.el --- Hamacs Init -*- lexical-binding: t; -*-
|
||||||
;;
|
;;
|
||||||
|
@ -25,23 +68,6 @@ cat > $HAMACS_DEST/init.el <<EOF
|
||||||
;;
|
;;
|
||||||
;;; Code:
|
;;; Code:
|
||||||
|
|
||||||
;; We'll be using straight. So, we don't want duplicated package loading:
|
|
||||||
(setq package-enable-at-startup nil)
|
|
||||||
|
|
||||||
;; While I would rather program my configurations, sometimes the Emacs
|
|
||||||
;; menu system is “good enough”, but I want it in its own file:
|
|
||||||
|
|
||||||
(setq custom-file (expand-file-name "custom.el" user-emacs-directory))
|
|
||||||
(when (file-exists-p custom-file)
|
|
||||||
(load custom-file))
|
|
||||||
|
|
||||||
;; While this path should come from the shell, there seems to be a
|
|
||||||
;; condition where I need to set this so that Emacs can pull our my
|
|
||||||
;; compiled files.
|
|
||||||
|
|
||||||
(add-to-list 'exec-path "/usr/local/bin")
|
|
||||||
|
|
||||||
(setenv "PATH" (concat "/usr/local/bin:" (getenv "PATH")))
|
|
||||||
(defvar hamacs-source-dir "$HAMACS_DIR" "Where we be.")
|
(defvar hamacs-source-dir "$HAMACS_DIR" "Where we be.")
|
||||||
|
|
||||||
;; Configure straight https://github.com/raxod502/straight.el#getting-started
|
;; Configure straight https://github.com/raxod502/straight.el#getting-started
|
||||||
|
|
Loading…
Reference in a new issue