1
0
mirror of https://github.com/kellyjonbrazil/jc.git synced 2025-07-17 01:32:37 +02:00

add OSX support

This commit is contained in:
Kelly Brazil
2019-12-16 11:01:43 -08:00
parent 4283333948
commit 83f35256ae

View File

@ -10,7 +10,7 @@ Limitations:
Compatibility: Compatibility:
'linux' 'linux', 'darwin'
Example: Example:
@ -30,13 +30,13 @@ import jc.utils
class info(): class info():
version = '1.0' version = '1.1'
description = 'uname -a parser' description = 'uname -a parser'
author = 'Kelly Brazil' author = 'Kelly Brazil'
author_email = 'kellyjonbrazil@gmail.com' author_email = 'kellyjonbrazil@gmail.com'
# compatible options: linux, darwin, cygwin, win32, aix, freebsd # compatible options: linux, darwin, cygwin, win32, aix, freebsd
compatible = ['linux'] compatible = ['linux', 'darwin']
def process(proc_data): def process(proc_data):
@ -84,22 +84,33 @@ def parse(data, raw=False, quiet=False):
jc.utils.compatibility(__name__, info.compatible) jc.utils.compatibility(__name__, info.compatible)
raw_output = {} raw_output = {}
parsed_line = data.split(maxsplit=3) split_line = data.split()
if len(parsed_line) > 1: if len(split_line) > 1:
# check for OSX output
if data.startswith('Darwin'):
parsed_line = data.split()
raw_output['machine'] = parsed_line.pop(-1)
raw_output['kernel_name'] = parsed_line.pop(0)
raw_output['node_name'] = parsed_line.pop(0)
raw_output['kernel_release'] = parsed_line.pop(0)
raw_output['kernel_version'] = ' '.join(parsed_line)
raw_output['kernel_name'] = parsed_line.pop(0) # otherwise use linux parser
raw_output['node_name'] = parsed_line.pop(0) else:
raw_output['kernel_release'] = parsed_line.pop(0) parsed_line = data.split(maxsplit=3)
raw_output['kernel_name'] = parsed_line.pop(0)
raw_output['node_name'] = parsed_line.pop(0)
raw_output['kernel_release'] = parsed_line.pop(0)
parsed_line = parsed_line[-1].rsplit(maxsplit=4) parsed_line = parsed_line[-1].rsplit(maxsplit=4)
raw_output['operating_system'] = parsed_line.pop(-1) raw_output['operating_system'] = parsed_line.pop(-1)
raw_output['hardware_platform'] = parsed_line.pop(-1) raw_output['hardware_platform'] = parsed_line.pop(-1)
raw_output['processor'] = parsed_line.pop(-1) raw_output['processor'] = parsed_line.pop(-1)
raw_output['machine'] = parsed_line.pop(-1) raw_output['machine'] = parsed_line.pop(-1)
raw_output['kernel_version'] = parsed_line.pop(0) raw_output['kernel_version'] = parsed_line.pop(0)
if raw: if raw:
return raw_output return raw_output