#!/usr/bin/python # # Copyright (C) 2013 Simo Sorce # # see file 'COPYING' for use and warranty information # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . import os import sqlite3 import cherrypy class Store(object): def __init__(self, path=None): if path is None: self._path = os.getcwd() else: self._path = path def _load_config(self, dbname): con = None rows = [] try: con = sqlite3.connect(dbname) cur = con.cursor() cur.executescript(""" CREATE TABLE IF NOT EXISTS config(name TEXT, value TEXT) """) cur.execute("SELECT * FROM config") rows = cur.fetchall() con.commit() except sqlite3.Error, e: if con: con.rollback() cherrypy.log.error("Failed to load config: [%s]" % e) finally: if con: con.close() conf = {} for row in rows: conf[row[0]] = row[1] return conf def get_admin_config(self): path = None if 'admin.config.db' in cherrypy.config: path = cherrypy.config['admin.config.db'] if not path: path = os.path.join(self._path, 'adminconfig.sqlite') return self._load_config(path)