branch: elpa/hyperdrive commit 0a5ae6307e26aea6e843f0523de998346572317c Author: Joseph Turner <jos...@ushin.org> Commit: Joseph Turner <jos...@ushin.org>
Change: (hyperdrive-menu-hyperdrive) Add "Upload" commands --- hyperdrive-menu.el | 35 ++++++++++++++++++++++++++++++++++- 1 file changed, 34 insertions(+), 1 deletion(-) diff --git a/hyperdrive-menu.el b/hyperdrive-menu.el index b81c50fcb4..45f0c4ef86 100644 --- a/hyperdrive-menu.el +++ b/hyperdrive-menu.el @@ -283,10 +283,43 @@ ('nil (propertize "none" 'face 'transient-inactive-value)) (it (propertize it - 'face 'transient-value))))))]] + 'face 'transient-value))))))] + ["Upload" + ("u f" "File" hyperdrive-menu-upload-file + :inapt-if-not (lambda () + (hyperdrive-writablep (oref transient--prefix scope)))) + ("u F" "Files" hyperdrive-menu-upload-files + :inapt-if-not (lambda () + (hyperdrive-writablep (oref transient--prefix scope)))) + ;; TODO: When `hyperdrive-mirror' is rewritten with transient.el, set the hyperdrive by default to the + ("u m" "Mirror" hyperdrive-mirror + :inapt-if-not (lambda () + (hyperdrive-writablep (oref transient--prefix scope))))]] (interactive (list (hyperdrive-complete-hyperdrive :force-prompt current-prefix-arg))) (transient-setup 'hyperdrive-menu-hyperdrive nil nil :scope hyperdrive)) +(transient-define-suffix hyperdrive-menu-upload-file (filename entry) + (interactive + (let* ((filename (read-file-name "Upload file: ")) + (entry (hyperdrive-read-entry :hyperdrive (oref transient-current-prefix scope) + :default-path (file-name-nondirectory filename) + :latest-version t))) + (list filename entry))) + (hyperdrive-upload-file filename entry)) + +(transient-define-suffix hyperdrive-menu-upload-files (files hyperdrive &key target-directory) + (interactive + (let ((drive (oref transient-current-prefix scope))) + (list + (hyperdrive-read-files) + drive + :target-directory (hyperdrive-read-path + :hyperdrive drive + :prompt "Target directory in «%s»" + :default "/")))) + (hyperdrive-upload-files files hyperdrive + :target-directory target-directory)) + (transient-define-suffix hyperdrive-menu-set-petname (petname hyperdrive) (interactive (list (hyperdrive-read-name