Metadata-Version: 1.1
Name: runenv
Version: 0.4.0
Summary: Wrapper to run programs with different env
Home-page: https://github.com/onjin/runenv
Author: Marek Wywiał
Author-email: onjinx@gmail.com
License: BSD
Description: ===============================
        runenv
        ===============================
        
        .. image:: https://img.shields.io/travis/onjin/runenv.svg
                :target: https://travis-ci.org/onjin/runenv
        
        .. image:: https://img.shields.io/pypi/v/runenv.svg
                :target: https://pypi.python.org/pypi/runenv
        
        .. image:: https://img.shields.io/badge/license-New%20BSD-blue.svg
                :target: https://github.com/onjin/runenv/blob/master/LICENSE
        
        .. image:: https://img.shields.io/pypi/dm/runenv.svg
                :target: https://pypi.python.org/pypi/runenv
        
        
        Wrapper to run programs with modified environment variables loaded from given file. You can use *runenv* to manage your
        app settings using 12-factor_ principles.
        
        You can use same environment file with **runenv** and with **docker** using `env-file`_ parameter
        
        .. _env-file: https://docs.docker.com/reference/commandline/cli/
        .. _12-factor: http://12factor.net/
        
        
        * Free software: BSD license
        * Documentation: https://runenv.readthedocs.org.
        
        --------
        Features
        --------
        
        CLI:
        
        * CLI tool to load environment variables from given file
        
        Python API:
        
        * load variables from `.env` or given file
        * load only variables with given `prefix`
        * `prefix` can be stripped during loading
        * detect whether environment was loaded by `runenv` CLI
        * force load even `runenv` CLI was used
        * `search_parent` path to given level for `env_file`
        
        
        ------------
        Installation
        ------------
        
        In order to install use `pip`::
        
            $ pip install -U runenv
        
        -----
        Usage
        -----
        
        Run from shell::
        
            $ runenv env.development ./manage.py runserver
        
        example `env.development` file::
        
            BASE_URL=http://127.0.0.1:8000
            DATABASE_URI=postgres://postgres:password@localhost/dbname
            SECRET_KEY=y7W8pbRcuPuAmgTHsJtEpKocb7XPcV0u
        
            # email settings
            EMAIL_HOST=smtp.mandrillapp.com
            EMAIL_PORT=587
            EMAIL_HOST_USER=someuser
            EMAIL_HOST_PASSWORD=hardpassword
            EMAIL_FROM=dev@local.host
            EMAIL_USE_TLS=1
        
        ----------
        Python API
        ----------
        
        **load_env(env_file='.env', prefix=None, strip_prefix=True, force=False, search_parent=0)**
        
        Loads environment from given ``env_file```, default `.env`.
        
        
        Options:
        
         * env_file - relative or absolute path to file with environment variables;
           default `.env`
         * prefix - prefix to match variables f.i. `APP_`
         * strip_prefix - whether to strip `prefix` during environment loading or not;
           default `True`
         * force - load env_file, event `runenv` CLI command was used; default `False`
         * search_parent - search env file in parent directories till given level;
           default `0`
        
        
        If ``prefix`` provided only variables started with given prefix will be loaded to environment with keys truncated from
        ``prefix``. To preserver prefix, pass ``strip_prefix=False``.
        
        Example::
        
            $ echo 'DJANGO_SECRET_KEY=bzemAG0xfdMgFrHBT3tJBbiYIoY6EeAj' > .env
        
            $ python
            >>> import os
            >>> from runenv import load_env
            >>> load_env(prefix='DJANGO_')
            >>> 'DJANGO_SECRET_KEY' in os.environ
            False
            >>> 'SECRET_KEY' in os.environ
            True
            >>> load_env(prefix='DJANGO_', strip_prefix=False)
            >>> 'DJANGO_SECRET_KEY' in os.environ
            True
        
        
        **Notice**: Environment will be not loaded if command was fired by `runenv` wrapper unless you use **force=True** parameter
        
        Wrapper ``runenv`` sets ``_RUNENV_WRAPPED=1`` variable and ``load_env`` does not load variables then.
        
        Example::
        
            $ echo 'DJANGO_SECRET_KEY=bzemAG0xfdMgFrHBT3tJBbiYIoY6EeAj' > .env
        
            $ python
            >>> import os
            >>> from runenv import load_env
            >>> os.environ['_RUNENV_WRAPPED'] = '1'
            >>> load_env()
            >>> 'DJANGO_SECRET_KEY' in os.environ
            False
            >>> load_env(force=True)
            >>> 'DJANGO_SECRET_KEY' in os.environ
            True
        
        
        Django integration
        ------------------
        
        To use ``load_env`` with `Django`_, put in ``manage.py`` and ``wsgi.py`` code::
        
            from runenv import load_env
            load_env()
        
        
        .. _django: http://djangoproject.com/
        
        
        
        
        Similar projects
        ----------------
        
        * https://github.com/jezdez/envdir - runs another program with a modified environment according to files in a specified directory
        * https://github.com/theskumar/python-dotenv - Reads the key,value pair from .env and adds them to environment variable
        
        
        
        
        History
        -------
        
        0.4.0 (2016-08-08)
        ------------------
        * add support for `search_parent` option
        
        0.3.1 (2016-06-21)
        ------------------
        * add support for quoted values
        
        0.3.0 (2016-02-14)
        ------------------
        * change `Development Status` to `5 - Production/Stable`
        
        0.2.5 (2015-11-30)
        ---------------------
        * do not look for executable as absolute path
        
        0.2.4 (2015-07-06)
        ---------------------
        * skip `load_env` if env file does not exists
        
        0.2.3 (2015-06-26)
        ---------------------
        * support to run programs from PATH
        
        0.2.2 (2015-06-16)
        ---------------------
        * fix compatibility with python3
        
        0.2.1 (2015-06-16)
        ---------------------
        * add `strip_prefix` option to `load_env`
        
        0.2.0 (2015-06-16)
        ---------------------
        * add `load_env` (python api)
        
        0.1.4 (2015-06-15)
        ---------------------
        
        * Check if file to run exists and is executable
        
        0.1.3 (2015-06-01)
        ---------------------
        
        * Support for env file comments by '#'
        
        0.1.2 (2015-06-01)
        ---------------------
        
        * Return code from runned command
        
        0.1.1 (2015-05-31)
        ---------------------
        
        * First release on PyPI.
        
Keywords: runenv
Platform: UNKNOWN
Classifier: Development Status :: 5 - Production/Stable
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: BSD License
Classifier: Natural Language :: English
Classifier: Programming Language :: Python :: 2
Classifier: Programming Language :: Python :: 2.6
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.3
Classifier: Programming Language :: Python :: 3.4
