Function: hyperb:check-dir-user
hyperb:check-dir-user is a byte-compiled function defined in hinit.el.
Signature
(hyperb:check-dir-user)
Documentation
Ensure hbmap:dir-user exists and is writable or signal an error.
Source Code
;; Defined in ~/.emacs.d/elpa/hyperbole-20260414.325/hinit.el
;;; ************************************************************************
;;; Private functions
;;; ************************************************************************
(defun hyperb:check-dir-user ()
"Ensure `hbmap:dir-user' exists and is writable or signal an error."
(if (or (null hbmap:dir-user) (not (stringp hbmap:dir-user))
(and (setq hbmap:dir-user (file-name-as-directory
(expand-file-name hbmap:dir-user)))
(file-directory-p hbmap:dir-user)
(not (file-writable-p (directory-file-name hbmap:dir-user)))))
(error
"(hyperb:init): `hbmap:dir-user' must be a writable directory name"))
(let ((hbmap:dir-user (directory-file-name hbmap:dir-user)))
(or (file-directory-p hbmap:dir-user) ;; Exists and is writable.
(let* ((parent-dir (file-name-directory
(directory-file-name hbmap:dir-user))))
(cond
((not (file-directory-p parent-dir))
(error
"(hyperb:init): `hbmap:dir-user' parent dir does not exist"))
((not (file-writable-p parent-dir))
(error
"(hyperb:init): `hbmap:dir-user' parent directory not writable"))
((progn (make-directory hbmap:dir-user) t)
(or (file-writable-p hbmap:dir-user)
(or (progn (hypb:chmod '+ 700 hbmap:dir-user)
(file-writable-p hbmap:dir-user))
(error "(hyperb:init): Can't write to 'hbmap:dir-user'"))))
(t (error "(hyperb:init): `hbmap:dir-user' create failed"))))))
t)