Add run-command support for dotenv-injected envs - #34
Merged
Conversation
- Implement run_command handler to execute external commands using EnvObject-provided environment with optional debug output. - Treat trailing arguments after `--` as the command to run (e.g., `dotenv -- npm run start`). - Do not override existing env vars; apply only missing ones and log skips when debugging. - Return correct exit codes: 128+n for terminated-by-signal and 127 on startup failure; propagate the command’s exit status. - Enable verbose debugging trace of the command path and environment actions when debug is enabled. - Wire in CLI: resolve dotenv file, parse the env file, and invoke run_command; enforce mutual exclusion between a command and keys/set/delete/json. - Update tests to cover env injection (including nested resolution), exit status propagation, missing env file, missing binary, and misuse of command with a key. - Update README with usage, env merging semantics, compatibility options (--file, DOTENV_FILE), and exit code propagation. - Vendor the release binary and adapt packaging: add vendor/dotenv and adjust Taskfile.yaml; fix bin path in package.json. - Introduce new modules: add `src/handlers/run_command.rs`, register in `src/handlers/mod.rs`, and wire in `src/main.rs`.
Codecov Report✅ All modified and coverable lines are covered by tests.
... and 1 file with indirect coverage changes 🚀 New features to boost your workflow:
|
- Change get_value.rs to use the explicit return_all_keys flag to determine if all env keys should be returned, instead of inferring from target_keys being empty. - In tests/debug.rs, add integration tests to verify dotenv CLI debug output includes keys, file paths, and option assembly; ensure debug surfaces wildcard handling and JSON-defaulting behavior; validate file insights during validation and the exact pre-run command; confirm messages about skipping a variable already set in the environment. - In tests/wildcard.rs, add a comprehensive wildcard test suite covering prefix, suffix, and middle wildcards with JSON-key outputs; ensure nested variable resolution, empty JSON object when no matches, and that --no-json disables expansion; verify failures for missing literals; deterministic environment via tests/.env.test.
Use explicit return_all_keys flag; expand tests
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
--as the command to run (e.g.,dotenv -- npm run start).src/handlers/run_command.rs, register insrc/handlers/mod.rs, and wire insrc/main.rs.