| 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()) | |