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 signal
|
||||
import json
|
||||
import jc.parsers.arp
|
||||
import jc.parsers.df
|
||||
import jc.parsers.env
|
||||
import jc.parsers.free
|
||||
@ -30,6 +31,7 @@ import jc.parsers.w
|
||||
def helptext():
|
||||
print('Usage: jc PARSER [OPTIONS]\n', file=sys.stderr)
|
||||
print('Parsers:', file=sys.stderr)
|
||||
print(' --arp arp parser', file=sys.stderr)
|
||||
print(' --df df parser', file=sys.stderr)
|
||||
print(' --env env parser', file=sys.stderr)
|
||||
print(' --free free parser', file=sys.stderr)
|
||||
@ -74,7 +76,10 @@ def main():
|
||||
pretty = True
|
||||
|
||||
# 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)
|
||||
|
||||
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