6 @contact: Debian FTPMaster <ftpmaster@debian.org>
7 @copyright: 2008 Mark Hymers <mhy@debian.org>
8 @license: GNU General Public License version 2 or later
11 # This program is free software; you can redistribute it and/or modify
12 # it under the terms of the GNU General Public License as published by
13 # the Free Software Foundation; either version 2 of the License, or
14 # (at your option) any later version.
16 # This program is distributed in the hope that it will be useful,
17 # but WITHOUT ANY WARRANTY; without even the implied warranty of
18 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19 # GNU General Public License for more details.
21 # You should have received a copy of the GNU General Public License
22 # along with this program; if not, write to the Free Software
23 # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
25 ################################################################################
27 # <NCommander> mhy, how about "Now with 20% more monty python references"
29 ################################################################################
35 ################################################################################
37 default_config = "/etc/dak/dak.conf" #: default dak config, defines host properties
39 def which_conf_file():
40 return os.getenv("DAK_CONFIG", default_config)
44 A Config object is a singleton containing
45 information about the DAK configuration
50 def __init__(self, *args, **kwargs):
51 self.__dict__ = self.__shared_state
53 if not getattr(self, 'initialised', False):
54 self.initialised = True
60 self.Cnf = apt_pkg.newConfiguration()
62 apt_pkg.ReadConfigFileISC(self.Cnf, which_conf_file())
64 # Check whether our dak.conf was the real one or
65 # just a pointer to our main one
66 res = socket.gethostbyaddr(socket.gethostname())
67 conffile = self.Cnf.get("Config::" + res[0] + "::DakConfig")
69 apt_pkg.ReadConfigFileISC(self.Cnf, conffile)
71 # Rebind some functions
73 self.get = self.Cnf.get
74 self.SubTree = self.Cnf.SubTree
75 self.ValueList = self.Cnf.ValueList
76 self.Find = self.Cnf.Find
77 self.FindB = self.Cnf.FindB
79 def has_key(self, name):
80 return self.Cnf.has_key(name)
82 def __getitem__(self, name):
85 def __setitem__(self, name, value):
86 self.Cnf[name] = value