gojo

package module
v0.3.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 1, 2023 License: MIT Imports: 7 Imported by: 1

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.

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Array

func Array(args []string) ([]any, error)

Array builds a new slice from arguments.

func Map added in v0.2.0

func Map(args []string) (*orderedmap.OrderedMap, error)

Map builds a new ordered map from arguments.

Types

This section is empty.

Directories

Path Synopsis
cmd
gojo
gojo - Go implementation of jo
gojo - Go implementation of jo

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL