[Pkg-xen-changes] r410 - trunk/xen-3/debian/bin
Bastian Blank
waldi at alioth.debian.org
Thu Aug 2 10:28:17 UTC 2007
Author: waldi
Date: Thu Aug 2 10:28:17 2007
New Revision: 410
Log:
debian/bin/genorig.py: Add.
Added:
trunk/xen-3/debian/bin/genorig.py (contents, props changed)
Added: trunk/xen-3/debian/bin/genorig.py
==============================================================================
--- (empty file)
+++ trunk/xen-3/debian/bin/genorig.py Thu Aug 2 10:28:17 2007
@@ -0,0 +1,65 @@
+#!/usr/bin/env python
+
+import os, os.path, re, shutil, sys
+
+class GenOrig(object):
+ log = sys.stdout.write
+
+ def __init__(self, source, repo, tag = None, version = None):
+ self.source, self.repo, self.tag, self.version = source, repo, tag, version
+
+ def __call__(self):
+ import tempfile
+ self.dir = tempfile.mkdtemp(prefix = 'genorig', dir = 'debian')
+ try:
+ self.do_update()
+ self.do_version()
+
+ self.orig_dir = "%s-%s.orig" % (self.source, self.version)
+ self.orig_tar = "%s_%s.orig.tar.gz" % (self.source, self.version)
+
+ self.do_archive()
+ self.do_changelog()
+ self.do_tar()
+ finally:
+ shutil.rmtree(self.dir)
+
+ def do_update(self):
+ if self.tag is None:
+ return
+ raise NotImplementedError
+
+ def do_version(self):
+ if self.version is not None:
+ return
+ raise NotImplementedError
+
+ def do_archive(self):
+ self.log("Create archive.\n")
+ f = os.popen("cd %s; hg archive %s/%s" % (self.repo, os.path.realpath(self.dir), self.orig_dir))
+ if f.close() is not None:
+ raise RuntimeError
+
+ def do_changelog(self):
+ self.log("Exporting changelog.\n")
+ f = os.popen("cd %s; hg log" % (self.repo))
+ f_out = file("%s/%s/Changelog" % (self.dir, self.orig_dir), 'w')
+ shutil.copyfileobj(f, f_out)
+ if f.close() is not None:
+ raise RuntimeError
+ f_out.close()
+
+ def do_tar(self):
+ out = "../orig/%s" % self.orig_tar
+ self.log("Generate tarball %s\n" % out)
+ f = os.popen("tar -C %s -czf %s %s" % (self.dir, out, self.orig_dir))
+ if f.close() is not None:
+ raise RuntimeError
+
+if __name__ == '__main__':
+ from optparse import OptionParser
+ p = OptionParser()
+ p.add_option("-t", "--tag", dest = "tag")
+ p.add_option("-v", "--version", dest = "version")
+ options, args = p.parse_args(sys.argv)
+ GenOrig(args[1], args[2], options.tag, options.version)()
More information about the Pkg-xen-changes
mailing list