blob: a0136ff29e9a39f73eedf8527e5d6bd4eddf6174 [file] [log] [blame]
# Copyright 2022 The Chromium Authors
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
from __future__ import annotations
import json
import sys
from pathlib import Path
from typing import Optional
import hjson
from crossbench.cli.btp import BTPUtil
from crossbench.cli.cli import CrossBenchCLI
def crossbench(argv: Optional[list[str]] = None) -> None:
if not argv:
argv = sys.argv
cli = CrossBenchCLI()
cli.run(argv[1:])
def cb_btp(argv: Optional[list[str]] = None) -> None:
if not argv:
argv = sys.argv
btp = BTPUtil()
btp.run(argv[1:])
def cb_validate_hjson(argv: Optional[list[str]] = None) -> None:
if not argv:
argv = sys.argv
for path_str in argv[1:]:
path = Path(path_str)
with path.open(encoding="utf-8") as f:
match path.suffix:
case ".json":
json.load(f)
case ".hjson":
hjson.load(f)
case _:
raise ValueError(f"Unsupported file format {path}")