1
0
mirror of https://github.com/kellyjonbrazil/jc.git synced 2025-06-19 00:17:51 +02:00

Merge pull request #49 from kellyjonbrazil/dev

Dev v1.9.1
This commit is contained in:
Kelly Brazil
2020-03-12 08:23:10 -07:00
committed by GitHub
8 changed files with 111 additions and 7 deletions

View File

@ -170,7 +170,7 @@ Tested on:
## Examples ## Examples
### airport -I ### airport -I
``` ```
$ airport -I | jc --airport -p $ airport -I | jc --airport -p # or: jc -p airport -I
{ {
"agrctlrssi": -66, "agrctlrssi": -66,
"agrextrssi": 0, "agrextrssi": 0,
@ -191,7 +191,7 @@ $ airport -I | jc --airport -p
``` ```
### airport -s ### airport -s
``` ```
$ airport -s | jc --airport-s -p $ airport -s | jc --airport-s -p # or: jc -p airport -s
[ [
{ {
"ssid": "DIRECT-4A-HP OfficeJet 3830", "ssid": "DIRECT-4A-HP OfficeJet 3830",
@ -764,7 +764,7 @@ $ env | jc --env -p # or: jc -p env
``` ```
### file ### file
``` ```
$ file * | jc --file -p $ file * | jc --file -p # or: jc -p file *
[ [
{ {
"filename": "Applications", "filename": "Applications",
@ -2127,7 +2127,7 @@ $ systemctl list-unit-files | jc --systemctl-luf -p # or: jc -p system
``` ```
### timedatectl status ### timedatectl status
``` ```
$ timedatectl | jc --timedatectl -p $ timedatectl | jc --timedatectl -p # or: jc -p timedatectl
{ {
"local_time": "Tue 2020-03-10 17:53:21 PDT", "local_time": "Tue 2020-03-10 17:53:21 PDT",
"universal_time": "Wed 2020-03-11 00:53:21 UTC", "universal_time": "Wed 2020-03-11 00:53:21 UTC",

View File

@ -1,5 +1,8 @@
jc changelog jc changelog
20200311 v1.9.1
- Updated file command parser to make filename splitting more robust
20200311 v1.9.0 20200311 v1.9.0
- Added ntpq command parser - Added ntpq command parser
- Added timedatectl status command parser - Added timedatectl status command parser

View File

@ -13,7 +13,7 @@ import jc.utils
class info(): class info():
version = '1.9.0' version = '1.9.1'
description = 'jc cli output JSON conversion tool' description = 'jc cli output JSON conversion tool'
author = 'Kelly Brazil' author = 'Kelly Brazil'
author_email = 'kellyjonbrazil@gmail.com' author_email = 'kellyjonbrazil@gmail.com'

View File

@ -5,7 +5,7 @@ with open('README.md', 'r') as f:
setuptools.setup( setuptools.setup(
name='jc', name='jc',
version='1.9.0', version='1.9.1',
author='Kelly Brazil', author='Kelly Brazil',
author_email='kellyjonbrazil@gmail.com', author_email='kellyjonbrazil@gmail.com',
description='This tool serializes the output of popular command line tools and filetypes to structured JSON output.', description='This tool serializes the output of popular command line tools and filetypes to structured JSON output.',

1
tests/fixtures/osx-10.14.6/file2.json vendored Normal file
View File

@ -0,0 +1 @@
[{"filename": "AFP.conf", "type": "data"}, {"filename": "afpovertcp.cfg", "type": "ASCII text"}, {"filename": "aliases", "type": "ASCII text"}, {"filename": "aliases.db", "type": "Berkeley DB 1.85 (Hash, version 2, native byte-order)"}, {"filename": "apache2", "type": "directory"}, {"filename": "asl", "type": "directory"}, {"filename": "asl.conf", "type": "ASCII text"}, {"filename": "auto_home", "type": "ASCII text"}, {"filename": "auto_master", "type": "ASCII text"}, {"filename": "autofs.conf", "type": "ASCII text"}, {"filename": "bashrc", "type": "ASCII text"}, {"filename": "bashrc_Apple_Terminal", "type": "ASCII text"}, {"filename": "com.apple.screensharing.agent.launchd", "type": "ASCII text, with no line terminators"}, {"filename": "csh.cshrc", "type": "ASCII text"}, {"filename": "csh.login", "type": "ASCII text"}, {"filename": "csh.logout", "type": "ASCII text"}, {"filename": "cups", "type": "directory"}, {"filename": "defaults", "type": "directory"}, {"filename": "dnsextd.conf", "type": "ASCII text"}, {"filename": "emond.d", "type": "directory"}, {"filename": "find.codes", "type": "empty"}, {"filename": "fstab.hd", "type": "ASCII text"}, {"filename": "ftpusers", "type": "ASCII text"}, {"filename": "gettytab", "type": "ASCII text"}, {"filename": "group", "type": "ASCII text"}, {"filename": "hosts", "type": "ASCII text"}, {"filename": "hosts.equiv", "type": "empty"}, {"filename": "irbrc", "type": "Ruby script text, ASCII text"}, {"filename": "kern_loader.conf", "type": "empty"}, {"filename": "krb5.keytab", "type": "Kerberos Keytab file, realm=LKDC:SHA1.15090DD365668FBA1B0D2D3DD43FCB7CB9381160, principal=afpserver/LKDC:SHA1.15090DD365668FBA1B0D2D3DD43FCB7CB9381160, type=1, date=Tue Jul 2 15:52:04 2019, kvno=2"}, {"filename": "localtime", "type": "timezone data, version 2, 4 gmt time flags, 4 std time flags, no leap seconds, 185 transition times, 4 abbreviation chars"}, {"filename": "locate.rc", "type": "ASCII text"}, {"filename": "mach_init.d", "type": "directory"}, {"filename": "mach_init_per_login_session.d", "type": "directory"}, {"filename": "mach_init_per_user.d", "type": "directory"}, {"filename": "mail.rc", "type": "ASCII text"}, {"filename": "man.conf", "type": "ASCII text"}, {"filename": "manpaths", "type": "ASCII text"}, {"filename": "manpaths.d", "type": "directory"}, {"filename": "master.passwd", "type": "ASCII text"}, {"filename": "nanorc", "type": "ASCII text"}, {"filename": "networks", "type": "ASCII text"}, {"filename": "newsyslog.conf", "type": "ASCII text"}, {"filename": "newsyslog.d", "type": "directory"}, {"filename": "nfs.conf", "type": "ASCII text"}, {"filename": "notify.conf", "type": "ASCII text"}, {"filename": "ntp.conf", "type": "ASCII text"}, {"filename": "ntp_opendirectory.conf", "type": "ASCII text"}, {"filename": "openldap", "type": "directory"}, {"filename": "pam.d", "type": "directory"}, {"filename": "passwd", "type": "ASCII text"}, {"filename": "paths", "type": "ASCII text"}, {"filename": "paths.d", "type": "directory"}, {"filename": "periodic", "type": "directory"}, {"filename": "pf.anchors", "type": "directory"}, {"filename": "pf.conf", "type": "ASCII text"}, {"filename": "pf.os", "type": "ASCII text"}, {"filename": "php-fpm.conf.default", "type": "ASCII text"}, {"filename": "php-fpm.d", "type": "directory"}, {"filename": "php.ini.default", "type": "ASCII text"}, {"filename": "postfix", "type": "directory"}, {"filename": "ppp", "type": "directory"}, {"filename": "profile", "type": "ASCII text"}, {"filename": "protocols", "type": "ASCII text"}, {"filename": "racoon", "type": "directory"}, {"filename": "rc.common", "type": "ASCII text"}, {"filename": "rc.netboot", "type": "POSIX shell script text executable, ASCII text"}, {"filename": "resolv.conf", "type": "ASCII text"}, {"filename": "rmtab", "type": "empty"}, {"filename": "rpc", "type": "ASCII text"}, {"filename": "rtadvd.conf", "type": "ASCII text"}, {"filename": "security", "type": "directory"}, {"filename": "services", "type": "ASCII text"}, {"filename": "services.broker", "type": "ASCII text"}, {"filename": "shells", "type": "ASCII text"}, {"filename": "snmp", "type": "directory"}, {"filename": "ssh", "type": "directory"}, {"filename": "ssl", "type": "directory"}, {"filename": "sudo_lecture", "type": "ASCII text"}, {"filename": "sudoers", "type": "c program text, ASCII text"}, {"filename": "sudoers.d", "type": "directory"}, {"filename": "syslog.conf", "type": "ASCII text"}, {"filename": "thnuclnt", "type": "directory"}, {"filename": "ttys", "type": "ASCII text"}, {"filename": "wfs", "type": "directory"}, {"filename": "xtab", "type": "empty"}, {"filename": "zprofile", "type": "ASCII text"}, {"filename": "zshrc", "type": "ASCII text"}]

88
tests/fixtures/osx-10.14.6/file2.out vendored Normal file
View File

@ -0,0 +1,88 @@
AFP.conf: data
afpovertcp.cfg: ASCII text
aliases: ASCII text
aliases.db: Berkeley DB 1.85 (Hash, version 2, native byte-order)
apache2: directory
asl: directory
asl.conf: ASCII text
auto_home: ASCII text
auto_master: ASCII text
autofs.conf: ASCII text
bashrc: ASCII text
bashrc_Apple_Terminal: ASCII text
com.apple.screensharing.agent.launchd: ASCII text, with no line terminators
csh.cshrc: ASCII text
csh.login: ASCII text
csh.logout: ASCII text
cups: directory
defaults: directory
dnsextd.conf: ASCII text
emond.d: directory
find.codes: empty
fstab.hd: ASCII text
ftpusers: ASCII text
gettytab: ASCII text
group: ASCII text
hosts: ASCII text
hosts.equiv: empty
irbrc: Ruby script text, ASCII text
kern_loader.conf: empty
krb5.keytab: Kerberos Keytab file, realm=LKDC:SHA1.15090DD365668FBA1B0D2D3DD43FCB7CB9381160, principal=afpserver/LKDC:SHA1.15090DD365668FBA1B0D2D3DD43FCB7CB9381160, type=1, date=Tue Jul 2 15:52:04 2019, kvno=2
localtime: timezone data, version 2, 4 gmt time flags, 4 std time flags, no leap seconds, 185 transition times, 4 abbreviation chars
locate.rc: ASCII text
mach_init.d: directory
mach_init_per_login_session.d: directory
mach_init_per_user.d: directory
mail.rc: ASCII text
man.conf: ASCII text
manpaths: ASCII text
manpaths.d: directory
master.passwd: ASCII text
nanorc: ASCII text
networks: ASCII text
newsyslog.conf: ASCII text
newsyslog.d: directory
nfs.conf: ASCII text
notify.conf: ASCII text
ntp.conf: ASCII text
ntp_opendirectory.conf: ASCII text
openldap: directory
pam.d: directory
passwd: ASCII text
paths: ASCII text
paths.d: directory
periodic: directory
pf.anchors: directory
pf.conf: ASCII text
pf.os: ASCII text
php-fpm.conf.default: ASCII text
php-fpm.d: directory
php.ini.default: ASCII text
postfix: directory
ppp: directory
profile: ASCII text
protocols: ASCII text
racoon: directory
rc.common: ASCII text
rc.netboot: POSIX shell script text executable, ASCII text
resolv.conf: ASCII text
rmtab: empty
rpc: ASCII text
rtadvd.conf: ASCII text
security: directory
services: ASCII text
services.broker: ASCII text
shells: ASCII text
snmp: directory
ssh: directory
ssl: directory
sudo_lecture: ASCII text
sudoers: c program text, ASCII text
sudoers.d: directory
syslog.conf: ASCII text
thnuclnt: directory
ttys: ASCII text
wfs: directory
xtab: empty
zprofile: ASCII text
zshrc: ASCII text

View File

@ -19,6 +19,9 @@ class MyTests(unittest.TestCase):
with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/file.out'), 'r', encoding='utf-8') as f: with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/file.out'), 'r', encoding='utf-8') as f:
self.osx_10_14_6_file = f.read() self.osx_10_14_6_file = f.read()
with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/file2.out'), 'r', encoding='utf-8') as f:
self.osx_10_14_6_file2 = f.read()
# output # output
with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/file.json'), 'r', encoding='utf-8') as f: with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/file.json'), 'r', encoding='utf-8') as f:
self.centos_7_7_file_json = json.loads(f.read()) self.centos_7_7_file_json = json.loads(f.read())
@ -29,6 +32,9 @@ class MyTests(unittest.TestCase):
with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/file.json'), 'r', encoding='utf-8') as f: with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/file.json'), 'r', encoding='utf-8') as f:
self.osx_10_14_6_file_json = json.loads(f.read()) self.osx_10_14_6_file_json = json.loads(f.read())
with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/file2.json'), 'r', encoding='utf-8') as f:
self.osx_10_14_6_file2_json = json.loads(f.read())
def test_file_centos_7_7(self): def test_file_centos_7_7(self):
""" """
Test 'file *' on Centos 7.7 Test 'file *' on Centos 7.7
@ -47,6 +53,12 @@ class MyTests(unittest.TestCase):
""" """
self.assertEqual(jc.parsers.file.parse(self.osx_10_14_6_file, quiet=True), self.osx_10_14_6_file_json) self.assertEqual(jc.parsers.file.parse(self.osx_10_14_6_file, quiet=True), self.osx_10_14_6_file_json)
def test_file2_osx_10_14_6(self):
"""
Test 'file *' with filetpe descriptions including colons on OSX 10.14.6
"""
self.assertEqual(jc.parsers.file.parse(self.osx_10_14_6_file2, quiet=True), self.osx_10_14_6_file2_json)
if __name__ == '__main__': if __name__ == '__main__':
unittest.main() unittest.main()