cdbcli - CouchDB Interactive Shell
.. image:: https://img.shields.io/pypi/v/cdbcli.svg
:target: https://pypi.python.org/pypi/cdbcli
:alt: Latest PyPI version
.. image:: https://travis-ci.org/kevinjqiu/cdbcli.svg?branch=master
:target: https://travis-ci.org/kevinjqiu/cdbcli
:alt: Latest Travis CI build status for master
.. image:: https://readthedocs.org/projects/cdbcli/badge/?version=latest
:target: https://cdbcli.readthedocs.io/en/latest/
:alt: Documentation Status
.. image:: https://coveralls.io/repos/github/kevinjqiu/cdbcli/badge.svg
:target: https://coveralls.io/github/kevinjqiu/cdbcli
:alt: Code Coverage
.. image:: https://img.shields.io/badge/license-Apache%202.0-blue.svg
:target: LICENSE
:alt: License
.. image:: https://img.shields.io/badge/docker-kevinjqiu%2Fcdbcli-blue.svg
:target: https://hub.docker.com/r/kevinjqiu/cdbcli/
:alt: Image on Docker Hub
.. image:: https://img.shields.io/badge/aur-cdbcli-blue.svg
:target: https://aur.archlinux.org/packages/cdbcli/
:alt: Arch User Repository
Features
- auto-completion for database name, document id, view name, command
- syntax highlighting of documents and views
- navigate a couchdb server as if it were a file system
- various commands supported
- cd - change database
- ls - list docs under a database
- cat - show content of a doc
- exec - execute a view
- rm - remove a doc
- man - show help on commands
- mkdir - create new database
- du - doc and database size
- lv - list views inside a view doc
- create/update docs using external
$EDITOR
- pipe output to external shell commands, such as
grep
, wc
and jq
Demo
.. image:: https://asciinema.org/a/1mj2j4cxhqmq5m6t16tm82ws8.png
:scale: 50%
:target: https://asciinema.org/a/1mj2j4cxhqmq5m6t16tm82ws8
Usage
This tool allows you to traverse a CouchDB database as if it were a file system. Familiar file system commands are supported, such as ls
, cd
, mkdir
, rm
, etc, while providing context-rich auto-completion.
Starting cdbcli
^^^^^^^^^^^^^^^
Refer to the Installation_ section for guide on how to install cdbcli.
Running cdbcli requires connection parameters to the underlying couchdb instance you want to connnect to.
.. code::
cdbcli --help
Usage: cdbcli [OPTIONS] [DATABASE]
Options:
-h, --host TEXT The host of the couchdb instance
--port TEXT The port of the coouchdb instance
-u, --username TEXT The username to connect as
-p, --password TEXT The password
-P, --askpass / --no-askpass Ask for password?
--tls / --no-tls Use TLS to connect to the couchdb instance?
--help Show this message and exit.
e.g., if you want to connect your couchdb instance at http://yourdomain:9999, you can issue the command::
cdbcli -h yourdomain --port 9999 -u admin -P
Specifying -P
will prompt you for password. You can also use -p
to specify password at the command line, but this is not recommended for sensitive passwords.
By default, cdbcli
connects to the couchdb instance at http://localhost:5984.
You will be greeted by the cdbcli's splash screen::
___ ____ ____ ___ __ ____
/ __)( _ \( _ \ / __)( ) (_ _)
( (__ )(_) )) _ <( (__ )(__ _)(_
\___)(____/(____/ \___)(____)(____)
Welcome to cdbcli 0.1.1
CouchDB version: 1.5.0
Type 'help' or 'man' to get a list of all supported commands
Press <TAB> for command auto-completion
Press Ctrl+C or Ctrl+D or type 'exit' to exit
admin@yourdomain/>
Run with Docker
^^^^^^^^^^^^^^^
cdbcli
is also available as a docker image on the docker hub <https://hub.docker.com/r/kevinjqiu/cdbcli/>
_
To run::
docker run -it kevinjqiu/cdbcli cdbcli <arguments>
The docker networking restrictions apply, so if you want to connect to a database on localhost, e.g., you will need to let the container use the host's networking::
docker run -it --net=host kevinjqiu/cdbcli cdbcli <arguments>
Installation
.. code::
pip install cdbcli
Contributing
- Clone this repository.
- Make a Python virtualenv
- Install requirements:
pip install -r requirements-test.txt
- Install
docker <www.docker.com>
_ because the integration tests require it - Run
make start_couchdb
. This will start the testing couchdb instance using docker - Run
make test
- Run
make stop_couchdb
to clean up
Contributing to Documentation
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
- Clone this repository.
- Make a Python virtualenv
- Install requirements:
pip install -r requirements-docs.txt
- Run
make docs
. The documentation can be accessed under docs/build/index.html.
Licence
cdbcli
is licensed under Apache 2.0
Authors
cdbcli
was written by Kevin J. Qiu <kevin@idempotent.ca>
_.
See all contributors <https://github.com/kevinjqiu/cdbcli/graphs/contributors>
_
Attribution
python-prompt-toolkit <https://github.com/jonathanslenders/python-prompt-toolkit>
_ by Jonathan Slendersclick <http://click.pocoo.org/5/>
_ by Armin Ronacher