mirror of
https://github.com/kellyjonbrazil/jc.git
synced 2025-06-19 00:17:51 +02:00
add about information to parsers
This commit is contained in:
71
jc/cli.py
71
jc/cli.py
@ -81,16 +81,42 @@ def ctrlc(signum, frame):
|
|||||||
|
|
||||||
def parsers_text():
|
def parsers_text():
|
||||||
ptext = ''
|
ptext = ''
|
||||||
for key in parser_map:
|
for parser in parser_map:
|
||||||
if hasattr(parser_map[key], 'info'):
|
if hasattr(parser_map[parser], 'info'):
|
||||||
padding = 16 - len(key)
|
padding = 16 - len(parser)
|
||||||
padding_char = ' '
|
padding_char = ' '
|
||||||
padding_text = padding_char * padding
|
padding_text = padding_char * padding
|
||||||
ptext += ' ' + key + padding_text + parser_map[key].info.description + '\n'
|
ptext += ' ' + parser + padding_text + parser_map[parser].info.description + '\n'
|
||||||
|
|
||||||
return ptext
|
return ptext
|
||||||
|
|
||||||
|
|
||||||
|
def about_jc():
|
||||||
|
parser_list = []
|
||||||
|
for parser in parser_map:
|
||||||
|
if hasattr(parser_map[parser], 'info'):
|
||||||
|
parser_entry = {
|
||||||
|
'name': parser_map[parser].__name__.split('.')[-1],
|
||||||
|
'description': parser_map[parser].info.description,
|
||||||
|
'author': parser_map[parser].info.author,
|
||||||
|
'author_email': parser_map[parser].info.author_email,
|
||||||
|
'compatible': parser_map[parser].info.compatible,
|
||||||
|
'details': parser_map[parser].info.details
|
||||||
|
}
|
||||||
|
parser_list.append(parser_entry)
|
||||||
|
|
||||||
|
result = {
|
||||||
|
'name': __name__,
|
||||||
|
'version': info.version,
|
||||||
|
'description': info.description,
|
||||||
|
'author': info.author,
|
||||||
|
'author_email': info.author_email,
|
||||||
|
'parsers': parser_list
|
||||||
|
}
|
||||||
|
|
||||||
|
return result
|
||||||
|
|
||||||
|
|
||||||
def helptext(message):
|
def helptext(message):
|
||||||
parsers_string = parsers_text()
|
parsers_string = parsers_text()
|
||||||
|
|
||||||
@ -102,6 +128,7 @@ def helptext(message):
|
|||||||
Parsers:
|
Parsers:
|
||||||
{parsers_string}
|
{parsers_string}
|
||||||
Options:
|
Options:
|
||||||
|
-a about jc
|
||||||
-d debug - show trace messages
|
-d debug - show trace messages
|
||||||
-p pretty print output
|
-p pretty print output
|
||||||
-q quiet - suppress warnings
|
-q quiet - suppress warnings
|
||||||
@ -113,14 +140,17 @@ def helptext(message):
|
|||||||
print(textwrap.dedent(helptext_string), file=sys.stderr)
|
print(textwrap.dedent(helptext_string), file=sys.stderr)
|
||||||
|
|
||||||
|
|
||||||
|
def json_out(data, pretty=False):
|
||||||
|
if pretty:
|
||||||
|
print(json.dumps(data, indent=2))
|
||||||
|
else:
|
||||||
|
print(json.dumps(data))
|
||||||
|
|
||||||
|
|
||||||
def main():
|
def main():
|
||||||
signal.signal(signal.SIGINT, ctrlc)
|
signal.signal(signal.SIGINT, ctrlc)
|
||||||
|
|
||||||
if sys.stdin.isatty():
|
about = False
|
||||||
helptext('missing piped data')
|
|
||||||
exit()
|
|
||||||
|
|
||||||
data = sys.stdin.read()
|
|
||||||
debug = False
|
debug = False
|
||||||
pretty = False
|
pretty = False
|
||||||
quiet = False
|
quiet = False
|
||||||
@ -139,15 +169,26 @@ def main():
|
|||||||
if '-r' in sys.argv:
|
if '-r' in sys.argv:
|
||||||
raw = True
|
raw = True
|
||||||
|
|
||||||
|
if '-a' in sys.argv:
|
||||||
|
about = True
|
||||||
|
result = about_jc()
|
||||||
|
|
||||||
|
if sys.stdin.isatty() and not about:
|
||||||
|
helptext('missing piped data')
|
||||||
|
exit()
|
||||||
|
|
||||||
|
if not about:
|
||||||
|
data = sys.stdin.read()
|
||||||
|
|
||||||
found = False
|
found = False
|
||||||
|
|
||||||
if debug:
|
if debug and not about:
|
||||||
for arg in sys.argv:
|
for arg in sys.argv:
|
||||||
if arg in parser_map:
|
if arg in parser_map:
|
||||||
result = parser_map[arg].parse(data, raw=raw, quiet=quiet)
|
result = parser_map[arg].parse(data, raw=raw, quiet=quiet)
|
||||||
found = True
|
found = True
|
||||||
break
|
break
|
||||||
else:
|
elif not about:
|
||||||
for arg in sys.argv:
|
for arg in sys.argv:
|
||||||
if arg in parser_map:
|
if arg in parser_map:
|
||||||
try:
|
try:
|
||||||
@ -159,15 +200,11 @@ def main():
|
|||||||
jc.utils.error_message(f'{parser_name} parser could not parse the input data. Did you use the correct parser?\n For details use the -d option.')
|
jc.utils.error_message(f'{parser_name} parser could not parse the input data. Did you use the correct parser?\n For details use the -d option.')
|
||||||
exit(1)
|
exit(1)
|
||||||
|
|
||||||
if not found:
|
if not found and not about:
|
||||||
helptext('missing or incorrect arguments')
|
helptext('missing or incorrect arguments')
|
||||||
exit()
|
exit()
|
||||||
|
|
||||||
# output resulting dictionary as json
|
json_out(result, pretty=pretty)
|
||||||
if pretty:
|
|
||||||
print(json.dumps(result, indent=2))
|
|
||||||
else:
|
|
||||||
print(json.dumps(result))
|
|
||||||
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
|
@ -95,6 +95,7 @@ class info():
|
|||||||
description = 'arp parser'
|
description = 'arp parser'
|
||||||
author = 'Kelly Brazil'
|
author = 'Kelly Brazil'
|
||||||
author_email = 'kellyjonbrazil@gmail.com'
|
author_email = 'kellyjonbrazil@gmail.com'
|
||||||
|
details = None
|
||||||
|
|
||||||
# compatible options: linux, darwin, cygwin, win32, aix, freebsd
|
# compatible options: linux, darwin, cygwin, win32, aix, freebsd
|
||||||
compatible = ['linux', 'aix', 'freebsd', 'darwin']
|
compatible = ['linux', 'aix', 'freebsd', 'darwin']
|
||||||
|
@ -77,6 +77,7 @@ class info():
|
|||||||
description = 'df parser'
|
description = 'df parser'
|
||||||
author = 'Kelly Brazil'
|
author = 'Kelly Brazil'
|
||||||
author_email = 'kellyjonbrazil@gmail.com'
|
author_email = 'kellyjonbrazil@gmail.com'
|
||||||
|
details = None
|
||||||
|
|
||||||
# compatible options: linux, darwin, cygwin, win32, aix, freebsd
|
# compatible options: linux, darwin, cygwin, win32, aix, freebsd
|
||||||
compatible = ['linux', 'darwin']
|
compatible = ['linux', 'darwin']
|
||||||
|
@ -328,6 +328,7 @@ class info():
|
|||||||
description = 'dig parser'
|
description = 'dig parser'
|
||||||
author = 'Kelly Brazil'
|
author = 'Kelly Brazil'
|
||||||
author_email = 'kellyjonbrazil@gmail.com'
|
author_email = 'kellyjonbrazil@gmail.com'
|
||||||
|
details = None
|
||||||
|
|
||||||
# compatible options: linux, darwin, cygwin, win32, aix, freebsd
|
# compatible options: linux, darwin, cygwin, win32, aix, freebsd
|
||||||
compatible = ['linux', 'aix', 'freebsd', 'darwin']
|
compatible = ['linux', 'aix', 'freebsd', 'darwin']
|
||||||
|
@ -56,6 +56,7 @@ class info():
|
|||||||
description = 'env parser'
|
description = 'env parser'
|
||||||
author = 'Kelly Brazil'
|
author = 'Kelly Brazil'
|
||||||
author_email = 'kellyjonbrazil@gmail.com'
|
author_email = 'kellyjonbrazil@gmail.com'
|
||||||
|
details = None
|
||||||
|
|
||||||
# compatible options: linux, darwin, cygwin, win32, aix, freebsd
|
# compatible options: linux, darwin, cygwin, win32, aix, freebsd
|
||||||
compatible = ['linux', 'darwin', 'cygwin', 'win32', 'aix', 'freebsd']
|
compatible = ['linux', 'darwin', 'cygwin', 'win32', 'aix', 'freebsd']
|
||||||
|
@ -24,6 +24,7 @@ class info():
|
|||||||
description = 'foo parser'
|
description = 'foo parser'
|
||||||
author = 'John Doe'
|
author = 'John Doe'
|
||||||
author_email = 'johndoe@gmail.com'
|
author_email = 'johndoe@gmail.com'
|
||||||
|
details = None
|
||||||
|
|
||||||
# compatible options: linux, darwin, cygwin, win32, aix, freebsd
|
# compatible options: linux, darwin, cygwin, win32, aix, freebsd
|
||||||
compatible = ['linux', 'darwin', 'cygwin', 'win32', 'aix', 'freebsd']
|
compatible = ['linux', 'darwin', 'cygwin', 'win32', 'aix', 'freebsd']
|
||||||
|
@ -57,6 +57,7 @@ class info():
|
|||||||
description = 'free parser'
|
description = 'free parser'
|
||||||
author = 'Kelly Brazil'
|
author = 'Kelly Brazil'
|
||||||
author_email = 'kellyjonbrazil@gmail.com'
|
author_email = 'kellyjonbrazil@gmail.com'
|
||||||
|
details = None
|
||||||
|
|
||||||
# compatible options: linux, darwin, cygwin, win32, aix, freebsd
|
# compatible options: linux, darwin, cygwin, win32, aix, freebsd
|
||||||
compatible = ['linux']
|
compatible = ['linux']
|
||||||
|
@ -74,6 +74,7 @@ class info():
|
|||||||
description = '/etc/fstab file parser'
|
description = '/etc/fstab file parser'
|
||||||
author = 'Kelly Brazil'
|
author = 'Kelly Brazil'
|
||||||
author_email = 'kellyjonbrazil@gmail.com'
|
author_email = 'kellyjonbrazil@gmail.com'
|
||||||
|
details = None
|
||||||
|
|
||||||
# compatible options: linux, darwin, cygwin, win32, aix, freebsd
|
# compatible options: linux, darwin, cygwin, win32, aix, freebsd
|
||||||
compatible = ['linux']
|
compatible = ['linux']
|
||||||
|
@ -48,6 +48,7 @@ class info():
|
|||||||
description = 'history parser'
|
description = 'history parser'
|
||||||
author = 'Kelly Brazil'
|
author = 'Kelly Brazil'
|
||||||
author_email = 'kellyjonbrazil@gmail.com'
|
author_email = 'kellyjonbrazil@gmail.com'
|
||||||
|
details = None
|
||||||
|
|
||||||
# compatible options: linux, darwin, cygwin, win32, aix, freebsd
|
# compatible options: linux, darwin, cygwin, win32, aix, freebsd
|
||||||
compatible = ['linux', 'darwin', 'cygwin', 'win32', 'aix', 'freebsd']
|
compatible = ['linux', 'darwin', 'cygwin', 'win32', 'aix', 'freebsd']
|
||||||
|
@ -65,6 +65,7 @@ class info():
|
|||||||
description = '/etc/hosts file parser'
|
description = '/etc/hosts file parser'
|
||||||
author = 'Kelly Brazil'
|
author = 'Kelly Brazil'
|
||||||
author_email = 'kellyjonbrazil@gmail.com'
|
author_email = 'kellyjonbrazil@gmail.com'
|
||||||
|
details = None
|
||||||
|
|
||||||
# compatible options: linux, darwin, cygwin, win32, aix, freebsd
|
# compatible options: linux, darwin, cygwin, win32, aix, freebsd
|
||||||
compatible = ['linux', 'darwin', 'cygwin', 'win32', 'aix', 'freebsd']
|
compatible = ['linux', 'darwin', 'cygwin', 'win32', 'aix', 'freebsd']
|
||||||
|
@ -138,6 +138,7 @@ class info():
|
|||||||
description = 'iptables parser'
|
description = 'iptables parser'
|
||||||
author = 'Kelly Brazil'
|
author = 'Kelly Brazil'
|
||||||
author_email = 'kellyjonbrazil@gmail.com'
|
author_email = 'kellyjonbrazil@gmail.com'
|
||||||
|
details = None
|
||||||
|
|
||||||
# compatible options: linux, darwin, cygwin, win32, aix, freebsd
|
# compatible options: linux, darwin, cygwin, win32, aix, freebsd
|
||||||
compatible = ['linux']
|
compatible = ['linux']
|
||||||
|
@ -81,6 +81,7 @@ class info():
|
|||||||
description = 'jobs parser'
|
description = 'jobs parser'
|
||||||
author = 'Kelly Brazil'
|
author = 'Kelly Brazil'
|
||||||
author_email = 'kellyjonbrazil@gmail.com'
|
author_email = 'kellyjonbrazil@gmail.com'
|
||||||
|
details = None
|
||||||
|
|
||||||
# compatible options: linux, darwin, cygwin, win32, aix, freebsd
|
# compatible options: linux, darwin, cygwin, win32, aix, freebsd
|
||||||
compatible = ['linux', 'darwin', 'cygwin', 'aix', 'freebsd']
|
compatible = ['linux', 'darwin', 'cygwin', 'aix', 'freebsd']
|
||||||
|
@ -148,6 +148,7 @@ class info():
|
|||||||
description = 'ls parser'
|
description = 'ls parser'
|
||||||
author = 'Kelly Brazil'
|
author = 'Kelly Brazil'
|
||||||
author_email = 'kellyjonbrazil@gmail.com'
|
author_email = 'kellyjonbrazil@gmail.com'
|
||||||
|
details = None
|
||||||
|
|
||||||
# compatible options: linux, darwin, cygwin, win32, aix, freebsd
|
# compatible options: linux, darwin, cygwin, win32, aix, freebsd
|
||||||
compatible = ['linux', 'darwin', 'cygwin', 'aix', 'freebsd']
|
compatible = ['linux', 'darwin', 'cygwin', 'aix', 'freebsd']
|
||||||
|
@ -220,6 +220,7 @@ class info():
|
|||||||
description = 'lsblk parser'
|
description = 'lsblk parser'
|
||||||
author = 'Kelly Brazil'
|
author = 'Kelly Brazil'
|
||||||
author_email = 'kellyjonbrazil@gmail.com'
|
author_email = 'kellyjonbrazil@gmail.com'
|
||||||
|
details = None
|
||||||
|
|
||||||
# compatible options: linux, darwin, cygwin, win32, aix, freebsd
|
# compatible options: linux, darwin, cygwin, win32, aix, freebsd
|
||||||
compatible = ['linux']
|
compatible = ['linux']
|
||||||
|
@ -111,6 +111,7 @@ class info():
|
|||||||
description = 'lsmod parser'
|
description = 'lsmod parser'
|
||||||
author = 'Kelly Brazil'
|
author = 'Kelly Brazil'
|
||||||
author_email = 'kellyjonbrazil@gmail.com'
|
author_email = 'kellyjonbrazil@gmail.com'
|
||||||
|
details = None
|
||||||
|
|
||||||
# compatible options: linux, darwin, cygwin, win32, aix, freebsd
|
# compatible options: linux, darwin, cygwin, win32, aix, freebsd
|
||||||
compatible = ['linux']
|
compatible = ['linux']
|
||||||
|
@ -101,6 +101,7 @@ class info():
|
|||||||
description = 'lsof parser'
|
description = 'lsof parser'
|
||||||
author = 'Kelly Brazil'
|
author = 'Kelly Brazil'
|
||||||
author_email = 'kellyjonbrazil@gmail.com'
|
author_email = 'kellyjonbrazil@gmail.com'
|
||||||
|
details = None
|
||||||
|
|
||||||
# compatible options: linux, darwin, cygwin, win32, aix, freebsd
|
# compatible options: linux, darwin, cygwin, win32, aix, freebsd
|
||||||
compatible = ['linux']
|
compatible = ['linux']
|
||||||
|
@ -60,6 +60,7 @@ class info():
|
|||||||
description = 'mount parser'
|
description = 'mount parser'
|
||||||
author = 'Kelly Brazil'
|
author = 'Kelly Brazil'
|
||||||
author_email = 'kellyjonbrazil@gmail.com'
|
author_email = 'kellyjonbrazil@gmail.com'
|
||||||
|
details = None
|
||||||
|
|
||||||
# compatible options: linux, darwin, cygwin, win32, aix, freebsd
|
# compatible options: linux, darwin, cygwin, win32, aix, freebsd
|
||||||
compatible = ['linux', 'darwin']
|
compatible = ['linux', 'darwin']
|
||||||
|
@ -317,6 +317,7 @@ class info():
|
|||||||
description = 'netstat parser'
|
description = 'netstat parser'
|
||||||
author = 'Kelly Brazil'
|
author = 'Kelly Brazil'
|
||||||
author_email = 'kellyjonbrazil@gmail.com'
|
author_email = 'kellyjonbrazil@gmail.com'
|
||||||
|
details = None
|
||||||
|
|
||||||
# compatible options: linux, darwin, cygwin, win32, aix, freebsd
|
# compatible options: linux, darwin, cygwin, win32, aix, freebsd
|
||||||
compatible = ['linux']
|
compatible = ['linux']
|
||||||
|
@ -181,6 +181,7 @@ class info():
|
|||||||
description = 'ps parser'
|
description = 'ps parser'
|
||||||
author = 'Kelly Brazil'
|
author = 'Kelly Brazil'
|
||||||
author_email = 'kellyjonbrazil@gmail.com'
|
author_email = 'kellyjonbrazil@gmail.com'
|
||||||
|
details = None
|
||||||
|
|
||||||
# compatible options: linux, darwin, cygwin, win32, aix, freebsd
|
# compatible options: linux, darwin, cygwin, win32, aix, freebsd
|
||||||
compatible = ['linux', 'darwin', 'cygwin', 'aix', 'freebsd']
|
compatible = ['linux', 'darwin', 'cygwin', 'aix', 'freebsd']
|
||||||
|
@ -105,6 +105,7 @@ class info():
|
|||||||
description = 'route parser'
|
description = 'route parser'
|
||||||
author = 'Kelly Brazil'
|
author = 'Kelly Brazil'
|
||||||
author_email = 'kellyjonbrazil@gmail.com'
|
author_email = 'kellyjonbrazil@gmail.com'
|
||||||
|
details = None
|
||||||
|
|
||||||
# compatible options: linux, darwin, cygwin, win32, aix, freebsd
|
# compatible options: linux, darwin, cygwin, win32, aix, freebsd
|
||||||
compatible = ['linux']
|
compatible = ['linux']
|
||||||
|
@ -255,6 +255,7 @@ class info():
|
|||||||
description = 'ss parser'
|
description = 'ss parser'
|
||||||
author = 'Kelly Brazil'
|
author = 'Kelly Brazil'
|
||||||
author_email = 'kellyjonbrazil@gmail.com'
|
author_email = 'kellyjonbrazil@gmail.com'
|
||||||
|
details = None
|
||||||
|
|
||||||
# compatible options: linux, darwin, cygwin, win32, aix, freebsd
|
# compatible options: linux, darwin, cygwin, win32, aix, freebsd
|
||||||
compatible = ['linux']
|
compatible = ['linux']
|
||||||
|
@ -107,6 +107,7 @@ class info():
|
|||||||
description = 'stat parser'
|
description = 'stat parser'
|
||||||
author = 'Kelly Brazil'
|
author = 'Kelly Brazil'
|
||||||
author_email = 'kellyjonbrazil@gmail.com'
|
author_email = 'kellyjonbrazil@gmail.com'
|
||||||
|
details = None
|
||||||
|
|
||||||
# compatible options: linux, darwin, cygwin, win32, aix, freebsd
|
# compatible options: linux, darwin, cygwin, win32, aix, freebsd
|
||||||
compatible = ['linux']
|
compatible = ['linux']
|
||||||
|
@ -44,6 +44,7 @@ class info():
|
|||||||
description = 'systemctl parser'
|
description = 'systemctl parser'
|
||||||
author = 'Kelly Brazil'
|
author = 'Kelly Brazil'
|
||||||
author_email = 'kellyjonbrazil@gmail.com'
|
author_email = 'kellyjonbrazil@gmail.com'
|
||||||
|
details = None
|
||||||
|
|
||||||
# compatible options: linux, darwin, cygwin, win32, aix, freebsd
|
# compatible options: linux, darwin, cygwin, win32, aix, freebsd
|
||||||
compatible = ['linux']
|
compatible = ['linux']
|
||||||
|
@ -63,6 +63,7 @@ class info():
|
|||||||
description = 'systemctl list-jobs parser'
|
description = 'systemctl list-jobs parser'
|
||||||
author = 'Kelly Brazil'
|
author = 'Kelly Brazil'
|
||||||
author_email = 'kellyjonbrazil@gmail.com'
|
author_email = 'kellyjonbrazil@gmail.com'
|
||||||
|
details = None
|
||||||
|
|
||||||
# compatible options: linux, darwin, cygwin, win32, aix, freebsd
|
# compatible options: linux, darwin, cygwin, win32, aix, freebsd
|
||||||
compatible = ['linux']
|
compatible = ['linux']
|
||||||
|
@ -38,6 +38,7 @@ class info():
|
|||||||
description = 'systemctl list-sockets parser'
|
description = 'systemctl list-sockets parser'
|
||||||
author = 'Kelly Brazil'
|
author = 'Kelly Brazil'
|
||||||
author_email = 'kellyjonbrazil@gmail.com'
|
author_email = 'kellyjonbrazil@gmail.com'
|
||||||
|
details = None
|
||||||
|
|
||||||
# compatible options: linux, darwin, cygwin, win32, aix, freebsd
|
# compatible options: linux, darwin, cygwin, win32, aix, freebsd
|
||||||
compatible = ['linux']
|
compatible = ['linux']
|
||||||
|
@ -35,6 +35,7 @@ class info():
|
|||||||
description = 'systemctl list-unit-files parser'
|
description = 'systemctl list-unit-files parser'
|
||||||
author = 'Kelly Brazil'
|
author = 'Kelly Brazil'
|
||||||
author_email = 'kellyjonbrazil@gmail.com'
|
author_email = 'kellyjonbrazil@gmail.com'
|
||||||
|
details = None
|
||||||
|
|
||||||
# compatible options: linux, darwin, cygwin, win32, aix, freebsd
|
# compatible options: linux, darwin, cygwin, win32, aix, freebsd
|
||||||
compatible = ['linux']
|
compatible = ['linux']
|
||||||
|
@ -34,6 +34,7 @@ class info():
|
|||||||
description = 'uname -a parser'
|
description = 'uname -a parser'
|
||||||
author = 'Kelly Brazil'
|
author = 'Kelly Brazil'
|
||||||
author_email = 'kellyjonbrazil@gmail.com'
|
author_email = 'kellyjonbrazil@gmail.com'
|
||||||
|
details = None
|
||||||
|
|
||||||
# compatible options: linux, darwin, cygwin, win32, aix, freebsd
|
# compatible options: linux, darwin, cygwin, win32, aix, freebsd
|
||||||
compatible = ['linux']
|
compatible = ['linux']
|
||||||
|
@ -38,6 +38,7 @@ class info():
|
|||||||
description = 'uptime parser'
|
description = 'uptime parser'
|
||||||
author = 'Kelly Brazil'
|
author = 'Kelly Brazil'
|
||||||
author_email = 'kellyjonbrazil@gmail.com'
|
author_email = 'kellyjonbrazil@gmail.com'
|
||||||
|
details = None
|
||||||
|
|
||||||
# compatible options: linux, darwin, cygwin, win32, aix, freebsd
|
# compatible options: linux, darwin, cygwin, win32, aix, freebsd
|
||||||
compatible = ['linux', 'darwin', 'cygwin', 'aix', 'freebsd']
|
compatible = ['linux', 'darwin', 'cygwin', 'aix', 'freebsd']
|
||||||
|
@ -87,6 +87,7 @@ class info():
|
|||||||
description = 'w parser'
|
description = 'w parser'
|
||||||
author = 'Kelly Brazil'
|
author = 'Kelly Brazil'
|
||||||
author_email = 'kellyjonbrazil@gmail.com'
|
author_email = 'kellyjonbrazil@gmail.com'
|
||||||
|
details = None
|
||||||
|
|
||||||
# compatible options: linux, darwin, cygwin, win32, aix, freebsd
|
# compatible options: linux, darwin, cygwin, win32, aix, freebsd
|
||||||
compatible = ['linux', 'darwin', 'cygwin', 'aix', 'freebsd']
|
compatible = ['linux', 'darwin', 'cygwin', 'aix', 'freebsd']
|
||||||
|
Reference in New Issue
Block a user