JC Version 1.19.0 Released

I’m excited to announce the release of jc version 1.19.0 available on github and pypi. jc now supports 100 standard and streaming parsers. Thank you to the Open Source community for making this possible!

jc can be installed via pip or through several official OS package repositories, including Debian, Ubuntu, Fedora, openSUSE, Arch Linux, NixOS Linux, Guix System Linux, FreeBSD, and macOS. For more information on how to get jc, see the project README.

To upgrade with pip:

$ pip3 install --upgrade jc
Sections

    What’s New

    • Add git log streaming parser that outputs JSON lines (or a lazy Iterable when used as a python library). This is great for converting very large git logs to JSON so the entire log does not need to be loaded into RAM.
    • Add chage --list command parser tested on linux
    • Fix git log standard parser for corner-cases where commit hash values are the only value in a line in messages
    • Fix df command parser for rare instances when a newline is found at the end of the output
    • Allow jc to pip install on unsupported python version 3.6 since this version is still widely in use. Note that jc is only tested on officially supported python versions.
    • Fix asciitable-m parser to skip some rows that contain detected column separator characters in cell data. A warning message will be printed to STDERR unless -q or quiet=True is used.
    • New zip package for Windows. Simply unzip the files anywhere in the execution PATH.

    New Parsers

    git log command streaming parser

    Support for the git log command. This is a streaming parser and it outputs JSON Lines. (Documentation):

    $ git log | jc --git-log-s
    {"commit":"a730ae18c8e81c5261db132df73cd74f272a0a26","author":"Kelly...}
    {"commit":"930bf439c06c48a952baec05a9896c8d92b7693e","author":"Kelly...}

    chage --list command parser

    Linux support for the chage --list command. (Documentation)

    $ chage --list joeuser | jc --chage -p
    {
      "password_last_changed": "never",
      "password_expires": "never",
      "password_inactive": "never",
      "account_expires": "never",
      "min_days_between_password_change": 0,
      "max_days_between_password_change": 99999,
      "warning_days_before_password_expires": 7
    }

    Happy parsing!

    Published by kellyjonbrazil

    I'm a cybersecurity and cloud computing nerd.

    Leave a Reply

    %d bloggers like this: