Merge pull request #271 from nix-community/empty_nixfile_fix

Don't track $nixfile if it is empty
This commit is contained in:
Bryan Bennett 2023-01-09 12:04:39 -05:00 committed by GitHub
commit 32bf26a499
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 24 additions and 8 deletions

View file

@ -336,9 +336,10 @@ use_nix() {
esac
done
# nixfile may be empty,
# but nix_direnv_watch_file checks for existence before adding to watches
nix_direnv_watch_file "$HOME/.direnvrc" "$HOME/.config/direnv/direnvrc" .envrc "$nixfile"
nix_direnv_watch_file "$HOME/.direnvrc" "$HOME/.config/direnv/direnvrc" ".envrc"
if [ -f "$nixfile" ]; then
nix_direnv_watch_file "$nixfile"
fi
local need_update=0
local file=

View file

@ -1,10 +1,11 @@
#!/usr/bin/env python3
from dataclasses import dataclass
import shutil
import textwrap
from dataclasses import dataclass
from pathlib import Path
from tempfile import TemporaryDirectory
from typing import Iterator
from pathlib import Path
import pytest
@ -21,12 +22,13 @@ class DirenvProject:
return self.dir / ".envrc"
def setup_envrc(self, content: str) -> None:
self.envrc.write_text(
text = textwrap.dedent(
f"""
source {self.nix_direnv}
{content}
source {self.nix_direnv}
{content}
"""
)
self.envrc.write_text(text)
run(["direnv", "allow"], cwd=self.dir)

View file

@ -33,5 +33,18 @@ def test_args(direnv_project: DirenvProject) -> None:
direnv_exec(direnv_project, "echo $SHOULD_BE_SET")
def test_no_files(direnv_project: DirenvProject) -> None:
direnv_project.setup_envrc("use nix -p hello")
out = run(
["direnv", "status"],
stderr=subprocess.PIPE,
stdout=subprocess.PIPE,
check=False,
cwd=direnv_project.dir,
)
assert out.returncode == 0
assert 'Loaded watch: "."' not in out.stdout
if __name__ == "__main__":
unittest.main()