From 1f972c21082108aad6afe78a2a09ac6dbe97f97e Mon Sep 17 00:00:00 2001 From: Chris Johns Date: Fri, 8 May 2020 14:28:04 +1000 Subject: sb: Add git clean to the supported git commands. --- source-builder/sb/download.py | 9 +++++++++ source-builder/sb/git.py | 8 ++++++++ 2 files changed, 17 insertions(+) diff --git a/source-builder/sb/download.py b/source-builder/sb/download.py index e197879..3aaa701 100644 --- a/source-builder/sb/download.py +++ b/source-builder/sb/download.py @@ -515,6 +515,15 @@ def _git_downloader(url, local, config, opts): log.notice('git: reset: %s' % (us[0])) if _do_download(opts): repo.reset(arg) + repo.submodule_foreach(['reset'] + arg) + elif _as[0] == 'clean': + arg = [] + if len(_as) > 1: + arg = ['--%s' % (_as[1])] + log.notice('git: clean: %s' % (us[0])) + if _do_download(opts): + repo.clean(arg) + repo.submodule_foreach(['clean'] + arg) elif _as[0] == 'protocol': pass else: diff --git a/source-builder/sb/git.py b/source-builder/sb/git.py index be23396..52bcb83 100644 --- a/source-builder/sb/git.py +++ b/source-builder/sb/git.py @@ -105,6 +105,14 @@ class repo: def submodule(self, module): ec, output = self._run(['submodule', 'update', '--init', module], check = True) + def submodule_foreach(self, args = []): + if type(args) == str: + args = [args.split(args)] + ec, output = self._run(['submodule', + 'foreach', + '--recursive', + self.git] + args, check = True) + def submodules(self): smodules = {} ec, output = self._run(['submodule'], check = True) -- cgit v1.2.3