# 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()