Tim Landscheidt <t...@tim-landscheidt.de> writes: > Hi,
Hi Tim, > while working with docker-tramp 0.1.1 and not setting > docker-tramp-docker-executable correctly on a Fedora system, First of all, docker-tramp from M(?)ELPA is deprecated. Since Tramp 2.6 (Eamcs 29), Tramp has an own implementation for docker containers. This offers also the method "podman" which you might need on Fedora. > I noticed this odd behaviour: > > | ELISP> (add-to-list 'tramp-methods > | '("test-dne" > | (tramp-login-program "does-not-exist") > | (tramp-login-args (nil ("exec" "-it") ("-u" "%u") > ("%h") ("sh"))) > | (tramp-remote-shell "/bin/sh") > | (tramp-remote-shell-args ("-i" "-c")))) > | (("test-dne" > | (tramp-login-program "does-not-exist") > | (tramp-login-args > | (nil > | ("exec" "-it") > | ("-u" "%u") > | ("%h") > | ("sh"))) > | (tramp-remote-shell "/bin/sh") > | (tramp-remote-shell-args > | ("-i" "-c"))) > | […]) > > | ELISP> (find-file "/test-dne:does-not-exist-either:/etc/passwd") > | #<buffer passwd> > | ELISP> > > The resulting buffer will contain the contents of > /etc/passwd on the primary system (well, there are no > others :-)). I've tried this with Emacs 29.2 (Tramp 2.6.2), and the result is slightly better: it is an empty buffer #<buffer passwd>, and there is the error message "Use M-x make-directory RET RET to create the directory and its parents". Default directory is "/test-dne:does-not-exist-either:/etc/", which is correct. > My assumption is that technically this is not an error as > with the great power that Emacs gives to the user comes > great responsibility to set one's variables properly :-). Indeed, as always with Emacs :-) > I have not debugged where this behaviour is rooted and > whether it can be "fixed" easily, but if TRAMP can detect > that the call to tramp-login-program fails, it would be nice > if it could croak. Well, we could do something like this. Does this work for you?
diff --git a/lisp/tramp-sh.el b/lisp/tramp-sh.el index 38925652..1301cd63 100644 --- a/lisp/tramp-sh.el +++ b/lisp/tramp-sh.el @@ -5340,7 +5340,7 @@ connection if a previous connection has died for some reason." "2>" (tramp-get-remote-null-device previous-hop)) ?l (concat remote-shell " " extra-args " -i")) ;; A restricted shell does not allow "exec". - (when r-shell '("&&" "exit" "||" "exit"))) + (when r-shell '("&&" "exit")) '("||" "exit")) " ")) ;; Send the command.
> Tim Best regards, Michael.