]> gitweb.factorcode.org Git - factor.git/blob - basis/tools/ps/linux/linux.factor
basis: removing unnecessary method stack effects.
[factor.git] / basis / tools / ps / linux / linux.factor
1 ! Copyright (C) 2012 Doug Coleman.
2 ! See http://factorcode.org/license.txt for BSD license.
3 USING: accessors arrays assocs continuations io.directories kernel
4 math.parser sequences splitting system tools.ps unix.linux.proc ;
5 IN: tools.ps.linux
6
7 ! If cmdline is empty, read the filename from /proc/pid/stat
8 : ps-cmdline ( path -- string )
9     dup parse-proc-pid-cmdline [
10         parse-proc-pid-stat filename>>
11         [ "()" member? ] trim
12         "[" "]" surround
13     ] [
14         nip "\0" split harvest " " join
15     ] if-empty ;
16
17 : safe-ps-cmdline ( path -- string/f )
18     [ ps-cmdline ] [ 2drop f ] recover ;
19
20 M: linux ps
21     "/proc" [
22         "." directory-files [ string>number ] filter
23         [ dup safe-ps-cmdline 2array ] map sift-values
24     ] with-directory ;