vars/keygen: add --no-interactive flags

This is useful to force on-interactive mode with automatic key selection. In unit tests this is necessary. When debugging a test on a real terminal interactive mode is not desired
This commit is contained in:
DavHau
2025-08-11 11:28:40 +07:00
parent 6137701532
commit d0374c0d7c
2 changed files with 19 additions and 5 deletions

View File

@@ -37,6 +37,7 @@ class SopsSetup:
str(flake_path), str(flake_path),
"--user", "--user",
self.user, self.user,
"--no-interactive",
] ]
) )

View File

@@ -137,6 +137,13 @@ def create_secrets_user_auto(
def _command( def _command(
args: argparse.Namespace, args: argparse.Namespace,
) -> None: ) -> None:
if args.no_interactive:
create_secrets_user(
flake_dir=args.flake.path,
user=args.user,
force=args.force,
)
else:
create_secrets_user_auto( create_secrets_user_auto(
flake_dir=args.flake.path, flake_dir=args.flake.path,
user=args.user, user=args.user,
@@ -155,4 +162,10 @@ def register_keygen_parser(parser: argparse.ArgumentParser) -> None:
"-f", "--force", help="overwrite existing user", action="store_true" "-f", "--force", help="overwrite existing user", action="store_true"
) )
parser.add_argument(
"--no-interactive",
help="Run in non-interactive mode, using keys from the machine if available",
action="store_true",
)
parser.set_defaults(func=_command) parser.set_defaults(func=_command)