diff options
author | Nicolas Vigier <boklm@mageia.org> | 2011-01-11 00:35:59 +0000 |
---|---|---|
committer | Nicolas Vigier <boklm@mageia.org> | 2011-01-11 00:35:59 +0000 |
commit | ad7fb7807ceaee96521d779993a5e1b28650723f (patch) | |
tree | 2ece42aa7e83b7fdb51702b298aa3eec95da3573 /MgaRepo/cgiutil.py | |
parent | 715e125cc8d0b3fc4a79752e28a8b76a4ce97d5a (diff) | |
download | mgarepo-ad7fb7807ceaee96521d779993a5e1b28650723f.tar mgarepo-ad7fb7807ceaee96521d779993a5e1b28650723f.tar.gz mgarepo-ad7fb7807ceaee96521d779993a5e1b28650723f.tar.bz2 mgarepo-ad7fb7807ceaee96521d779993a5e1b28650723f.tar.xz mgarepo-ad7fb7807ceaee96521d779993a5e1b28650723f.zip |
rename repsys to mgarepo, RepSys to MgaRepo, and update docs and examples for Mageia
Diffstat (limited to 'MgaRepo/cgiutil.py')
-rw-r--r-- | MgaRepo/cgiutil.py | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/MgaRepo/cgiutil.py b/MgaRepo/cgiutil.py new file mode 100644 index 0000000..68afdcd --- /dev/null +++ b/MgaRepo/cgiutil.py @@ -0,0 +1,53 @@ +#!/usr/bin/python +from MgaRepo import Error, config +from MgaRepo.svn import SVN +from MgaRepo.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 |