jeep-cli
A command line tool to filter, sort, and process json text. Useful when making API calls via curl
Last updated 5 years ago by craigerm .
MIT · Repository · Bugs · Original npm · Tarball · package.json
$ cnpm install jeep-cli 
SYNC missed versions from official npm registry.

JEEP

JEEP is a small command line utility for processing JSON text. It provides, filtering, sorting, plucking fields, etc. It was created to be used when making API calls with curl that return JSON.

Quick examples:

Update: Pull requests default to Open by default so this example is not the best, but you ge the idea. I'll update this soon hopefully, maybe, probably not.

# Get all tag names for rails repository
curl https://api.github.com/repos/rails/rails/tags | jeep -p "name"

# Get count of tag names for rails repository
curl https://api.github.com/repos/rails/rails/tags | jeep -c

# Get all open pull requests
curl https://api.github.com/repos/rails/rails/pulls | jeep -w '{state: "Open"}'

# Get count of all open pull requests
curl https://api.github.com/repos/rails/rails/pulls | jeep -w '{state: "Open"}' -c

Installation

npm install -g jeep-cli

Documentation

Most arguments can be combined. For example you can filter, sort and return the first item remaining. Or filter the data and get the count of the remaining items.

Count items in array (-c or --count)

echo '["John","Steve"]' | jeep -c # returns 2

Return first item in array (-f or --first)

echo '["John,"Steve"]' | jeep -f # returns "John"

Returns keys for an object (k or --keys)

# Returns ["id","name","email"]
echo '{"id": 1, "name": "John", email: "john@email.com"}' | jeep -k

Return last item in array (-l or --last)

echo '["John,"Steve"]' | jeep -l # returns "Steve"

Pluck property names from array (-p or --pluck)

Pluck can be be a single property or a comma separated list of properties

# returns ["john","steve"]
echo '[{"name":"john","id":1},{"name":"steve","id":2}]' | jeep -p "name" 

# returns title and status of all pull requests
curl https://api.github.com/repos/rails/rails/pulls | jeep -p "title,status"

Sort by property name (-s --sortBy)

# Returns array sorted by id in ascending order
echo '[{id:5},{id:7},{id:3}]' | jeep -s "id"

Sort by property name descending (-S --sortByDesc)

# Returns array sorted by id in descending order
echo '[{id:5},{id:7},{id:3}]' | jeep -S "id"

Simple filter by property values (-w --where)

# Filters records by 'Open' state
curl https://api.github.com/repos/rails/rails/pulls | jeep -w '{state:"Open"}'

Other

jeep -h # View help (-h or --help)
jeep -v # View version (-V or --version)

Formatted and colourful JSON output

Right now I just use the awesome pjson tool for this.

curl https://api.github.com/repos/rails/rails/pulls | jeep  -s "title" | pjson

The name JEEP?

Json Eliminater, Editor and Processor...ok that's not really true. I just wanted a three or four letter name that started with J. And all the good ones are taken of course...

License

Copyright (c) Craig MacGregor 2015 under MIT LICENSE

Current Tags

  • 0.0.4                                ...           latest (5 years ago)

4 Versions

  • 0.0.4                                ...           5 years ago
  • 0.0.3                                ...           5 years ago
  • 0.0.2                                ...           5 years ago
  • 0.0.1                                ...           5 years ago
Maintainers (1)
Downloads
Today 0
This Week 0
This Month 0
Last Day 0
Last Week 0
Last Month 0
Dependencies (3)
Dev Dependencies (2)
Dependents (2)

Copyright 2014 - 2017 © taobao.org |