Function: tramp-kubernetes--completion-function

tramp-kubernetes--completion-function is an autoloaded and byte-compiled function defined in tramp-container.el.gz.

Signature

(tramp-kubernetes--completion-function METHOD)

Documentation

List Kubernetes pods available for connection.

This function is used by tramp-set-completion-function, please see its function help for a description of the format.

Source Code

;; Defined in /usr/src/emacs/lisp/net/tramp-container.el.gz
;;;###tramp-autoload
(defun tramp-kubernetes--completion-function (method)
  "List Kubernetes pods available for connection.

This function is used by `tramp-set-completion-function', please
see its function help for a description of the format."
  (tramp-skeleton-completion-function method
    (when-let* ((raw-list
		 (shell-command-to-string
		  (concat
		   program " "
		   (tramp-kubernetes--context-namespace vec)
                   " get pods --no-headers"
		   ;; We separate pods by "|".  Inside a pod, its name
		   ;; is separated from the containers by ":".
		   ;; Containers are separated by ",".
		   " -o jsonpath='{range .items[*]}{\"|\"}{.metadata.name}"
		   "{\":\"}{range .spec.containers[*]}{.name}{\",\"}"
		   "{end}{end}'")))
		(lines (split-string raw-list "|" 'omit)))
      (let (names)
	(dolist (line lines)
	  (setq line (split-string line ":" 'omit))
	  ;; Pod name.
	  (push (car line) names)
	  ;; Container names.
	  (dolist (elt (split-string (cadr line) "," 'omit))
	    (push (concat elt "." (car line)) names)))
	(mapcar (lambda (name) (list nil name)) (delq nil names))))))