| 114 | |
| 115 | |
| 116 | def parse_args(argv: list[str]) -> argparse.Namespace: |
| 117 | parser = argparse.ArgumentParser(description=__doc__) |
| 118 | parser.add_argument("--platforms", default=DEFAULT_PLATFORMS, |
| 119 | help=f"Comma-separated platforms (default: {DEFAULT_PLATFORMS}).") |
| 120 | parser.add_argument("--today", default=None, help="Override today's date (YYYY-MM-DD).") |
| 121 | parser.add_argument("--floor", default=ELIGIBILITY_FLOOR.isoformat()) |
| 122 | parser.add_argument("--min-age-days", type=int, default=MIN_AGE_DAYS) |
| 123 | parser.add_argument("--blog-dir", default=str(BLOG_DIR)) |
| 124 | parser.add_argument("--state-file", default=str(STATE_FILE)) |
| 125 | parser.add_argument("--queue-file", default=str(QUEUE_FILE)) |
| 126 | parser.add_argument("--dry-run", action="store_true", |
| 127 | help="Print what would be queued; do not modify the file.") |
| 128 | return parser.parse_args(argv) |
| 129 | |
| 130 | |
| 131 | def main(argv: list[str]) -> int: |