diff --git a/docgen.sh b/docgen.sh index 8980cd6f..a4528626 100755 --- a/docgen.sh +++ b/docgen.sh @@ -9,6 +9,7 @@ pydocmd simple jc.parsers.df+ > ../docs/parsers/df.md pydocmd simple jc.parsers.dig+ > ../docs/parsers/dig.md pydocmd simple jc.parsers.env+ > ../docs/parsers/env.md pydocmd simple jc.parsers.free+ > ../docs/parsers/free.md +pydocmd simple jc.parsers.fstab+ > ../docs/parsers/fstab.md pydocmd simple jc.parsers.history+ > ../docs/parsers/history.md pydocmd simple jc.parsers.hosts+ > ../docs/parsers/hosts.md pydocmd simple jc.parsers.ifconfig+ > ../docs/parsers/ifconfig.md diff --git a/docs/parsers/fstab.md b/docs/parsers/fstab.md new file mode 100644 index 00000000..1a874dcd --- /dev/null +++ b/docs/parsers/fstab.md @@ -0,0 +1,107 @@ +# jc.parsers.fstab +jc - JSON CLI output utility fstab Parser + +Usage: + specify --fstab as the first argument if the piped input is coming from a fstab file + +Examples: + + $ cat /etc/fstab | jc --fstab -p + [ + { + "fs_spec": "/dev/mapper/centos-root", + "fs_file": "/", + "fs_vfstype": "xfs", + "fs_mntops": "defaults", + "fs_freq": 0, + "fs_passno": 0 + }, + { + "fs_spec": "UUID=05d927bb-5875-49e3-ada1-7f46cb31c932", + "fs_file": "/boot", + "fs_vfstype": "xfs", + "fs_mntops": "defaults", + "fs_freq": 0, + "fs_passno": 0 + }, + { + "fs_spec": "/dev/mapper/centos-swap", + "fs_file": "swap", + "fs_vfstype": "swap", + "fs_mntops": "defaults", + "fs_freq": 0, + "fs_passno": 0 + } + ] + + $ cat /etc/fstab | jc --fstab -p -r + [ + { + "fs_spec": "/dev/mapper/centos-root", + "fs_file": "/", + "fs_vfstype": "xfs", + "fs_mntops": "defaults", + "fs_freq": "0", + "fs_passno": "0" + }, + { + "fs_spec": "UUID=05d927bb-5875-49e3-ada1-7f46cb31c932", + "fs_file": "/boot", + "fs_vfstype": "xfs", + "fs_mntops": "defaults", + "fs_freq": "0", + "fs_passno": "0" + }, + { + "fs_spec": "/dev/mapper/centos-swap", + "fs_file": "swap", + "fs_vfstype": "swap", + "fs_mntops": "defaults", + "fs_freq": "0", + "fs_passno": "0" + } + ] + +## process +```python +process(proc_data) +``` + +Final processing to conform to the schema. + +Parameters: + + proc_data: (dictionary) raw structured data to process + +Returns: + + dictionary structured data with the following schema: + + [ + { + "fs_spec": string, + "fs_file": string, + "fs_vfstype": string, + "fs_mntops": string, + "fs_freq": integer, + "fs_passno": integer + } + ] + +## parse +```python +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: + + dictionary raw or processed structured data + diff --git a/jc/parsers/fstab.py b/jc/parsers/fstab.py index 9f32f0e7..904c42a3 100644 --- a/jc/parsers/fstab.py +++ b/jc/parsers/fstab.py @@ -32,6 +32,34 @@ Examples: "fs_passno": 0 } ] + + $ cat /etc/fstab | jc --fstab -p -r + [ + { + "fs_spec": "/dev/mapper/centos-root", + "fs_file": "/", + "fs_vfstype": "xfs", + "fs_mntops": "defaults", + "fs_freq": "0", + "fs_passno": "0" + }, + { + "fs_spec": "UUID=05d927bb-5875-49e3-ada1-7f46cb31c932", + "fs_file": "/boot", + "fs_vfstype": "xfs", + "fs_mntops": "defaults", + "fs_freq": "0", + "fs_passno": "0" + }, + { + "fs_spec": "/dev/mapper/centos-swap", + "fs_file": "swap", + "fs_vfstype": "swap", + "fs_mntops": "defaults", + "fs_freq": "0", + "fs_passno": "0" + } + ] """ import jc.utils