diff options
Diffstat (limited to 'init.el')
| -rw-r--r-- | init.el | 25 |
1 files changed, 24 insertions, 1 deletions
@@ -1 +1,24 @@ -(org-babel-load-file (expand-file-name "config.org" user-emacs-directory)) +;; Set up benchmark-init of initialization early inside init.el to correctly benchmark load time +(when (package-installed-p 'benchmark-init) + (require 'benchmark-init) + (add-hook 'after-init-hook 'benchmark-init/deactivate)) + +(setq checksum-path (expand-file-name ".config-checksum" user-emacs-directory)) +(setq config-path (expand-file-name "config.org" user-emacs-directory)) +(setq config-untangled-path (expand-file-name "config.el" user-emacs-directory)) + +;; Since config is residing inside one file, I can calculate its checksum and tangle config.org only +;; when it was changed. This way loading is significantly faster. +(setq new-checksum (car (split-string (shell-command-to-string (concat "md5sum --zero " config-path))))) +(setq saved-checksum "") +(when (file-exists-p checksum-path) + (setq saved-checksum (with-temp-buffer + (insert-file-contents checksum-path) + (buffer-string)))) +(if (string-equal new-checksum saved-checksum) + (load-file config-untangled-path) + (progn + (write-region new-checksum nil checksum-path) + (setq org-modules '(org-id ol-info org-protocol)) + (org-babel-load-file config-path))) + |