branch: externals/ssh-deploy commit ba3b5c4532846063770858b45340a99805a2b811 Author: Christian Johansson <christ...@cvj.se> Commit: Christian Johansson <christ...@cvj.se>
Fix error in hydra byte-compilation when hydra is not installed --- Makefile | 2 +- ssh-deploy-hydra.el | 78 +++++++++++++++++++++++++---------------------------- ssh-deploy.el | 6 ++--- 3 files changed, 40 insertions(+), 46 deletions(-) diff --git a/Makefile b/Makefile index 2f607b6..8a456d9 100644 --- a/Makefile +++ b/Makefile @@ -5,7 +5,7 @@ endif EMACS_CMD := $(EMACS) -Q -batch -L . -EL := ssh-deploy-diff-mode.el ssh-deploy-test.el ssh-deploy.el +EL := ssh-deploy-diff-mode.el ssh-deploy-hydra.el ssh-deploy-test.el ssh-deploy.el ELC := $(EL:.el=.elc) .PHONY: test diff --git a/ssh-deploy-hydra.el b/ssh-deploy-hydra.el index 2f406e2..b3b21e3 100644 --- a/ssh-deploy-hydra.el +++ b/ssh-deploy-hydra.el @@ -28,31 +28,21 @@ ;;; Code: -(autoload 'ssh-deploy-upload-handler-forced "ssh-deploy") -(autoload 'ssh-deploy-upload-handler "ssh-deploy") -(autoload 'ssh-deploy-download-handler "ssh-deploy") -(autoload 'ssh-deploy-delete-handler "ssh-deploy") -(autoload 'ssh-deploy-diff-handler "ssh-deploy") -(autoload 'ssh-deploy-remote-terminal-eshell-base-handler "ssh-deploy") -(autoload 'ssh-deploy-remote-terminal-eshell-handler "ssh-deploy") -(autoload 'ssh-deploy-remote-terminal-shell-base-handler "ssh-deploy") -(autoload 'ssh-deploy-remote-terminal-shell-handler "ssh-deploy") -(autoload 'ssh-deploy-remote-changes-handler "ssh-deploy") -(autoload 'ssh-deploy-rename-handler "ssh-deploy") -(autoload 'ssh-deploy-browse-remote-base-handler "ssh-deploy") -(autoload 'ssh-deploy-browse-remote-handler "ssh-deploy") -(autoload 'ssh-deploy-open-remote-file-handler "ssh-deploy") -(autoload 'ssh-deploy-remote-sql-mysql-handler "ssh-deploy") -(autoload 'ssh-deploy-run-deploy-script-handler "ssh-deploy") - -(require 'hydra) +(require 'ssh-deploy) -;;;###autoload -(defun ssh-deploy-hydra (shortcut) - "Attach hydra at SHORTCUT." - (when (fboundp 'defhydra) - (defhydra ssh-deploy-hydra (:color red :hint nil) - " +(defmacro ssh-deploy--fboundp-macro (name body) + "Expand to BODY if NAME is bound. +Takes care of byte-compilation issues where the `byte-code' for the latter could signal an error if it has been compiled with Emacs 24.1 and is then later run by Emacs 24.5." + (declare (indent 2) (debug (symbolp form &rest form))) + (if (fboundp name) + body + `(when (fboundp ',name) + (eval ',body)))) + +(ssh-deploy--fboundp-macro + defhydra + (defhydra ssh-deploy-hydra (:color red :hint nil) + " SSH Deploy Menu _u_: Upload _f_: Force Upload @@ -67,24 +57,28 @@ _o_: Open current file on remote _m_: Open sql-mysql on remote _s_: Run deploy script " - ("f" #'ssh-deploy-upload-handler-forced) - ("u" #'ssh-deploy-upload-handler) - ("d" #'ssh-deploy-download-handler) - ("D" #'ssh-deploy-delete-handler) - ("x" #'ssh-deploy-diff-handler) - ("t" #'ssh-deploy-remote-terminal-eshell-base-handler) - ("T" #'ssh-deploy-remote-terminal-eshell-handler) - ("h" #'ssh-deploy-remote-terminal-shell-base-handler) - ("H" #'ssh-deploy-remote-terminal-shell-handler) - ("e" #'ssh-deploy-remote-changes-handler) - ("R" #'ssh-deploy-rename-handler) - ("b" #'ssh-deploy-browse-remote-base-handler) - ("B" #'ssh-deploy-browse-remote-handler) - ("o" #'ssh-deploy-open-remote-file-handler) - ("m" #'ssh-deploy-remote-sql-mysql-handler) - ("s" #'ssh-deploy-run-deploy-script-handler)) - (when (fboundp 'ssh-deploy-hydra/body) - (global-set-key (kbd shortcut) #'ssh-deploy-hydra/body)))) + ("f" #'ssh-deploy-upload-handler-forced) + ("u" #'ssh-deploy-upload-handler) + ("d" #'ssh-deploy-download-handler) + ("D" #'ssh-deploy-delete-handler) + ("x" #'ssh-deploy-diff-handler) + ("t" #'ssh-deploy-remote-terminal-eshell-base-handler) + ("T" #'ssh-deploy-remote-terminal-eshell-handler) + ("h" #'ssh-deploy-remote-terminal-shell-base-handler) + ("H" #'ssh-deploy-remote-terminal-shell-handler) + ("e" #'ssh-deploy-remote-changes-handler) + ("R" #'ssh-deploy-rename-handler) + ("b" #'ssh-deploy-browse-remote-base-handler) + ("B" #'ssh-deploy-browse-remote-handler) + ("o" #'ssh-deploy-open-remote-file-handler) + ("m" #'ssh-deploy-remote-sql-mysql-handler) + ("s" #'ssh-deploy-run-deploy-script-handler))) + +;;;###autoload +(defun ssh-deploy-hydra (shortcut) + "Attach hydra at SHORTCUT." + (when (fboundp 'ssh-deploy-hydra/body) + (global-set-key (kbd shortcut) #'ssh-deploy-hydra/body))) (provide 'ssh-deploy-hydra) ;;; ssh-deploy-hydra.el ends here diff --git a/ssh-deploy.el b/ssh-deploy.el index bd262c6..64d57b7 100644 --- a/ssh-deploy.el +++ b/ssh-deploy.el @@ -5,8 +5,8 @@ ;; Author: Christian Johansson <christ...@cvj.se> ;; Maintainer: Christian Johansson <christ...@cvj.se> ;; Created: 5 Jul 2016 -;; Modified: 9 Sep 2019 -;; Version: 3.1.9 +;; Modified: 17 Sep 2019 +;; Version: 3.1.10 ;; Keywords: tools, convenience ;; URL: https://github.com/cjohansson/emacs-ssh-deploy @@ -373,7 +373,7 @@ (defun ssh-deploy--file-is-in-path-p (file path) "Return non-nil if FILE is in the path PATH." - (not (null (string-match path file)))) + (string-prefix-p path file)) (defun ssh-deploy--file-is-included-p (path exclude-list) "Return non-nil if PATH is not in EXCLUDE-LIST."