diff options
author | Nirbheek Chauhan <nirbheek@centricular.com> | 2020-01-22 21:04:30 +0530 |
---|---|---|
committer | Xavier Claessens <xclaesse@gmail.com> | 2020-01-22 17:29:38 -0500 |
commit | 712b2f08c7126863a68dc98c021fc40a4de462fd (patch) | |
tree | 35c916bbcb276fd7b4b7e6de2dd429afa02e2c1e /mesonbuild/mesonlib.py | |
parent | da486bfddcc2569dcd92ac26c86d8102824eb001 (diff) | |
download | meson-712b2f08c7126863a68dc98c021fc40a4de462fd.zip meson-712b2f08c7126863a68dc98c021fc40a4de462fd.tar.gz meson-712b2f08c7126863a68dc98c021fc40a4de462fd.tar.bz2 |
Move git helper out into mesonlib for reuse
Reuse the git helper for `meson wrap` and `meson subprojects` so we
don't need to maintain the same git-colors-on-windows workarounds in
multiple places.
Diffstat (limited to 'mesonbuild/mesonlib.py')
-rw-r--r-- | mesonbuild/mesonlib.py | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/mesonbuild/mesonlib.py b/mesonbuild/mesonlib.py index 9ae7b76..85d883b 100644 --- a/mesonbuild/mesonlib.py +++ b/mesonbuild/mesonlib.py @@ -56,6 +56,20 @@ else: python_command = [sys.executable] meson_command = None +GIT = shutil.which('git') +def git(cmd: T.List[str], workingdir: str, **kwargs) -> subprocess.CompletedProcess: + pc = subprocess.run([GIT, '-C', workingdir] + cmd, + # Redirect stdin to DEVNULL otherwise git messes up the + # console and ANSI colors stop working on Windows. + stdin=subprocess.DEVNULL, **kwargs) + # Sometimes git calls git recursively, such as `git submodule update + # --recursive` which will be without the above workaround, so set the + # console mode again just in case. + if platform.system().lower() == 'windows': + mlog._windows_ansi() + return pc + + def set_meson_command(mainfile): global python_command global meson_command |