40 lines
1.0 KiB
Python
40 lines
1.0 KiB
Python
import argparse
|
|
import getpass
|
|
|
|
from lightrag.api.passwords import hash_password
|
|
|
|
|
|
def build_parser() -> argparse.ArgumentParser:
|
|
parser = argparse.ArgumentParser(
|
|
description="Generate a bcrypt password value for AUTH_ACCOUNTS."
|
|
)
|
|
parser.add_argument(
|
|
"password",
|
|
nargs="?",
|
|
help="Password to hash. If omitted, a secure prompt is used.",
|
|
)
|
|
parser.add_argument(
|
|
"--username",
|
|
help="Optional username. When provided, output is ready to paste into AUTH_ACCOUNTS.",
|
|
)
|
|
return parser
|
|
|
|
|
|
def main(argv: list[str] | None = None) -> int:
|
|
parser = build_parser()
|
|
args = parser.parse_args(argv)
|
|
password = args.password or getpass.getpass("Password: ")
|
|
if not password:
|
|
parser.error("password cannot be empty")
|
|
|
|
hashed_password = hash_password(password)
|
|
if args.username:
|
|
print(f"{args.username}:{hashed_password}")
|
|
else:
|
|
print(hashed_password)
|
|
return 0
|
|
|
|
|
|
if __name__ == "__main__":
|
|
raise SystemExit(main())
|