From e1f73bd7cbcdc2fd38715fe4172c5c8c85e04c25 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Tue, 26 May 2020 00:59:44 -0400 Subject: [PATCH] Fix void-function +literate-tangle-h on saving org files --- modules/config/literate/autoload.el | 32 +++++++++++++++++++++++++ modules/config/literate/cli.el | 36 ++--------------------------- 2 files changed, 34 insertions(+), 34 deletions(-) diff --git a/modules/config/literate/autoload.el b/modules/config/literate/autoload.el index d09471dd2..00f882e53 100644 --- a/modules/config/literate/autoload.el +++ b/modules/config/literate/autoload.el @@ -1,5 +1,37 @@ ;;; config/literate/autoload.el -*- lexical-binding: t; -*- +(defvar +literate-config-file + (concat doom-private-dir "config.org") + "The file path of your literate config file.") + +(defvar +literate-config-cache-file + (concat doom-cache-dir "literate-last-compile") + "The file path that `+literate-config-file' will be tangled to, then +byte-compiled from.") + +;;;###autoload +(defun +literate-tangle-h (&optional force-p) + "Tangles `+literate-config-file' if it has changed." + (let ((default-directory doom-private-dir)) + (when (or (file-newer-than-file-p +literate-config-file + +literate-config-cache-file) + force-p) + (print! (start "Compiling your literate config...")) + (print-group! + (let* ((org (expand-file-name +literate-config-file)) + (dest (concat (file-name-sans-extension +literate-config-file) ".el")) + (output (get-buffer-create "*org-tangle*"))) + (unwind-protect + ;; We tangle in a separate, blank process because loading it here + ;; would load all of :lang org (very expensive!). + (and (require 'ob-tangle) + (letf! (defun message (msg &rest args) + (print! (info "%s") (apply #'format msg args))) + (org-babel-tangle-file org dest)) + ;; Write the cache file to serve as our mtime cache + (with-temp-file +literate-config-cache-file)) + (kill-buffer output))))))) + ;;;###autoload (after! org ;; Recompile our literate config if we modify it diff --git a/modules/config/literate/cli.el b/modules/config/literate/cli.el index ad7a01a86..e44dca1c2 100644 --- a/modules/config/literate/cli.el +++ b/modules/config/literate/cli.el @@ -1,38 +1,6 @@ ;;; config/literate/cli.el -*- lexical-binding: t; -*- -(defvar +literate-config-file - (concat doom-private-dir "config.org") - "The file path of your literate config file.") +(load! "autoload") -(defvar +literate-config-cache-file - (concat doom-cache-dir "literate-last-compile") - "The file path that `+literate-config-file' will be tangled to, then -byte-compiled from.") - - -;; -(defun +literate-tangle-h (&optional force-p) - "Tangles `+literate-config-file' if it has changed." - (let ((default-directory doom-private-dir)) - (when (or (file-newer-than-file-p +literate-config-file - +literate-config-cache-file) - force-p) - (print! (start "Compiling your literate config...")) - (print-group! - (let* ((org (expand-file-name +literate-config-file)) - (dest (concat (file-name-sans-extension +literate-config-file) ".el")) - (output (get-buffer-create "*org-tangle*"))) - (unwind-protect - ;; We tangle in a separate, blank process because loading it here - ;; would load all of :lang org (very expensive!). - (and (require 'ob-tangle) - (letf! (defun message (msg &rest args) - (print! (info "%s") (apply #'format msg args))) - (org-babel-tangle-file org dest)) - ;; Write the cache file to serve as our mtime cache - (with-temp-file +literate-config-cache-file)) - (kill-buffer output))))))) - - -;; Let 'er rip +;; Tangle the user's config.org before 'doom sync' runs (add-hook 'doom-cli-pre-hook #'+literate-tangle-h)