Allow checkpointed AOI-specific provisioning
GeoIntel release gates / Compile, test, contracts and builds (push) Canceled after 0s
GeoIntel release gates / Python and npm vulnerability policy (push) Canceled after 0s
GeoIntel release gates / GIS image, SBOM and container scan (push) Canceled after 0s

This commit is contained in:
Jens
2026-07-29 20:09:12 +02:00
parent e6fc23018c
commit 737bf6e826
@@ -253,12 +253,23 @@ def main() -> int:
parser.add_argument("--side-m", type=float, default=256.0)
parser.add_argument("--resolution-m", type=float, default=0.25)
parser.add_argument("--force-refresh", action="store_true")
parser.add_argument(
"--only-slug",
action="append",
default=[],
help="Provision only the named AOI slug; repeat to select multiple AOIs.",
)
parser.add_argument(
"--session-token-file",
type=Path,
help="Read an operator session token from a local mode-0600 file instead of exposing it on the command line.",
)
args = parser.parse_args()
known_slugs = {aoi.slug for aoi in AOIS}
unknown_slugs = sorted(set(args.only_slug) - known_slugs)
if unknown_slugs:
raise SystemExit(f"Unknown --only-slug value(s): {', '.join(unknown_slugs)}")
selected_aois = tuple(aoi for aoi in AOIS if not args.only_slug or aoi.slug in args.only_slug)
session = requests.Session()
if args.session_token_file:
token = args.session_token_file.read_text(encoding="utf-8").strip()
@@ -273,7 +284,7 @@ def main() -> int:
if "sample_slug" not in sample and sample.get("slug"):
sample["sample_slug"] = sample.pop("slug")
completed = {str(sample.get("sample_slug") or sample.get("slug")) for sample in samples}
for aoi in AOIS:
for aoi in selected_aois:
if aoi.slug in completed:
print(f"{aoi.slug}: checkpoint reused", flush=True)
continue