mirror of
https://github.com/kellyjonbrazil/jc.git
synced 2025-08-08 22:36:48 +02:00
add lsmod parser
This commit is contained in:
@ -3,6 +3,7 @@ jc changelog
|
||||
2019xxxx v0.9.0
|
||||
- Add jobs parser
|
||||
- Add lsof parser
|
||||
- Add lsmod parser
|
||||
- No blocking if no piped data
|
||||
- Better help text
|
||||
- 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.ls
|
||||
import jc.parsers.lsblk
|
||||
import jc.parsers.lsmod
|
||||
import jc.parsers.lsof
|
||||
import jc.parsers.mount
|
||||
import jc.parsers.netstat
|
||||
@ -33,6 +34,7 @@ def helptext():
|
||||
print(' --jobs jobs parser', file=sys.stderr)
|
||||
print(' --ls ls 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(' --mount mount parser', file=sys.stderr)
|
||||
print(' --netstat netstat parser', file=sys.stderr)
|
||||
@ -83,6 +85,9 @@ def main():
|
||||
elif '--lsblk' in sys.argv:
|
||||
result = jc.parsers.lsblk.parse(data)
|
||||
|
||||
elif '--lsmod' in sys.argv:
|
||||
result = jc.parsers.lsmod.parse(data)
|
||||
|
||||
elif '--lsof' in sys.argv:
|
||||
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