forked from cartsnitch/cartsnitch
4cf6f91e95
git-subtree-dir: common git-subtree-split: 28b2939037b5932ca5d5a6c734b292c012ac675f
51 lines
1.3 KiB
Python
51 lines
1.3 KiB
Python
"""Entry point for `python -m cartsnitch_common.seed` and `cartsnitch-seed` CLI."""
|
|
|
|
import argparse
|
|
import sys
|
|
|
|
from cartsnitch_common.seed.config import SEED_VALUE
|
|
|
|
|
|
def main() -> None:
|
|
parser = argparse.ArgumentParser(
|
|
prog="cartsnitch-seed",
|
|
description="Generate deterministic seed data for the CartSnitch dev environment.",
|
|
)
|
|
parser.add_argument(
|
|
"--database-url",
|
|
default=None,
|
|
help=(
|
|
"PostgreSQL connection URL (sync driver). "
|
|
"Defaults to CARTSNITCH_DATABASE_URL_SYNC env var or built-in default."
|
|
),
|
|
)
|
|
parser.add_argument(
|
|
"--dry-run",
|
|
action="store_true",
|
|
help="Print planned record counts without writing to the database.",
|
|
)
|
|
parser.add_argument(
|
|
"--seed",
|
|
type=int,
|
|
default=SEED_VALUE,
|
|
help=f"Random seed for deterministic output (default: {SEED_VALUE}).",
|
|
)
|
|
|
|
args = parser.parse_args()
|
|
|
|
try:
|
|
from cartsnitch_common.seed.runner import run_seed
|
|
|
|
run_seed(
|
|
database_url=args.database_url,
|
|
seed_value=args.seed,
|
|
dry_run=args.dry_run,
|
|
)
|
|
except Exception as exc:
|
|
print(f"ERROR: {exc}", file=sys.stderr)
|
|
sys.exit(1)
|
|
|
|
|
|
if __name__ == "__main__":
|
|
main()
|