class DistUpgradeViewText(DistUpgradeView):
    " text frontend of the distUpgrade tool "

    def __init__(self, datadir=None, logdir=None):
        # indicate that we benefit from using gnu screen
        self.needs_screen = True
        # its important to have a debconf frontend for
        # packages like "quagga"
        if not os.environ.has_key("DEBIAN_FRONTEND"):
            os.environ["DEBIAN_FRONTEND"] = "dialog"
        if not datadir:
            localedir = os.path.join(os.getcwd(), "mo")
        else:
            localedir = "/usr/share/locale/update-manager"

        try:
            gettext.bindtextdomain("update-manager", localedir)
            gettext.textdomain("update-manager")
        except Exception, e:
            logging.warning("Error setting locales (%s)" % e)

        self.last_step = 0  # keep a record of the latest step
        self._opCacheProgress = apt.progress.text.OpProgress()
        self._fetchProgress = TextFetchProgress()
        self._cdromProgress = TextCdromProgressAdapter()
        self._installProgress = InstallProgress()
        sys.excepthook = self._handleException