From b8f8f2421f99d067017a5fb2fe9bd9efb9881ab7 Mon Sep 17 00:00:00 2001 From: Howard Abrams Date: Wed, 5 Jul 2023 13:20:55 -0700 Subject: [PATCH] Tangling was a mistake Unless I want to redo everything, and always tangle files (tempting). --- bootstrap.org | 29 ++++++++++++++++++++++++++++- ha-agendas.org | 2 +- ha-aux-apps.org | 2 +- ha-capturing-notes.org | 2 +- ha-config.org | 7 +++---- ha-dashboard.org | 2 +- ha-data.org | 2 +- ha-display.org | 2 +- ha-email.org | 2 +- ha-eshell.org | 2 +- ha-feed-reader.org | 2 +- ha-irc.org | 2 +- ha-org-clipboard.org | 2 +- ha-org-journaling.org | 2 +- ha-org-publishing.org | 2 +- ha-org-word-processor.org | 2 +- ha-org.org | 2 +- ha-passwords.org | 2 +- ha-programming-clojure.org | 2 +- ha-programming-elisp.org | 2 +- ha-programming-haskell.org | 2 +- ha-programming-ocaml.org | 2 +- ha-programming-python.org | 2 +- ha-programming-ruby.org | 2 +- ha-programming-rust.org | 2 +- ha-programming-scheme.org | 2 +- ha-remoting.org | 2 +- 27 files changed, 56 insertions(+), 30 deletions(-) diff --git a/bootstrap.org b/bootstrap.org index af6fef5..5eb592b 100644 --- a/bootstrap.org +++ b/bootstrap.org @@ -248,6 +248,23 @@ With this function, we can test/debug/reload any individual file, via: (org-babel-load-file full-file))))) #+end_src +And this similar function, will /tangle/ one of my files. Notice that in order to increase the speed of the tangling process (and not wanting to pollute a project perspective), I use a /temporary buffer/ instead of =find-file=. + +#+begin_src emacs-lisp +(defun ha-hamacs-tangle (file) + "Tangle an org-mode FILE containing literate Emacs configuration code." + (interactive (list (completing-read "Org file: " (ha-hamacs-files :all)))) + (let ((full-file (f-join hamacs-source-dir file)) + (target (file-name-concat "~/emacs.d/elisp" + (concat (file-name-sans-extension file) ".el")))) + (when (f-exists? full-file) + (ignore-errors + (with-temp-buffer + (insert-file-contents full-file) + (with-current-buffer (concat temporary-file-directory file) + (org-babel-tangle nil target (rx "emacs-lisp")))))))) +#+end_src + And we can now reload /all/ startup files: #+begin_src emacs-lisp (defun ha-hamacs-reload-all () @@ -258,6 +275,16 @@ And we can now reload /all/ startup files: (ha-hamacs-load file)))) #+end_src +And we can tangle /all/ the files: +#+begin_src emacs-lisp + (defun ha-hamacs-tangle-all () + "Tangle all my Org initialization/configuration files." + (interactive) + (dolist (file (ha-hamacs-files)) + (unless (equal file "bootstrap.org") + (ha-hamacs-tangle file)))) +#+end_src + And do it: #+begin_src emacs-lisp (ha-hamacs-reload-all) @@ -275,7 +302,7 @@ Before you can build this on a new system, make sure that you put the cursor ove #+DESCRIPTION: A literate programming file for bootstrapping my environment. #+PROPERTY: header-args:sh :tangle no -#+PROPERTY: header-args:emacs-lisp :tangle ~/.emacs.d/elisp/bootstrap.el +#+PROPERTY: header-args:emacs-lisp :tangle yes #+PROPERTY: header-args :results none :eval no-export :comments no mkdirp yes #+OPTIONS: num:nil toc:nil todo:nil tasks:nil tags:nil date:nil diff --git a/ha-agendas.org b/ha-agendas.org index a6826f3..9338e1b 100644 --- a/ha-agendas.org +++ b/ha-agendas.org @@ -163,7 +163,7 @@ Before you can build this on a new system, make sure that you put the cursor ove #+DESCRIPTION: A literate programming configuration for fancy agenda and todo lists. #+PROPERTY: header-args:sh :tangle no -#+PROPERTY: header-args:emacs-lisp :tangle ~/.emacs.d/elisp/ha-agendas.el +#+PROPERTY: header-args:emacs-lisp :tangle yes #+PROPERTY: header-args :results none :eval no-export :comments no mkdirp yes #+OPTIONS: num:nil toc:nil todo:nil tasks:nil tags:nil date:nil diff --git a/ha-aux-apps.org b/ha-aux-apps.org index 0df9a6a..ba174b3 100644 --- a/ha-aux-apps.org +++ b/ha-aux-apps.org @@ -175,7 +175,7 @@ Let's =provide= a name so we can =require= this file: #+DESCRIPTION: A literate programming file for helper apps in Emacs. #+PROPERTY: header-args:sh :tangle no -#+PROPERTY: header-args:emacs-lisp :tangle ~/.emacs.d/elisp/ha-aux-apps.el +#+PROPERTY: header-args:emacs-lisp :tangle yes #+PROPERTY: header-args :results none :eval no-export :comments no mkdirp yes #+OPTIONS: num:nil toc:nil todo:nil tasks:nil tags:nil date:nil diff --git a/ha-capturing-notes.org b/ha-capturing-notes.org index ab6c037..116748a 100644 --- a/ha-capturing-notes.org +++ b/ha-capturing-notes.org @@ -698,7 +698,7 @@ Before you can build this on a new system, make sure that you put the cursor ove #+DESCRIPTION: A literate programming file for configuring org for capturing notes. #+PROPERTY: header-args:sh :tangle no -#+PROPERTY: header-args:emacs-lisp :tangle ~/.emacs.d/elisp/ha-capturing-notes.el +#+PROPERTY: header-args:emacs-lisp :tangle yes #+PROPERTY: header-args :results none :eval no-export :comments no mkdirp yes #+OPTIONS: num:nil toc:nil todo:nil tasks:nil tags:nil date:nil diff --git a/ha-config.org b/ha-config.org index 468aa47..aa40e0d 100644 --- a/ha-config.org +++ b/ha-config.org @@ -533,10 +533,9 @@ I'm not trying an experiment where specially-placed function keys on my fancy er #+begin_src emacs-lisp (use-package general - :custom - (general-use-package-emit-autoloads t) - :config + (setq general-use-package-emit-autoloads t) + (general-evil-setup t) (general-create-definer ha-leader @@ -2539,7 +2538,7 @@ Before you can build this on a new system, make sure that you put the cursor ove #+DESCRIPTION: A literate programming file for configuring Emacs. #+PROPERTY: header-args:sh :tangle no -#+PROPERTY: header-args:emacs-lisp :tangle ~/.emacs.d/elisp/ha-config.el +#+PROPERTY: header-args:emacs-lisp :tangle yes #+PROPERTY: header-args :results none :eval no-export :comments no #+OPTIONS: num:nil toc:nil todo:nil tasks:nil tags:nil date:nil diff --git a/ha-dashboard.org b/ha-dashboard.org index 9920fde..ca37a68 100644 --- a/ha-dashboard.org +++ b/ha-dashboard.org @@ -227,7 +227,7 @@ Let's =provide= a name so we can =require= this file: #+DESCRIPTION: configuring Emacs to show a startup screen. #+PROPERTY: header-args:sh :tangle no -#+PROPERTY: header-args:emacs-lisp :tangle ~/.emacs.d/elisp/ha-dashboard.el +#+PROPERTY: header-args:emacs-lisp :tangle yes #+PROPERTY: header-args :results none :eval no-export :comments no mkdirp yes #+OPTIONS: num:nil toc:nil todo:nil tasks:nil tags:nil date:nil diff --git a/ha-data.org b/ha-data.org index 169a558..0f4dc3b 100644 --- a/ha-data.org +++ b/ha-data.org @@ -242,7 +242,7 @@ Let's =provide= a name so we can =require= this file: #+DESCRIPTION: configuring Emacs to edit files of data. #+PROPERTY: header-args:sh :tangle no -#+PROPERTY: header-args:emacs-lisp :tangle ~/.emacs.d/elisp/ha-data.el +#+PROPERTY: header-args:emacs-lisp :tangle yes #+PROPERTY: header-args :results none :eval no-export :comments no mkdirp yes #+OPTIONS: num:nil toc:nil todo:nil tasks:nil tags:nil date:nil diff --git a/ha-display.org b/ha-display.org index b898c59..10aff11 100644 --- a/ha-display.org +++ b/ha-display.org @@ -406,7 +406,7 @@ Before you can build this on a new system, make sure that you put the cursor ove #+DESCRIPTION: A literate programming file to configure the Emacs UI. #+PROPERTY: header-args:sh :tangle no -#+PROPERTY: header-args:emacs-lisp :tangle ~/.emacs.d/elisp/ha-display.el +#+PROPERTY: header-args:emacs-lisp :tangle yes #+PROPERTY: header-args :results none :eval no-export :comments no :mkdirp yes #+OPTIONS: num:nil toc:nil todo:nil tasks:nil tags:nil date:nil diff --git a/ha-email.org b/ha-email.org index cd95784..70d9a48 100644 --- a/ha-email.org +++ b/ha-email.org @@ -739,7 +739,7 @@ Let's =provide= a name so we can =require= this file: #+DESCRIPTION: A literate configuration file for email using Notmuch. #+PROPERTY: header-args:sh :tangle no -#+PROPERTY: header-args:emacs-lisp :tangle ~/.emacs.d/elisp/ha-email.el +#+PROPERTY: header-args:emacs-lisp :tangle yes #+PROPERTY: header-args :results none :eval no-export :comments no mkdirp yes #+OPTIONS: num:nil toc:nil todo:nil tasks:nil tags:nil date:nil diff --git a/ha-eshell.org b/ha-eshell.org index b575d99..6a0b57a 100644 --- a/ha-eshell.org +++ b/ha-eshell.org @@ -1564,7 +1564,7 @@ Let's =provide= a name so we can =require= this file: #+DESCRIPTION: Emacs configuration for the Emacs Shell. #+PROPERTY: header-args:sh :tangle no -#+PROPERTY: header-args:emacs-lisp :tangle ~/.emacs.d/elisp/ha-eshell.el +#+PROPERTY: header-args:emacs-lisp :tangle yes #+PROPERTY: header-args :results none :eval no-export :comments no mkdirp yes #+OPTIONS: num:nil toc:nil todo:nil tasks:nil tags:nil date:nil diff --git a/ha-feed-reader.org b/ha-feed-reader.org index 43b3dd7..b924ad4 100644 --- a/ha-feed-reader.org +++ b/ha-feed-reader.org @@ -253,7 +253,7 @@ Let's /provide/ a name so we can =require= the file: #+DESCRIPTION: A literate programming file for configuring elfeed. #+PROPERTY: header-args:sh :tangle no -#+PROPERTY: header-args:emacs-lisp :tangle ~/.emacs.d/elisp/ha-feed-reader.el +#+PROPERTY: header-args:emacs-lisp :tangle yes #+PROPERTY: header-args :results none :eval no-export :comments no #+OPTIONS: num:nil toc:nil todo:nil tasks:nil tags:nil date:nil diff --git a/ha-irc.org b/ha-irc.org index 510229b..e36c63d 100644 --- a/ha-irc.org +++ b/ha-irc.org @@ -143,7 +143,7 @@ This will =provide= a code name, so that we can =require= this. #+DESCRIPTION: A literate programming configuration file for IRC. #+PROPERTY: header-args:sh :tangle no -#+PROPERTY: header-args:emacs-lisp :tangle ~/.emacs.d/elisp/ha-irc.el +#+PROPERTY: header-args:emacs-lisp :tangle yes #+PROPERTY: header-args :results none :eval no-export :comments no mkdirp yes #+OPTIONS: num:nil toc:nil todo:nil tasks:nil tags:nil date:nil diff --git a/ha-org-clipboard.org b/ha-org-clipboard.org index 9c4a171..02d073c 100644 --- a/ha-org-clipboard.org +++ b/ha-org-clipboard.org @@ -258,7 +258,7 @@ Let's provide a name so we can =require= this file: #+DESCRIPTION: A literate programming version of functions for formatting the clipboard. #+PROPERTY: header-args:sh :tangle no -#+PROPERTY: header-args:emacs-lisp :tangle ~/.emacs.d/elisp/ha-org-clipboard.el +#+PROPERTY: header-args:emacs-lisp :tangle yes #+PROPERTY: header-args :results none :eval no-export :comments no mkdirp yes #+OPTIONS: num:nil toc:nil todo:nil tasks:nil tags:nil date:nil diff --git a/ha-org-journaling.org b/ha-org-journaling.org index ad4990a..cad7277 100644 --- a/ha-org-journaling.org +++ b/ha-org-journaling.org @@ -195,7 +195,7 @@ Before you can build this on a new system, make sure that you put the cursor ove #+DESCRIPTION: A literate programming configuration file for extending the Journaling capabilities. #+PROPERTY: header-args:sh :tangle no -#+PROPERTY: header-args:emacs-lisp :tangle ~/.emacs.d/elisp/ha-org-journaling.el +#+PROPERTY: header-args:emacs-lisp :tangle yes #+PROPERTY: header-args :results none :eval no-export :comments no mkdirp yes #+OPTIONS: num:nil toc:nil todo:nil tasks:nil tags:nil date:nil diff --git a/ha-org-publishing.org b/ha-org-publishing.org index 23c042a..55cb837 100644 --- a/ha-org-publishing.org +++ b/ha-org-publishing.org @@ -193,7 +193,7 @@ Before you can build this on a new system, make sure that you put the cursor ove #+DESCRIPTION: A literate programming version for publishing my website using org. #+PROPERTY: header-args:sh :tangle no -#+PROPERTY: header-args:emacs-lisp :tangle ~/.emacs.d/elisp/ha-org-publishing.el +#+PROPERTY: header-args:emacs-lisp :tangle yes #+PROPERTY: header-args :results none :eval no-export :comments no mkdirp yes #+OPTIONS: num:nil toc:nil todo:nil tasks:nil tags:nil date:nil diff --git a/ha-org-word-processor.org b/ha-org-word-processor.org index 6c9878a..945163c 100644 --- a/ha-org-word-processor.org +++ b/ha-org-word-processor.org @@ -438,7 +438,7 @@ Before you can build this on a new system, make sure that you put the cursor ove #+DESCRIPTION: A literate programming file for making Org file more readable. #+PROPERTY: header-args:sh :tangle no -#+PROPERTY: header-args:emacs-lisp :tangle ~/.emacs.d/elisp/ha-org-word-processor.el +#+PROPERTY: header-args:emacs-lisp :tangle yes #+PROPERTY: header-args :results none :eval no-export :comments no #+OPTIONS: num:nil toc:nil todo:nil tasks:nil tags:nil date:nil diff --git a/ha-org.org b/ha-org.org index 5ad8187..e58fe0b 100644 --- a/ha-org.org +++ b/ha-org.org @@ -1100,7 +1100,7 @@ Before you can build this on a new system, make sure that you put the cursor ove #+DESCRIPTION: A literate programming file for configuring org-mode and those files. #+PROPERTY: header-args:sh :tangle no -#+PROPERTY: header-args:emacs-lisp :tangle ~/.emacs.d/elisp/ha-org.el :noweb yes +#+PROPERTY: header-args:emacs-lisp :tangle yes :noweb yes #+PROPERTY: header-args :results none :eval no-export :comments no mkdirp yes #+OPTIONS: num:nil toc:nil todo:nil tasks:nil tags:nil date:nil diff --git a/ha-passwords.org b/ha-passwords.org index 9ba09ab..94864ba 100644 --- a/ha-passwords.org +++ b/ha-passwords.org @@ -97,7 +97,7 @@ This will =provide= a code name, so that we can =require= this. #+DESCRIPTION: A literate programming version for Emacs code to generate and store passwords. #+PROPERTY: header-args:sh :tangle no -#+PROPERTY: header-args:emacs-lisp :tangle ~/.emacs.d/elisp/ha-passwords.el +#+PROPERTY: header-args:emacs-lisp :tangle yes #+PROPERTY: header-args :results none :eval no-export :comments no mkdirp yes #+OPTIONS: num:nil toc:nil todo:nil tasks:nil tags:nil date:nil diff --git a/ha-programming-clojure.org b/ha-programming-clojure.org index c73a134..2865146 100644 --- a/ha-programming-clojure.org +++ b/ha-programming-clojure.org @@ -279,7 +279,7 @@ Let's =provide= a name so we can =require= this file: #+DESCRIPTION: programming in Clojure. #+PROPERTY: header-args:sh :tangle no -#+PROPERTY: header-args:emacs-lisp :tangle ~/.emacs.d/elisp/ha-programming-clojure.el +#+PROPERTY: header-args:emacs-lisp :tangle yes #+PROPERTY: header-args :results none :eval no-export :comments no mkdirp yes #+OPTIONS: num:nil toc:nil todo:nil tasks:nil tags:nil date:nil diff --git a/ha-programming-elisp.org b/ha-programming-elisp.org index 20c8a68..f9a8461 100644 --- a/ha-programming-elisp.org +++ b/ha-programming-elisp.org @@ -292,7 +292,7 @@ Let's =provide= a name so we can =require= this file: #+DESCRIPTION: configuring Emacs for Lisp programming. #+PROPERTY: header-args:sh :tangle no -#+PROPERTY: header-args:emacs-lisp :tangle ~/.emacs.d/elisp/ha-programming-elisp.el +#+PROPERTY: header-args:emacs-lisp :tangle yes #+PROPERTY: header-args :results none :eval no-export :comments no mkdirp yes #+OPTIONS: num:nil toc:nil todo:nil tasks:nil tags:nil date:nil diff --git a/ha-programming-haskell.org b/ha-programming-haskell.org index dee62c5..9ab8d9a 100644 --- a/ha-programming-haskell.org +++ b/ha-programming-haskell.org @@ -86,7 +86,7 @@ Let's =provide= a name so we can =require= this file: #+DESCRIPTION: configuring Emacs. #+PROPERTY: header-args:sh :tangle no -#+PROPERTY: header-args:emacs-lisp :tangle ~/.emacs.d/elisp/ha-programming-haskell.el +#+PROPERTY: header-args:emacs-lisp :tangle yes #+PROPERTY: header-args :results none :eval no-export :comments no mkdirp yes #+OPTIONS: num:nil toc:nil todo:nil tasks:nil tags:nil date:nil diff --git a/ha-programming-ocaml.org b/ha-programming-ocaml.org index 0e46404..70c3bcc 100644 --- a/ha-programming-ocaml.org +++ b/ha-programming-ocaml.org @@ -99,7 +99,7 @@ Let's =provide= a name so we can =require= this file: #+DESCRIPTION: integrating OCaml #+PROPERTY: header-args:sh :tangle no -#+PROPERTY: header-args:emacs-lisp :tangle ~/.emacs.d/elisp/ha-programming-ocaml.el +#+PROPERTY: header-args:emacs-lisp :tangle yes #+PROPERTY: header-args :results none :eval no-export :comments no mkdirp yes #+OPTIONS: num:nil toc:nil todo:nil tasks:nil tags:nil date:nil diff --git a/ha-programming-python.org b/ha-programming-python.org index 8ab4345..1442a19 100644 --- a/ha-programming-python.org +++ b/ha-programming-python.org @@ -313,7 +313,7 @@ Let's =provide= a name so we can =require= this file: #+DESCRIPTION: A literate programming file for configuring Python. #+PROPERTY: header-args:sh :tangle no -#+PROPERTY: header-args:emacs-lisp :tangle ~/.emacs.d/elisp/ha-programming-python.el +#+PROPERTY: header-args:emacs-lisp :tangle yes #+PROPERTY: header-args :results none :eval no-export :comments no mkdirp yes #+OPTIONS: num:nil toc:nil todo:nil tasks:nil tags:nil date:nil diff --git a/ha-programming-ruby.org b/ha-programming-ruby.org index 4e704ee..ed838e6 100644 --- a/ha-programming-ruby.org +++ b/ha-programming-ruby.org @@ -316,7 +316,7 @@ Let's =provide= a name so we can =require= this file: #+DESCRIPTION: configuring Emacs to support the Ruby programming language. #+PROPERTY: header-args:sh :tangle no -#+PROPERTY: header-args:emacs-lisp :tangle ~/.emacs.d/elisp/ha-programming-ruby.el +#+PROPERTY: header-args:emacs-lisp :tangle yes #+PROPERTY: header-args :results none :eval no-export :comments no mkdirp yes #+OPTIONS: num:nil toc:nil todo:nil tasks:nil tags:nil date:nil diff --git a/ha-programming-rust.org b/ha-programming-rust.org index 3cd7a04..66cf024 100644 --- a/ha-programming-rust.org +++ b/ha-programming-rust.org @@ -114,7 +114,7 @@ Let's =provide= a name so we can =require= this file: #+DESCRIPTION: Emacs configuration for the Rust programming language. #+PROPERTY: header-args:sh :tangle no -#+PROPERTY: header-args:emacs-lisp :tangle ~/.emacs.d/elisp/ha-programming-rust.el +#+PROPERTY: header-args:emacs-lisp :tangle yes #+PROPERTY: header-args :results none :eval no-export :comments no mkdirp yes #+OPTIONS: num:nil toc:nil todo:nil tasks:nil tags:nil date:nil diff --git a/ha-programming-scheme.org b/ha-programming-scheme.org index e4e32e5..1fbf1c7 100644 --- a/ha-programming-scheme.org +++ b/ha-programming-scheme.org @@ -181,7 +181,7 @@ Let's =provide= a name so we can =require= this file: #+DESCRIPTION: A literate programming file configuring Emacs. #+PROPERTY: header-args:sh :tangle no -#+PROPERTY: header-args:emacs-lisp :tangle ~/.emacs.d/elisp/ha-programming-scheme.el +#+PROPERTY: header-args:emacs-lisp :tangle yes #+PROPERTY: header-args :results none :eval no-export :comments no mkdirp yes #+OPTIONS: num:nil toc:nil todo:nil tasks:nil tags:nil date:nil diff --git a/ha-remoting.org b/ha-remoting.org index 5d90fd6..42f9e79 100644 --- a/ha-remoting.org +++ b/ha-remoting.org @@ -535,7 +535,7 @@ Before you can build this on a new system, make sure that you put the cursor ove #+DESCRIPTION: A literate configuration for accessing remote systems. #+PROPERTY: header-args:sh :tangle no -#+PROPERTY: header-args:emacs-lisp :tangle ~/.emacs.d/elisp/ha-remoting.el +#+PROPERTY: header-args:emacs-lisp :tangle yes #+PROPERTY: header-args :results none :eval no-export :comments no mkdirp yes #+OPTIONS: num:nil toc:nil todo:nil tasks:nil tags:nil date:nil