https://github.com/adamcharnock/dokku-client
Heroku-style command line interface for Dokku
https://github.com/adamcharnock/dokku-client
Last synced: 2 months ago
JSON representation
Heroku-style command line interface for Dokku
- Host: GitHub
- URL: https://github.com/adamcharnock/dokku-client
- Owner: adamcharnock
- License: mit
- Archived: true
- Created: 2013-08-04T18:10:37.000Z (almost 12 years ago)
- Default Branch: master
- Last Pushed: 2014-05-21T14:02:20.000Z (about 11 years ago)
- Last Synced: 2025-02-16T06:04:17.992Z (3 months ago)
- Language: Python
- Size: 194 KB
- Stars: 49
- Watchers: 5
- Forks: 6
- Open Issues: 3
-
Metadata Files:
- Readme: README.rst
- Changelog: CHANGES.txt
- License: LICENSE.txt
Awesome Lists containing this project
README
Heroku-like command line interface for `Dokku`_
===============================================**Note:** This project is in the very early stages of development.
You can help by adding commands (see below)... image:: https://badge.fury.io/py/dokku-client.png
:target: https://badge.fury.io/py/dokku-client.. image:: https://pypip.in/d/dokku-client/badge.png
:target: https://pypi.python.org/pypi/dokku-clientInstallation
------------.. code-block:: bash
pip install dokku-client
Configuration
-------------You can specify the Dokku host & app on the command line, but you may
find it convenient to set the following environment variables instead:.. code-block:: bash
export [email protected]
export DOKKU_APP=my-app-nameSetting these variables in your virtualenv's `postactivate` hook may
be useful.Usage
-----Once installed, usage is simple:
.. code-block:: bash
dokku-client help
Produces:
.. code-block:: none
Client for Dokku
usage:
dokku-client [...]
dokku-client helpglobal options:
-H , --host= Host address
-a , --app= App namefull list of available commands:
help Show this help message
configget Set one or more config options
configset Set one or more config options in the app's ENV file
prompt Open a prompt
restart Restart the containerSee 'git help ' for more information on a specific command.
Contributing new commands
-------------------------Dokku-client allows any developer to hook in extra commands. This is done using
exactly the same mechanism that dokku-client uses internally, that of entry points
provided by ``setuptools``.First, create a python package. You may have your own favorite way of doing this, but I
use seed_:.. code-block:: bash
mkdir dokku-client-mycommand
cd dokku-client-mycommand
pip install seed
seed create
lsSecond, create a class which extends ``dokku_client.BaseCommand`` and implements the method
``main(args)``. Also, the doc-block at the top
of the class will be used by docopt_ to parse any command line arguments, so make
sure you include that. See the `prompt command`_ for an example.And third, in your new ``setup.py`` file, specify your new class as an entry point:
.. code-block:: python
entry_points={
'dokku_client.commands': [
'mycommand = dokku_client_mycommand.mycommand:MyCommand',
],
}Run ``setup.py`` so that the new entry point is initialized:
.. code-block:: bash
# Run in develop mode, so files will not be copied away.
# You can continue to edit your code as usual
python setup.py developYou should now find that your new command is available in dokku-client,
run ``dokku-client help`` to check.Once done, you can release your package to PyPi using ``seed release --initial``.
.. _Dokku: https://github.com/progrium/dokku
.. _docopt: http://docopt.org/
.. _prompt command: https://github.com/adamcharnock/dokku-client/blob/master/dokku_client/commands/prompt.py
.. _seed: https://github.com/adamcharnock/seed