Refactor doom/compile; shorter file paths in doom/clean-compiled
This commit is contained in:
parent
931b6d2116
commit
a1625eaf73
1 changed files with 41 additions and 38 deletions
|
@ -462,43 +462,46 @@ If ONLY-RECOMPILE-P is non-nil, only recompile out-of-date files."
|
||||||
;; Ensure all relevant config files are loaded and up-to-date. This way we
|
;; Ensure all relevant config files are loaded and up-to-date. This way we
|
||||||
;; don't need eval-when-compile and require blocks scattered all over.
|
;; don't need eval-when-compile and require blocks scattered all over.
|
||||||
(doom-initialize-packages t t)
|
(doom-initialize-packages t t)
|
||||||
(let ((targets
|
(let ((targets (append (list "init.el" doom-core-dir)
|
||||||
(append (list (expand-file-name "init.el" doom-emacs-dir))
|
(unless lite-p (doom--module-paths))))
|
||||||
(reverse (directory-files-recursively doom-core-dir "\\.el$"))))
|
(total-success 0)
|
||||||
files-success files-fail files-no-compile)
|
(total-fail 0)
|
||||||
(unless lite-p
|
(total-nocomp 0)
|
||||||
(dolist (path (doom--module-paths))
|
el-files)
|
||||||
(nconc targets (append (reverse (directory-files path t "\\.el$" t))
|
(mapc (lambda (file)
|
||||||
(reverse (file-expand-wildcards (expand-file-name "*/*.el" path)))))))
|
(when (or (not only-recompile-p)
|
||||||
(when only-recompile-p
|
(let ((elc-file (byte-compile-dest-file file)))
|
||||||
(setq targets
|
(and (file-exists-p elc-file)
|
||||||
(cl-remove-if-not (lambda (file)
|
(file-newer-than-file-p file elc-file))))
|
||||||
(let ((elc-file (byte-compile-dest-file file)))
|
(let ((result (quiet! (byte-compile-file file)))
|
||||||
(and (file-exists-p elc-file)
|
(short-name (file-relative-name file doom-emacs-dir)))
|
||||||
(file-newer-than-file-p file elc-file))))
|
(cl-incf
|
||||||
targets)))
|
(cond ((eq result 'no-byte-compile)
|
||||||
(dolist (file targets)
|
(message! (dark (white "Ignored %s" short-name)))
|
||||||
(let ((result (quiet! (byte-compile-file file)))
|
total-nocomp)
|
||||||
(short-name (file-relative-name file doom-emacs-dir)))
|
((null result)
|
||||||
(push file (cond ((eq result 'no-byte-compile)
|
(message! (red "Failed to compile %s" short-name))
|
||||||
(message "+ Ignored %s" short-name)
|
total-fail)
|
||||||
files-no-compile)
|
(t
|
||||||
((null result)
|
(message! (ansi-green "Compiled %s" short-name))
|
||||||
(message "+ Failed to compile %s" short-name)
|
total-success))))))
|
||||||
files-fail)
|
(dolist (path targets (reverse el-files))
|
||||||
(t
|
(let ((path (expand-file-name path doom-emacs-dir)))
|
||||||
(message "+ Compiled %s" short-name)
|
(cond ((file-directory-p path)
|
||||||
files-success)))))
|
(setq el-files (append (directory-files-recursively path "\\.el$") el-files)))
|
||||||
(let* ((total (- (length targets) (length files-no-compile)))
|
((file-exists-p path)
|
||||||
(total-no-compile (length files-no-compile))
|
(push path el-files))
|
||||||
(total-fail (length files-fail))
|
(t
|
||||||
(total-success (length files-success)))
|
(error "Invalid path: %s" path))))))
|
||||||
(when (> total-fail 0)
|
(message!
|
||||||
(message "\n%s" (mapconcat (lambda (file) (concat "+ ERROR: " (car file)))
|
(bold
|
||||||
files-fail "\n")))
|
(ansi-apply (if (zerop total-fail) 'green 'red)
|
||||||
(message "%s %s file(s)"
|
"\n---\n%s %s file(s) %s"
|
||||||
(if only-recompile-p "Recompiled" "Compiled")
|
(if only-recompile-p "Recompiled" "Compiled")
|
||||||
(format (if (= total 0) "%d" "%d/%d (%s not compiled)") total-success total total-no-compile)))))
|
(format (if el-files "%d/%d" "%d")
|
||||||
|
total-success
|
||||||
|
(- (length el-files) total-nocomp))
|
||||||
|
(format "(%s not compiled)" total-nocomp))))))
|
||||||
|
|
||||||
(defun doom/recompile ()
|
(defun doom/recompile ()
|
||||||
"Recompile any compiled *.el files in your Emacs configuration."
|
"Recompile any compiled *.el files in your Emacs configuration."
|
||||||
|
@ -527,7 +530,7 @@ package files."
|
||||||
(directory-files-recursively doom-emacs-dir "\\.elc$")))
|
(directory-files-recursively doom-emacs-dir "\\.elc$")))
|
||||||
(dolist (file elc-files)
|
(dolist (file elc-files)
|
||||||
(delete-file file)
|
(delete-file file)
|
||||||
(message "Deleting %s" (abbreviate-file-name file)))))
|
(message "Deleting %s" (file-relative-name file doom-emacs-dir)))))
|
||||||
|
|
||||||
|
|
||||||
;;
|
;;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue