process-attributes-ps-args / process-attributes-ps-format for Darwin

* lisp/net/tramp-integration.el
(tramp-darwin-process-attributes-ps-args)
(tramp-darwin-process-attributes-ps-format)
(tramp-connection-local-darwin-ps-variables): New defconsts.  Add
them to connection-local variables.  Preset default "ps" profile
for Darwin.
This commit is contained in:
Filipp Gunbin 2022-04-12 09:12:29 +02:00 committed by Michael Albinus
parent 2e9111813b
commit e258e58276

View file

@ -430,6 +430,100 @@ See `tramp-process-attributes-ps-format'.")
'tramp-connection-local-busybox-ps-profile
tramp-connection-local-busybox-ps-variables)
;; Darwin (macOS)
(defconst tramp-darwin-process-attributes-ps-args
`("-acxww"
"-o"
,(mapconcat
#'identity
'("pid"
"uid"
"user"
"gid"
"comm=abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ")
",")
"-o" "state=abcde"
"-o"
,(mapconcat
#'identity
'("ppid"
"pgid"
"sess"
"tty"
"tpgid"
"minflt"
"majflt"
"time"
"pri"
"nice"
"vsz"
"rss"
"etime"
"pcpu"
"pmem"
"args")
","))
"List of arguments for \"ps\".
See `tramp-process-attributes-ps-args'.")
(defconst tramp-darwin-process-attributes-ps-format
'((pid . number)
(euid . number)
(user . string)
(egid . number)
(comm . 52)
(state . 5)
(ppid . number)
(pgrp . number)
(sess . number)
(ttname . string)
(tpgid . number)
(minflt . number)
(majflt . number)
(time . tramp-ps-time)
(pri . number)
(nice . number)
(vsize . number)
(rss . number)
(etime . tramp-ps-time)
(pcpu . number)
(pmem . number)
(args . nil))
"Alist of formats for \"ps\".
See `tramp-process-attributes-ps-format'.")
(defconst tramp-connection-local-darwin-ps-variables
`((tramp-process-attributes-ps-args
. ,tramp-darwin-process-attributes-ps-args)
(tramp-process-attributes-ps-format
. ,tramp-darwin-process-attributes-ps-format))
"Default connection-local ps variables for remote Darwin
connections.")
(connection-local-set-profile-variables
'tramp-connection-local-darwin-ps-profile
tramp-connection-local-darwin-ps-variables)
;; Preset default "ps" profile for the case of local sudo, based on
;; system type.
(let ((local-sudo-profile
(cond ((eq system-type 'darwin)
'tramp-connection-local-darwin-ps-profile)
;; ...add other system types here
)))
(when local-sudo-profile
(connection-local-set-profiles
`(:application tramp :protocol "sudo" :user "root" :machine ,(system-name))
local-sudo-profile)
(connection-local-set-profiles
'(:application tramp :protocol "sudo" :user "root" :machine "localhost")
local-sudo-profile)))
(add-hook 'tramp-unload-hook
(lambda () (unload-feature 'tramp-integration 'force)))