- Drop python 2.6, 3.2 and 3.3
- Add explicit support for python 3.6
- Add support for symlinks
- Improved support for windows
- Use exec (os.execvpe) to replace the envdir process with the child process (fixes #20).
- Change isenvvar() to only check for = in var names.
- Fixed handling SIGTERM signals to make sure all children of the forked process are killed, too. Thanks to Horst Gutmann for the report and help fixing it.
- Rewrote tests with pytest.
- Vastly extended Python API.
- Added Sphinx based docs: https://envdir.readthedocs.io/
- Fixed killing child process when capturing keyboard interrupt.
- Added standalone script based on PEPs 441 and 397, compatible with Python Launcher for Windows. See the installation instructions for more info.
- Added check if the the provided path is a directory and throw an error if not. This adds compatibility to the daemontools’ envdir.
- Make sure to convert Nulls (
\0) to newlines as done so in daemontools’ envdir.
envdir.read()to actually work with already existing environment variables. Extended docs to test Python use.
envshellcommand which launches a subshell using the environment as defined in the given envdir. Example:
$ envshell ~/mysite/envs/prod/ Launching envshell for /home/jezdez/mysite/envs/prod. Type 'exit' or 'Ctrl+D' to return. $ python manage.py runserver ..
KeyboardInterruptexceptions to not show a traceback from envdir but the repsonse from the called command.
- Allow multiline environment variables. Thanks to Horst Gutmann for the suggestion. This is a departure from daemontools’ standard which only allows the first line of the environment variable file.
python -m envdir
- Extended README to better describe the purpose
- Added ability to use envdir from Python.
- Initial release.