commit 67ba29c71a094eec204a2f91dd7091aea8417e45
Author: Michal Srb <msrb(a)redhat.com>
Date: Fri Nov 28 11:10:56 2014 +0100
Use optparse in RPM generators
depgenerators/maven.prov | 5 +--
depgenerators/maven.req | 21 +++++---------
depgenerators/osgi.prov | 16 +++--------
depgenerators/osgi.req | 16 +++--------
python/javapackages/common/logging.py | 49 ---------------------------------
python/javapackages/common/util.py | 47 +++++++++++++++++++++++++++-----
6 files changed, 58 insertions(+), 96 deletions(-)
---
diff --git a/depgenerators/maven.prov b/depgenerators/maven.prov
index 12b76b3..e908a77 100755
--- a/depgenerators/maven.prov
+++ b/depgenerators/maven.prov
@@ -38,8 +38,7 @@ import sys
import traceback
import logging
from javapackages.metadata.metadata import Metadata
-from javapackages.common.util import kill_parent_process
-from javapackages.common.logging import init_logging
+from javapackages.common.util import kill_parent_process, init_rpmgen
logging.basicConfig(level=logging.DEBUG)
_log = logging.getLogger("maven.prov")
@@ -68,7 +67,7 @@ class TagBuilder:
if __name__ == "__main__":
try:
- init_logging()
+ init_rpmgen(sys.argv)
builder = TagBuilder()
except Exception:
traceback.print_exc(file=sys.stderr)
diff --git a/depgenerators/maven.req b/depgenerators/maven.req
index fd6018a..5bf9a6c 100755
--- a/depgenerators/maven.req
+++ b/depgenerators/maven.req
@@ -41,8 +41,7 @@ import logging
from lxml import etree
from javapackages.common.config import get_configs, get_buildroot
-from javapackages.common.util import kill_parent_process, get_cachedir
-from javapackages.common.logging import init_logging
+from javapackages.common.util import kill_parent_process, init_rpmgen
from javapackages.maven.pom import POM
from javapackages.maven.artifact import Artifact
from javapackages.metadata.metadata import Metadata
@@ -72,22 +71,22 @@ class TagBuilder(object):
metadata = None
# get all provided artifacts
- self.provided_artifacts = Metadata.read_provided_artifacts_from_cache(_cachedir)
+ self.provided_artifacts = Metadata.read_provided_artifacts_from_cache(rpmconf.cachedir)
if self.provided_artifacts is None:
metadata = Metadata(self.metadata_paths or self._gather_metadata_files())
- self.provided_artifacts = metadata.write_provided_artifacts_to_cache(_cachedir) or []
+ self.provided_artifacts = metadata.write_provided_artifacts_to_cache(rpmconf.cachedir) or []
# get all skipped artifacts
- self.skipped_artifacts = Metadata.read_skipped_artifacts_from_cache(_cachedir)
+ self.skipped_artifacts = Metadata.read_skipped_artifacts_from_cache(rpmconf.cachedir)
if self.skipped_artifacts is None:
metadata = Metadata(self.metadata_paths or self._gather_metadata_files())
- self.skipped_artifacts = metadata.write_skipped_artifacts_to_cache(_cachedir) or []
+ self.skipped_artifacts = metadata.write_skipped_artifacts_to_cache(rpmconf.cachedir) or []
# get all provided OSGi bundles
- self.provided_osgi = Metadata.read_provided_osgi_from_cache(_cachedir)
+ self.provided_osgi = Metadata.read_provided_osgi_from_cache(rpmconf.cachedir)
if self.provided_osgi is None:
metadata = Metadata(self.metadata_paths or self._gather_metadata_files())
- self.provided_osgi = metadata.write_provided_osgi_to_cache(_cachedir) or {}
+ self.provided_osgi = metadata.write_provided_osgi_to_cache(rpmconf.cachedir) or {}
curr_metadata = Metadata(paths[0])
self.print_requires(curr_metadata)
@@ -398,11 +397,7 @@ class TagBuilder(object):
if __name__ == "__main__":
try:
- if len(sys.argv) > 1:
- _cachedir = get_cachedir(sys.argv[1])
- else:
- raise Exception("Missing param: cachedir")
- init_logging()
+ rpmconf = init_rpmgen(sys.argv)
builder = TagBuilder()
except Exception:
traceback.print_exc(file=sys.stderr)
diff --git a/depgenerators/osgi.prov b/depgenerators/osgi.prov
index a31a2dd..8be083a 100755
--- a/depgenerators/osgi.prov
+++ b/depgenerators/osgi.prov
@@ -36,8 +36,7 @@ import os
import traceback
import logging
from javapackages.common.osgi import OSGiCache, check_path_in_metadata
-from javapackages.common.util import kill_parent_process, get_cachedir
-from javapackages.common.logging import init_logging
+from javapackages.common.util import kill_parent_process, init_rpmgen
logging.basicConfig(level=logging.DEBUG)
_log = logging.getLogger("osgi.prov")
@@ -48,7 +47,7 @@ class TagBuilder(object):
if filelist == None:
filelist = sys.stdin
paths = [x.rstrip() for x in filelist.readlines()]
- cache = OSGiCache(_cachedir, scl=_scl)
+ cache = OSGiCache(rpmconf.cachedir, scl=rpmconf.scl)
provides = []
for path in paths:
@@ -59,7 +58,7 @@ class TagBuilder(object):
# check if OSGi provides for this path were handled by metadata
# if so, move on
- if check_path_in_metadata(path, _cachedir):
+ if check_path_in_metadata(path, rpmconf.cachedir):
continue
bundle = cache.get_bundle_for_path(path)
@@ -73,14 +72,7 @@ class TagBuilder(object):
if __name__ == "__main__":
try:
- if len(sys.argv) > 1:
- _cachedir = get_cachedir(sys.argv[1])
- else:
- raise Exception("Missing param: cachedir")
- _scl = None
- if len(sys.argv) > 2:
- _scl = sys.argv[2]
- init_logging()
+ rpmconf = init_rpmgen(sys.argv)
builder = TagBuilder()
except Exception:
traceback.print_exc(file=sys.stderr)
diff --git a/depgenerators/osgi.req b/depgenerators/osgi.req
index 451b8bd..6fb976e 100755
--- a/depgenerators/osgi.req
+++ b/depgenerators/osgi.req
@@ -37,8 +37,7 @@ import os
import traceback
import logging
from javapackages.common.osgi import OSGiCache, check_path_in_metadata
-from javapackages.common.util import kill_parent_process, get_cachedir
-from javapackages.common.logging import init_logging
+from javapackages.common.util import kill_parent_process, init_rpmgen
logging.basicConfig(level=logging.DEBUG)
_log = logging.getLogger("osgi.req")
@@ -51,7 +50,7 @@ class TagBuilder(object):
filelist = sys.stdin
paths = [x.rstrip() for x in filelist.readlines()]
- cache = OSGiCache(_cachedir, scl=_scl)
+ cache = OSGiCache(rpmconf.cachedir, scl=rpmconf.scl)
requires = []
for path in paths:
@@ -61,7 +60,7 @@ class TagBuilder(object):
# check if OSGi requires for this path were handled by metadata
# if so, move on
- if check_path_in_metadata(path, _cachedir):
+ if check_path_in_metadata(path, rpmconf.cachedir):
continue
bundle = cache.get_bundle_for_path(path)
@@ -82,14 +81,7 @@ class TagBuilder(object):
if __name__ == "__main__":
try:
- if len(sys.argv) > 1:
- _cachedir = get_cachedir(sys.argv[1])
- else:
- raise Exception("Missing param: cachedir")
- _scl = None
- if len(sys.argv) > 2:
- _scl = sys.argv[2]
- init_logging()
+ rpmconf = init_rpmgen(sys.argv)
builder = TagBuilder()
except Exception:
traceback.print_exc(file=sys.stderr)
diff --git a/python/javapackages/common/util.py b/python/javapackages/common/util.py
index 52c6667..a54eb76 100644
--- a/python/javapackages/common/util.py
+++ b/python/javapackages/common/util.py
@@ -36,19 +36,14 @@ import signal
import sys
import six
import subprocess
+import logging
+from optparse import OptionParser
def kill_parent_process():
os.kill(os.getppid(), signal.SIGTERM)
-def get_cachedir(path, create_if_not_exists=True):
- cachedir_path = os.path.join(path, ".javapackages_cache")
- if not os.path.exists(cachedir_path) and create_if_not_exists:
- os.makedirs(cachedir_path)
- return cachedir_path
-
-
def args_to_unicode(args):
if six.PY2:
for index, arg in enumerate(args):
@@ -74,3 +69,41 @@ def execute_command(binpath, args=[], env=None, input=None, shell=False,
stdout, stderr = proc.communicate(input=None)
proc.wait()
return proc.returncode, stdout, stderr
+
+
+def init_rpmgen(argv):
+ _init_rpmgen_logging()
+ return _parse_rpmgen_args(argv)
+
+
+class _SkipPyXBWarningsFilter(logging.Filter):
+ def filter(self, record):
+ return not record.getMessage().startswith("Unable to convert DOM node")
+
+
+def _init_rpmgen_logging():
+ # Omit PyXB "Unable to convert DOM node to binding" warnings
+ logger = logging.getLogger("pyxb.binding.basis")
+ f = _SkipPyXBWarningsFilter()
+ logger.addFilter(f)
+
+
+def _parse_rpmgen_args(argv):
+ parser = OptionParser()
+ parser.add_option("--cachedir", dest="cachedir")
+ parser.add_option("--scl", dest="scl", default=None)
+
+ options = parser.parse_args()[0]
+
+ if not options.cachedir:
+ raise Exception("Missing option: --cachedir")
+ options.cachedir = _get_cachedir(options.cachedir)
+
+ return options
+
+
+def _get_cachedir(path, create_if_not_exists=True):
+ cachedir_path = os.path.join(path, ".javapackages_cache")
+ if not os.path.exists(cachedir_path) and create_if_not_exists:
+ os.makedirs(cachedir_path)
+ return cachedir_path