factor/basis/tools/ps/ps.factor

26 lines
710 B
Factor
Raw Normal View History

! Copyright (C) 2012 Doug Coleman.
! See http://factorcode.org/license.txt for BSD license.
USING: accessors assocs io.directories io.pathnames kernel
math.parser prettyprint sequences splitting unix.linux.proc ;
IN: tools.ps
! If cmdline is empty, read the filename from /proc/pid/stat
: ps-cmdline ( path -- path string )
dup parse-proc-pid-cmdline [
dup parse-proc-pid-stat filename>>
[ "()" member? ] trim
"[" "]" surround
] [
"\0" split " " join
] if-empty ;
: ps ( -- assoc )
"/proc" [
"." directory-files
[ file-name string>number ] filter
[ ps-cmdline ] { } map>assoc
] with-directory ;
: ps. ( -- )
ps simple-table. ;