summaryrefslogtreecommitdiff
path: root/morphlib/builder.py
diff options
context:
space:
mode:
Diffstat (limited to 'morphlib/builder.py')
-rw-r--r--morphlib/builder.py12
1 files changed, 6 insertions, 6 deletions
diff --git a/morphlib/builder.py b/morphlib/builder.py
index c5d1cb8c..6faa72b1 100644
--- a/morphlib/builder.py
+++ b/morphlib/builder.py
@@ -19,6 +19,7 @@ import logging
import os
import shutil
import StringIO
+import tarfile
import urlparse
import morphlib
@@ -92,13 +93,12 @@ class Builder(object):
'''Export sources from git into the ``self._build`` directory.'''
logging.debug('Creating build tree at %s' % self._build)
+ tarball = self.tempdir.join('sources.tar.gz')
+ morphlib.git.export_sources(repo, ref, tarball)
os.mkdir(self._build)
- tarball = self.tempdir.join('sources.tar')
- self.ex.runv(['git', 'archive',
- '--output', tarball,
- '--remote', repo,
- ref])
- self.ex.runv(['tar', '-C', self._build, '-xf', tarball])
+ f = tarfile.open(tarball)
+ f.extractall(path=self._build)
+ f.close()
os.remove(tarball)
def create_chunk(self, morph, repo, ref):