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