Gojo Save

Yet another Go implementation of jo

Project README

gojo

CI Status Go Report Card MIT License release pkg.go.dev

Yet another Go implementation of jo

This is an implementation of jo command written in Go language.

Usage

 $ gojo foo=bar qux=quux
{"foo":"bar","qux":"quux"}
 $ gojo -p foo=bar qux=quux
{
  "foo": "bar",
  "qux": "quux"
}
 $ gojo -a foo bar baz
["foo","bar","baz"]
 $ seq 10 | gojo -a
[1,2,3,4,5,6,7,8,9,10]
 $ gojo -p foo=$(gojo bar=$(gojo baz=100))
{
  "foo": {
    "bar": {
      "baz": 100
    }
  }
}
 $ gojo -p foo[bar][baz][qux][quux]=128
{
  "foo": {
    "bar": {
      "baz": {
        "qux": {
          "quux": 128
        }
      }
    }
  }
}
 $ gojo -p res[foo][][id]=10 res[foo][][id]=20 res[cnt]=2
{
  "res": {
    "foo": [
      {
        "id": 10
      },
      {
        "id": 20
      }
    ],
    "cnt": 2
  }
}
 $ gojo -y res[foo][][id]=10 res[foo][][id]=20 res[cnt]=2
res:
  foo:
    - id: 10
    - id: 20
  cnt: 2
 $ gojo foo=@testdata/file.txt    # read contents from file
{"foo":"a\nb\nc\nd\ne"}
 $ gojo foo=:testdata/file1.json  # json value of file
{"foo":{"x":1,"z":2,"y":3}}
 $ gojo foo=%testdata/file.txt    # base64 of file contents
{"foo":"YQpiCmMKZAplCg=="}

Installation

Homebrew

brew install itchyny/tap/gojo

Build from source

go install github.com/itchyny/gojo/cmd/gojo@latest

Difference to jo

  • Implemented in Go and Go-gettable, also useful for library usage.
  • Implements nested paths (example: foo[x][y][z]=1, foo[][][]=1).
  • Implements YAML output option -y (example: gojo -y foo=1 outputs foo: 1).
  • Drops support of k@v syntax (use k=true or k=false) and type guessing flags.
  • Does not print duplicate keys (although duplicate key in JSON is valid, it's not that useful and overwritten by the latter).

Bug Tracker

Report bug at Issues・itchyny/gojo - GitHub.

Author

itchyny (https://github.com/itchyny)

License

This software is released under the MIT License, see LICENSE.

Open Source Agenda is not affiliated with "Gojo" Project. README Source: itchyny/gojo
Stars
49
Open Issues
0
Last Commit
1 year ago
Repository
License
MIT

Open Source Agenda Badge

Open Source Agenda Rating