1
0
mirror of https://github.com/kellyjonbrazil/jc.git synced 2025-06-17 00:07:37 +02:00
Files
jc/docs/parsers/stat.md
Kelly Brazil 1d0ad2f045 doc fixes
2021-01-04 18:01:16 -08:00

4.1 KiB

jc.parsers.stat

jc - JSON CLI output utility stat command output parser

Usage (cli):

$ stat * | jc --stat

or

$ jc stat *

Usage (module):

import jc.parsers.stat
result = jc.parsers.stat.parse(stat_command_output)

Compatibility:

'linux', 'darwin', 'freebsd'

Examples:

$ stat /bin/* | jc --stat -p
[
  {
    "file": "/bin/bash",
    "size": 1113504,
    "blocks": 2176,
    "io_blocks": 4096,
    "type": "regular file",
    "device": "802h/2050d",
    "inode": 131099,
    "links": 1,
    "access": "0755",
    "flags": "-rwxr-xr-x",
    "uid": 0,
    "user": "root",
    "gid": 0,
    "group": "root",
    "access_time": "2019-11-14 08:18:03.509681766 +0000",
    "modify_time": "2019-06-06 22:28:15.000000000 +0000",
    "change_time": "2019-08-12 17:21:29.521945390 +0000",
    "birth_time": null
  },
  {
    "file": "/bin/btrfs",
    "size": 716464,
    "blocks": 1400,
    "io_blocks": 4096,
    "type": "regular file",
    "device": "802h/2050d",
    "inode": 131100,
    "links": 1,
    "access": "0755",
    "flags": "-rwxr-xr-x",
    "uid": 0,
    "user": "root",
    "gid": 0,
    "group": "root",
    "access_time": "2019-11-14 08:18:28.990834276 +0000",
    "modify_time": "2018-03-12 23:04:27.000000000 +0000",
    "change_time": "2019-08-12 17:21:29.545944399 +0000",
    "birth_time": null
  },
  ...
]

$ stat /bin/* | jc --stat -p -r
[
  {
    "file": "/bin/bash",
    "size": "1113504",
    "blocks": "2176",
    "io_blocks": "4096",
    "type": "regular file",
    "device": "802h/2050d",
    "inode": "131099",
    "links": "1",
    "access": "0755",
    "flags": "-rwxr-xr-x",
    "uid": "0",
    "user": "root",
    "gid": "0",
    "group": "root",
    "access_time": "2019-11-14 08:18:03.509681766 +0000",
    "modify_time": "2019-06-06 22:28:15.000000000 +0000",
    "change_time": "2019-08-12 17:21:29.521945390 +0000",
    "birth_time": null
  },
  {
    "file": "/bin/btrfs",
    "size": "716464",
    "blocks": "1400",
    "io_blocks": "4096",
    "type": "regular file",
    "device": "802h/2050d",
    "inode": "131100",
    "links": "1",
    "access": "0755",
    "flags": "-rwxr-xr-x",
    "uid": "0",
    "user": "root",
    "gid": "0",
    "group": "root",
    "access_time": "2019-11-14 08:18:28.990834276 +0000",
    "modify_time": "2018-03-12 23:04:27.000000000 +0000",
    "change_time": "2019-08-12 17:21:29.545944399 +0000",
    "birth_time": null
  },
  ..
]

info

info()

process

process(proc_data)

Final processing to conform to the schema.

Parameters:

proc_data:   (List of Dictionaries) raw structured data to process

Returns:

List of Dictionaries. Structured data with the following schema:

[
  {
    "file":         string,
    "link_to"       string,
    "size":         integer,
    "blocks":       integer,
    "io_blocks":    integer,
    "type":         string,
    "device":       string,
    "inode":        integer,
    "links":        integer,
    "access":       string,
    "flags":        string,
    "uid":          integer,
    "user":         string,
    "gid":          integer,
    "group":        string,
    "access_time":  string,    # - = null
    "modify_time":  string,    # - = null
    "change_time":  string,    # - = null
    "birth_time":   string,    # - = null
    "unix_device":  integer,
    "rdev":         integer,
    "block_size":   integer,
    "unix_flags":   string
  }
]

parse

parse(data, raw=False, quiet=False)

Main text parsing function

Parameters:

data:        (string)  text data to parse
raw:         (boolean) output preprocessed JSON if True
quiet:       (boolean) suppress warning messages if True

Returns:

List of Dictionaries. Raw or processed structured data.