skip to navigation
skip to content

Not Logged In

Configo 1.2

Easy way to use existing JSON, XML or YAML config files from bash shell/scripts


Easy way to use existing JSON, XML or YAML config files from bash shell/scripts

# How can i use it?

###Sample json config file
Lets say that this config file is located `/etc/myapp/config.json`

      "config_version": "1.0",
      "application": "My Application",
      "webservers": {
        "api": {
          "host": "",
          "port": "80",
          "apikey": "somekey",
          "apisecret": "somesecret"

        "img": {
          "host": "",
          "port": "8013",
          "apikey": "ihuu",
          "apisecret": "somesecret"

        "video": {
          "host": "",
          "port": "80",
          "apikey": "somekey",
          "apisecret": "somesecret"

      "databases": {
        "web": { "host": "", "port": "3306", "username": "myuser", "password": "mypass" },
        "office": { "host": "", "port": "3306", "username": "myuser", "password": "mypass" }

#Usage examples
These examples will show you several different ways about how you can work with your JSON/YAML/XML config files in shell with ease.
All examples use the sample config file above.

### Syntax
 1. `configo from config get key`
 2. `configo get key` //That's what i say 'lazy way' ... more info below

### Shell example in standard way
    # configo from /etc/myapp/config.json get application
    //-> My Application

### Shell example in standard way with `nested` properties
    # configo from /etc/myapp/config.json get

### Shell scripts example in standard way
    CONFIGO="configo from $TARGET_CONF";
    echo $VARNAME;
    //-> mypass

### Lazy example
If you want you can assign the path to your config file to `CONFIGO_CONF` variable and `configo` will use it without having to define it as an argument every time.

    export CONFIGO_CONF=`/etc/myapp/config.json`

    API_WEBSERVER_HOSTNAME=`configo get`

    OFFICE_DB_HOST=`configo get`


* Python 2.6+
* PyYAML (latest version recommended) - tested with PyYAML 3.10

# Installation

from source

    # git clone
    # cd configo
    # python install

with pip

    # pip install configo

# Testing
All tests are located in `tests` dir. They are 2 different test suites. One test suit for `configo api` and another for the `command line tool`.

So what should we do to run tests:

    cd tests
    ln -s ../configo configo
    ln -s ../bin bin

If you want to run `configo api` tests just run:


If you run `command line tool` tests you must do the following:

    export CONFIGO_CONF=`pwd`/fixtures/config.json # this is necessary to work tests with lazy syntax

... and after that just run:


- Add xml support
- Add yaml support


### 1.2:

- add yaml support
- add tests for yaml support
- small refactoring

### 1.1:

- add tests for api and command line tool
- refactor configo api and command line tool

Copyright (c) 2012 Marian Ignev. See LICENSE for further details.
File Type Py Version Uploaded on Size
Configo-1.2.tar.gz (md5) Source 2012-11-26 3KB
  • Downloads (All Versions):
  • 12 downloads in the last day
  • 87 downloads in the last week
  • 436 downloads in the last month