kmder
v0.1.4
Published
<h3 align="center"> <br> <img width="400" src="https://rawgit.com/brandon93s/kmder/master/media/logo.svg" alt="kmder" /> <br> <br> </h3>
Downloads
10
Readme
kmder
Kmder is a CLI runner that aims to make writing, executing and distributing CLI commands a breeze. :palm_tree:
Features
- ✏️ Simple, often declarative command definitions
- 📦 Out of the box support for HTTP, SQL, Elasticsearch and more
- 😍 Build shareable commands - easily distribute directly or in a repo
- 📡 Built-in reporting - log your CLI output as a table, pretty-json, etc
Install
Install with yarn:
yarn global add kmder
or with npm:
npm install kmder --global
CLI Usage
> kmd help
<kmd> <..args> Execute kmd
ls List available kmd(s)
help Display help
source Manage kmd sources
version List kmd version
reset Reset sources and settings
Examples
Browse kmder-kmds for additional command examples.
The following defines the declarative fx
command which retrieves current exchange rates for the given currencies:
// fx.json
{
"type": "http",
"url": "https://api.fixer.io/latest?base={0}&symbols={1}",
"jp": "$.rates.{1}"
}
> kmd fx USD GPB
0.73792
// user.json
{
"type": "mysql",
"connection": {
"host": "db.example.com",
"user": "kmdertest",
"password": "kmder-test",
"database": "kmdertest"
},
"query": "SELECT user_name, first, last FROM `users` WHERE `user_name` LIKE '%{0}%'"
}
> kmd user bsmith
----------------------------
user_name | first | last |
----------------------------
bsmith | Brandon | Smith
The following defines the max
command which returns the maximum value passed to the command. This example shows that a command can be custom, arbitrary JavaScript:
// max.js
module.exports.run = (args) => {
return Math.max(...args)
}
> kmd max -5 5 9 99 -99
99
Documentation
Browse the wiki for full documentation:
- Managing command sources (folders, repositories, etc)
- Available strategies (http, mysql, mssql, es, etc) and their options
- Command definitions (method hooks, types, dependencies)
- Persistent data storage for commands
- And more!
License
MIT © Brandon Smith