From 815a6796fd61fede05c63afc75afd5faaa902594 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jelmer=20Vernoo=C4=B3?= Date: Wed, 24 Mar 2021 03:30:38 +0000 Subject: [PATCH] Handle distTar not existing. --- ognibuild/buildsystem.py | 28 ++++++++++++++++++---------- 1 file changed, 18 insertions(+), 10 deletions(-) diff --git a/ognibuild/buildsystem.py b/ognibuild/buildsystem.py index e3c0cf5..f216602 100644 --- a/ognibuild/buildsystem.py +++ b/ognibuild/buildsystem.py @@ -536,31 +536,39 @@ class Gradle(BuildSystem): if not self.executable.startswith('./'): resolver.install([BinaryRequirement(self.executable)]) - def _run(self, session, resolver, args, fixers): + def _run(self, session, resolver, task, args, fixers): self.setup(resolver) + argv = [] if self.executable.startswith('./') and ( not os.access(os.path.join(self.path, self.executable), os.X_OK)): - argv = ['sh', self.executable] - else: - argv = [self.executable] - run_with_build_fixers(session, argv + args, fixers) + argv.append('sh') + argv.extend([self.executable, task]) + argv.extend(args) + try: + run_with_build_fixers(session, argv, fixers) + except UnidentifiedError as e: + if any([re.match( + r"Task '" + task + "' not found in root project '.*'\.", + line) for line in e.lines]): + raise NotImplementedError + raise def clean(self, session, resolver, fixers): - self._run(session, resolver, ['clean'], fixers) + self._run(session, resolver, 'clean', [], fixers) def build(self, session, resolver, fixers): - self._run(session, resolver, ['build'], fixers) + self._run(session, resolver, 'build', [], fixers) def test(self, session, resolver, fixers): - self._run(session, resolver, ['test'], fixers) + self._run(session, resolver, 'test', [], fixers) def dist(self, session, resolver, fixers, quiet=False): - self._run(session, resolver, ['distTar'], fixers) + self._run(session, resolver, 'distTar', [], fixers) def install(self, session, resolver, fixers, install_target): raise NotImplementedError # TODO(jelmer): installDist just creates files under build/install/... - self._run(session, resolver, ['installDist'], fixers) + self._run(session, resolver, 'installDist', [], fixers) class R(BuildSystem):