]> git.ipfire.org Git - ipfire.org.git/blame - src/backend/base.py
Introduce autotools
[ipfire.org.git] / src / backend / base.py
CommitLineData
a6dc0bad
MT
1#!/usr/bin/python
2
9068dba1 3import ConfigParser as configparser
a6dc0bad
MT
4
5import accounts
9068dba1
MT
6import ads
7import database
8import geoip
66862195 9import fireinfo
9068dba1
MT
10import iuse
11import memcached
12import mirrors
13import netboot
66862195 14import nopaste
9068dba1 15import news
a6dc0bad 16import planet
9068dba1
MT
17import releases
18import settings
66862195 19import talk
a6dc0bad 20
2c361abc
MT
21from . import zeiterfassung
22
a6dc0bad 23class Backend(object):
2cd9af74 24 def __init__(self, configfile, debug=False):
9068dba1
MT
25 # Read configuration file.
26 self.config = self.read_config(configfile)
2cd9af74 27 self.debug = debug
9068dba1
MT
28
29 # Setup database.
30 self.setup_database()
a6dc0bad 31
9068dba1
MT
32 # Initialize settings first.
33 self.settings = settings.Settings(self)
34 self.memcache = memcached.Memcached(self)
35
36 # Initialize backend modules.
a6dc0bad 37 self.accounts = accounts.Accounts(self)
9068dba1
MT
38 self.advertisements = ads.Advertisements(self)
39 self.downloads = mirrors.Downloads(self)
40 self.geoip = geoip.GeoIP(self)
66862195 41 self.fireinfo = fireinfo.Fireinfo(self)
9068dba1
MT
42 self.iuse = iuse.IUse(self)
43 self.mirrors = mirrors.Mirrors(self)
44 self.netboot = netboot.NetBoot(self)
66862195 45 self.nopaste = nopaste.Nopaste(self)
9068dba1 46 self.news = news.News(self)
a6dc0bad 47 self.planet = planet.Planet(self)
9068dba1 48 self.releases = releases.Releases(self)
66862195 49 self.talk = talk.Talk(self)
9068dba1 50
2c361abc
MT
51 self.zeiterfassung = zeiterfassung.ZeiterfassungClient(self)
52
9068dba1
MT
53 def read_config(self, configfile):
54 cp = configparser.ConfigParser()
55 cp.read(configfile)
56
57 return cp
58
59 def setup_database(self):
60 """
61 Sets up the database connection.
62 """
63 credentials = {
64 "host" : self.config.get("database", "server"),
65 "database" : self.config.get("database", "database"),
66 "user" : self.config.get("database", "username"),
67 "password" : self.config.get("database", "password"),
68 }
69
70 self.db = database.Connection(**credentials)