diff --git a/authors.txt b/authors.txt index 9b2ea7269..91473a13b 100644 --- a/authors.txt +++ b/authors.txt @@ -81,3 +81,4 @@ Wade Berrier Richard Hughes Rafael Fontenelle Michael Olbrich +Ernestas Kulik diff --git a/mesonbuild/wrap/wrap.py b/mesonbuild/wrap/wrap.py index 67e47006c..713d6857c 100644 --- a/mesonbuild/wrap/wrap.py +++ b/mesonbuild/wrap/wrap.py @@ -38,8 +38,9 @@ def build_ssl_context(): ctx.load_default_certs() return ctx -def quiet_git(cmd): - pc = subprocess.Popen(['git'] + cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE) +def quiet_git(cmd, workingdir): + pc = subprocess.Popen(['git', '-C', workingdir] + cmd, + stdout=subprocess.PIPE, stderr=subprocess.PIPE) out, err = pc.communicate() if pc.returncode != 0: return False, err @@ -150,16 +151,16 @@ class Resolver: def resolve_git_submodule(self, dirname): # Are we in a git repository? - ret, out = quiet_git(['rev-parse']) + ret, out = quiet_git(['rev-parse'], self.subdir_root) if not ret: return False # Is `dirname` a submodule? - ret, out = quiet_git(['submodule', 'status', dirname]) + ret, out = quiet_git(['submodule', 'status', dirname], self.subdir_root) if not ret: return False # Submodule has not been added, add it if out.startswith(b'-'): - if subprocess.call(['git', 'submodule', 'update', dirname]) != 0: + if subprocess.call(['git', '-C', self.subdir_root, 'submodule', 'update', '--init', dirname]) != 0: return False # Submodule was added already, but it wasn't populated. Do a checkout. elif out.startswith(b' '):