diff --git a/pkgs/clan-cli/clan_cli/secrets/secrets.py b/pkgs/clan-cli/clan_cli/secrets/secrets.py index ef998d44..7282ebdc 100644 --- a/pkgs/clan-cli/clan_cli/secrets/secrets.py +++ b/pkgs/clan-cli/clan_cli/secrets/secrets.py @@ -108,12 +108,23 @@ def groups_folder(group: str) -> Path: return sops_secrets_folder() / group / "groups" +def list_directory(directory: Path) -> str: + if not directory.exists(): + return "{directory} does not exist" + msg = f"\n{directory} contains:" + for f in directory.iterdir(): + msg += f"\n {f.name}" + return msg + + def allow_member( group_folder: Path, source_folder: Path, name: str, do_update_keys: bool = True ) -> None: source = source_folder / name if not source.exists(): - raise ClanError(f"{name} does not exist in {source_folder}") + msg = f"{name} does not exist in {source_folder}" + msg += list_directory(source_folder) + raise ClanError(msg) group_folder.mkdir(parents=True, exist_ok=True) user_target = group_folder / name if user_target.exists(): @@ -134,7 +145,9 @@ def allow_member( def disallow_member(group_folder: Path, name: str) -> None: target = group_folder / name if not target.exists(): - raise ClanError(f"{name} does not exist in group in {group_folder}") + msg = f"{name} does not exist in group in {group_folder}" + msg += list_directory(group_folder) + raise ClanError(msg) keys = collect_keys_for_path(group_folder.parent) diff --git a/pkgs/clan-cli/default.nix b/pkgs/clan-cli/default.nix index 9205d0dc..f9569ef7 100644 --- a/pkgs/clan-cli/default.nix +++ b/pkgs/clan-cli/default.nix @@ -79,7 +79,7 @@ python3.pkgs.buildPythonPackage { ''; checkPhase = '' PYTHONPATH= $out/bin/clan --help - if grep --include \*.py -q "breakpoint()" $out; then + if grep --include \*.py -Rq "breakpoint()" $out; then echo "breakpoint() found in $out:" grep --include \*.py -Rn "breakpoint()" $out exit 1 diff --git a/pkgs/clan-cli/tests/test_secrets.py b/pkgs/clan-cli/tests/test_secrets.py index 9aac1e68..3b555f6e 100644 --- a/pkgs/clan-cli/tests/test_secrets.py +++ b/pkgs/clan-cli/tests/test_secrets.py @@ -128,7 +128,7 @@ def test_secrets( cli.run(["machines", "add", "machine1", test_keys[0].pubkey]) cli.run(["machines", "add-secret", "machine1", "key"]) - with mock_env(SOPS_AGE_KEY=test_keys[1].privkey, SOPS_AGE_KEY_FILE=""): + with mock_env(SOPS_AGE_KEY=test_keys[0].privkey, SOPS_AGE_KEY_FILE=""): capsys.readouterr() cli.run(["get", "key"]) assert capsys.readouterr().out == "foo"