blob: b878ef356f18528ca1ef73078f7add85f0740efc [file] [log] [blame]
# Copyright 2021 The IREE Authors
#
# Licensed under the Apache License v2.0 with LLVM Exceptions.
# See https://llvm.org/LICENSE.txt for license information.
# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
import argparse
import os
import pathlib
import subprocess
import sys
def run():
parser = argparse.ArgumentParser()
parser.add_argument(
"--runtime_only",
help=(
"Only check the initialization of the submodules for the"
"runtime-dependent submodules. Default: False"
),
action="store_true",
default=False,
)
args = parser.parse_args()
# No-op if we're not in a git repository.
try:
subprocess.check_call(
["git", "rev-parse", "--is-inside-work-tree"],
stdout=subprocess.DEVNULL,
stderr=subprocess.DEVNULL,
)
except:
return
output = os.popen("git submodule status")
submodules = output.readlines()
runtime_submodules = (
pathlib.Path(__file__)
.with_name("runtime_submodules.txt")
.read_text()
.split("\n")
)
for submodule in submodules:
prefix = submodule.strip()[0]
name = submodule.split()[1]
if prefix == "-" and (not args.runtime_only or name in runtime_submodules):
print(
"The git submodule '%s' is not initialized. Please run `git submodule update --init`"
% (name)
)
sys.exit(1)
if __name__ == "__main__":
run()