summaryrefslogtreecommitdiff
path: root/morphlib/builder.py
diff options
context:
space:
mode:
Diffstat (limited to 'morphlib/builder.py')
-rw-r--r--morphlib/builder.py11
1 files changed, 9 insertions, 2 deletions
diff --git a/morphlib/builder.py b/morphlib/builder.py
index ad0b14f9..dc7d51db 100644
--- a/morphlib/builder.py
+++ b/morphlib/builder.py
@@ -325,13 +325,20 @@ class ChunkBuilder(BlobBuilder):
self.msg('Extracting %s into %s' %
(treeish.repo, self.builddir))
- morphlib.git.archive_and_extract(
- self.app, treeish, destdir, self.msg)
+ morphlib.git.copy_repository(treeish, destdir, self.msg)
+ morphlib.git.checkout_ref(destdir, treeish.ref, self.msg)
for submodule in treeish.submodules:
directory = os.path.join(destdir, submodule.path)
extract_treeish(submodule.treeish, directory)
+ # we need to do this to keep any "git submodule" commands
+ # from accessing the internet. instead, we redirect them
+ # to the locally cached submodule repo
+ morphlib.git.set_submodule_url(destdir, submodule.name,
+ submodule.treeish.repo,
+ self.msg)
+
extract_treeish(self.blob.morph.treeish, self.builddir)
def build_with_system_or_commands(self):