jc
babashka
jc | babashka | |
---|---|---|
96 | 2 | |
7,573 | 1,711 | |
- | - | |
9.5 | 9.7 | |
3 days ago | over 3 years ago | |
Python | Clojure | |
MIT License | Eclipse Public License 1.0 |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
jc
-
Xonsh: Python-powered, cross-platform, Unix-gazing shell
https://github.com/kellyjonbrazil/jc - "CLI tool and python library that converts the output of popular command-line tools, file-types, and common strings to JSON, YAML, or Dictionaries. This allows piping of output to tools like jq and simplifying automation scripts."
-
Gooey: Turn almost any Python command line program into a full GUI application
> I'd love to see programs communicate through a typed JSON/proto format that shed enough details to make this more independent, and get useful shell command structuring/completion or full blown GUIs from simply introspecting the expected input and output types.
You should try PowerShell. It's basically Microsoft's .NET ecosystem molded into an interactive command line. I'm not entirely sure if PoweShell can make full use of the static types that build up its core, but its ability to exchange objects in the command line is almost unmatched.
On Linux you can use `jc` (https://github.com/kellyjonbrazil/jc) combined with `jq` (https://jqlang.github.io/jq/) to glue together command lines.
- jc: Converts the output of popular command-line tools to JSON
- why does the proc directory exist?
- Open source python projecto to contribute to
-
jq 1.7 Released
In addition to my previous comment about jq-like tools, I want to share a couple other interesting tools, which I use alongside jq are jo [0] and jc [1].
[0]: https://github.com/jpmens/jo
[1]: https://github.com/kellyjonbrazil/jc
-
The Case for Nushell
> I wanted to write some wrappers for the standard commands that automatically did all this via `jq`.
If you're not already aware of it, you may wish to check out `jc`[0] which describes itself as a "CLI tool and python library that converts the output of popular command-line tools, file-types, and common strings to JSON, YAML, or Dictionaries. This allows piping of output to tools like jq..."
The `jc` documentation[1] & parser[2] for `ls` also demonstrates that reliable & cross-platform parsing of even "basic" commands can be non-trivial.
[0] https://github.com/kellyjonbrazil/jc
[1] https://kellyjonbrazil.github.io/jc/docs/parsers/ls
[2] https://github.com/kellyjonbrazil/jc/blob/4cd721be8595db52b6...
babashka
-
Show HN: Bbb – an easy way to build and compile Clojure CLIs with GraalVM
I've been learning Clojure recently and loving it, but one thing I've found myself missing from my Golang days is how easy it is to build and deploy CLI tools in Golang.
With GraalVM it's finally possible to compile Clojure apps into static binaries that give your users a deploy and startup experience similar to Go's, but I found GraalVM very difficult to configure and use, and was often frustrated because not all JVM code is compatible with GraalVM. Worse still, because native-images take a while to build you often don't find out that your working JVM Clojure code won't work as a native-image until it's too late.
BabashkaBins/bbb is my attempt to fix this: it lets you easily run the same codebase under babashka or JVM Clojure, and will automate compiling your project to a static binary for you using GraalVM's native-image. It also takes care of collecting some tweaks that make it easy to use the cli-magic [2] library under babashka, which means you can easily make complex CLI tools with nested subcommands a la git or docker, with all the bells and whistles.
Since babashka is itself compiled under GraalVM, this arrangement provides a other few nice benefits: 1) babashka starts quickly, so you can test your CLI from an actual command line without waiting for the JVM to spin up each time. 2) babashka's codebase contains a treasure trove of GraalVM related tweaks and fixes that using bbb lets you take advantage of in your own CLIs for free, and 3) it functions as a quick sanity check since babashka itself is compiled under GraalVM. If you find yourself doing something that's not GraalVM compatible at least you'll know early!
[1]: https://github.com/borkdude/babashka
-
A Practical Introduction to jq (and more)
```
[1]: https://github.com/borkdude/babashka
What are some alternatives?
jq - Command-line JSON processor [Moved to: https://github.com/jqlang/jq]
PowerShell - PowerShell for every system!
jq - Command-line JSON processor
cheshire - Clojure JSON and JSON SMILE (binary json format) encoding/decoding
murex - A smarter shell and scripting environment with advanced features designed for usability, safety and productivity (eg smarter DevOps tooling)
specter-cli - A native Specter CLI, compiled with GraalVM native-image and executed by SCI.
jello - CLI tool to filter JSON and JSON Lines data with Python syntax. (Similar to jq)
clojure-lsp - Clojure & ClojureScript Language Server (LSP) implementation
Octo Pack - Creates Octopus-compatible NuGet packages
jq-web - jq in the browser with emscripten.
pdf2image - A python module that wraps the pdftoppm utility to convert PDF to PIL Image object
tools-deps-native - Run tools.deps as a native binary