[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