about summary refs log tree commit diff
path: root/users/wpcarro/emacs/.emacs.d/wpc
diff options
context:
space:
mode:
authorWilliam Carroll <wpcarro@gmail.com>2022-04-15T17·33-0700
committerclbot <clbot@tvl.fyi>2022-04-16T01·09+0000
commite48b0cc84fb5ee0b5931ddf42b30b54e9348f4ac (patch)
tree7f9678801723e00d46102a7d97e3aa4fdb61e0cc /users/wpcarro/emacs/.emacs.d/wpc
parentd843f0bf4cf27b33c6cf134c4bd3dfd4d646cbc8 (diff)
feat(wpcarro/emacs): Support calling sudo on a remote buffer r/3954
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>
Diffstat (limited to 'users/wpcarro/emacs/.emacs.d/wpc')
-rw-r--r--users/wpcarro/emacs/.emacs.d/wpc/ssh.el9
1 files changed, 7 insertions, 2 deletions
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 ()