git_archive_single: Changed directory before running git-archive if needed
authorEd Bartosh <eduard.bartosh@intel.com>
Fri, 11 May 2012 11:57:14 +0000 (14:57 +0300)
committerEd Bartosh <eduard.bartosh@intel.com>
Fri, 11 May 2012 11:57:14 +0000 (14:57 +0300)
Change-Id: If585fd6169f7fd7b3473f28beb25adfbe20b7cc4

gbp/scripts/buildpackage.py
gbp/scripts/buildpackage_rpm.py
gbp/scripts/common/buildpackage.py

index 5d495fadfd14e8da5ad88be74fcdb7298adc4a43..691261db80b8a61b0634ab915b587212d6fe2a72 100755 (executable)
@@ -58,7 +58,7 @@ def git_archive(repo, cp, output_dir, treeish, comp_type, comp_level, with_submo
 
         else:
             git_archive_single(treeish, output, prefix,
-                               comp_type, comp_level, comp_opts)
+                               comp_type, comp_level, comp_opts, repo.path)
     except CommandExecFailed:
         gbp.log.err("Error generating submodules' archives")
         return False
index 3f0cbcfbd5553296bd782021bf315f0bdfc34994..1d36f6f6195f2cbd321f0bd329dc8012a421fb34 100755 (executable)
@@ -59,8 +59,8 @@ def git_archive(repo, spec, output_dir, treeish, comp_type, comp_level, with_sub
                                    comp_type, comp_level, comp_opts)
 
         else:
-            git_archive_single(treeish, output, prefix,
-                               comp_type, comp_level, comp_opts, spec.orig_format)
+            git_archive_single(treeish, output, prefix, comp_type, comp_level,
+                               comp_opts, spec.orig_format, repo.path)
     except CommandExecFailed:
         gbp.log.err("Error generating submodules' archives")
         return False
index 85420b7e62af3b8a5a15dd00f65c9307080e0211..a45b83a98c1de6f570493eec879bdc7090419a46 100644 (file)
@@ -70,17 +70,26 @@ def git_archive_submodules(repo, treeish, output, prefix, comp_type, comp_level,
         shutil.rmtree(tempdir)
 
 
-def git_archive_single(treeish, output, prefix, comp_type, comp_level, comp_opts, formt='tar'):
+def git_archive_single(treeish, output, prefix, comp_type, comp_level, comp_opts,
+                       formt='tar', directory=None):
     """
     Create tar.gz of an archive without submodules
 
     Exception handling is left to the caller.
     """
+    if directory:
+        prevdir = os.getcwd()
+        out = os.path.relpath(os.path.abspath(output), directory)
+        os.chdir(directory)
+    else:
+        out = output
     pipe = pipes.Template()
     pipe.prepend("git archive --format=%s --prefix=%s/ %s" % (formt, prefix, treeish), '.-')
     if comp_type:
         pipe.append('%s -c -%s %s' % (comp_type, comp_level, comp_opts),  '--')
-    ret = pipe.copy('', output)
+    ret = pipe.copy('', out)
+    if directory:
+        os.chdir(prevdir)
     if ret:
         raise GbpError("Error creating %s: %d" % (output, ret))