From e48b0cc84fb5ee0b5931ddf42b30b54e9348f4ac Mon Sep 17 00:00:00 2001 From: William Carroll Date: Fri, 15 Apr 2022 10:33:21 -0700 Subject: 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 Autosubmit: wpcarro --- users/wpcarro/emacs/.emacs.d/wpc/ssh.el | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) (limited to 'users/wpcarro/emacs/.emacs.d') diff --git a/users/wpcarro/emacs/.emacs.d/wpc/ssh.el b/users/wpcarro/emacs/.emacs.d/wpc/ssh.el index eb7debc492be..1179e9036334 100644 --- a/users/wpcarro/emacs/.emacs.d/wpc/ssh.el +++ b/users/wpcarro/emacs/.emacs.d/wpc/ssh.el @@ -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 () -- cgit 1.4.1