sync: auto-sync from HOWARD-HOME at 2026-07-14 19:13:30

Author: Howard Enos
Machine: HOWARD-HOME
Timestamp: 2026-07-14 19:13:30
This commit is contained in:
2026-07-14 19:14:01 -07:00
parent ec2fe6060b
commit 941de499c2
9 changed files with 835 additions and 731 deletions

View File

@@ -392,12 +392,14 @@ def build_parser() -> argparse.ArgumentParser:
sp.add_argument("--confirm", action="store_true")
sp.set_defaults(func=cmd_delete_user)
for name, fn, verb in (("grant-license", cmd_grant_license, "grant"),
("release-license", cmd_release_license, "release"),
("revoke-license", cmd_revoke_license, "revoke")):
# API requires LicenseID for Release/Revoke (HTTP 400 without it); Grant can
# auto-pick a license, so it stays optional there.
for name, fn, verb, lic_required in (("grant-license", cmd_grant_license, "grant", False),
("release-license", cmd_release_license, "release", True),
("revoke-license", cmd_revoke_license, "revoke", True)):
sp = sub.add_parser(name, help=f"{verb} a license [--confirm]")
sp.add_argument("--user-id", required=True)
sp.add_argument("--license-id")
sp.add_argument("--license-id", required=lic_required)
sp.add_argument("--confirm", action="store_true")
sp.set_defaults(func=fn)