only list valid secrets/users/machines

Git often leaves empty directories behind
This commit is contained in:
Jörg Thalheim
2023-09-07 12:48:34 +02:00
parent ae3283a762
commit c3ccf68007
4 changed files with 28 additions and 8 deletions

View File

@@ -20,7 +20,12 @@ def get_machine(name: str) -> str:
def list_machines() -> list[str]:
return list_objects(sops_machines_folder(), lambda x: validate_hostname(x))
path = sops_machines_folder()
def validate(name: str) -> bool:
return validate_hostname(name) and (path / name / "key.json").exists()
return list_objects(path, validate)
def add_secret(machine: str, secret: str) -> None:

View File

@@ -172,9 +172,15 @@ def disallow_member(group_folder: Path, name: str) -> None:
def list_secrets() -> list[str]:
return list_objects(
sops_secrets_folder(), lambda n: VALID_SECRET_NAME.match(n) is not None
)
path = sops_secrets_folder()
def validate(name: str) -> bool:
return (
VALID_SECRET_NAME.match(name) is not None
and (path / name / "secret").exists()
)
return list_objects(path, validate)
def list_command(args: argparse.Namespace) -> None:

View File

@@ -4,7 +4,7 @@ from . import secrets
from .folders import list_objects, remove_object, sops_users_folder
from .sops import read_key, write_key
from .types import (
VALID_SECRET_NAME,
VALID_USER_NAME,
public_or_private_age_key_type,
secret_name_type,
user_name_type,
@@ -24,9 +24,15 @@ def get_user(name: str) -> str:
def list_users() -> list[str]:
return list_objects(
sops_users_folder(), lambda n: VALID_SECRET_NAME.match(n) is not None
)
path = sops_users_folder()
def validate(name: str) -> bool:
return (
VALID_USER_NAME.match(name) is not None
and (path / name / "key.json").exists()
)
return list_objects(path, validate)
def add_secret(user: str, secret: str) -> None: