diff --git a/lisp/cli/packages.el b/lisp/cli/packages.el index 6b0c14e93..39a8f0d70 100644 --- a/lisp/cli/packages.el +++ b/lisp/cli/packages.el @@ -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)))