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 | ||||
| * Introduction | ||||
| 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 | ||||
|   (defvar bootstrap-version) | ||||
| 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. | ||||
| 
 | ||||
|   (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]]. | ||||
| 
 | ||||
| ** OS Path and Native Compilation | ||||
|  |  | |||
							
								
								
									
										60
									
								
								initialize
									
									
									
									
									
								
							
							
						
						
									
										60
									
								
								initialize
									
									
									
									
									
								
							|  | @ -14,6 +14,49 @@ do | |||
|     ln -s --force $HAMACS_DIR/$LINK $HAMACS_DEST | ||||
| 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 | ||||
| ;;; init.el --- Hamacs Init -*- lexical-binding: t; -*- | ||||
| ;; | ||||
|  | @ -25,23 +68,6 @@ cat > $HAMACS_DEST/init.el <<EOF | |||
| ;; | ||||
| ;;; 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.") | ||||
| 
 | ||||
| ;; Configure straight https://github.com/raxod502/straight.el#getting-started | ||||
|  |  | |||
		Loading…
	
		Reference in a new issue