# Copyright 2023 The Chromium Authors
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

import sys
import ast

import config_util


class InfraSuperproject(config_util.Config):
    """Basic Config class for the whole set of Infrastructure repositories."""

    @staticmethod
    def fetch_spec(props):
        def url(host, repo):
            return "https://%s.googlesource.com/%s.git" % (host, repo)

        spec = {
            "solutions": [
                {
                    "name": ".",
                    "url": url("chromium", "infra/infra_superproject"),
                    "managed": True,
                    "custom_vars": {},
                },
            ],
        }
        if ast.literal_eval(props.get("checkout_internal", "False")):
            spec["solutions"][0]["custom_vars"]["checkout_internal"] = True
        return {
            "type": "gclient_git",
            "gclient_git_spec": spec,
        }

    @staticmethod
    def expected_root(_props):
        return "."


def main(argv=None):
    return InfraSuperproject().handle_args(argv)


if __name__ == "__main__":
    sys.exit(main(sys.argv))
