diff --git a/muid/cli.py b/muid/cli.py new file mode 100644 index 0000000..850b872 --- /dev/null +++ b/muid/cli.py @@ -0,0 +1,35 @@ +import argparse + +from .magicid import MagicID + + +def main() -> None: + """ + MagicID CLI entry point. + Commands:: + new - generate some MUID. Can be used with -n flag. Then MUID will be generated N times. + validate - validate a MUID + """ + + parser = argparse.ArgumentParser(prog="muid", description="MagicID CLI") + sub = parser.add_subparsers(dest="cmd") + + gen = sub.add_parser("new", help="Generate MagicID") + gen.add_argument("-n", type=int, default=1, help="Count") + + val = sub.add_parser("validate", help="Validate MagicID") + val.add_argument("muid", type=str) + + args = parser.parse_args() + + if args.cmd == "new": + for _ in range(args.n): + print(MagicID()) + elif args.cmd == "validate": + if MagicID.is_valid(args.muid): + print(f"Valid: {args.muid}") + else: + print(f"Invalid: {args.muid}") + raise SystemExit(1) + else: + parser.print_help() diff --git a/pyproject.toml b/pyproject.toml index 3fc325a..df5f1f2 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta" [project] name = "magicid" -version = "1.1.0" +version = "1.2.0" description = "MUID (Magic Unique Identifier) library" readme = "README.md" requires-python = ">=3.10" @@ -38,6 +38,9 @@ dev = [ "pydantic>=2,<3" ] +[project.scripts] +muid = "muid.cli:main" + [tool.setuptools.packages.find] where = ["."] include = ["muid*"]