summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChris Johns <chrisj@rtems.org>2020-05-08 14:28:04 +1000
committerChris Johns <chrisj@rtems.org>2020-05-08 14:28:04 +1000
commit1f972c21082108aad6afe78a2a09ac6dbe97f97e (patch)
tree63b5abe5e5347e3e3757484a642a0acfd531d651
parentqemu4.bset: Update to pixman 0.40.0. (diff)
downloadrtems-source-builder-1f972c21082108aad6afe78a2a09ac6dbe97f97e.tar.bz2
sb: Add git clean to the supported git commands.
-rw-r--r--source-builder/sb/download.py9
-rw-r--r--source-builder/sb/git.py8
2 files changed, 17 insertions, 0 deletions
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)