mirror of
https://github.com/kellyjonbrazil/jc.git
synced 2025-06-19 00:17:51 +02:00
add arp parser
This commit is contained in:
7
jc/jc.py
7
jc/jc.py
@ -7,6 +7,7 @@ Main input module
|
|||||||
import sys
|
import sys
|
||||||
import signal
|
import signal
|
||||||
import json
|
import json
|
||||||
|
import jc.parsers.arp
|
||||||
import jc.parsers.df
|
import jc.parsers.df
|
||||||
import jc.parsers.env
|
import jc.parsers.env
|
||||||
import jc.parsers.free
|
import jc.parsers.free
|
||||||
@ -30,6 +31,7 @@ import jc.parsers.w
|
|||||||
def helptext():
|
def helptext():
|
||||||
print('Usage: jc PARSER [OPTIONS]\n', file=sys.stderr)
|
print('Usage: jc PARSER [OPTIONS]\n', file=sys.stderr)
|
||||||
print('Parsers:', file=sys.stderr)
|
print('Parsers:', file=sys.stderr)
|
||||||
|
print(' --arp arp parser', file=sys.stderr)
|
||||||
print(' --df df parser', file=sys.stderr)
|
print(' --df df parser', file=sys.stderr)
|
||||||
print(' --env env parser', file=sys.stderr)
|
print(' --env env parser', file=sys.stderr)
|
||||||
print(' --free free parser', file=sys.stderr)
|
print(' --free free parser', file=sys.stderr)
|
||||||
@ -74,7 +76,10 @@ def main():
|
|||||||
pretty = True
|
pretty = True
|
||||||
|
|
||||||
# parsers
|
# parsers
|
||||||
if '--df' in sys.argv:
|
if '--arp' in sys.argv:
|
||||||
|
result = jc.parsers.arp.parse(data)
|
||||||
|
|
||||||
|
elif '--df' in sys.argv:
|
||||||
result = jc.parsers.df.parse(data)
|
result = jc.parsers.df.parse(data)
|
||||||
|
|
||||||
elif '--env' in sys.argv:
|
elif '--env' in sys.argv:
|
||||||
|
22
jc/parsers/arp.py
Normal file
22
jc/parsers/arp.py
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
"""jc - JSON CLI output utility arp Parser
|
||||||
|
|
||||||
|
Usage:
|
||||||
|
specify --arp as the first argument if the piped input is coming from arp
|
||||||
|
|
||||||
|
Example:
|
||||||
|
|
||||||
|
$ arp | jc --arp -p
|
||||||
|
|
||||||
|
"""
|
||||||
|
|
||||||
|
|
||||||
|
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].lower().strip().split()).split() if h]
|
||||||
|
|
||||||
|
raw_data = map(lambda s: s.strip().split(None, len(headers) - 1), cleandata[1:])
|
||||||
|
return [dict(zip(headers, r)) for r in raw_data]
|
Reference in New Issue
Block a user