add catch-dotenv hook to README and improve test clarity

This commit is contained in:
Chris Rowe 2025-08-28 21:25:38 -06:00
parent 3e8b0c9e1a
commit 476396a2b9
No known key found for this signature in database
3 changed files with 9 additions and 3 deletions

View file

@ -42,6 +42,12 @@ Require literal syntax when initializing empty or zero Python builtin types.
- Ignore this requirement for specific builtin types with `--ignore=type1,type2,…`.
- Forbid `dict` keyword syntax with `--no-allow-dict-kwargs`.
#### `catch-dotenv`
Prevents committing `.env` files to version control and optionally generates `.env.example` files.
- Use `--create-example` to generate a `.env.example` file with variable names but no values.
- Automatically adds `.env` to `.gitignore` if not already present.
- Helps prevent accidental exposure of secrets and sensitive configuration.
#### `check-case-conflict`
Check for files with names that would conflict on a case-insensitive filesystem like MacOS HFS+ or Windows FAT.

View file

@ -57,7 +57,7 @@ def _read_gitignore(gitignore_file: str) -> tuple[str, list[str]]:
file=sys.stderr,
)
raise
return original_text if lines else '', lines
return original_text, lines
def _normalize_gitignore_lines(

View file

@ -95,7 +95,7 @@ def test_gitignore_with_existing_content_preserved(
g = tmp_path / DEFAULT_GITIGNORE_FILE
g.write_text(
'node_modules/\n# comment line\n',
) # no trailing newline section markers
) # existing content with trailing newline
run_hook(tmp_path, [DEFAULT_ENV_FILE])
lines = g.read_text().splitlines()
# original content should still be at top
@ -372,7 +372,7 @@ def test_subdirectory_invocation(
os.chdir(sub)
try:
ret = main(
['../' + DEFAULT_ENV_FILE],
[str(Path('..') / DEFAULT_ENV_FILE)],
) # staged path relative to subdir
gi = (sub / DEFAULT_GITIGNORE_FILE).read_text().splitlines()
finally: