Print the exit status of jobs correctly
This commit is contained in:
parent
e83f3e7d81
commit
f26e89b895
|
@ -106,6 +106,51 @@
|
|||
(register-plugin!
|
||||
(make-view-plugin make-joblist-viewer list-of-jobs?))
|
||||
|
||||
(define format-signal-no
|
||||
(let ((signal/name-alist
|
||||
`((,signal/alrm . signal/alrm)
|
||||
(,signal/int . signal/int)
|
||||
(,signal/chld . signal/chld)
|
||||
(,signal/cont . signal/cont)
|
||||
(,signal/hup . signal/hup)
|
||||
(,signal/quit . signal/quit)
|
||||
(,signal/term . signal/term)
|
||||
(,signal/tstp . signal/tstp)
|
||||
(,signal/usr1 . signal/usr1)
|
||||
(,signal/usr2 . signal/usr2)
|
||||
(,signal/stop . signal/stop)
|
||||
(,signal/kill . signal/kill)
|
||||
(,signal/abrt . signal/abrt)
|
||||
(,signal/fpe . signal/fpe)
|
||||
(,signal/ill . signal/ill)
|
||||
(,signal/pipe . signal/pipe)
|
||||
(,signal/segv . signal/segv)
|
||||
(,signal/ttin . signal/ttin)
|
||||
(,signal/ttou . signal/ttou))))
|
||||
(lambda (no)
|
||||
(cond
|
||||
((assoc no signal/name-alist)
|
||||
=> (lambda (p)
|
||||
(symbol->string (cdr p))))
|
||||
(else "some non-POSIX signal")))))
|
||||
|
||||
(define (format-job-status job)
|
||||
(let ((status (job-status job)))
|
||||
(debug-message "format-job-status " status)
|
||||
(cond
|
||||
((status:exit-val status)
|
||||
=> (lambda (code)
|
||||
(string-append "exited normally with code "
|
||||
(number->string code))))
|
||||
((status:stop-sig status)
|
||||
=> (lambda (signal-no)
|
||||
(string-append "suspended by signal "
|
||||
(format-signal-no signal-no))))
|
||||
((status:term-sig status)
|
||||
=> (lambda (signal-no)
|
||||
(string-append "terminated by signal "
|
||||
(format-signal-no signal-no)))))))
|
||||
|
||||
;;; viewer for a single job viewer
|
||||
|
||||
(define (make-job-viewer job buffer)
|
||||
|
@ -131,12 +176,11 @@
|
|||
(cddr args))))))
|
||||
`((,(job-name->string (job-name job))
|
||||
"name:" ,(job-name->string (job-name job)))
|
||||
(,(if (job-end-time job)
|
||||
(number->string (job-status job)) #f)
|
||||
"status:"
|
||||
,(if (job-end-time job)
|
||||
(number->string (job-status job))
|
||||
"-"))
|
||||
|
||||
(,(if (job-end-time job) (job-status job) #f)
|
||||
"status:"
|
||||
,(format-job-status job))
|
||||
|
||||
(,(job-start-time job)
|
||||
"start:"
|
||||
,(short-date (job-start-time job)))
|
||||
|
@ -175,10 +219,7 @@
|
|||
((paint)
|
||||
(lambda (self win buffer have-focus?)
|
||||
(mvwaddstr
|
||||
win 0 0
|
||||
(cut-to-size
|
||||
num-cols (string-append "Viewing job: "
|
||||
(job-name->string (job-name job)))))
|
||||
win 0 0 (cut-to-size num-cols "Viewing job"))
|
||||
(paint-selection-list-at
|
||||
select-list 0 1 win buffer have-focus?)))
|
||||
|
||||
|
|
Loading…
Reference in New Issue