summaryrefslogtreecommitdiffstats
path: root/rpm-pyconfig
diff options
context:
space:
mode:
Diffstat (limited to 'rpm-pyconfig')
-rwxr-xr-xrpm-pyconfig26
1 files changed, 23 insertions, 3 deletions
diff --git a/rpm-pyconfig b/rpm-pyconfig
index 24fca41..ecc89b1 100755
--- a/rpm-pyconfig
+++ b/rpm-pyconfig
@@ -1,5 +1,6 @@
#!/usr/bin/env python
import os
+import sys
class PyConfig(object):
'''A specific Python configuration e.g. "Python 2.7 --with-pydebug"
@@ -10,9 +11,13 @@ class PyConfig(object):
self.pkgname = pkgname
self.description = description
+ # Optimize this?
+ self.major_version = self.capture_stdout('import sys; print (sys.version_info[0])').strip()
+ self.minor_version = self.capture_stdout('import sys; print (sys.version_info[1])').strip()
+
def capture_stdout(self, command):
from subprocess import Popen, PIPE
- p = Popen([conf.binname, '-c', command], stdout=PIPE)
+ p = Popen([self.binname, '-c', command], stdout=PIPE)
stdout, stderr = p.communicate()
return stdout
@@ -26,6 +31,10 @@ class PyConfig(object):
fmt = fmt.replace('@confdesc', self.description)
fmt = fmt.replace('@confsrcdir', '%s-src' % self.pkgname)
+ #if self.major_version == '3':
+ # fmt = fmt.replace('@confsrcdir', '%{py3dir}')
+ #else:
+ # fmt = fmt.replace('@confsrcdir', '.')
if '@conf_sitearch' in fmt:
conf_sitearch = self.capture_stdout("from distutils.sysconfig import get_python_lib; print(get_python_lib(1))").strip()
@@ -39,6 +48,12 @@ parser.add_option('-v', "--verbose", action="store_true", dest="verbose",
help="Display additional debugging information")
parser.add_option("--foreach", action="store_true", dest="foreach",
help="Iterate over all Python configurations")
+parser.add_option("--foreach-2", action="store_true", dest="foreach2",
+ help="Iterate over all Python 2 configurations")
+parser.add_option("--foreach-3", action="store_true", dest="foreach3",
+ help="Iterate over all Python 3 configurations")
+parser.add_option("--ifany-2", action="store_true", dest="ifany2")
+parser.add_option("--ifany-3", action="store_true", dest="ifany3")
parser.add_option("--exe", action="store", dest="execute",
@@ -71,8 +86,13 @@ if 0:
]
# is the --foreach option redundant ?
-if options.foreach:
- for conf in configs:
+if options.ifany3:
+ sys.exit(0) # FIXME
+
+for conf in configs:
+ if (options.foreach
+ or (options.foreach2 and conf.major_version=='2')
+ or (options.foreach3 and conf.major_version=='3')):
if options.execute:
cmd = conf.eval(options.execute)
os.system(cmd)