aboutsummaryrefslogtreecommitdiffstats
path: root/libbe/command
diff options
context:
space:
mode:
Diffstat (limited to 'libbe/command')
-rw-r--r--libbe/command/__init__.py4
-rw-r--r--libbe/command/base.py13
2 files changed, 16 insertions, 1 deletions
diff --git a/libbe/command/__init__.py b/libbe/command/__init__.py
index 916b5ce..ab9d2db 100644
--- a/libbe/command/__init__.py
+++ b/libbe/command/__init__.py
@@ -19,6 +19,7 @@ import base
UserError = base.UserError
UnknownCommand = base.UnknownCommand
+InvalidStorageVersion = base.InvalidStorageVersion
get_command = base.get_command
get_command_class = base.get_command_class
commands = base.commands
@@ -26,5 +27,6 @@ Option = base.Option
Argument = base.Argument
Command = base.Command
-__all__ = [UserError, UnknownCommand, get_command, get_command_class,
+__all__ = [UserError, UnknownCommand, InvalidStorageVersion,
+ get_command, get_command_class,
commands, Option, Argument, Command]
diff --git a/libbe/command/base.py b/libbe/command/base.py
index 6a49413..1409c74 100644
--- a/libbe/command/base.py
+++ b/libbe/command/base.py
@@ -6,6 +6,7 @@ import os.path
import sys
import libbe
+import libbe.storage
import libbe.ui.util.user
import libbe.util.encoding
import libbe.util.plugin
@@ -18,6 +19,15 @@ class UnknownCommand(UserError):
Exception.__init__(self, "Unknown command '%s'" % cmd)
self.cmd = cmd
+class InvalidStorageVersion(UserError):
+ def __init__(self, active_version, expected_version=None):
+ if expected_version == None:
+ expected_version = libbe.storage.STORAGE_VERSION
+ msg = 'Storage in "%s" not the expected "%s"' \
+ % (active_version, expected_version)
+ UserError.__init__(self, msg)
+ self.active_version = active_version
+ self.expected_version = expected_version
def get_command(command_name):
"""Retrieves the module for a user command
@@ -354,6 +364,9 @@ class Command (object):
if not hasattr(self, '_storage'):
self._storage = self._get_unconnected_storage()
self._storage.connect()
+ version = self._storage.storage_version()
+ if version != libbe.storage.STORAGE_VERSION:
+ raise InvalidStorageVersion(version)
return self._storage
def _get_bugdir(self):