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)
This commit is contained in:
Michael Albinus
2024-05-30 10:44:30 +02:00
parent 9ca7632c5c
commit c166abe897

View File

@@ -117,6 +117,21 @@
;;; Code:
(require 'tramp)
(defvar tramp-actions-before-shell)
(defvar tramp-actions-copy-out-of-band)
;; This does not match all container-based methods. Both in general,
;; the command returns with an error; `tramp-process-alive-regexp'
;; does the check then.
(defcustom tramp-container-no-container-regexp
(rx bol "Error:" (1+ nonl) "no such container" (0+ nonl)
;; Distrobox adds an interactive prompt.
(* "\n" (1+ nonl)))
"Regexp matching missing container message.
The regexp should match at end of buffer."
:group 'tramp
:version "30.1"
:type 'regexp)
;;;###tramp-autoload
(defcustom tramp-docker-program "docker"
@@ -620,6 +635,14 @@ see its function help for a description of the format."
`(:application tramp :protocol ,tramp-kubernetes-method)
'tramp-kubernetes-connection-local-default-profile))
(add-to-list
'tramp-actions-before-shell
'(tramp-container-no-container-regexp tramp-action-permission-denied))
(add-to-list
'tramp-actions-copy-out-of-band
'(tramp-container-no-container-regexp tramp-action-permission-denied))
;;;###tramp-autoload
(defun tramp-enable-toolbox-method ()
"Enable connection to Toolbox containers."