feat(wpcarro/emacs): Support calling sudo on a remote buffer

While pattern-matching in Elisp is a bit unsightly, it works :)

Change-Id: I6766147095823f1a4e233832b0ef21f4c486e023
Reviewed-on: https://cl.tvl.fyi/c/depot/+/5452
Tested-by: BuildkiteCI
Reviewed-by: wpcarro <wpcarro@gmail.com>
Autosubmit: wpcarro <wpcarro@gmail.com>
This commit is contained in:
William Carroll 2022-04-15 10:33:21 -07:00 committed by clbot
parent d843f0bf4c
commit e48b0cc84f
2 changed files with 14 additions and 6 deletions

View file

@ -41,7 +41,9 @@
;; enables ControlMaster.
(setq tramp-use-ssh-controlmaster-options nil)
(defcustom ssh-hosts '("wpcarro@wpcarro.dev")
(defcustom ssh-hosts '("wpcarro@wpcarro.dev"
"foundation"
"edge")
"List of hosts to which I commonly connect.")
(defun ssh-sudo-buffer ()
@ -49,7 +51,10 @@
(interactive)
(with-current-buffer (current-buffer)
(if (s-starts-with? "/ssh:" buffer-file-name)
(message "[ssh.el] calling ssh-sudo-buffer for remote files isn't currently supported")
(pcase (s-split ":" buffer-file-name)
(`(,one ,two ,three) (find-file (format "/ssh:%s|sudo:%s:%s" two two three))))
(find-file
(s-join ":" (-insert-at 2 "|sudo" (s-split ":" buffer-file-name))))
(find-file (format "/sudo::%s" buffer-file-name)))))
(defun ssh-cd-home ()