From c46fe9816c8b6542c4c9e4870a93068b7dafe221 Mon Sep 17 00:00:00 2001 From: Kelly Brazil Date: Sun, 5 Feb 2023 09:49:32 -0800 Subject: [PATCH] doc update --- README.md | 1 + completions/jc_bash_completion.sh | 2 +- completions/jc_zsh_completion.sh | 3 +- docs/parsers/xrandr.md | 2 +- docs/parsers/zpool_status.md | 163 ++++++++++++++++++++++++++++++ man/jc.1 | 22 +++- templates/manpage_template | 15 ++- 7 files changed, 202 insertions(+), 6 deletions(-) create mode 100644 docs/parsers/zpool_status.md diff --git a/README.md b/README.md index 9a03f9b9..571a2c85 100644 --- a/README.md +++ b/README.md @@ -294,6 +294,7 @@ option. | `--yaml` | YAML file parser | [details](https://kellyjonbrazil.github.io/jc/docs/parsers/yaml) | | `--zipinfo` | `zipinfo` command parser | [details](https://kellyjonbrazil.github.io/jc/docs/parsers/zipinfo) | | `--zpool-iostat` | `zpool iostat` command parser | [details](https://kellyjonbrazil.github.io/jc/docs/parsers/zpool_iostat) | +| `--zpool-status` | `zpool status` command parser | [details](https://kellyjonbrazil.github.io/jc/docs/parsers/zpool_status) | ### Options diff --git a/completions/jc_bash_completion.sh b/completions/jc_bash_completion.sh index e1e2e8c8..8383a66b 100644 --- a/completions/jc_bash_completion.sh +++ b/completions/jc_bash_completion.sh @@ -4,7 +4,7 @@ _jc() jc_about_options jc_about_mod_options jc_help_options jc_special_options jc_commands=(acpi airport arp blkid cbt chage cksum crontab date df dig dmidecode dpkg du env file findmnt finger free git gpg hciconfig id ifconfig iostat iptables iw iwconfig jobs last lastb ls lsblk lsmod lsof lspci lsusb md5 md5sum mdadm mount mpstat netstat nmcli ntpq os-prober pidstat ping ping6 pip pip3 postconf printenv ps route rpm rsync sfdisk sha1sum sha224sum sha256sum sha384sum sha512sum shasum ss ssh sshd stat sum sysctl systemctl systeminfo timedatectl top tracepath tracepath6 traceroute traceroute6 udevadm ufw uname update-alternatives upower uptime vdir vmstat w wc who xrandr zipinfo zpool) - jc_parsers=(--acpi --airport --airport-s --arp --asciitable --asciitable-m --blkid --cbt --cef --cef-s --chage --cksum --clf --clf-s --crontab --crontab-u --csv --csv-s --date --datetime-iso --df --dig --dir --dmidecode --dpkg-l --du --email-address --env --file --findmnt --finger --free --fstab --git-log --git-log-s --git-ls-remote --gpg --group --gshadow --hash --hashsum --hciconfig --history --hosts --id --ifconfig --ini --ini-dup --iostat --iostat-s --ip-address --iptables --iw-scan --iwconfig --jar-manifest --jobs --jwt --kv --last --ls --ls-s --lsblk --lsmod --lsof --lspci --lsusb --m3u --mdadm --mount --mpstat --mpstat-s --netstat --nmcli --ntpq --openvpn --os-prober --passwd --pci-ids --pgpass --pidstat --pidstat-s --ping --ping-s --pip-list --pip-show --plist --postconf --proc --proc-buddyinfo --proc-consoles --proc-cpuinfo --proc-crypto --proc-devices --proc-diskstats --proc-filesystems --proc-interrupts --proc-iomem --proc-ioports --proc-loadavg --proc-locks --proc-meminfo --proc-modules --proc-mtrr --proc-pagetypeinfo --proc-partitions --proc-slabinfo --proc-softirqs --proc-stat --proc-swaps --proc-uptime --proc-version --proc-vmallocinfo --proc-vmstat --proc-zoneinfo --proc-driver-rtc --proc-net-arp --proc-net-dev --proc-net-dev-mcast --proc-net-if-inet6 --proc-net-igmp --proc-net-igmp6 --proc-net-ipv6-route --proc-net-netlink --proc-net-netstat --proc-net-packet --proc-net-protocols --proc-net-route --proc-net-unix --proc-pid-fdinfo --proc-pid-io --proc-pid-maps --proc-pid-mountinfo --proc-pid-numa-maps --proc-pid-smaps --proc-pid-stat --proc-pid-statm --proc-pid-status --ps --route --rpm-qi --rsync --rsync-s --semver --sfdisk --shadow --ss --ssh-conf --sshd-conf --stat --stat-s --sysctl --syslog --syslog-s --syslog-bsd --syslog-bsd-s --systemctl --systemctl-lj --systemctl-ls --systemctl-luf --systeminfo --time --timedatectl --timestamp --toml --top --top-s --tracepath --traceroute --udevadm --ufw --ufw-appinfo --uname --update-alt-gs --update-alt-q --upower --uptime --url --ver --vmstat --vmstat-s --w --wc --who --x509-cert --xml --xrandr --yaml --zipinfo --zpool-iostat) + jc_parsers=(--acpi --airport --airport-s --arp --asciitable --asciitable-m --blkid --cbt --cef --cef-s --chage --cksum --clf --clf-s --crontab --crontab-u --csv --csv-s --date --datetime-iso --df --dig --dir --dmidecode --dpkg-l --du --email-address --env --file --findmnt --finger --free --fstab --git-log --git-log-s --git-ls-remote --gpg --group --gshadow --hash --hashsum --hciconfig --history --hosts --id --ifconfig --ini --ini-dup --iostat --iostat-s --ip-address --iptables --iw-scan --iwconfig --jar-manifest --jobs --jwt --kv --last --ls --ls-s --lsblk --lsmod --lsof --lspci --lsusb --m3u --mdadm --mount --mpstat --mpstat-s --netstat --nmcli --ntpq --openvpn --os-prober --passwd --pci-ids --pgpass --pidstat --pidstat-s --ping --ping-s --pip-list --pip-show --plist --postconf --proc --proc-buddyinfo --proc-consoles --proc-cpuinfo --proc-crypto --proc-devices --proc-diskstats --proc-filesystems --proc-interrupts --proc-iomem --proc-ioports --proc-loadavg --proc-locks --proc-meminfo --proc-modules --proc-mtrr --proc-pagetypeinfo --proc-partitions --proc-slabinfo --proc-softirqs --proc-stat --proc-swaps --proc-uptime --proc-version --proc-vmallocinfo --proc-vmstat --proc-zoneinfo --proc-driver-rtc --proc-net-arp --proc-net-dev --proc-net-dev-mcast --proc-net-if-inet6 --proc-net-igmp --proc-net-igmp6 --proc-net-ipv6-route --proc-net-netlink --proc-net-netstat --proc-net-packet --proc-net-protocols --proc-net-route --proc-net-unix --proc-pid-fdinfo --proc-pid-io --proc-pid-maps --proc-pid-mountinfo --proc-pid-numa-maps --proc-pid-smaps --proc-pid-stat --proc-pid-statm --proc-pid-status --ps --route --rpm-qi --rsync --rsync-s --semver --sfdisk --shadow --ss --ssh-conf --sshd-conf --stat --stat-s --sysctl --syslog --syslog-s --syslog-bsd --syslog-bsd-s --systemctl --systemctl-lj --systemctl-ls --systemctl-luf --systeminfo --time --timedatectl --timestamp --toml --top --top-s --tracepath --traceroute --udevadm --ufw --ufw-appinfo --uname --update-alt-gs --update-alt-q --upower --uptime --url --ver --vmstat --vmstat-s --w --wc --who --x509-cert --xml --xrandr --yaml --zipinfo --zpool-iostat --zpool-status) jc_options=(--force-color -C --debug -d --monochrome -m --meta-out -M --pretty -p --quiet -q --raw -r --unbuffer -u --yaml-out -y) jc_about_options=(--about -a) jc_about_mod_options=(--pretty -p --yaml-out -y --monochrome -m --force-color -C) diff --git a/completions/jc_zsh_completion.sh b/completions/jc_zsh_completion.sh index 4521acf0..caf0b730 100644 --- a/completions/jc_zsh_completion.sh +++ b/completions/jc_zsh_completion.sh @@ -104,7 +104,7 @@ _jc() { 'zipinfo:run "zipinfo" command with magic syntax.' 'zpool:run "zpool" command with magic syntax.' ) - jc_parsers=(--acpi --airport --airport-s --arp --asciitable --asciitable-m --blkid --cbt --cef --cef-s --chage --cksum --clf --clf-s --crontab --crontab-u --csv --csv-s --date --datetime-iso --df --dig --dir --dmidecode --dpkg-l --du --email-address --env --file --findmnt --finger --free --fstab --git-log --git-log-s --git-ls-remote --gpg --group --gshadow --hash --hashsum --hciconfig --history --hosts --id --ifconfig --ini --ini-dup --iostat --iostat-s --ip-address --iptables --iw-scan --iwconfig --jar-manifest --jobs --jwt --kv --last --ls --ls-s --lsblk --lsmod --lsof --lspci --lsusb --m3u --mdadm --mount --mpstat --mpstat-s --netstat --nmcli --ntpq --openvpn --os-prober --passwd --pci-ids --pgpass --pidstat --pidstat-s --ping --ping-s --pip-list --pip-show --plist --postconf --proc --proc-buddyinfo --proc-consoles --proc-cpuinfo --proc-crypto --proc-devices --proc-diskstats --proc-filesystems --proc-interrupts --proc-iomem --proc-ioports --proc-loadavg --proc-locks --proc-meminfo --proc-modules --proc-mtrr --proc-pagetypeinfo --proc-partitions --proc-slabinfo --proc-softirqs --proc-stat --proc-swaps --proc-uptime --proc-version --proc-vmallocinfo --proc-vmstat --proc-zoneinfo --proc-driver-rtc --proc-net-arp --proc-net-dev --proc-net-dev-mcast --proc-net-if-inet6 --proc-net-igmp --proc-net-igmp6 --proc-net-ipv6-route --proc-net-netlink --proc-net-netstat --proc-net-packet --proc-net-protocols --proc-net-route --proc-net-unix --proc-pid-fdinfo --proc-pid-io --proc-pid-maps --proc-pid-mountinfo --proc-pid-numa-maps --proc-pid-smaps --proc-pid-stat --proc-pid-statm --proc-pid-status --ps --route --rpm-qi --rsync --rsync-s --semver --sfdisk --shadow --ss --ssh-conf --sshd-conf --stat --stat-s --sysctl --syslog --syslog-s --syslog-bsd --syslog-bsd-s --systemctl --systemctl-lj --systemctl-ls --systemctl-luf --systeminfo --time --timedatectl --timestamp --toml --top --top-s --tracepath --traceroute --udevadm --ufw --ufw-appinfo --uname --update-alt-gs --update-alt-q --upower --uptime --url --ver --vmstat --vmstat-s --w --wc --who --x509-cert --xml --xrandr --yaml --zipinfo --zpool-iostat) + jc_parsers=(--acpi --airport --airport-s --arp --asciitable --asciitable-m --blkid --cbt --cef --cef-s --chage --cksum --clf --clf-s --crontab --crontab-u --csv --csv-s --date --datetime-iso --df --dig --dir --dmidecode --dpkg-l --du --email-address --env --file --findmnt --finger --free --fstab --git-log --git-log-s --git-ls-remote --gpg --group --gshadow --hash --hashsum --hciconfig --history --hosts --id --ifconfig --ini --ini-dup --iostat --iostat-s --ip-address --iptables --iw-scan --iwconfig --jar-manifest --jobs --jwt --kv --last --ls --ls-s --lsblk --lsmod --lsof --lspci --lsusb --m3u --mdadm --mount --mpstat --mpstat-s --netstat --nmcli --ntpq --openvpn --os-prober --passwd --pci-ids --pgpass --pidstat --pidstat-s --ping --ping-s --pip-list --pip-show --plist --postconf --proc --proc-buddyinfo --proc-consoles --proc-cpuinfo --proc-crypto --proc-devices --proc-diskstats --proc-filesystems --proc-interrupts --proc-iomem --proc-ioports --proc-loadavg --proc-locks --proc-meminfo --proc-modules --proc-mtrr --proc-pagetypeinfo --proc-partitions --proc-slabinfo --proc-softirqs --proc-stat --proc-swaps --proc-uptime --proc-version --proc-vmallocinfo --proc-vmstat --proc-zoneinfo --proc-driver-rtc --proc-net-arp --proc-net-dev --proc-net-dev-mcast --proc-net-if-inet6 --proc-net-igmp --proc-net-igmp6 --proc-net-ipv6-route --proc-net-netlink --proc-net-netstat --proc-net-packet --proc-net-protocols --proc-net-route --proc-net-unix --proc-pid-fdinfo --proc-pid-io --proc-pid-maps --proc-pid-mountinfo --proc-pid-numa-maps --proc-pid-smaps --proc-pid-stat --proc-pid-statm --proc-pid-status --ps --route --rpm-qi --rsync --rsync-s --semver --sfdisk --shadow --ss --ssh-conf --sshd-conf --stat --stat-s --sysctl --syslog --syslog-s --syslog-bsd --syslog-bsd-s --systemctl --systemctl-lj --systemctl-ls --systemctl-luf --systeminfo --time --timedatectl --timestamp --toml --top --top-s --tracepath --traceroute --udevadm --ufw --ufw-appinfo --uname --update-alt-gs --update-alt-q --upower --uptime --url --ver --vmstat --vmstat-s --w --wc --who --x509-cert --xml --xrandr --yaml --zipinfo --zpool-iostat --zpool-status) jc_parsers_describe=( '--acpi:`acpi` command parser' '--airport:`airport -I` command parser' @@ -295,6 +295,7 @@ _jc() { '--yaml:YAML file parser' '--zipinfo:`zipinfo` command parser' '--zpool-iostat:`zpool iostat` command parser' + '--zpool-status:`zpool status` command parser' ) jc_options=(--force-color -C --debug -d --monochrome -m --meta-out -M --pretty -p --quiet -q --raw -r --unbuffer -u --yaml-out -y) jc_options_describe=( diff --git a/docs/parsers/xrandr.md b/docs/parsers/xrandr.md index 924b5bf5..6359fedc 100644 --- a/docs/parsers/xrandr.md +++ b/docs/parsers/xrandr.md @@ -162,4 +162,4 @@ Returns: ### Parser Information Compatibility: linux, darwin, cygwin, aix, freebsd -Version 1.1 by Kevin Lyter (lyter_git at sent.com) +Version 1.2 by Kevin Lyter (lyter_git at sent.com) diff --git a/docs/parsers/zpool_status.md b/docs/parsers/zpool_status.md new file mode 100644 index 00000000..85494c7c --- /dev/null +++ b/docs/parsers/zpool_status.md @@ -0,0 +1,163 @@ +[Home](https://kellyjonbrazil.github.io/jc/) + + +# jc.parsers.zpool\_status + +jc - JSON Convert `zpool status` command output parser + +Works with or without the `-v` option. + +Usage (cli): + + $ zpool status | jc --zpool_status + +or + + $ jc zpool status + +Usage (module): + + import jc + result = jc.parse('zpool_status', zpool_status_command_output) + +Schema: + + [ + { + "pool": string, + "state": string, + "status": string, + "action": string, + "see": string, + "scan": string, + "scrub": string, + "config": [ + { + "name": string, + "state": string, + "read": integer, + "write": integer, + "checksum": integer, + "errors": string, + } + ], + "errors": string + } + ] + +Examples: + + $ zpool status -v | jc --zpool status -p + [ + { + "pool": "tank", + "state": "DEGRADED", + "status": "One or more devices could not be opened. Sufficient replicas exist for\nthe pool to continue functioning in a degraded state.", + "action": "Attach the missing device and online it using 'zpool online'.", + "see": "http://www.sun.com/msg/ZFS-8000-2Q", + "scrub": "none requested", + "config": [ + { + "name": "tank", + "state": "DEGRADED", + "read": 0, + "write": 0, + "checksum": 0 + }, + { + "name": "mirror-0", + "state": "DEGRADED", + "read": 0, + "write": 0, + "checksum": 0 + }, + { + "name": "c1t0d0", + "state": "ONLINE", + "read": 0, + "write": 0, + "checksum": 0 + }, + { + "name": "c1t1d0", + "state": "UNAVAIL", + "read": 0, + "write": 0, + "checksum": 0, + "errors": "cannot open" + } + ], + "errors": "No known data errors" + } + ] + + $ zpool status -v | jc --zpool status -p -r + [ + { + "pool": "tank", + "state": "DEGRADED", + "status": "One or more devices could not be opened. Sufficient replicas exist for\nthe pool to continue functioning in a degraded state.", + "action": "Attach the missing device and online it using 'zpool online'.", + "see": "http://www.sun.com/msg/ZFS-8000-2Q", + "scrub": "none requested", + "config": [ + { + "name": "tank", + "state": "DEGRADED", + "read": "0", + "write": "0", + "checksum": "0" + }, + { + "name": "mirror-0", + "state": "DEGRADED", + "read": "0", + "write": "0", + "checksum": "0" + }, + { + "name": "c1t0d0", + "state": "ONLINE", + "read": "0", + "write": "0", + "checksum": "0" + }, + { + "name": "c1t1d0", + "state": "UNAVAIL", + "read": "0", + "write": "0", + "checksum": "0", + "errors": "cannot open" + } + ], + "errors": "No known data errors" + } + ] + + + +### parse + +```python +def parse(data: str, + raw: bool = False, + quiet: bool = False) -> List[JSONDictType] +``` + +Main text parsing function + +Parameters: + + data: (string) text data to parse + raw: (boolean) unprocessed output if True + quiet: (boolean) suppress warning messages if True + +Returns: + + List of Dictionaries. Raw or processed structured data. + +### Parser Information +Compatibility: linux, darwin, freebsd + +Version 1.0 by Kelly Brazil (kellyjonbrazil@gmail.com) diff --git a/man/jc.1 b/man/jc.1 index a4ea3316..85f33dcd 100644 --- a/man/jc.1 +++ b/man/jc.1 @@ -1,4 +1,4 @@ -.TH jc 1 2023-01-31 1.23.0 "JSON Convert" +.TH jc 1 2023-02-05 1.23.0 "JSON Convert" .SH NAME \fBjc\fP \- JSON Convert JSONifies the output of many CLI tools, file-types, and strings @@ -987,6 +987,11 @@ YAML file parser \fB--zpool-iostat\fP `zpool iostat` command parser +.TP +.B +\fB--zpool-status\fP +`zpool status` command parser + .RE .PP @@ -1011,7 +1016,7 @@ Debug - show traceback (use \fB-dd\fP for verbose traceback) .B \fB-h\fP, \fB--help\fP Help (\fB--help --parser_name\fP for parser documentation). Use twice to show -\hidden parsers (e.g. \fB-hh\fP) +hidden parsers (e.g. \fB-hh\fP) .TP .B \fB-m\fP, \fB--monochrome\fP @@ -1380,10 +1385,23 @@ $ jc \fB--pretty\fP dig www.google.com $ jc \fB--pretty\fP /proc/meminfo .RE +Line Slicing: +.RS +$ cat file.csv | jc \fB:101\fP \fB--csv\fP # parse first 100 lines +.RE + For parser documentation: .RS $ jc \fB--help\fP \fB--dig\fP .RE + +More Help: +.RS +$ jc \fB-hh\fP # show hidden parsers + +$ jc \fB-hhh\fP # list parsers by category tags +.RE + .SH AUTHOR Kelly Brazil (kellyjonbrazil@gmail.com) diff --git a/templates/manpage_template b/templates/manpage_template index 05b0f782..9630e8cb 100644 --- a/templates/manpage_template +++ b/templates/manpage_template @@ -66,7 +66,7 @@ Debug - show traceback (use \fB-dd\fP for verbose traceback) .B \fB-h\fP, \fB--help\fP Help (\fB--help --parser_name\fP for parser documentation). Use twice to show -\hidden parsers (e.g. \fB-hh\fP) +hidden parsers (e.g. \fB-hh\fP) .TP .B \fB-m\fP, \fB--monochrome\fP @@ -435,10 +435,23 @@ $ jc \fB--pretty\fP dig www.google.com $ jc \fB--pretty\fP /proc/meminfo .RE +Line Slicing: +.RS +$ cat file.csv | jc \fB:101\fP \fB--csv\fP # parse first 100 lines +.RE + For parser documentation: .RS $ jc \fB--help\fP \fB--dig\fP .RE + +More Help: +.RS +$ jc \fB-hh\fP # show hidden parsers + +$ jc \fB-hhh\fP # list parsers by category tags +.RE + .SH AUTHOR {{ jc.author }} ({{ jc.author_email }})