summaryrefslogtreecommitdiff
path: root/portato
diff options
context:
space:
mode:
Diffstat (limited to 'portato')
-rw-r--r--portato/constants.py3
-rw-r--r--portato/db/__init__.py25
2 files changed, 19 insertions, 9 deletions
diff --git a/portato/constants.py b/portato/constants.py
index 79ad0f2..3d7217f 100644
--- a/portato/constants.py
+++ b/portato/constants.py
@@ -22,8 +22,6 @@ These should be set during the installation.
@type HOME: string
@var SU_COMMAND: command to execute to "su"
@type SU_COMMAND: string
-@var USE_SQL: whether to use the sqlite db
-@type USE_SQL: boolean
@var CONFIG_DIR: The configuration directory.
@type CONFIG_DIR: string
@@ -58,7 +56,6 @@ APP = "portato"
VERSION = "9999"
HOME = os.environ["HOME"]
SU_COMMAND = "gksu -D 'Portato'"
-USE_SQL = True
# config
CONFIG_DIR = "/etc/portato/"
diff --git a/portato/db/__init__.py b/portato/db/__init__.py
index 40bf9ee..d77fc0d 100644
--- a/portato/db/__init__.py
+++ b/portato/db/__init__.py
@@ -13,22 +13,35 @@
from __future__ import absolute_import
from ..session import Session, SectionDict
-from ..constants import USE_SQL
from ..helper import debug
_SESSION = None
+_TYPE = None
+
+def _set_type(t):
+ global _TYPE
+ _TYPE = t
def Database():
- global _SESSION
+ global _SESSION, _TYPE
if _SESSION is None:
_SESSION = Session("db.cfg", name = "DB")
+ _SESSION.add_handler((["type"], _set_type, lambda: _TYPE), default = ["sql"])
+ _SESSION.load()
- if USE_SQL:
+ if _TYPE == "sql":
debug("Using SQLDatabase")
- from .sql import SQLDatabase
- return SQLDatabase(SectionDict(_SESSION, "SQL"))
- else:
+ try:
+ from .sql import SQLDatabase
+ except ImportError:
+ debug("Cannot load SQLDatabase.")
+ _TYPE = "dict"
+ return Database()
+ else:
+ return SQLDatabase(SectionDict(_SESSION, "SQL"))
+
+ elif _TYPE == "dict":
debug("Using DictDatabase")
from .dict import DictDatabase
return DictDatabase(SectionDict(_SESSION, "dict"))
span>Update FSF address, add copyrights.1.1.3Jason A. Donenfeld4-21/+26 2012-09-07Bump debian to 1.1.3.Jason A. Donenfeld1-1/+1 2012-09-07Explicitly set permissions when running 'install'Christophe Fergeau1-3/+3 2012-09-07No need for a shebang in bash completion fileChristophe Fergeau1-1/+1 2012-09-06Update COPYING to reflect man page and project page.1.1.2Jason A. Donenfeld1-10/+11 2012-09-06Use BINDIR, MANDIR and SYSCONFDIR vars in MakefileChristophe Fergeau1-5/+8 2012-09-06Add dependencies to README.Jason A. Donenfeld1-0/+8 2012-09-06Change debian name.Jason A. Donenfeld5-5/+4 2012-09-06Use more normal sleep variant.1.1.1Jason A. Donenfeld1-1/+1 2012-09-06Use --noreport instead of head -n -2 for tree so that it works on mac.Jason A. Donenfeld1-1/+1 2012-09-05Be sure to explicitly state that install is a phony target.Jason A. Donenfeld1-0/+2 2012-09-05Bump debian version horribly.1.1Jason A. Donenfeld2-2/+2 2012-09-04No echo mode.Jason A. Donenfeld2-16/+42 2012-09-04Properly quote the path too.Jason A. Donenfeld1-1/+1 2012-09-04Allow passwords having spaces to go unbroken to the clipboard.Bernardo Freitas Paulo da Costa1-1/+1 2012-09-04Separate out the massive git example.Jason A. Donenfeld1-10/+14 2012-09-04Prepare for debianification.1.0Jason A. Donenfeld9-4/+60 2012-09-03Fix readme typo.Jason A. Donenfeld1-1/+1 2012-09-03Show program name properly in error message.Jason A. Donenfeld1-1/+1 2012-09-03Move examples into manpage.Jason A. Donenfeld4-93/+224 2012-09-03Make into a real project.Jason A. Donenfeld8-5/+173 2012-09-03Support pass gitJason A. Donenfeld2-1/+15 2012-08-31Add remove synonyms.Jason A. Donenfeld1-2/+2 2012-08-31Use basename in usage.Jason A. Donenfeld1-2/+1 2012-08-19now using gpg_id as a varMatthew Ramirez1-2/+2 2012-08-07Forty five seconds.Jason A. Donenfeld1-1/+1 2012-08-06Deal with klipper and new lines.Jason A. Donenfeld1-3/+19 2012-08-06Update examples.Jason A. Donenfeld1-7/+7 2012-08-06Update readme.Jason A. Donenfeld1-11/+13 2012-08-06Be slicker and more like git.Jason A. Donenfeld1-114/+173