Merge pull request #2006 from RBckmnn/FixSudoEdit
Fix doom/sudo-{find,this}-file on remote files
This commit is contained in:
commit
3d4a51b4a9
1 changed files with 14 additions and 6 deletions
|
@ -317,18 +317,26 @@ file if it exists, without confirmation."
|
||||||
(`aborted (message "Aborted"))
|
(`aborted (message "Aborted"))
|
||||||
(_ t)))
|
(_ t)))
|
||||||
|
|
||||||
|
(defun doom--sudo-file (file)
|
||||||
|
(let ((host (or (file-remote-p file 'host) "localhost")))
|
||||||
|
(concat "/" (when (file-remote-p file)
|
||||||
|
(concat (file-remote-p file 'method) ":"
|
||||||
|
(if-let (user (file-remote-p file 'user))
|
||||||
|
(concat user "@" host)
|
||||||
|
host)
|
||||||
|
"|"))
|
||||||
|
"sudo:root@" host
|
||||||
|
":" (or (file-remote-p file 'localname)
|
||||||
|
file))))
|
||||||
|
|
||||||
;;;###autoload
|
;;;###autoload
|
||||||
(defun doom/sudo-find-file (file)
|
(defun doom/sudo-find-file (file)
|
||||||
"Open FILE as root."
|
"Open FILE as root."
|
||||||
(interactive "FOpen file as root: ")
|
(interactive "FOpen file as root: ")
|
||||||
(when (file-writable-p file)
|
(find-file (doom--sudo-file file)))
|
||||||
(user-error "File is user writeable, aborting sudo"))
|
|
||||||
(find-file (if (file-remote-p file)
|
|
||||||
(concat "/" (file-remote-p file 'method) ":" (file-remote-p file 'user) "@" (file-remote-p file 'host) "|sudo:root@" (file-remote-p file 'host) ":" (file-remote-p file 'localname))
|
|
||||||
(concat "/sudo:root@localhost:" file))))
|
|
||||||
|
|
||||||
;;;###autoload
|
;;;###autoload
|
||||||
(defun doom/sudo-this-file ()
|
(defun doom/sudo-this-file ()
|
||||||
"Open the current file as root."
|
"Open the current file as root."
|
||||||
(interactive)
|
(interactive)
|
||||||
(doom/sudo-find-file (file-truename buffer-file-name)))
|
(find-alternate-file (doom--sudo-file buffer-file-name)))
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue