[wwwsearch-commits] r44830 - wwwsearch/release_scripts
jjlee at codespeak.net
jjlee at codespeak.net
Sat Jul 7 20:11:16 CEST 2007
Author: jjlee
Date: Sat Jul 7 20:11:15 2007
New Revision: 44830
Modified:
wwwsearch/release_scripts/mrelease.py
wwwsearch/release_scripts/release.py
Log:
* Use subprocess.call() instead of os.system()
* Exit if an external command fails
* Add --no-version-check and --no-date-check arguments for testing source release build process
Modified: wwwsearch/release_scripts/mrelease.py
==============================================================================
--- wwwsearch/release_scripts/mrelease.py (original)
+++ wwwsearch/release_scripts/mrelease.py Sat Jul 7 20:11:15 2007
@@ -67,7 +67,9 @@
if tag:
sdist.tag(src, clean=options.clean)
if rel:
- sdist.build(update=options.update, clean=options.clean)
+ sdist.build(update=options.update, clean=options.clean,
+ check_versions=options.check_versions,
+ check_dates=options.check_dates)
if upload:
sdist.upload_to_sourceforge()
Modified: wwwsearch/release_scripts/release.py
==============================================================================
--- wwwsearch/release_scripts/release.py (original)
+++ wwwsearch/release_scripts/release.py Sat Jul 7 20:11:15 2007
@@ -1,6 +1,6 @@
#!/usr/bin/env python
-import sys, os, re, tempfile, time, stat, posixpath, shutil
+import sys, os, re, tempfile, time, stat, posixpath, shutil, subprocess
import logging
logger = logging.getLogger("wwwsearch.release")
@@ -193,13 +193,22 @@
finally:
chdir(cwd, self.pretend)
- def build(self, update=True, clean=False):
+ def build(self, update=True, clean=False,
+ check_versions=True,
+ check_dates=True,
+ ):
self.prepare(update, clean)
if self.pretend:
print "(would check versions here)"
else:
- bad_versions = self.check_versions()
- bad_dates = self.check_dates()
+ if check_versions:
+ bad_versions = self.check_versions()
+ else:
+ bad_versions = []
+ if check_dates:
+ bad_dates = self.check_dates()
+ else:
+ bad_dates = []
if bad_versions:
raise BuildError(
"version doesn't match in %s" % " ".join(bad_versions))
@@ -280,10 +289,17 @@
def build_files(self):
return self.build(self.files)
-def system(cmd, pretend=False):
+def system(cmd, pretend=False, stdout=None):
print cmd
if not pretend:
- os.system(cmd)
+ args = cmd.split()
+ assert ">" not in args, "shell redirect in command: "+cmd
+ try:
+ r = subprocess.call(args, stdout=stdout)
+ except OSError, exc:
+ raise RuntimeError("%s while executing: %s" % (exc, args))
+ if r != 0:
+ raise RuntimeError("%d exit status from: %s" % (r, args))
def rename(src, dest, pretend=False):
print "renaming %s --> %s" % (src, dest)
@@ -337,7 +353,8 @@
if defines:
def_text = " %s " % (" ".join(["-D%s" % define for define in defines]))
def cmd(fn):
- return system("em.py %s%s > %s" % (filename, def_text, fn), pretend)
+ system("em.py %s%s" % (filename, def_text),
+ pretend, stdout=open(fn, "w"))
out_fn = wrap_command(
cmd,
os.path.dirname(filename),
@@ -347,8 +364,11 @@
return out_fn
def lynx_dump(filename, pretend=False):
+ def cmd(fn):
+ return system("lynx -dump %s" % filename,
+ pretend, stdout=open(fn, "w"))
out_fn = wrap_command(
- lambda fn: system("lynx -dump %s > %s" % (filename, fn), pretend),
+ cmd,
os.path.dirname(filename),
os.path.splitext(os.path.basename(filename))[0]+".txt",
pretend=pretend,
@@ -384,6 +404,14 @@
action="store_false", dest="update", default=True,
help="Leave svn working copy unchanged "
" (do not update or checkout)")
+ parser.add_option("--no-version-check",
+ action="store_false", dest="check_versions", default=True,
+ help="Don't check the version strings that appear in "
+ "various files for correctness.")
+ parser.add_option("--no-date-check",
+ action="store_false", dest="check_dates", default=True,
+ help="Don't check the date strings that appear in "
+ "various files for correctness.")
options, args = parser.parse_args()
tag = False
More information about the wwwsearch-commits
mailing list