def is_git(src_root): ''' Checks if meson.build file at the root source directory is tracked by git. It could be a subproject part of the parent project git repository. ''' return quiet_git(['ls-files', '--error-unmatch', 'meson.build'], src_root)[0]
def git_root(src_root): # Cannot use --show-toplevel here because git in our CI prints cygwin paths # that python cannot resolve. Workaround this by taking parent of src_root. prefix = quiet_git(['rev-parse', '--show-prefix'], src_root, check=True)[1].strip() if not prefix: return Path(src_root) prefix_level = len(Path(prefix).parents) return Path(src_root).parents[prefix_level - 1]