diff options
Diffstat (limited to 'rpm-pyconfig')
-rwxr-xr-x | rpm-pyconfig | 26 |
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) |