From 88a840788e82289d417983acf4b49f2c2778296d Mon Sep 17 00:00:00 2001 From: Nicolas Vigier Date: Tue, 4 Jan 2011 16:15:53 +0000 Subject: fix problem with python threads on 2010.1 --- RepSys/cgiutil.py | 53 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 RepSys/cgiutil.py (limited to 'RepSys/cgiutil.py') diff --git a/RepSys/cgiutil.py b/RepSys/cgiutil.py new file mode 100644 index 0000000..35c5efb --- /dev/null +++ b/RepSys/cgiutil.py @@ -0,0 +1,53 @@ +#!/usr/bin/python +from RepSys import Error, config +from RepSys.svn import SVN +from RepSys.ConfigParser import NoSectionError +import time +import re + +class CgiError(Error): pass + +class SubmitTarget: + def __init__(self): + self.name = "" + self.target = "" + self.macros = [] + self.allowed = [] + self.scripts = [] + +TARGETS = [] + +def parse_macrosref(refs, config): + macros = [] + for name in refs: + secname = "macros %s" % name + try: + macros.extend(config.walk(secname, raw=True)) + except NoSectionError: + raise Error, "missing macros section " \ + "%r in configuration" % secname + return macros + +def get_targets(): + global TARGETS + if not TARGETS: + target = SubmitTarget() + targetoptions = {} + submit_re = re.compile("^submit\s+(.+)$") + for section in config.sections(): + m = submit_re.match(section) + if m: + target = SubmitTarget() + target.name = m.group(1) + for option, value in config.walk(section): + if option in ("target", "allowed", "scripts"): + setattr(target, option, value.split()) + elif option == "rpm-macros": + refs = value.split() + target.macros = parse_macrosref(refs, config) + else: + raise Error, "unknown [%s] option %s" % (section, option) + TARGETS.append(target) + return TARGETS + +# vim:et:ts=4:sw=4 -- cgit v1.2.1