diff options
Diffstat (limited to 'libbe/command')
-rw-r--r-- | libbe/command/__init__.py | 4 | ||||
-rw-r--r-- | libbe/command/base.py | 13 |
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): |