summaryrefslogtreecommitdiff
path: root/morphlib/git.py
diff options
context:
space:
mode:
Diffstat (limited to 'morphlib/git.py')
-rw-r--r--morphlib/git.py9
1 files changed, 5 insertions, 4 deletions
diff --git a/morphlib/git.py b/morphlib/git.py
index 190544ac..cab551ef 100644
--- a/morphlib/git.py
+++ b/morphlib/git.py
@@ -58,12 +58,13 @@ class MissingSubmoduleCommitError(cliapp.AppException):
class Submodules(object):
- def __init__(self, app, repo, ref):
- self.app = app
+ def __init__(self, repo, ref, runcmd_cb=cliapp.runcmd):
self.repo = repo
self.ref = ref
self.submodules = []
+ self.runcmd_cb = runcmd_cb
+
def load(self):
content = self._read_gitmodules_file()
@@ -76,7 +77,7 @@ class Submodules(object):
def _read_gitmodules_file(self):
try:
# try to read the .gitmodules file from the repo/ref
- content = gitcmd(self.app.runcmd, 'cat-file', 'blob',
+ content = gitcmd(self.runcmd_cb, 'cat-file', 'blob',
'%s:.gitmodules' % self.ref, cwd=self.repo,
ignore_fail=True)
@@ -100,7 +101,7 @@ class Submodules(object):
try:
# list objects in the parent repo tree to find the commit
# object that corresponds to the submodule
- commit = gitcmd(self.app.runcmd, 'ls-tree', self.ref,
+ commit = gitcmd(self.runcmd_cb, 'ls-tree', self.ref,
submodule.path, cwd=self.repo)
# read the commit hash from the output