fix(cli): nativecomp error writing to read-only fs
Occurs when a site-file fails to be natively compiled, and Doom attempts to write an error file in the same directory. On some systems, the site-lisp directory is in a read-only tree/mount (like nix and guix). This should suppress those attempts.
This commit is contained in:
parent
f3e85afc7e
commit
96ae3f1b04
1 changed files with 10 additions and 5 deletions
|
@ -211,9 +211,12 @@ list remains lean."
|
|||
(error-file (doom-packages--eln-error-file eln-name)))
|
||||
(if (file-exists-p eln-file)
|
||||
(doom-log "Compiled %s" eln-file)
|
||||
(make-directory (file-name-directory error-file) 'parents)
|
||||
(write-region "" nil error-file)
|
||||
(doom-log "Wrote %s" error-file)))))
|
||||
(let ((error-dir (file-name-directory error-file)))
|
||||
(if (not (file-writable-p error-dir))
|
||||
(doom-log "Can't write %s" error-file)
|
||||
(make-directory error-dir 'parents)
|
||||
(write-region "" nil error-file)
|
||||
(doom-log "Wrote %s" error-file)))))))
|
||||
|
||||
(defun doom-packages--wait-for-native-compile-jobs ()
|
||||
"Wait for all pending async native compilation jobs."
|
||||
|
@ -245,9 +248,11 @@ list remains lean."
|
|||
for eln-name = (doom-packages--eln-file-name file)
|
||||
for eln-file = (doom-packages--eln-output-file eln-name)
|
||||
for error-file = (doom-packages--eln-error-file eln-name)
|
||||
for error-dir = (file-name-directory error-file)
|
||||
unless (or (file-exists-p eln-file)
|
||||
(file-newer-than-file-p error-file file))
|
||||
do (make-directory (file-name-directory error-file) 'parents)
|
||||
(file-newer-than-file-p error-file file)
|
||||
(not (file-writable-p error-dir)))
|
||||
do (make-directory error-dir 'parents)
|
||||
(write-region "" nil error-file)
|
||||
(doom-log "Wrote %s" error-file))
|
||||
(setq doom-packages--eln-output-expected nil)))
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue