Table of Contents
=================

* [rlx](#rlx)
  * [Install](#install)
  * [Quick Start](#quick-start)
  * [Documentation](#documentation)
  * [Usage](#usage)
  * [Developer](#developer)
    * [Test](#test)
      * [Environment](#environment)
    * [Coverage](#coverage)
    * [Documentation](#documentation-1)
    * [Manual](#manual)
    * [Readme](#readme)
    * [Cheatsheet](#cheatsheet)

rlx
===

[<img src="https://travis-ci.org/tmpfs/rlx.svg" alt="Build Status">](https://travis-ci.org/tmpfs/rlx)
[<img src="http://img.shields.io/npm/v/rlx.svg" alt="npm version">](https://npmjs.org/package/rlx)
[<img src="https://coveralls.io/repos/tmpfs/rlx/badge.svg?branch=master&service=github&v=1" alt="Coverage Status">](https://coveralls.io/github/tmpfs/rlx?branch=master).

Command line interface for [couchdb](http://couchdb.apache.org) designed for POSIX systems.

Requires [node](http://nodejs.org) and [npm](http://www.npmjs.org).

## Install

```
npm i -g rlx
```

## Quick Start

Start [couchdb](http://couchdb.apache.org) in it's default configuration, then run:

```
rlx i               # Launch interactive console
cd :lh              # Use alias to `cd http://localhost:5984`
db ls               # List databases
db add mydb         # Create database
cd mydb             # Use new database
doc add -i mydoc    # Create a new document
doc edit mydoc      # Edit document with `vim`
doc get mydoc       # Print modified and saved document
help                # Learn more commands in the manual
q                   # Quit interactive session
```

## Documentation

The documentation for the program is available via the `help` command, for those familiar with [couchdb](http://couchdb.apache.org) the [cheatsheet](https://github.com/tmpfs/rlx/blob/master/doc/cheatsheet.md) is a good place to start.

## Usage

```
Usage: rlx <command>

where <command> is one of:
    admin, alias, as, application, app, attach, att, batch,
    bulk, config, conf, database, db, document, doc, edit, help,
    http, tt, info, interactive, i, json, j, level, lvl, lint,
    local, lcl, log, login, in, logout, out, runconf, rc,
    replicate, repl, restart, security, sec, session, sess,
    stats, system, sys, tasks, tpl, user, usr, uuids, whoami

rlx --help <cmd>         quick help on <cmd>
rlx help <cmd>           documentation for <cmd>
rlx i                    launch interactive console

rlx@0.2.0 /home/muji/git/rlx
```

## Developer

Developed against `couchdb@1.6.0`, behaviour in earlier versions is undefined.

### Test

Tests require a clean [couchdb](http://couchdb.apache.org) installation running in *admin party* mode.

```
npm test
```

If an rc file is present (`~/.rlx/.rlxrc`) the tests may fail as the default configuration is required you should ensure this file does not exist before running tests.

Quick test executes commands in series but bypasses code coverage and test assertions:

```
npm run qt
```

#### Environment

* `rlx_test_server` - Specify the server to run tests against, default is `http://localhost:5984`.

### Coverage

To run test specs and generate code coverage:

```
npm run cover
```

### Documentation

To generate all documentation (manual, readme, cheatsheet etc):

```
npm run docs
```

### Manual

To generate man pages run (requires [manpage](https://github.com/cli-kit/cli-manpage)):

```
npm run manual
```

Generated man pages are in the [man](https://github.com/tmpfs/rlx/blob/master/doc/man) directory, to dynamically generate man pages set `NODE_ENV` to `devel` and execute the help command:

```
NODE_ENV=devel ./bin/rlx help db
```

### Readme

To build the readme file from the partial definitions (requires [mdp](https://github.com/tmpfs/mdp)):

```
npm run readme
```

### Cheatsheet

To generate the cheatsheet (requires [mdp](https://github.com/tmpfs/mdp)):

```
npm run cheatsheet
```

Generated by [mdp(1)](https://github.com/tmpfs/mdp).

[couchdb]: http://couchdb.apache.org
[node]: http://nodejs.org
[npm]: http://www.npmjs.org
[man]: https://github.com/tmpfs/rlx/blob/master/doc/man
[mdp]: https://github.com/tmpfs/mdp
[manpage]: https://github.com/cli-kit/cli-manpage
