mirror of
https://github.com/kellyjonbrazil/jc.git
synced 2025-08-10 22:41:51 +02:00
add lsmod parser
This commit is contained in:
@@ -3,6 +3,7 @@ jc changelog
|
|||||||
2019xxxx v0.9.0
|
2019xxxx v0.9.0
|
||||||
- Add jobs parser
|
- Add jobs parser
|
||||||
- Add lsof parser
|
- Add lsof parser
|
||||||
|
- Add lsmod parser
|
||||||
- No blocking if no piped data
|
- No blocking if no piped data
|
||||||
- Better help text
|
- Better help text
|
||||||
- Clean up iptables parser code
|
- Clean up iptables parser code
|
||||||
|
5
jc/jc.py
5
jc/jc.py
@@ -14,6 +14,7 @@ import jc.parsers.iptables
|
|||||||
import jc.parsers.jobs
|
import jc.parsers.jobs
|
||||||
import jc.parsers.ls
|
import jc.parsers.ls
|
||||||
import jc.parsers.lsblk
|
import jc.parsers.lsblk
|
||||||
|
import jc.parsers.lsmod
|
||||||
import jc.parsers.lsof
|
import jc.parsers.lsof
|
||||||
import jc.parsers.mount
|
import jc.parsers.mount
|
||||||
import jc.parsers.netstat
|
import jc.parsers.netstat
|
||||||
@@ -33,6 +34,7 @@ def helptext():
|
|||||||
print(' --jobs jobs parser', file=sys.stderr)
|
print(' --jobs jobs parser', file=sys.stderr)
|
||||||
print(' --ls ls parser', file=sys.stderr)
|
print(' --ls ls parser', file=sys.stderr)
|
||||||
print(' --lsblk lsblk parser', file=sys.stderr)
|
print(' --lsblk lsblk parser', file=sys.stderr)
|
||||||
|
print(' --lsmod lsmod parser', file=sys.stderr)
|
||||||
print(' --lsof lsof parser', file=sys.stderr)
|
print(' --lsof lsof parser', file=sys.stderr)
|
||||||
print(' --mount mount parser', file=sys.stderr)
|
print(' --mount mount parser', file=sys.stderr)
|
||||||
print(' --netstat netstat parser', file=sys.stderr)
|
print(' --netstat netstat parser', file=sys.stderr)
|
||||||
@@ -83,6 +85,9 @@ def main():
|
|||||||
elif '--lsblk' in sys.argv:
|
elif '--lsblk' in sys.argv:
|
||||||
result = jc.parsers.lsblk.parse(data)
|
result = jc.parsers.lsblk.parse(data)
|
||||||
|
|
||||||
|
elif '--lsmod' in sys.argv:
|
||||||
|
result = jc.parsers.lsmod.parse(data)
|
||||||
|
|
||||||
elif '--lsof' in sys.argv:
|
elif '--lsof' in sys.argv:
|
||||||
result = jc.parsers.lsof.parse(data)
|
result = jc.parsers.lsof.parse(data)
|
||||||
|
|
||||||
|
26
jc/parsers/lsmod.py
Normal file
26
jc/parsers/lsmod.py
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
"""jc - JSON CLI output utility lsmod Parser
|
||||||
|
|
||||||
|
Usage:
|
||||||
|
specify --lsmod as the first argument if the piped input is coming from lsmod
|
||||||
|
|
||||||
|
Example:
|
||||||
|
|
||||||
|
|
||||||
|
"""
|
||||||
|
|
||||||
|
|
||||||
|
def parse(data):
|
||||||
|
|
||||||
|
# code adapted from Conor Heine at:
|
||||||
|
# https://gist.github.com/cahna/43a1a3ff4d075bcd71f9d7120037a501
|
||||||
|
|
||||||
|
cleandata = data.splitlines()
|
||||||
|
headers = [h for h in ' '.join(cleandata[0].strip().split()).split() if h]
|
||||||
|
|
||||||
|
raw_data = map(lambda s: s.strip().split(None, len(headers) - 1), cleandata[1:])
|
||||||
|
output = [dict(zip(headers, r)) for r in raw_data]
|
||||||
|
|
||||||
|
for entry in output:
|
||||||
|
entry['NAME'] = entry['NAME'].encode('ascii', errors='ignore').decode()
|
||||||
|
|
||||||
|
return output
|
Reference in New Issue
Block a user