emacs-elpa-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[elpa] externals/ssh-deploy 4e70a41 041/173: Now uses TRAMP via async.el


From: Stefan Monnier
Subject: [elpa] externals/ssh-deploy 4e70a41 041/173: Now uses TRAMP via async.el for SSH transfers
Date: Sat, 20 Oct 2018 10:36:27 -0400 (EDT)

branch: externals/ssh-deploy
commit 4e70a4115fd57fae10525e3fd1218a765a6d64d9
Author: Christian Johansson <address@hidden>
Commit: Christian Johansson <address@hidden>

    Now uses TRAMP via async.el for SSH transfers
---
 ssh-deploy.el | 32 ++++++++++++++++++++++++++++----
 1 file changed, 28 insertions(+), 4 deletions(-)

diff --git a/ssh-deploy.el b/ssh-deploy.el
index 2e48cfe..e5abc49 100644
--- a/ssh-deploy.el
+++ b/ssh-deploy.el
@@ -3,7 +3,7 @@
 ;; Author: Christian Johansson <github.com/cjohansson>
 ;; Maintainer: Christian Johansson <github.com/cjohansson>
 ;; Created: 5 Jul 2016
-;; Modified: 14 Nov 2016
+;; Modified: 16 Nov 2016
 ;; Version: 1.40
 ;; Keywords: tools, convenience
 ;; URL: https://github.com/cjohansson/emacs-ssh-deploy
@@ -186,10 +186,21 @@
                                      (if (= (process-exit-status proc) 0)
                                          (message "Successfully ran shell 
command.")
                                        (message "Failed to run shell 
command.")))))))
-
 (defun ssh-deploy--download (remote local local-root)
   "Download REMOTE to LOCAL with the LOCAL-ROOT via ssh or ftp."
-  (ssh-deploy--download-via-tramp remote local local-root))
+  (if (or (string= (alist-get 'protocol remote) "ssh") (string= (alist-get 
'protocol remote) "ftp"))
+      (progn
+        (let ((path (concat (alist-get 'server remote) ":" (alist-get 'path 
remote))))
+          (message "Downloading path '%s' to '%s'.." path local)
+          (let ((file-or-directory (file-regular-p local)))
+            (if file-or-directory
+                (if (string= (alist-get 'protocol remote) "ssh")
+                    (ssh-deploy--download-via-tramp remote local local-root)
+                  (ssh-deploy--download-file-via-ftp remote local))
+              (if (string= (alist-get 'protocol remote) "ssh")
+                  (ssh-deploy--download-via-tramp remote local local-root)
+                (ssh-deploy--download-directory-via-ftp remote local 
local-root))))))
+    (message "Unsupported protocol. Only SSH and FTP are supported at the 
moment.")))
 
 ;; TODO When process asks for password we should supply it to the process 
automatically
 (defun ssh-deploy--upload-via-tramp (local remote local-root)
@@ -243,7 +254,20 @@
 
 (defun ssh-deploy--upload (local remote local-root)
   "Upload LOCAL to REMOTE and LOCAL-ROOT via ssh or ftp."
-  (ssh-deploy--upload-via-tramp local remote local-root))
+  (if (or (string= (alist-get 'protocol remote) "ssh") (string= (alist-get 
'protocol remote) "ftp"))
+      (progn
+        (let ((path (concat (alist-get 'server remote) ":" (alist-get 'path 
remote))))
+          (message "Uploading path '%s' to '%s'.." local path)
+          (let ((file-or-directory (file-regular-p local)))
+            (if file-or-directory
+                (if (string= (alist-get 'protocol remote) "ssh")
+                    (ssh-deploy--upload-via-tramp local remote local-root)
+                  (ssh-deploy--upload-file-via-ftp local remote))
+              (if (string= (alist-get 'protocol remote) "ssh")
+                  (ssh-deploy--upload-via-tramp local remote local-root)
+                (ssh-deploy--upload-directory-via-ftp local remote 
local-root))))))
+    (message "Unsupported protocol. Only SSH and FTP are supported at the 
moment.")))
+
 
 (defun ssh-deploy--upload-file-via-ssh (local remote)
   "Upload file LOCAL to REMOTE via ssh."



reply via email to

[Prev in Thread] Current Thread [Next in Thread]