commander-s/scheme/process.scm

36 lines
832 B
Scheme

(define (print-processes processes)
(map (lambda (pi)
(apply format
(append
(list #f
"~A ~A ~A ~A '~A ~A'~%")
(map (lambda (s) (s pi))
(list process-info-pid
process-info-ppid
process-info-real-uid
process-info-%cpu
process-info-executable
process-info-command-line)))))
processes))
(define (pps-receiver message)
(cond
((next-command-message? message)
(pps))
((print-message? message)
(let ((processes (message-result-object message)))
(make-print-object 1 1 (print-processes processes)
'() '())))
((key-pressed-message? message)
(pps))
((restore-message? message)
(values))
((selection-message? message)
"'()")))
(set! receivers (cons (make-receiver "ps" pps-receiver)
receivers))