Michael Albinus
5ce0e1372b
Fix Tramp bug#78508
...
* lisp/net/tramp-container.el (tramp-methods) <docker, dockercp, podman>
<podmancp, apptainer, nspawn>:
* lisp/net/tramp-sh.el (tramp-methods) <scp, scpx, rsync>
<ssh, sshx, sudo>:
* lisp/net/tramp-sshfs.el (tramp-methods) <sshfs>: Set TERM environment.
(Bug#78508)
* lisp/net/tramp-sh.el (tramp-find-executable): Handle superlong PATH.
(tramp-set-remote-path): Simplify command.
(tramp-timeout-session): Add ;;;###tramp-autoload cookie.
* lisp/net/tramp-smb.el (tramp-smb-errors): Add string.
(tramp-smb-winexe-program): Adapt docstring.
(tramp-smb-handle-copy-directory, tramp-smb-handle-file-acl)
(tramp-smb-handle-set-file-acl, tramp-smb-maybe-open-connection):
Simplify argument handling.
(tramp-smb-handle-process-file): Flush " process-exit-status" property.
(tramp-smb-call-winexe): Set $winsize.Width to 102 only.
* lisp/net/tramp.el (tramp-process-sentinel): Adapt docstring.
Set " process-exit-status" property.
* test/lisp/net/tramp-tests.el (tramp--test-enabled):
Make it more robust.
(tramp-test18-file-attributes)
(tramp-test26-interactive-file-name-completion)
(tramp-test26-file-name-completion-boundaries)
(tramp-test35-remote-path): Adapt tests.
2025-05-31 15:08:06 +02:00
Michael Albinus
13a043fec9
Tramp: Don't offer non-existing containers in completion
...
* doc/misc/tramp.texi (File name completion):
Explain "completion-use-cache" property.
* lisp/net/tramp-cache.el (tramp-get-method-parameter): Declare.
(tramp-get-hash-table): Mark connection properties.
(tramp-dump-connection-properties): Remove empty lists.
(tramp-parse-connection-properties): Take connection property
"completion-use-cache" into account. (Bug#76950)
* lisp/net/tramp-container.el (tramp-methods) <docker, dockercp, podman>
<podmancp, kubernetes, toolbox, distrobox, flatpak, apptainer, nspawn>:
Add `tramp-completion-use-cache' argument.
2025-03-12 20:56:24 +01:00
Paul Eggert
4da38c6321
Update copyright year to 2025
...
Run "TZ=UTC0 admin/update-copyright".
2025-01-01 07:39:17 +00:00
Michael Albinus
1bf1753d79
Tramp: Use when-let*', if-let*' and `and-let*' consequently
...
* lisp/net/tramp-adb.el:
* lisp/net/tramp-androidsu.el:
* lisp/net/tramp-cache.el:
* lisp/net/tramp-cmds.el:
* lisp/net/tramp-compat.el:
* lisp/net/tramp-container.el:
* lisp/net/tramp-crypt.el:
* lisp/net/tramp-ftp.el:
* lisp/net/tramp-fuse.el:
* lisp/net/tramp-gvfs.el:
* lisp/net/tramp-integration.el:
* lisp/net/tramp-message.el:
* lisp/net/tramp-rclone.el:
* lisp/net/tramp-sh.el:
* lisp/net/tramp-smb.el:
* lisp/net/tramp-sshfs.el:
* lisp/net/tramp-sudoedit.el:
* lisp/net/tramp.el:
* test/lisp/net/tramp-tests.el:
Use `when-let*', `if-let*' and `and-let*' consequently. (Bug#73441)
2024-10-30 10:39:02 +01:00
Michael Albinus
7e17a1fff4
Add convenience to Tramp
...
* doc/misc/tramp.texi (Inline methods): Add tramp-docker-program,
tramp-podman-program, tramp-kubernetes-program,
tramp-toolbox-program, tramp-distrobox-program,
tramp-flatpak-program, tramp-apptainer-program, and
tramp-nspawn-program.
(Remote shell setup): Rearrange indices.
(Ssh setup): Say "user option" when needed.
(Keeping files encrypted): Add tramp-crypt-encfs-program.
(Frequently Asked Questions): Rearrange indices. Remove duplicate
text. Add tramp-mode.
* lisp/net/tramp.el (tramp-active-command-completion-p): New defun.
* lisp/net/tramp-cmds.el (tramp-cleanup-connection)
(tramp-cleanup-all-connections, tramp-cleanup-some-buffers)
(tramp-cleanup-all-buffers, tramp-rename-files):
* lisp/net/tramp-message.el (tramp-setup-debug-buffer):
Declare `completion'.
* lisp/net/tramp-integration.el (tramp-info-link): New widget.
(tramp-widget-info-link-action): New defun.
* lisp/net/tramp.el (tramp, tramp-mode, tramp-backup-directory-alist)
(tramp-auto-save-directory, tramp-encoding-shell)
(tramp-encoding-command-switch)
(tramp-encoding-command-interactive, tramp-default-method)
(tramp-default-method-alist, tramp-default-user)
(tramp-default-user-alist, tramp-default-host)
(tramp-default-host-alist, tramp-default-proxies-alist)
(tramp-save-ad-hoc-proxies, tramp-show-ad-hoc-proxies)
(tramp-restricted-shell-hosts-alist, tramp-local-host-regexp)
(tramp-shell-prompt-pattern, tramp-password-prompt-regexp)
(tramp-otp-password-prompt-regexp, tramp-wrong-passwd-regexp)
(tramp-terminal-type, tramp-syntax)
(tramp-ignored-file-name-regexp, tramp-chunksize)
(tramp-process-connection-type, tramp-remote-path)
(tramp-remote-process-environment)
(tramp-completion-multi-hop-methods)
(tramp-completion-use-auth-sources, tramp-use-file-attributes)
(tramp-inhibit-errors-if-setting-file-attributes-fail)
(tramp-allow-unsafe-temporary-files):
* lisp/net/tramp-adb.el (tramp-adb-program)
(tramp-adb-connect-if-not-connected):
* lisp/net/tramp-cache.el (tramp-connection-properties)
(tramp-persistency-file-name, tramp-completion-use-cache):
* lisp/net/tramp-cmds.el (tramp-cleanup-some-buffers-hook)
(tramp-default-rename-alist, tramp-confirm-rename-file-names)
(tramp-file-name-with-method):
* lisp/net/tramp-container.el (tramp-docker-program)
(tramp-podman-program, tramp-kubernetes-program)
(tramp-kubernetes-context, tramp-kubernetes-namespace)
(tramp-toolbox-program, tramp-distrobox-program)
(tramp-flatpak-program, tramp-apptainer-program)
(tramp-nspawn-program):
* lisp/net/tramp-crypt.el (tramp-crypt-encfs-program)
(tramp-crypt-encfsctl-program, tramp-crypt-encfs-option)
(tramp-crypt-save-encfs-config-remote):
* lisp/net/tramp-fuse.el (tramp-fuse-unmount-on-cleanup):
* lisp/net/tramp-gvfs.el (tramp-gvfs-methods):
* lisp/net/tramp-message.el (tramp-verbose, tramp-debug-to-file)
(tramp-debug-command-messages):
* lisp/net/tramp-rclone.el (tramp-rclone-program):
* lisp/net/tramp-sh.el (tramp-inline-compress-start-size)
(tramp-copy-size-limit, tramp-histfile-override)
(tramp-use-connection-share)
(tramp-use-scp-direct-remote-copying, tramp-sh-extra-args):
* lisp/net/tramp-sshfs.el (tramp-sshfs-program): Add `:link' key.
* lisp/net/tramp.el (tramp-enable-method): Move function ...
* lisp/net/tramp-cmds.el (tramp-enable-method): ... here.
2024-08-26 18:48:53 +02:00
Michael Albinus
8b66204707
Fix problem in tramp-container.el
...
* lisp/net/tramp-container.el (tramp-kubernetes--context-namespace):
Handle nil list elements.
2024-08-08 17:29:40 +02:00
Michael Albinus
1b806a200e
Remove further compat code from Tramp
...
* lisp/net/tramp-adb.el (tramp-adb-handle-process-file):
Use `process-file-return-signal-string'.
* lisp/net/tramp-cache.el (tramp-dump-connection-properties):
Use "lisp-data" for persistency file.
* lisp/net/tramp-cmds.el (tramp-cleanup-this-connection)
(tramp-rename-these-files, tramp-recompile-elpa):
Declare `completion'.
* lisp/net/tramp-container.el (tramp-kubernetes--container)
(tramp-kubernetes--pod, tramp-kubernetes--namespace): Make more
robust.
* lisp/net/tramp-crypt.el (tramp-crypt-remove-directory):
Declare `completion'.
* lisp/net/tramp-gvfs.el (file-notyify-callback): Declare.
* lisp/net/tramp-sh.el (process-file-return-signal-string)
(vc-handled-backends): Don't declare.
* lisp/net/tramp-smb.el (tramp-smb-handle-copy-directory):
Use `copy-directory-create-symlink'.
* lisp/net/tramp.el (tramp-skeleton-write-region): Use `lock-file' and
`unlock-file'..
(tramp-handle-make-lock-file-name): Use `remote-file-name-inhibit-locks'.
(tramp-handle-unlock-file): Use `remote-file-name-inhibit-locks'
and `userlock--handle-unlock-error'.
(tramp-handle-shell-command): Use `shell-command-buffer-name-async'
and `shell-command-buffer-name'.
(tramp-read-passwd): Remove workaround.
2024-08-04 13:23:43 +02:00
Michael Albinus
d2cb9f2bf6
Tramp's method "kubernetes" supports now optional namespace
...
* doc/misc/tramp.texi (Inline methods): Extend Kubernetes host
name syntax by an optional namespace.
(Kubernetes setup): Mention optional namespace part of the host name.
* etc/NEWS: Tramp's method "kubernetes" supports now optional namespace.
Fix typos.
* lisp/net/tramp-container.el (tramp-kubernetes-namespace):
Initialize with nil. Adapt docstring.
(tramp-kubernetes--name-regexp): New defconst.
(tramp-kubernetes--host-name-regexp): Change in order to cover
also an optional namespace. (Bug#59797)
(tramp-kubernetes--namespace): New defun.
(tramp-kubernetes--context-namespace): Use it.
(tramp-skeleton-kubernetes-vector): Add sanity check for
superfluous user name or port number.
2024-07-25 13:38:27 +02:00
Michael Albinus
9b12854743
Refactor tramp-*-make-process functions
...
* lisp/net/tramp.el (tramp-handle-make-process):
* lisp/net/tramp-adb.el (tramp-adb-handle-make-process):
* lisp/net/tramp-androidsu.el (tramp-androidsu-handle-make-process):
* lisp/net/tramp-sh.el (tramp-sh-handle-make-process):
Use `tramp-skeleton-make-process'.
* lisp/net/tramp-container.el (tramp-actions-before-shell):
Don't declare.
* lisp/net/tramp-sh.el (tramp-actions-before-shell):
Add ;;;###tramp-autoload cookie.
* lisp/net/tramp.el (tramp-file-local-name): Adapt docstring.
(tramp-skeleton-make-process): New defmacro.
2024-06-10 14:37:48 +02:00
Paul Eggert
3dcac22dd4
Spelling fixes
2024-06-04 22:16:28 -07:00
Michael Albinus
f0cd7eab09
Minor Tramp changes
...
* lisp/net/tramp-adb.el:
* lisp/net/tramp-container.el: Add myself as maintainer.
* lisp/net/tramp-compat.el (connection-local-default-application):
Define if not bound.
(tramp-compat-connection-local-p, tramp-compat-connection-local-value):
Use it.
2024-06-01 19:22:21 +02:00
Michael Albinus
0cb511b33b
Make Tramp error handling more precise
...
* lisp/net/tramp-container.el (tramp-actions-copy-out-of-band)
(tramp-container-no-container-regexp): Remove. Do not register them.
(tramp-distrobox-no-container-regexp): New defcustom.
(tramp-enable-distrobox-method): Add it to
`'tramp-actions-before-shell. (Bug#71200)
2024-05-31 16:27:47 +02:00
Michael Albinus
c166abe897
Improve Tramp error handling
...
* lisp/net/tramp-container.el (tramp-container-no-container-regexp):
New defcustom.
(tramp-actions-before-shell, tramp-actions-copy-out-of-band): Declare.
Add `tramp-container-no-container-regexp'. (Bug#71200)
2024-05-30 10:44:30 +02:00
Michael Albinus
17c23a46c3
Add Tramp distrobox method
...
* doc/misc/tramp.texi (Inline methods) <distrobox>: Add.
* etc/NEWS: Mention Tramp distrobox method.
* lisp/net/tramp-container.el (tramp-distrobox-program): New defcustom.
(tramp-distrobox-method): New defconst.
(tramp-distrobox--completion-function)
(tramp-enable-distrobox-method): New defuns. (Bug#71200)
(tramp-docker-method, tramp-dockercp-method)
(tramp-podman-method, tramp-podmancp-method)
(tramp-kubernetes-method, tramp-flatpak-method)
(tramp-apptainer-method, tramp-nspawn-method): Adapt docstring.
* test/lisp/net/tramp-tests.el (tramp--test-box-p): Rename from
`tramp--test-toolbox-p'. Add distrobox. Adapt callees.
2024-05-29 18:29:52 +02:00
Michael Albinus
9aeb4872d4
Fix some Tramp oddities
...
* lisp/net/tramp-container.el: Move connection-local settings
where they belong to.
* lisp/net/tramp-sshfs.el (tramp-connection-properties): Do not
set connection property "direct-async-process".
(tramp-direct-async-process): Set connection-local value.
* test/lisp/net/tramp-tests.el (comp-warn-primitives): Declare.
(tramp-test18-file-attributes): Use it.
2024-05-21 18:13:40 +02:00
Michael Albinus
e53e8b4cf4
Add Tramp method "nspawn"
...
* doc/misc/tramp.texi: Adapt some markups.
(Inline methods) <nspawn>: Add.
(Default Host): Mention default host for "nspawn".
(Customizing Methods): Remove tramp-nspawn.
(Password handling): Add "nspawn".
* etc/NEWS: New Tramp method "nspawn".
* lisp/net/tramp-compat.el (tramp-nspawn): Warn, if that package is used.
* lisp/net/tramp-container.el (tramp-nspawn-program): New defcustom.
(tramp-nspawn-method): New defconst.
(tramp-nspawn--completion-function, tramp-enable-nspawn-method):
New defuns.
* lisp/net/tramp.el (tramp-local-host-regexp): Add OpenSUSE host names.
2024-05-12 19:40:08 +02:00
Michael Albinus
04363f9924
Tramp code cleanup
...
* lisp/net/tramp-compat.el (tramp-compat-seq-keep): New defalias.
* lisp/net/tramp.el (tramp-enable-method):
* lisp/net/tramp-adb.el (tramp-adb-parse-device-names):
* lisp/net/tramp-cache.el (tramp-list-connections):
* lisp/net/tramp-cmds.el (tramp-bug, tramp-append-tramp-buffers):
* lisp/net/tramp-container.el (tramp-container--completion-function)
(tramp-toolbox--completion-function)
(tramp-flatpak--completion-function)
(tramp-apptainer--completion-function):
* lisp/net/tramp-rclone.el (tramp-rclone-parse-device-names): Use it.
2024-05-09 10:38:37 +02:00
Michael Albinus
4808c63d43
Add Tramp method "apptainer"
...
* doc/misc/tramp.texi (Top, Configuration): Add "Optional methods".
(Optional methods): New section.
(Inline methods) <androidsu, toolbox, flatpak>: These are optional
methods.
(Inline methods) <apptainer>: Add.
* etc/NEWS: New Tramp method "apptainer".
Some Tramp methods are optional.
Fix typos.
* lisp/net/tramp-androidsu.el (tramp-enable-androidsu-method):
New defun. Call it when `system-type' is `android'.
* lisp/net/tramp-container.el (tramp-apptainer-program): New defcustom.
(tramp-apptainer-method): New defconst.
(tramp-apptainer--completion-function)
(tramp-enable-toolbox-method, tramp-enable-flatpak-method)
(tramp-enable-apptainer-method): New defuns.
* lisp/net/tramp.el (tramp-enable-method): New defun.
* test/lisp/net/tramp-tests.el (tramp--test-container-p):
Add "apptainer".
(tramp--test-supports-processes-p): Extend function.
2024-05-07 09:56:05 +02:00
Michael Albinus
4e9993cada
Add Tramp methods dockercp and podmancp
...
* doc/misc/tramp.texi (External methods): Add dockercp and podmancp.
* etc/NEWS: Add Tramp methods "dockercp" and "podmancp".
* lisp/net/tramp.el (tramp-handle-make-process):
* lisp/net/tramp-adb.el (tramp-adb-maybe-open-connection):
* lisp/net/tramp-sh.el (tramp-do-copy-or-rename-file-out-of-band)
(tramp-maybe-open-connection):
* lisp/net/tramp-sshfs.el (tramp-sshfs-handle-process-file)
(tramp-sshfs-maybe-open-connection):
* lisp/net/tramp-sudoedit.el (tramp-sudoedit-send-command): Adapt
`tramp-expand-args' calls.
* lisp/net/tramp-container.el (tramp-dockercp-method)
(tramp-podmancp-method): New defconst.
(tramp-methods) <dockercp, podmancp>: Add new methods.
(tramp-container--completion-function): Adapt docstring. Use it
for "dockercp" and "podmancp" completion.
* lisp/net/tramp.el (tramp-get-remote-tmpdir):
* lisp/net/tramp-gvfs.el (tramp-gvfs-maybe-open-connection):
* lisp/net/tramp-sh.el (tramp-maybe-open-connection): Use a default
value with `tramp-get-method-parameter'.
* lisp/net/tramp-sh.el (tramp-methods) <nc>: Add `tramp-copy-file-name'.
(tramp-default-copy-file-name): New defconst.
(tramp-make-copy-file-name): Rename from
`tramp-make-copy-program-file-name'. Use method parameter
`tramp-copy-file-name'. (Bug#69085)
(tramp-do-copy-or-rename-file-out-of-band): Adapt callees.
* lisp/net/tramp.el (tramp-methods): Adapt docstring.
(tramp-get-method-parameter, tramp-expand-args): New optional
argument DEFAULT.
* test/lisp/net/tramp-tests.el (tramp--test-container-p): Adapt.
(tramp--test-container-oob-p): New defun.
(tramp-test17-dired-with-wildcards, tramp-test35-remote-path)
(tramp-test41-special-characters): Use it.
(tramp--test-set-ert-test-documentation): Use `split-string'.
2024-02-20 12:52:40 +01:00
Po Lu
ecf08f0621
Merge from savannah/emacs-29
...
dc4e6b1329 ; Update copyright years in more files
64b3777631 ; Run set-copyright from admin.el
8e1c56ae46 ; Add 2024 to copyright years
# Conflicts:
# doc/misc/modus-themes.org
# doc/misc/texinfo.tex
# etc/NEWS
# etc/refcards/ru-refcard.tex
# etc/themes/modus-operandi-theme.el
# etc/themes/modus-themes.el
# etc/themes/modus-vivendi-theme.el
# lib/alloca.in.h
# lib/binary-io.h
# lib/c-ctype.h
# lib/c-strcasecmp.c
# lib/c-strncasecmp.c
# lib/careadlinkat.c
# lib/cloexec.c
# lib/close-stream.c
# lib/diffseq.h
# lib/dup2.c
# lib/filemode.h
# lib/fpending.c
# lib/fpending.h
# lib/fsusage.c
# lib/getgroups.c
# lib/getloadavg.c
# lib/gettext.h
# lib/gettime.c
# lib/gettimeofday.c
# lib/group-member.c
# lib/malloc.c
# lib/md5-stream.c
# lib/md5.c
# lib/md5.h
# lib/memmem.c
# lib/memrchr.c
# lib/nanosleep.c
# lib/save-cwd.h
# lib/sha1.c
# lib/sig2str.c
# lib/stdlib.in.h
# lib/strtoimax.c
# lib/strtol.c
# lib/strtoll.c
# lib/time_r.c
# lib/xalloc-oversized.h
# lisp/auth-source-pass.el
# lisp/emacs-lisp/lisp-mnt.el
# lisp/emacs-lisp/timer.el
# lisp/info-look.el
# lisp/jit-lock.el
# lisp/loadhist.el
# lisp/mail/rmail.el
# lisp/net/ntlm.el
# lisp/net/webjump.el
# lisp/progmodes/asm-mode.el
# lisp/progmodes/project.el
# lisp/progmodes/sh-script.el
# lisp/textmodes/flyspell.el
# lisp/textmodes/reftex-toc.el
# lisp/textmodes/reftex.el
# lisp/textmodes/tex-mode.el
# lisp/url/url-gw.el
# m4/alloca.m4
# m4/clock_time.m4
# m4/d-type.m4
# m4/dirent_h.m4
# m4/dup2.m4
# m4/euidaccess.m4
# m4/fchmodat.m4
# m4/filemode.m4
# m4/fsusage.m4
# m4/getgroups.m4
# m4/getloadavg.m4
# m4/getrandom.m4
# m4/gettime.m4
# m4/gettimeofday.m4
# m4/gnulib-common.m4
# m4/group-member.m4
# m4/inttypes.m4
# m4/malloc.m4
# m4/manywarnings.m4
# m4/mempcpy.m4
# m4/memrchr.m4
# m4/mkostemp.m4
# m4/mktime.m4
# m4/nproc.m4
# m4/nstrftime.m4
# m4/pathmax.m4
# m4/pipe2.m4
# m4/pselect.m4
# m4/pthread_sigmask.m4
# m4/readlink.m4
# m4/realloc.m4
# m4/sig2str.m4
# m4/ssize_t.m4
# m4/stat-time.m4
# m4/stddef_h.m4
# m4/stdint.m4
# m4/stdio_h.m4
# m4/stdlib_h.m4
# m4/stpcpy.m4
# m4/strnlen.m4
# m4/strtoimax.m4
# m4/strtoll.m4
# m4/time_h.m4
# m4/timegm.m4
# m4/timer_time.m4
# m4/timespec.m4
# m4/unistd_h.m4
# m4/warnings.m4
# nt/configure.bat
# nt/preprep.c
# test/lisp/register-tests.el
2024-01-02 10:28:14 +08:00
Po Lu
8e1c56ae46
; Add 2024 to copyright years
2024-01-02 09:47:10 +08:00
Michael Albinus
0d493116ae
Make "toolbox" and "flatpak" multi-hop completion capable in Tramp
...
* lisp/net/tramp-container.el (tramp-skeleton-completion-function):
Bind `tramp-verbose' to 0.
(tramp-toolbox--completion-function)
(tramp-flatpak--completion-function): Use METHOD as argument.
Use `tramp-skeleton-completion-function'.
(tramp-completion-multi-hop-methods): Add "toolbox" and "flatpak".
2023-09-17 12:13:14 +02:00
Michael Albinus
f0f4cbfe87
Make "kubernetes" multi-hop completion capable in Tramp
...
* lisp/net/tramp-container.el (tramp-skeleton-completion-function):
New defmacro.
(tramp-container--completion-function): Use it.
(tramp-kubernetes--completion-function): Use METHOD as argument.
Use `tramp-skeleton-completion-function'.
(tramp-skeleton-kubernetes-vector): New defmacro.
(tramp-kubernetes--current-context)
(tramp-kubernetes--current-context-data): Use it.
(tramp-completion-multi-hop-methods): Add "kubernetes".
2023-09-16 20:35:35 +02:00
Michael Albinus
eeb7f2bc12
Fix tramp-completion-multi-hop-methods handling
...
* lisp/net/tramp-container.el (tramp-completion-multi-hop-methods):
Add methods properly.
* lisp/net/tramp.el (tramp-completion-multi-hop-methods): Fix :type.
2023-09-01 13:49:22 +02:00
Michael Albinus
b71beb7ae7
Adapt last change
...
* lisp/net/tramp-container.el (tramp-completion-multi-hop-methods):
Add "docker" and "podman".
* lisp/net/tramp.el (tramp-completion-multi-hop-methods):
Adapt docstring. Use nil as initial value.
2023-08-31 17:21:23 +02:00
Gene Goykhman
d43a037bc3
Allow enabling multi-hop container completion selectively by method
...
* lisp/net/tramp-container.el: Check if METHOD is a member of
`tramp-container-multi-hop-methods' before attempting completion.
* lisp/net/tramp.el: Add custom variable
`tramp-container-multi-hop-methods'.
2023-08-31 17:09:36 +02:00
Michael Albinus
88bb7cdf91
Adapt some changes of last Tramp commit
...
* lisp/net/tramp-container.el (tramp-container--completion-function):
Use METHOD as argument, instead of PROGRAM. Determine program
from METHOD entry in `tramp-methods'. Bind `non-essential' to
nil. Use a file property as cache.
(tramp-container--completion-function): Use adapted arguments when
setting for "docker" and "podman".
* lisp/net/tramp.el (tramp--last-hop-directory): Adapt docstring.
Move down.
(tramp-set-completion-function): Revert default case to
`file-exists-p', the workaround isn't needed anymore.
(tramp-get-completion-methods): Rename argument to MULTI-HOP.
(tramp-completion-remote-containers): Add :version.
(tramp-multi-hop-p): Bind `tramp-verbose' to nil.
2023-08-29 11:30:20 +02:00
Gene Goykhman
2f5d0606cb
Provide completion candidates for remote containers over a multi-hop
...
* lisp/net/tramp-container.el (tramp-container--completion-function):
Set default directory to last hop.
(tramp-set-completion-function): Don't use executable-find for
container program since it might not be running locally.
* lisp/net/tramp.el (tramp--last-hop-directory): Add new variable.
(tramp-completion-handle-file-name-all-completions): Use container
host directory to execute container program on remote host.
(tramp-set-completion-function): FIXME: for now, don't constrain
allowable completion methods to only those present on the local system.
(tramp-completion-remote-containers): Add customize option to
provide completion candidates for containers running on remote hosts.
2023-08-29 10:10:06 +02:00
Michael Albinus
2695af297e
Sync with Tramp 2.6.2-pre
...
* doc/misc/tramp.texi (Overview): Use "scp" in example.
(Obtaining @value{tramp}): Prefer https: to git: URIs on Savannah.
(Ssh setup): Extend for MS Windows and ssh. Explain
tramp-use-ssh-controlmaster-options value `suppress'.
(File name completion): Remove completion styles restrictions.
(Ad-hoc multi-hops): Describe tramp-show-ad-hoc-proxies.
(Remote processes): Add reference to "Using ssh connection sharing".
* doc/misc/trampver.texi:
* lisp/net/trampver.el (tramp-version): Set to "2.6.2-pre".
* lisp/net/tramp-adb.el (tramp-adb-handle-file-name-all-completions):
* lisp/net/tramp-archive.el
(tramp-archive-handle-file-name-all-completions):
* lisp/net/tramp-crypt.el (tramp-crypt-handle-file-name-all-completions):
* lisp/net/tramp-fuse.el (tramp-fuse-handle-file-name-all-completions):
* lisp/net/tramp-gvfs.el (tramp-gvfs-handle-file-name-all-completions):
* lisp/net/tramp-sh.el (tramp-sh-handle-file-name-all-completions):
* lisp/net/tramp-smb.el (tramp-smb-handle-file-name-all-completions):
* lisp/net/tramp-sudoedit.el
(tramp-sudoedit-handle-file-name-all-completions): Return nil when
DIRECTORY is missing. (Bug#61890)
* lisp/net/tramp.el (tramp-accept-process-output): Don't use TIMEOUT
anymore, default it to 0. When the connection uses a shared
socket possibly, accept also the output from other processes over
the same connection. (Bug#61350)
(tramp-handle-file-notify-rm-watch, tramp-action-process-alive)
(tramp-action-out-of-band, tramp-process-one-action)
(tramp-interrupt-process):
* lisp/net/tramp-adb.el (tramp-adb-handle-make-process):
* lisp/net/tramp-gvfs.el (tramp-gvfs-handle-file-notify-add-watch):
* lisp/net/tramp-sh.el (tramp-sh-handle-file-notify-add-watch):
* lisp/net/tramp-smb.el (tramp-smb-action-get-acl)
(tramp-smb-action-set-acl, tramp-smb-wait-for-output):
* lisp/net/tramp-sudoedit.el (tramp-sudoedit-action-sudo): Adapt callees.
* lisp/net/tramp.el (tramp-get-process, tramp-message)
(tramp-handle-make-process, tramp-handle-file-notify-valid-p)
(tramp-process-actions, tramp-accept-process-output)
(tramp-process-sentinel, tramp-read-passwd)
(tramp-interrupt-process, tramp-signal-process):
* lisp/net/tramp-adb.el (tramp-adb-maybe-open-connection):
* lisp/net/tramp-cmds.el (tramp-cleanup-connection):
* lisp/net/tramp-crypt.el (tramp-crypt-maybe-open-connection):
* lisp/net/tramp-gvfs.el (tramp-gvfs-handle-file-notify-add-watch)
(tramp-gvfs-monitor-process-filter)
(tramp-gvfs-maybe-open-connection):
* lisp/net/tramp-rclone.el (tramp-rclone-maybe-open-connection):
* lisp/net/tramp-sh.el (tramp-do-copy-or-rename-file-out-of-band)
(tramp-sh-handle-file-notify-add-watch)
(tramp-sh-gio-monitor-process-filter)
(tramp-sh-inotifywait-process-filter)
(tramp-barf-if-no-shell-prompt, tramp-maybe-open-connection):
* lisp/net/tramp-smb.el (tramp-smb-handle-copy-directory)
(tramp-smb-handle-file-acl, tramp-smb-handle-set-file-acl)
(tramp-smb-maybe-open-connection):
* lisp/net/tramp-sshfs.el (tramp-sshfs-maybe-open-connection):
* lisp/net/tramp-sudoedit.el (tramp-sudoedit-maybe-open-connection)
(tramp-sudoedit-send-command): Prefix internal process properties
with "tramp-".
* lisp/net/tramp.el (tramp-skeleton-file-exists-p): New defmacro,
which also handles host name completion.
(tramp-handle-file-exists-p):
* lisp/net/tramp-adb.el (tramp-adb-handle-file-exists-p):
* lisp/net/tramp-sh.el (tramp-sh-handle-file-exists-p):
* lisp/net/tramp-sudoedit.el (tramp-sudoedit-handle-file-exists-p): Use it.
* lisp/net/tramp.el (tramp-wrong-passwd-regexp):
* lisp/net/tramp-adb.el (tramp-adb-prompt):
* lisp/net/tramp-sh.el (tramp-sh-inotifywait-process-filter):
* lisp/net/tramp-smb.el (tramp-smb-maybe-open-connection): Unify regexps.
* lisp/net/tramp.el:
* lisp/net/tramp-cmds.el:
* lisp/net/tramp-crypt.el:
* lisp/net/tramp-gvfs.el:
* lisp/net/tramp-sh.el:
* lisp/net/tramp-smb.el: Fix error messages.
* lisp/net/tramp-cmds.el (tramp-cleanup-connection):
Protect `delete-process'.
* lisp/net/tramp.el (tramp-prefix-format, tramp-prefix-regexp)
(tramp-method-regexp, tramp-postfix-method-format)
(tramp-postfix-method-regexp, tramp-prefix-ipv6-format)
(tramp-prefix-ipv6-regexp, tramp-postfix-ipv6-format)
(tramp-postfix-ipv6-regexp, tramp-postfix-host-format)
(tramp-postfix-host-regexp, tramp-remote-file-name-spec-regexp)
(tramp-file-name-structure, tramp-file-name-regexp)
(tramp-completion-method-regexp)
(tramp-completion-file-name-regexp):
* lisp/net/tramp-compat.el (tramp-syntax):
* lisp/net/tramp-gvfs.el (tramp-gvfs-dbus-event-vector):
Rearrange declarations.
* lisp/net/tramp-compat.el (ansi-color): Require.
(ls-lisp): Don't require. (Bug#64124)
(tramp-compat-replace-regexp-in-region): Move up.
(tramp-compat-length<, tramp-compat-length>)
(tramp-compat-length=): New defaliases.
(tramp-compat-file-name-unquote, tramp-compat-take)
(tramp-compat-ntake): Use them.
* lisp/net/tramp-container.el (tramp-container--completion-function):
Rename from `tramp-docker--completion-function'. Add argument
PROGRAM. Use it for "docker" and "podman" host name completion.
* lisp/net/tramp-crypt.el (tramp-crypt-handle-file-exists-p):
New defun.
(tramp-crypt-file-name-handler-alist): Add it.
* lisp/net/tramp-fuse.el (tramp-fuse-handle-file-exists-p): New defun.
(tramp-fuse-mount-timeout): Move up.
(tramp-fuse-mount-point): Use `tramp-fuse-mount-timeout'.
(tramp-fuse-unmount): Flush "mount-point" file property.
(tramp-fuse-mount-point, tramp-fuse-mounted-p): Support existing
mount points.
(tramp-fuse-mounted-p): The mount-spec could contain an optional
trailing slash. (Bug#64278)
* lisp/net/tramp-gvfs.el (tramp-gvfs-do-copy-or-rename-file)
* lisp/net/tramp-rclone.el (tramp-rclone-do-copy-or-rename-file):
Improve stability for WebDAV.
(tramp-rclone-handle-file-system-info): Check return code of
command.
* lisp/net/tramp-gvfs.el (while-no-input-ignore-events):
Add `dbus-event' for older Emacs versions.
(tramp-gvfs-parse-device-names): Ignore errors.
* lisp/net/tramp-sh.el (tramp-display-escape-sequence-regexp)
(tramp-device-escape-sequence-regexp): Delete.
(tramp-sh-handle-insert-directory, tramp-barf-if-no-shell-prompt)
(tramp-wait-for-output): Use `ansi-color-control-seq-regexp'.
(tramp-use-ssh-controlmaster-options): Allow new value `suppress'.
(tramp-ssh-option-exists-p): New defun.
(tramp-ssh-controlmaster-options): Implement `suppress' actions.
Should never return nil, but empty string.
(tramp-perl-file-name-all-completions): Don't print status message.
(tramp-sh-handle-file-name-all-completions): Return nil when check
fails. (Bug#61890)
(tramp-run-test): Add VEC argument.
(tramp-sh-handle-file-executable-p)
(tramp-sh-handle-file-readable-p)
(tramp-sh-handle-file-directory-p)
(tramp-sh-handle-file-writable-p): Adapt callees.
(tramp-sh-handle-insert-directory):
(tramp-sh-handle-insert-directory): Test whether -N is understood
by ls since that option is used along with --dired. Remove -N
when we remove --dired. (Bug#63142)
(tramp-sh-handle-insert-directory, tramp-barf-if-no-shell-prompt)
(tramp-wait-for-output): Use `ansi-color-control-seq-regexp'.
(tramp-sh-handle-expand-file-name): `null-device' could be nil.
Reported by Richard Copley <rcopley@gmail.com>.
(tramp-sh-handle-make-process): Improve handling of
connection-type `pipe'. (Bug#61341)
* lisp/net/tramp-smb.el (tramp-smb-handle-make-symbolic-link):
* lisp/net/tramp-sudoedit.el (tramp-sudoedit-handle-make-symbolic-link):
Flush TARGET file properties.
* lisp/net/tramp-smb.el (tramp-smb-handle-copy-file): Flush proper
file properties.
(tramp-smb-handle-file-acl, tramp-smb-handle-set-file-acl):
Remove superfluous `unwind-protect'.
* lisp/net/tramp-sshfs.el (tramp-sshfs-file-name-handler-alist):
Use `tramp-fuse-handle-file-exists-p'.
(tramp-sshfs-handle-insert-file-contents): Move result out of
unwindform.
* lisp/net/tramp.el (tramp-string-empty-or-nil-p): New defsubst.
Use it everywhere when appropriate.
* lisp/net/tramp.el (tramp-methods) <->: Add.
(tramp-completion-file-name-handler-alist):
Add `expand-file-name', `file-exists-p', `file-name-directory' and
`file-name-nondirectory'.
(tramp-dissect-file-name): Do not extra check for
`tramp-default-method-marker'.
(tramp-completion-handle-expand-file-name)
(tramp-completion-handle-file-exists-p)
(tramp-completion-handle-file-name-directory)
(tramp-completion-handle-file-name-nondirectory): New defuns.
(tramp-completion-handle-file-name-all-completions): Remove duplicates.
(tramp-show-ad-hoc-proxies): New defcustom.
(tramp-make-tramp-file-name): Use it.
(tramp-make-tramp-hop-name): Don't add hop twice.
(tramp-shell-prompt-pattern): Remove escape characters.
(tramp-process-one-action, tramp-convert-file-attributes):
Use `ansi-color-control-seq-regexp'. (Bug#63539)
(tramp-wrong-passwd-regexp): Add "Authentication failed" string
(from doas).
(tramp-terminal-type): Fix docstring.
(tramp-process-one-action): Delete ANSI control escape sequences
in buffer. (Bug#63539)
(tramp-build-completion-file-name-regexp): Support user name
completion.
(tramp-make-tramp-file-name): Keep hop while in file
(tramp-set-completion-function): Check, that cdr of FUNCTION-LIST
entries is a string.
(tramp-completion-file-name-handler): Run only when
`minibuffer-completing-file-name' is non-nil.
(tramp-skeleton-write-region): Fix scoping. (Bug#65022)
(tramp-handle-memory-info): Work on newly created objects, or use
non-destructive operations.
(tramp-accept-process-output): Use `with-local-quit'.
(tramp-call-process, tramp-call-process-region):
Let-bind `temporary-file-directory'.
* test/lisp/net/tramp-archive-tests.el (tramp-archive--test-emacs28-p):
New defun.
(tramp-archive-test16-directory-files): Don't mutate.
(tramp-archive-test47-auto-load): Adapt test.
* test/lisp/net/tramp-tests.el (tramp-display-escape-sequence-regexp):
Dont't declare.
(tramp-action-yesno): Suppress run in tests.
(tramp-test02-file-name-dissect):
(tramp-test02-file-name-dissect-simplified)
(tramp-test02-file-name-dissect-separate): Adapt tests.
(tramp-test21-file-links):
(tramp-test21-file-links, tramp-test26-file-name-completion)
(tramp-test28-process-file, tramp-test29-start-file-process)
(tramp-test30-make-process, tramp-test33-environment-variables)
(tramp-test38-find-backup-file-name, tramp-test47-auto-load)
(tramp-test39-detect-external-change, tramp-test42-utf8)
(tramp-test47-auto-load, tramp-test47-delay-load)
(tramp-test48-unload): Adapt tests.
(tramp-test26-file-name-completion-with-perl):
(tramp-test26-file-name-completion-with-ls)
(tramp-test26-interactive-file-name-completion): New tests.
(tramp-test44-asynchronous-requests): Mark as :unstable.
2023-08-05 18:07:58 +02:00
Michael Albinus
c5d6102313
Adapt Tramp's kubernetes integration
...
* doc/misc/tramp.texi (Inline methods): Shorten kubernetes entry.
(Kubernetes setup): New node.
(Top, Configuration): Add it to the menu.
* lisp/net/tramp-container.el (tramp-kubernetes--context-namespace):
Adapt dpcstring.
(tramp-kubernetes-connection-local-default-profile)
(tramp-kubernetes-connection-local-default-variables)
(tramp-flatpak-connection-local-default-profile)
(tramp-flatpak-connection-local-default-variables): Rename.
* lisp/net/tramp.el (tramp-expand-args): Use `tramp-compat-take'.
* test/lisp/net/tramp-tests.el (tramp-test34-connection-local-variables)
(tramp-test34-explicit-shell-file-name): Don't let-bind
`connection-local-profile-alist' and `connection-local-criteria-alist'.
2023-06-28 16:53:01 +02:00
Michael Albinus
77c2f05d77
Extend Tramp kubernetes method
...
* doc/misc/tramp.texi (Inline methods): Adapt kubernetes method.
* etc/NEWS: Describe changes in Tramp kubernetes method.
* lisp/net/tramp-container.el (tramp-kubernetes-context)
(tramp-kubernetes-namespace): New defcustoms.
(tramp-kubernetes--completion-function): Extend for CONTAINER.POD
syntax.
(tramp-kubernetes--host-name-regexp): New defconst.
(tramp-kubernetes--container, tramp-kubernetes--pod)
(tramp-kubernetes--current-context): New defuns.
(tramp-kubernetes--current-context-data): Simplify.
(tramp-kubernetes--context-namespace): New defun.
(tramp-methods) <kubernetes>: Respect container, context and
namespace. (Bug#59797)
(tramp-container-connection-local-default-kubernetes-variables):
New defconst. Set respective connection-local variables.
* lisp/net/tramp-sh.el (tramp-config-check): New variable.
(tramp-open-connection-setup-interactive-shell): Use it.
* lisp/net/tramp.el (tramp-methods): Adapt docstring.
(tramp-extra-expand-args): New defvar.
(tramp-expand-args): Use it.
2023-06-23 21:26:14 +02:00
Michael Albinus
2e85ac2b27
Add new Tramp method "flatpak"
...
* doc/misc/tramp.texi (Inline methods): Add flatpak.
* etc/NEWS: Add new Tramp method "flatpak". Fix typos.
* lisp/net/tramp-container.el (tramp-flatpak-program): New defcustom.
(tramp-flatpak-method): New defconst.
(tramp-flatpak--completion-function): New defun. Set it for "flatpak".
(tramp-methods) <flatpak>: Add.
(tramp-container-connection-local-default-flatpak-variables):
New defconst. Set respective connection-local variables.
2023-04-23 13:37:39 +02:00
Michael Albinus
e2b37f901d
Fix host name completion for Tramp "podman" method
...
* lisp/net/tramp-container.el (tramp-container--completion-function):
Rename from `tramp-docker--completion-function'. Add argument
PROGRAM. Use it for "docker" and "podman" host name completion.
* lisp/net/tramp.el (tramp-set-completion-function): Check, that
cdr of FUNCTION-LIST entries is a string.
2023-01-29 10:33:43 +01:00
Michael Albinus
0be40fbe43
Add new Tramp method "toolbox"
...
* doc/misc/tramp.texi (Inline methods): Add toolbox.
* etc/NEWS: Add new Tramp method "toolbox".
* lisp/net/tramp-container.el (tramp-toolbox-program): New defcustom.
(tramp-toolbox-method): New defconst.
(tramp-toolbox--completion-function): New defun. Set it for "toolbox".
(tramp-methods) <toolbox>: Add.
(tramp-default-host-alist): Add rule for "toolbox".
2023-01-07 12:14:26 +01:00
Eli Zaretskii
cae528457c
; Add 2023 to copyright years.
2023-01-01 05:31:12 -05:00
Michael Albinus
61e96789dd
Activate direct asynchronous processes for Tramp container methods
...
* doc/misc/tramp.texi (Remote processes): Mention also
tramp-container.el.
* lisp/emacs-lisp/ert-x.el (ert-remote-temporary-file-directory):
Add `tramp-direct-async' to "mock" method.
* lisp/net/tramp-container.el
(tramp-methods) <docker, podman, kubernetes>: Add `tramp-direct-async'.
* lisp/net/tramp.el (tramp-methods): Adapt docstring.
(tramp-handle-make-process): Handle `tramp-direct-async'.
* test/lisp/net/tramp-tests.el (tramp-methods) <mock>:
Add `tramp-direct-async'.
2022-11-21 14:49:54 +01:00
Michael Albinus
0fbafe6511
; Tramp copyedit
2022-10-26 13:59:37 +02:00
Michael Albinus
fe816fc679
Handle context changes in Tramp kubernetes method
...
* doc/misc/tramp.texi (Inline methods): Remove note about cache reset.
(File name completion): Add tramp-completion-use-cache.
* etc/NEWS: Add 'tramp-completion-use-cache'.
* lisp/net/tramp-cache.el (tramp-completion-use-cache): New defcustom.
(tramp-parse-connection-properties): Use it.
* lisp/net/tramp-container.el (tramp-docker--completion-function)
(tramp-kubernetes--completion-function): Ensure the processes run
locally.
(tramp-kubernetes--current-context-data): New defun.
(tramp-methods) <kubernetes>: Add `tramp-config-check'.
* lisp/net/tramp-sh.el (tramp-open-connection-setup-interactive-shell):
Handle `tramp-login-args'.
* lisp/net/tramp.el (tramp-methods): Adapt docstring.
2022-10-25 16:34:42 +02:00
Filipp Gunbin
a259d0dda3
Add tramp-kubernetes integration
...
* doc/misc/tramp.texi (Inline methods): Add kubernetes.
(Customizing Methods): Remove kubernetes-tramp.
* etc/NEWS: Mention new Tramp method "kubernetes".
* lisp/net/tramp-compat.el (kubernetes-tramp): Warn if that package is
used.
* lisp/net/tramp-container.el (tramp-kubernetes-program): New
defcustom.
(tramp-kubernetes-method): New defconst.
(tramp-kubernetes--completion-function): New function.
2022-10-05 03:10:06 +03:00
Filipp Gunbin
e4e9cb265c
Rename lisp/net/tramp-docker.el to lisp/net/tramp-container.el
2022-10-05 02:16:36 +03:00