shorthand JSON and form encoding syntax in the shell
Switch branches/tags
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
jarg
man
tests
.gitignore
.travis.yml
LICENSE
MANIFEST.in
Makefile
README.rst
setup.py

README.rst

jarg

https://travis-ci.org/jdp/jarg.svg?branch=master

jarg is an encoding shorthand for your shell. It is a command-line utility that makes generating data in formats like JSON, YAML, and form encoding easier in the shell.

Installation

Install from PyPI:

$ pip install jarg

Usage

Each argument to jarg should be in the format of name=value. Values are interpreted as their closest native encoding value, and the default dialect is JSON. The most common case is probably string names and values:

$ jarg foo=bar baz=quux
{"foo": "bar", "baz": "quux"}

Floats and integers will work too:

$ jarg foo=10 bar=4.2
{"foo": 10, "bar": 4.2}

The value is optional. If you leave it out, it is interpreted as null:

$ jarg foo
{"foo": null}

The name portions have the same syntax and semantics as HTML JSON names:

$ jarg foo[]=bar foo[]=baz bar[baz]=quux
{"foo": ["bar", "baz"], "bar": {"baz": "quux"}}

You can also write literal values directly, using the name:=value syntax. That lets you write things like booleans, lists, and explicit strings:

$ jarg foo:=true bar:=\"123\"
{"foo": true, "bar": "123"}
$ jarg foo:=[1,2,3]
{"foo": [1, 2, 3]}

Dialects

The default dialect is JSON, and includes support for YAML and form encoding.

To use the YAML dialect, use the -y/--yaml switch:

$ jarg -y name=jarg type="cli tool" traits[]=dope traits[]=rad
---
name: jarg
traits: [dope, rad]
type: cli tool

You can switch to the form encoding dialect with the -f/--form switch:

$ jarg -f foo=bar baz="jarg is dope"
foo=bar&baz=jarg+is+dope