| 34 | |
| 35 | |
| 36 | def parse_args() -> argparse.Namespace: |
| 37 | parser = argparse.ArgumentParser( |
| 38 | description="Sync or remove one docs snapshot in the docs-website branch." |
| 39 | ) |
| 40 | parser.add_argument("--operation", choices=["sync", "remove"], default="sync") |
| 41 | parser.add_argument("--source-root", type=Path) |
| 42 | parser.add_argument("--docs-website-root", required=True, type=Path) |
| 43 | parser.add_argument( |
| 44 | "--channel", required=True, choices=["dev", "latest", "version"] |
| 45 | ) |
| 46 | parser.add_argument("--source-ref", default="") |
| 47 | parser.add_argument("--version-slug", default="") |
| 48 | parser.add_argument("--display-name", default="") |
| 49 | return parser.parse_args() |
| 50 | |
| 51 | |
| 52 | def clean_input(value: str | None) -> str: |