mirror of
https://github.com/kellyjonbrazil/jc.git
synced 2025-06-19 00:17:51 +02:00
@ -170,7 +170,7 @@ Tested on:
|
||||
## Examples
|
||||
### airport -I
|
||||
```
|
||||
$ airport -I | jc --airport -p
|
||||
$ airport -I | jc --airport -p # or: jc -p airport -I
|
||||
{
|
||||
"agrctlrssi": -66,
|
||||
"agrextrssi": 0,
|
||||
@ -191,7 +191,7 @@ $ airport -I | jc --airport -p
|
||||
```
|
||||
### 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",
|
||||
@ -764,7 +764,7 @@ $ env | jc --env -p # or: jc -p env
|
||||
```
|
||||
### file
|
||||
```
|
||||
$ file * | jc --file -p
|
||||
$ file * | jc --file -p # or: jc -p file *
|
||||
[
|
||||
{
|
||||
"filename": "Applications",
|
||||
@ -2127,7 +2127,7 @@ $ systemctl list-unit-files | jc --systemctl-luf -p # or: jc -p system
|
||||
```
|
||||
### timedatectl status
|
||||
```
|
||||
$ timedatectl | jc --timedatectl -p
|
||||
$ timedatectl | jc --timedatectl -p # or: jc -p timedatectl
|
||||
{
|
||||
"local_time": "Tue 2020-03-10 17:53:21 PDT",
|
||||
"universal_time": "Wed 2020-03-11 00:53:21 UTC",
|
||||
|
@ -1,5 +1,8 @@
|
||||
jc changelog
|
||||
|
||||
20200311 v1.9.1
|
||||
- Updated file command parser to make filename splitting more robust
|
||||
|
||||
20200311 v1.9.0
|
||||
- Added ntpq command parser
|
||||
- Added timedatectl status command parser
|
||||
|
@ -13,7 +13,7 @@ import jc.utils
|
||||
|
||||
|
||||
class info():
|
||||
version = '1.9.0'
|
||||
version = '1.9.1'
|
||||
description = 'jc cli output JSON conversion tool'
|
||||
author = 'Kelly Brazil'
|
||||
author_email = 'kellyjonbrazil@gmail.com'
|
||||
|
2
setup.py
2
setup.py
@ -5,7 +5,7 @@ with open('README.md', 'r') as f:
|
||||
|
||||
setuptools.setup(
|
||||
name='jc',
|
||||
version='1.9.0',
|
||||
version='1.9.1',
|
||||
author='Kelly Brazil',
|
||||
author_email='kellyjonbrazil@gmail.com',
|
||||
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
1
tests/fixtures/osx-10.14.6/file2.json
vendored
Normal 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
88
tests/fixtures/osx-10.14.6/file2.out
vendored
Normal 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
|
@ -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:
|
||||
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
|
||||
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())
|
||||
@ -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:
|
||||
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):
|
||||
"""
|
||||
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)
|
||||
|
||||
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__':
|
||||
unittest.main()
|
||||
|
Reference in New Issue
Block a user