source: soft/build_system/build_system/repsys/tags/V1_6_16/RepSys/cgiutil.py @ 1

Last change on this file since 1 was 1, checked in by fasma, 12 years ago

Initial Import from Mandriva's soft revision 224062 and package revision 45733

File size: 1.5 KB
Line 
1#!/usr/bin/python
2from RepSys import Error, config
3from RepSys.svn import SVN
4from RepSys.ConfigParser import NoSectionError
5import time
6import re
7
8class CgiError(Error): pass
9
10class SubmitTarget:
11    def __init__(self):
12        self.name = ""
13        self.target = ""
14        self.macros = []
15        self.allowed = []
16        self.scripts = []
17
18TARGETS = []
19
20def parse_macrosref(refs, config):
21    macros = []
22    for name in refs:
23        secname = "macros %s" % name
24        try:
25            macros.extend(config.walk(secname, raw=True))
26        except NoSectionError:
27            raise Error, "missing macros section " \
28                    "%r in configuration" % secname
29    return macros
30
31def get_targets():
32    global TARGETS
33    if not TARGETS:
34        target = SubmitTarget()
35        targetoptions = {}
36        submit_re = re.compile("^submit\s+(.+)$")
37        for section in config.sections():
38            m = submit_re.match(section)
39            if m:
40                target = SubmitTarget()
41                target.name = m.group(1)
42                for option, value in config.walk(section):
43                    if option in ("target", "allowed", "scripts"):
44                        setattr(target, option, value.split())
45                    elif option == "rpm-macros":
46                        refs = value.split()
47                        target.macros = parse_macrosref(refs, config)
48                    else:
49                        raise Error, "unknown [%s] option %s" % (section, option)
50                TARGETS.append(target)
51    return TARGETS
52
53# vim:et:ts=4:sw=4
Note: See TracBrowser for help on using the repository browser.