From a76f5c19f80da7dd9416c6e29da7835d53b2d893 Mon Sep 17 00:00:00 2001 From: Konstantin Ryabitsev Date: Mon, 8 Aug 2022 17:43:18 -0400 Subject: ez: chdir to toplevel when running get_maintainer The scripts expect to be running from the toplevel directory, so make sure to switch back to git topdir before running get_maintainer.pl Signed-off-by: Konstantin Ryabitsev --- b4/__init__.py | 13 ++++++++++++- b4/ez.py | 4 +++- 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/b4/__init__.py b/b4/__init__.py index e2ed881..3b8b9f3 100644 --- a/b4/__init__.py +++ b/b4/__init__.py @@ -1903,10 +1903,21 @@ class LoreAttestorPatatt(LoreAttestor): self.have_key = True -def _run_command(cmdargs: List[str], stdin: Optional[bytes] = None) -> Tuple[int, bytes, bytes]: +def _run_command(cmdargs: List[str], stdin: Optional[bytes] = None, + rundir: Optional[str] = None) -> Tuple[int, bytes, bytes]: + if rundir: + logger.debug('Changing dir to %s', rundir) + curdir = os.getcwd() + os.chdir(rundir) + else: + curdir = None + logger.debug('Running %s' % ' '.join(cmdargs)) sp = subprocess.Popen(cmdargs, stdout=subprocess.PIPE, stdin=subprocess.PIPE, stderr=subprocess.PIPE) (output, error) = sp.communicate(input=stdin) + if curdir: + logger.debug('Changing back into %s', curdir) + os.chdir(curdir) return sp.returncode, output, error diff --git a/b4/ez.py b/b4/ez.py index c0380d4..3aa3fc0 100644 --- a/b4/ez.py +++ b/b4/ez.py @@ -678,7 +678,9 @@ def update_trailers(cmdargs: argparse.Namespace) -> None: def get_addresses_from_cmd(cmdargs: List[str], msgbytes: bytes) -> List[Tuple[str, str]]: - ecode, out, err = b4._run_command(cmdargs, stdin=msgbytes) # noqa + # Run this command from git toplevel + topdir = b4.git_get_toplevel() + ecode, out, err = b4._run_command(cmdargs, stdin=msgbytes, rundir=topdir) # noqa if ecode > 0: logger.critical('CRITICAL: Running %s failed:', ' '.join(cmdargs)) logger.critical(err.decode()) -- cgit v1.2.3