[pypy-svn] r70218 - pypy/trunk/pypy/tool
fijal at codespeak.net
fijal at codespeak.net
Sun Dec 20 21:44:35 CET 2009
Author: fijal
Date: Sun Dec 20 21:44:32 2009
New Revision: 70218
Modified:
pypy/trunk/pypy/tool/package.py
Log:
Make this 2.4 and 2.5 compatible
Modified: pypy/trunk/pypy/tool/package.py
==============================================================================
--- pypy/trunk/pypy/tool/package.py (original)
+++ pypy/trunk/pypy/tool/package.py Sun Dec 20 21:44:32 2009
@@ -1,5 +1,8 @@
#!/usr/bin/env python
-""" A sample script that packages PyPy, provided that it's already built
+""" A sample script that packages PyPy, provided that it's already built.
+Usage:
+
+package.py pypydir [name-of-archive]
"""
import autopath
@@ -7,9 +10,22 @@
import sys
import py
import os
+import fnmatch
import tarfile
from pypy.tool.udir import udir
+def ignore_patterns(*patterns):
+ """Function that can be used as copytree() ignore parameter.
+
+ Patterns is a sequence of glob-style patterns
+ that are used to exclude files"""
+ def _ignore_patterns(path, names):
+ ignored_names = []
+ for pattern in patterns:
+ ignored_names.extend(fnmatch.filter(names, pattern))
+ return set(ignored_names)
+ return _ignore_patterns
+
class PyPyCNotFound(Exception):
pass
@@ -22,11 +38,11 @@
pypydir = builddir.ensure("pypy", dir=True)
shutil.copytree(str(basedir.join('lib-python')),
str(pypydir.join('lib-python')),
- ignore=shutil.ignore_patterns('.svn'))
+ ignore=ignore_patterns('.svn'))
pypydir.ensure('pypy', dir=True)
shutil.copytree(str(basedir.join('pypy', 'lib')),
str(pypydir.join('pypy', 'lib')),
- ignore=shutil.ignore_patterns('.svn'))
+ ignore=ignore_patterns('.svn'))
pypydir.ensure('bin', dir=True)
shutil.copy(str(pypy_c), str(pypydir.join('bin', 'pypy-c')))
old_dir = os.getcwd()
@@ -39,4 +55,10 @@
return builddir # for tests
if __name__ == '__main__':
- main(sys.argv[1])
+ if len(sys.argv) == 1 or len(sys.argv) > 3:
+ print >>sys.stderr, __doc__
+ sys.exit(1)
+ elif len(sys.argv) == 2:
+ main(sys.argv[1])
+ else:
+ main(sys.argv[1], sys.argv[2])
More information about the Pypy-commit
mailing list