[Erp5-report] r24047 - /spec/mandriva/2008.0/updateProducts.py

nobody at svn.erp5.org nobody at svn.erp5.org
Tue Oct 7 11:21:51 CEST 2008


Author: kazuhiko
Date: Tue Oct  7 11:21:46 2008
New Revision: 24047

URL: http://svn.erp5.org?rev=24047&view=rev
Log:
add a script that updates specfiles and tarballs of erp5 products.

Added:
    spec/mandriva/2008.0/updateProducts.py   (with props)

Added: spec/mandriva/2008.0/updateProducts.py
URL: http://svn.erp5.org/spec/mandriva/2008.0/updateProducts.py?rev=24047&view=auto
==============================================================================
--- spec/mandriva/2008.0/updateProducts.py (added)
+++ spec/mandriva/2008.0/updateProducts.py Tue Oct  7 11:21:46 2008
@@ -1,0 +1,63 @@
+#!/usr/bin/env python2.4
+import os, sys, glob, shutil, re, time, tempfile, pysvn
+from optparse import OptionParser
+
+usage = "usage: %prog [options]"
+parser = OptionParser(usage=usage)
+parser.add_option('-p', '--packager',
+                  help='Packager Information (FirstName SurName <email at address>)',
+                  default='Kazuhiko Shiozaki <kazuhiko at nexedi.com>')
+parser.add_option('-r', '--release',
+                  help='Release Number (default:1)',
+                  default='1')
+
+(options, args) = parser.parse_args()
+
+packager = options.packager
+release = options.release
+rel_str = '%snxd2008.1' % release
+
+client = pysvn.Client()
+version = sys.argv[1]
+base_url = 'https://svn.erp5.org/repos/public/erp5/tags/version-%s/products' % version
+prod_list = [x.name.rsplit('/',1)[1] for x in client.ls(base_url)]
+current_dir = os.path.realpath(os.curdir)
+
+for pkg in sorted(glob.glob('erp5-*')):
+    prod = pkg.replace('erp5-', '')
+    if prod not in prod_list:
+        continue
+    print prod
+    tmp_dir = tempfile.mkdtemp()
+    client.export('%s/%s' % (base_url, prod), '%s/%s' % (tmp_dir, prod))
+    os.chdir(tmp_dir)
+    skip = False
+    try:
+        if file('%s/VERSION.txt' % prod).read().find(version) == -1:
+            skip = True
+    except IOError:
+        skip = True
+    if not skip:
+        os.system('tar cjf %s/%s/%s-%s.tar.bz2 %s' % (current_dir, pkg, prod, version, prod))
+    os.chdir(current_dir)
+    shutil.rmtree(tmp_dir)
+    if skip:
+        print 'skipped because version is different or missing.'
+        continue
+
+    spec_file = '%s/%s.spec' % (pkg, pkg)
+    spec = file(spec_file).read()
+    new_spec = ''
+    for line in spec.splitlines():
+        if re.match('%changelog', line, re.IGNORECASE):
+            new_spec += '%s\n' % line
+            new_spec += time.strftime('* %a %b %d %Y')
+            new_spec += ' %s %s-%s\n' % (packager, version, rel_str)
+            new_spec += '- version %s\n\n' % version
+        elif re.match('%define\s+version\s+.*', line, re.IGNORECASE):
+            new_spec += '%%define version %s\n' % version
+        elif re.match('%define\s+release\s+.*', line, re.IGNORECASE):
+            new_spec += '%%define release %s\n' % release
+        else:
+            new_spec += '%s\n' % line
+    file(spec_file, 'w').write(new_spec)

Propchange: spec/mandriva/2008.0/updateProducts.py
------------------------------------------------------------------------------
    svn:executable = *




More information about the Erp5-report mailing list