diff --git a/CHANGELOG.md b/CHANGELOG.md index fc50d9e..b7c2db6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,7 +2,13 @@ All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines. -## [Unreleased](https://github.com/dotenvx/python-dotenvx/compare/v0.2.6...main) +## [Unreleased](https://github.com/dotenvx/python-dotenvx/compare/v0.3.0...main) + +## [0.3.0](https://github.com/dotenvx/dotenvx/compare/v0.2.6...v0.3.0) + +### Added + +* Add `dotenv_path` and `override` arguments ([#4](https://github.com/dotenvx/python-dotenvx/pull/4)) ## [0.2.6](https://github.com/dotenvx/dotenvx/compare/v0.2.5...v0.2.6) diff --git a/src/dotenvx/main.py b/src/dotenvx/main.py index 8dab16a..efbed54 100644 --- a/src/dotenvx/main.py +++ b/src/dotenvx/main.py @@ -8,8 +8,14 @@ ERROR_MISSING_BINARY = "[MISSING_BINARY] missing dotenvx binary\n[MISSING_BINARY] https://github.com/dotenvx/dotenvx/issues/576" -def load_dotenvx(): - output = get() +def load_dotenvx( + dotenv_path=None, + override=False +): + output = dotenvx_get( + dotenv_path=dotenv_path, + override=override + ) try: parsed = json.loads(output) @@ -19,10 +25,20 @@ def load_dotenvx(): except Exception as e: raise RuntimeError(f"Failed to parse dotenvx output: {e}") -def get(): +def dotenvx_get( + dotenv_path=None, + override=False +): binpath = binary() + cmd = [binpath, "get", "-pp"] + + if dotenv_path: + cmd += ["-f", dotenv_path] + if override: + cmd.append("--overload") + output = subprocess.run( - [binpath, "get", "-pp"], + cmd, capture_output=True, text=True, check=True