Coverage for pydaconf/cli.py: 0.00%
21 statements
« prev ^ index » next coverage.py v7.6.11, created at 2025-02-16 17:46 +0000
« prev ^ index » next coverage.py v7.6.11, created at 2025-02-16 17:46 +0000
1try:
2 import typer
3 from cryptography.fernet import Fernet
4except ImportError as e:
5 raise ImportError('CLI dependencies are not installed, run `pip install pydaconf[cli]`') from e
7app = typer.Typer()
8seal = typer.Typer()
9app.add_typer(seal, name="seal")
11# TODO: Add better error handling
13@seal.command('generate-key')
14def generate_key() -> None:
15 """Generate symmetric encryption key for sealed secrets"""
16 typer.echo(Fernet.generate_key().decode())
18@seal.command('encrypt')
19def generate(key: str, secret: str) -> None:
20 """Encrypt secret with symmetric encryption key"""
21 f = Fernet(key)
22 typer.echo(f.encrypt(secret.encode()).decode())
24@seal.command('decrypt')
25def decrypt(key: str, secret: str) -> None:
26 """Encrypt secret with symmetric encryption key"""
27 f = Fernet(key)
28 typer.echo(f.decrypt(secret).decode())
31if __name__ == "__main__":
32 app()