1
0
mirror of https://github.com/kellyjonbrazil/jc.git synced 2025-07-13 01:20:24 +02:00

Add support for /S and update documentation

This commit is contained in:
Rasheed Elsaleh
2021-04-02 13:43:06 -04:00
parent d9dbcc8b52
commit 5b60c7445a
5 changed files with 469 additions and 400 deletions

View File

@ -27,209 +27,213 @@ Compatibility:
Examples:
$ dir | jc --dir -p -m
[
{
"C:\Program Files\Internet Explorer": [
{
"date": "03/24/2021",
"time": "03:15 PM",
"dir": "<DIR>",
"dir": true,
"size": null,
"filename": "."
},
{
"date": "03/24/2021",
"time": "03:15 PM",
"dir": "<DIR>",
"dir": true,
"size": null,
"filename": ".."
},
{
"date": "12/07/2019",
"time": "02:49 AM",
"dir": "<DIR>",
"dir": true,
"size": null,
"filename": "en-US"
},
{
"date": "12/07/2019",
"time": "02:09 AM",
"dir": null,
"dir": false,
"size": 54784,
"filename": "ExtExport.exe"
},
{
"date": "03/24/2021",
"time": "03:15 PM",
"dir": null,
"dir": false,
"size": 0,
"filename": "file name.txt"
},
{
"date": "12/07/2019",
"time": "02:09 AM",
"dir": null,
"dir": false,
"size": 54784,
"filename": "hmmapi.dll"
},
{
"date": "12/07/2019",
"time": "02:09 AM",
"dir": null,
"dir": false,
"size": 515072,
"filename": "iediagcmd.exe"
},
{
"date": "12/07/2019",
"time": "02:09 AM",
"dir": null,
"dir": false,
"size": 504832,
"filename": "ieinstal.exe"
},
{
"date": "12/07/2019",
"time": "02:09 AM",
"dir": null,
"dir": false,
"size": 224768,
"filename": "ielowutil.exe"
},
{
"date": "12/07/2019",
"time": "02:09 AM",
"dir": null,
"dir": false,
"size": 421888,
"filename": "IEShims.dll"
},
{
"date": "12/06/2019",
"time": "02:47 PM",
"dir": null,
"dir": false,
"size": 819136,
"filename": "iexplore.exe"
},
{
"date": "12/07/2019",
"time": "02:14 AM",
"dir": "<DIR>",
"dir": true,
"size": null,
"filename": "images"
},
{
"date": "12/07/2019",
"time": "02:14 AM",
"dir": "<DIR>",
"dir": true,
"size": null,
"filename": "SIGNUP"
},
{
"date": "12/07/2019",
"time": "02:09 AM",
"dir": null,
"dir": false,
"size": 48536,
"filename": "sqmapi.dll"
}
]
}
$ dir | jc --dir -p -m -r
[
{
"C:\Program Files\Internet Explorer": [
{
"date": "03/24/2021",
"time": "03:15 PM",
"dir": "<DIR>",
"dir": true,
"size": null,
"filename": "."
},
{
"date": "03/24/2021",
"time": "03:15 PM",
"dir": "<DIR>",
"dir": true,
"size": null,
"filename": ".."
},
{
"date": "12/07/2019",
"time": "02:49 AM",
"dir": "<DIR>",
"dir": true,
"size": null,
"filename": "en-US"
},
{
"date": "12/07/2019",
"time": "02:09 AM",
"dir": null,
"dir": false,
"size": "54,784",
"filename": "ExtExport.exe"
},
{
"date": "03/24/2021",
"time": "03:15 PM",
"dir": null,
"dir": false,
"size": "0",
"filename": "file name.txt"
},
{
"date": "12/07/2019",
"time": "02:09 AM",
"dir": null,
"dir": false,
"size": "54,784",
"filename": "hmmapi.dll"
},
{
"date": "12/07/2019",
"time": "02:09 AM",
"dir": null,
"dir": false,
"size": "515,072",
"filename": "iediagcmd.exe"
},
{
"date": "12/07/2019",
"time": "02:09 AM",
"dir": null,
"dir": false,
"size": "504,832",
"filename": "ieinstal.exe"
},
{
"date": "12/07/2019",
"time": "02:09 AM",
"dir": null,
"dir": false,
"size": "224,768",
"filename": "ielowutil.exe"
},
{
"date": "12/07/2019",
"time": "02:09 AM",
"dir": null,
"dir": false,
"size": "421,888",
"filename": "IEShims.dll"
},
{
"date": "12/06/2019",
"time": "02:47 PM",
"dir": null,
"dir": false,
"size": "819,136",
"filename": "iexplore.exe"
},
{
"date": "12/07/2019",
"time": "02:14 AM",
"dir": "<DIR>",
"dir": true,
"size": null,
"filename": "images"
},
{
"date": "12/07/2019",
"time": "02:14 AM",
"dir": "<DIR>",
"dir": true,
"size": null,
"filename": "SIGNUP"
},
{
"date": "12/07/2019",
"time": "02:09 AM",
"dir": null,
"dir": false,
"size": "48,536",
"filename": "sqmapi.dll"
}
]
}

View File

@ -4,6 +4,7 @@ Options supported:
- `/T timefield`
- `/O sortorder`
- `/C, /-C`
- `/S`
Usage (cli):
@ -25,209 +26,213 @@ Compatibility:
Examples:
$ dir | jc --dir -p -m
[
{
"C:\\Program Files\\Internet Explorer": [
{
"date": "03/24/2021",
"time": "03:15 PM",
"dir": "<DIR>",
"dir": true,
"size": null,
"filename": "."
},
{
"date": "03/24/2021",
"time": "03:15 PM",
"dir": "<DIR>",
"dir": true,
"size": null,
"filename": ".."
},
{
"date": "12/07/2019",
"time": "02:49 AM",
"dir": "<DIR>",
"dir": true,
"size": null,
"filename": "en-US"
},
{
"date": "12/07/2019",
"time": "02:09 AM",
"dir": null,
"dir": false,
"size": 54784,
"filename": "ExtExport.exe"
},
{
"date": "03/24/2021",
"time": "03:15 PM",
"dir": null,
"dir": false,
"size": 0,
"filename": "file name.txt"
},
{
"date": "12/07/2019",
"time": "02:09 AM",
"dir": null,
"dir": false,
"size": 54784,
"filename": "hmmapi.dll"
},
{
"date": "12/07/2019",
"time": "02:09 AM",
"dir": null,
"dir": false,
"size": 515072,
"filename": "iediagcmd.exe"
},
{
"date": "12/07/2019",
"time": "02:09 AM",
"dir": null,
"dir": false,
"size": 504832,
"filename": "ieinstal.exe"
},
{
"date": "12/07/2019",
"time": "02:09 AM",
"dir": null,
"dir": false,
"size": 224768,
"filename": "ielowutil.exe"
},
{
"date": "12/07/2019",
"time": "02:09 AM",
"dir": null,
"dir": false,
"size": 421888,
"filename": "IEShims.dll"
},
{
"date": "12/06/2019",
"time": "02:47 PM",
"dir": null,
"dir": false,
"size": 819136,
"filename": "iexplore.exe"
},
{
"date": "12/07/2019",
"time": "02:14 AM",
"dir": "<DIR>",
"dir": true,
"size": null,
"filename": "images"
},
{
"date": "12/07/2019",
"time": "02:14 AM",
"dir": "<DIR>",
"dir": true,
"size": null,
"filename": "SIGNUP"
},
{
"date": "12/07/2019",
"time": "02:09 AM",
"dir": null,
"dir": false,
"size": 48536,
"filename": "sqmapi.dll"
}
]
}
$ dir | jc --dir -p -m -r
[
{
"C:\\Program Files\\Internet Explorer": [
{
"date": "03/24/2021",
"time": "03:15 PM",
"dir": "<DIR>",
"dir": true,
"size": null,
"filename": "."
},
{
"date": "03/24/2021",
"time": "03:15 PM",
"dir": "<DIR>",
"dir": true,
"size": null,
"filename": ".."
},
{
"date": "12/07/2019",
"time": "02:49 AM",
"dir": "<DIR>",
"dir": true,
"size": null,
"filename": "en-US"
},
{
"date": "12/07/2019",
"time": "02:09 AM",
"dir": null,
"dir": false,
"size": "54,784",
"filename": "ExtExport.exe"
},
{
"date": "03/24/2021",
"time": "03:15 PM",
"dir": null,
"dir": false,
"size": "0",
"filename": "file name.txt"
},
{
"date": "12/07/2019",
"time": "02:09 AM",
"dir": null,
"dir": false,
"size": "54,784",
"filename": "hmmapi.dll"
},
{
"date": "12/07/2019",
"time": "02:09 AM",
"dir": null,
"dir": false,
"size": "515,072",
"filename": "iediagcmd.exe"
},
{
"date": "12/07/2019",
"time": "02:09 AM",
"dir": null,
"dir": false,
"size": "504,832",
"filename": "ieinstal.exe"
},
{
"date": "12/07/2019",
"time": "02:09 AM",
"dir": null,
"dir": false,
"size": "224,768",
"filename": "ielowutil.exe"
},
{
"date": "12/07/2019",
"time": "02:09 AM",
"dir": null,
"dir": false,
"size": "421,888",
"filename": "IEShims.dll"
},
{
"date": "12/06/2019",
"time": "02:47 PM",
"dir": null,
"dir": false,
"size": "819,136",
"filename": "iexplore.exe"
},
{
"date": "12/07/2019",
"time": "02:14 AM",
"dir": "<DIR>",
"dir": true,
"size": null,
"filename": "images"
},
{
"date": "12/07/2019",
"time": "02:14 AM",
"dir": "<DIR>",
"dir": true,
"size": null,
"filename": "SIGNUP"
},
{
"date": "12/07/2019",
"time": "02:09 AM",
"dir": null,
"dir": false,
"size": "48,536",
"filename": "sqmapi.dll"
}
]
}
"""
import re

1
tests/fixtures/windows-10/dir-S.json vendored Normal file
View File

@ -0,0 +1 @@
{"C:\\Program Files\\Internet Explorer": [{"date": "03/24/2021", "time": "03:15 PM", "dir": true, "size": null, "filename": "."}, {"date": "03/24/2021", "time": "03:15 PM", "dir": true, "size": null, "filename": ".."}, {"date": "12/07/2019", "time": "02:49 AM", "dir": true, "size": null, "filename": "en-US"}, {"date": "12/07/2019", "time": "02:09 AM", "dir": false, "size": 54784, "filename": "ExtExport.exe"}, {"date": "03/24/2021", "time": "03:15 PM", "dir": false, "size": 0, "filename": "file name.txt"}, {"date": "12/07/2019", "time": "02:09 AM", "dir": false, "size": 54784, "filename": "hmmapi.dll"}, {"date": "12/07/2019", "time": "02:09 AM", "dir": false, "size": 515072, "filename": "iediagcmd.exe"}, {"date": "12/07/2019", "time": "02:09 AM", "dir": false, "size": 504832, "filename": "ieinstal.exe"}, {"date": "12/07/2019", "time": "02:09 AM", "dir": false, "size": 224768, "filename": "ielowutil.exe"}, {"date": "12/07/2019", "time": "02:09 AM", "dir": false, "size": 421888, "filename": "IEShims.dll"}, {"date": "12/06/2019", "time": "02:47 PM", "dir": false, "size": 819136, "filename": "iexplore.exe"}, {"date": "12/07/2019", "time": "02:14 AM", "dir": true, "size": null, "filename": "images"}, {"date": "12/07/2019", "time": "02:14 AM", "dir": true, "size": null, "filename": "SIGNUP"}, {"date": "12/07/2019", "time": "02:09 AM", "dir": false, "size": 48536, "filename": "sqmapi.dll"}], "C:\\Program Files\\Internet Explorer\\en-US": [{"date": "12/07/2019", "time": "02:49 AM", "dir": true, "size": null, "filename": "."}, {"date": "12/07/2019", "time": "02:49 AM", "dir": true, "size": null, "filename": ".."}, {"date": "12/07/2019", "time": "02:48 AM", "dir": false, "size": 2560, "filename": "hmmapi.dll.mui"}, {"date": "12/07/2019", "time": "02:48 AM", "dir": false, "size": 2560, "filename": "ieinstal.exe.mui"}, {"date": "12/07/2019", "time": "02:48 AM", "dir": false, "size": 5632, "filename": "iexplore.exe.mui"}], "C:\\Program Files\\Internet Explorer\\images": [{"date": "12/07/2019", "time": "02:14 AM", "dir": true, "size": null, "filename": "."}, {"date": "12/07/2019", "time": "02:14 AM", "dir": true, "size": null, "filename": ".."}, {"date": "12/07/2019", "time": "02:09 AM", "dir": false, "size": 5430, "filename": "bing.ico"}], "C:\\Program Files\\Internet Explorer\\SIGNUP": [{"date": "12/07/2019", "time": "02:14 AM", "dir": true, "size": null, "filename": "."}, {"date": "12/07/2019", "time": "02:14 AM", "dir": true, "size": null, "filename": ".."}, {"date": "12/07/2019", "time": "02:12 AM", "dir": false, "size": 452, "filename": "install.ins"}]}

47
tests/fixtures/windows-10/dir-S.out vendored Normal file
View File

@ -0,0 +1,47 @@
Volume in drive C has no label.
Volume Serial Number is 246B-3B5A
Directory of C:\Program Files\Internet Explorer
03/24/2021 03:15 PM <DIR> .
03/24/2021 03:15 PM <DIR> ..
12/07/2019 02:49 AM <DIR> en-US
12/07/2019 02:09 AM 54,784 ExtExport.exe
03/24/2021 03:15 PM 0 file name.txt
12/07/2019 02:09 AM 54,784 hmmapi.dll
12/07/2019 02:09 AM 515,072 iediagcmd.exe
12/07/2019 02:09 AM 504,832 ieinstal.exe
12/07/2019 02:09 AM 224,768 ielowutil.exe
12/07/2019 02:09 AM 421,888 IEShims.dll
12/06/2019 02:47 PM 819,136 iexplore.exe
12/07/2019 02:14 AM <DIR> images
12/07/2019 02:14 AM <DIR> SIGNUP
12/07/2019 02:09 AM 48,536 sqmapi.dll
9 File(s) 2,643,800 bytes
Directory of C:\Program Files\Internet Explorer\en-US
12/07/2019 02:49 AM <DIR> .
12/07/2019 02:49 AM <DIR> ..
12/07/2019 02:48 AM 2,560 hmmapi.dll.mui
12/07/2019 02:48 AM 2,560 ieinstal.exe.mui
12/07/2019 02:48 AM 5,632 iexplore.exe.mui
3 File(s) 10,752 bytes
Directory of C:\Program Files\Internet Explorer\images
12/07/2019 02:14 AM <DIR> .
12/07/2019 02:14 AM <DIR> ..
12/07/2019 02:09 AM 5,430 bing.ico
1 File(s) 5,430 bytes
Directory of C:\Program Files\Internet Explorer\SIGNUP
12/07/2019 02:14 AM <DIR> .
12/07/2019 02:14 AM <DIR> ..
12/07/2019 02:12 AM 452 install.ins
1 File(s) 452 bytes
Total Files Listed:
14 File(s) 2,660,434 bytes
11 Dir(s) 33,300,922,368 bytes free

View File

@ -57,6 +57,14 @@ class MyTests(unittest.TestCase):
'r', encoding='utf-8') as f:
self.windows_10_dir_dirs_json = json.loads(f.read())
with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/windows-10/dir-S.out'),
'r', encoding='utf-8') as f:
self.windows_10_dir_S= f.read()
with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/windows-10/dir-S.json'),
'r', encoding='utf-8') as f:
self.windows_10_dir_S_json = json.loads(f.read())
def test_dir_error(self):
self.assertEqual(jc.parsers.dir.parse("Access is denied.", quiet=True), {})
@ -91,6 +99,10 @@ class MyTests(unittest.TestCase):
self.assertEqual(jc.parsers.dir.parse(self.windows_10_dir_dirs, quiet=True),
self.windows_10_dir_dirs_json)
def test_dir_windows_10_S(self):
self.assertEqual(jc.parsers.dir.parse(self.windows_10_dir_S, quiet=True),
self.windows_10_dir_S_json)
if __name__ == '__main__':
unittest.main()