blob: 611c32f982cb38a137f81ae31abb1877de71fddb [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()