diff options
| author | Sebastian Heinlein <sebi@sebi-laptop> | 2006-11-25 09:55:04 +0100 |
|---|---|---|
| committer | Sebastian Heinlein <sebi@sebi-laptop> | 2006-11-25 09:55:04 +0100 |
| commit | d21a4328a369e521c49a7ba21834b3e5e950ca97 (patch) | |
| tree | 08f192dfcf3480101cc7e7f923d0fb05876dbde8 /DistUpgrade/DistUpgradeViewText.py | |
| parent | ee8317343ad726571d5f6ad863ee0b27d58251e5 (diff) | |
| download | python-apt-d21a4328a369e521c49a7ba21834b3e5e950ca97.tar.gz | |
* Fork a pyton-aptsources source tree from update-manager
Diffstat (limited to 'DistUpgrade/DistUpgradeViewText.py')
| -rw-r--r-- | DistUpgrade/DistUpgradeViewText.py | 196 |
1 files changed, 0 insertions, 196 deletions
diff --git a/DistUpgrade/DistUpgradeViewText.py b/DistUpgrade/DistUpgradeViewText.py deleted file mode 100644 index b3bd61e3..00000000 --- a/DistUpgrade/DistUpgradeViewText.py +++ /dev/null @@ -1,196 +0,0 @@ -# DistUpgradeViewText.py -# -# Copyright (c) 2004-2006 Canonical -# -# Author: Michael Vogt <michael.vogt@ubuntu.com> -# -# 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 2 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, write to the Free Software -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 -# USA - -import sys -import logging -import time -import subprocess - -import apt -import apt_pkg -import os - -from apt.progress import InstallProgress -from DistUpgradeView import DistUpgradeView, FuzzyTimeToStr, estimatedDownloadTime - -import gettext -from gettext import gettext as _ - -class TextCdromProgressAdapter(apt.progress.CdromProgress): - """ Report the cdrom add progress """ - def update(self, text, step): - """ update is called regularly so that the gui can be redrawn """ - if text: - print "%s (%f)" % (text, step/float(self.totalSteps)*100) - def askCdromName(self): - return (False, "") - def changeCdrom(self): - return False - - -class DistUpgradeViewText(DistUpgradeView): - " text frontend of the distUpgrade tool " - def __init__(self, datadir=None): - 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.OpTextProgress() - self._fetchProgress = apt.progress.TextFetchProgress() - self._cdromProgress = TextCdromProgressAdapter() - self._installProgress = apt.progress.InstallProgress() - sys.excepthook = self._handleException - - def _handleException(self, type, value, tb): - import traceback - lines = traceback.format_exception(type, value, tb) - logging.error("not handled expection:\n%s" % "\n".join(lines)) - self.error(_("A fatal error occured"), - _("Please report this as a bug and include the " - "files /var/log/dist-upgrade/main.log and " - "/var/log/dist-upgrade/apt.log " - "in your report. The upgrade aborts now.\n" - "Your original sources.list was saved in " - "/etc/apt/sources.list.distUpgrade."), - "\n".join(lines)) - sys.exit(1) - - def getFetchProgress(self): - return self._fetchProgress - def getInstallProgress(self, cache): - self._installProgress._cache = cache - return self._installProgress - def getOpCacheProgress(self): - return self._opCacheProgress - def getCdromProgress(self): - return self._cdromProgress - def updateStatus(self, msg): - print msg - def abort(self): - print _("Aborting") - def setStep(self, step): - self.last_step = step - def information(self, summary, msg, extended_msg=None): - print summary - print msg - if extended_msg: - print extended_msg - def error(self, summary, msg, extended_msg=None): - print summary - print msg - if extended_msg: - print extended_msg - return False - def confirmChanges(self, summary, changes, downloadSize, actions=None): - DistUpgradeView.confirmChanges(self, summary, changes, downloadSize, actions) - pkgs_remove = len(self.toRemove) - pkgs_inst = len(self.toInstall) - pkgs_upgrade = len(self.toUpgrade) - msg = "" - - if pkgs_remove > 0: - # FIXME: make those two seperate lines to make it clear - # that the "%" applies to the result of ngettext - msg += gettext.ngettext("%d package is going to be removed.", - "%d packages are going to be removed.", - pkgs_remove) % pkgs_remove - msg += " " - if pkgs_inst > 0: - msg += gettext.ngettext("%d new package is going to be " - "installed.", - "%d new packages are going to be " - "installed.",pkgs_inst) % pkgs_inst - msg += " " - if pkgs_upgrade > 0: - msg += gettext.ngettext("%d package is going to be upgraded.", - "%d packages are going to be upgraded.", - pkgs_upgrade) % pkgs_upgrade - msg +=" " - if downloadSize > 0: - msg += _("\n\nYou have to download a total of %s. ") %\ - apt_pkg.SizeToStr(downloadSize) - msg += estimatedDownloadTime(downloadSize) - msg += "." - if (pkgs_upgrade + pkgs_inst + pkgs_remove) > 100: - msg += "\n\n%s" % _("Fetching and installing the upgrade can take several hours and "\ - "cannot be canceled at any time later.") - - # Show an error if no actions are planned - if (pkgs_upgrade + pkgs_inst + pkgs_remove) < 1: - # FIXME: this should go into DistUpgradeController - summary = _("Your system is up-to-date") - msg = _("There are no upgrades available for your system. " - "The upgrade will now be canceled.") - self.error(summary, msg) - return False - - return self.askYesNoQuestion(summary, msg) - - def askYesNoQuestion(self, summary, msg): - print summary - print msg - print _("Continue [Yn] "), - res = sys.stdin.readline() - if res.strip().lower().startswith("y"): - return True - return False - - def confirmRestart(self): - return self.askYesNoQuestion(_("Restart required"), - _("To fully ugprade, please restart")) - - -if __name__ == "__main__": - - view = DistUpgradeViewText() - view.confirmChanges("xx",[], 100) - sys.exit(0) - - fp = apt.progress.TextFetchProgress() - ip = apt.progress.InstallProgress() - - cache = apt.Cache() - for pkg in sys.argv[1:]: - cache[pkg].markInstall() - cache.commit(fp,ip) - - #sys.exit(0) - view.getTerminal().call(["dpkg","--configure","-a"]) - #view.getTerminal().call(["ls","-R","/usr"]) - view.error("short","long", - "asfds afsdj af asdf asdf asf dsa fadsf asdf as fasf sextended\n" - "asfds afsdj af asdf asdf asf dsa fadsf asdf as fasf sextended\n" - "asfds afsdj af asdf asdf asf dsa fadsf asdf as fasf sextended\n" - "asfds afsdj af asdf asdf asf dsa fadsf asdf as fasf sextended\n" - "asfds afsdj af asdf asdf asf dsa fadsf asdf as fasf sextended\n" - "asfds afsdj af asdf asdf asf dsa fadsf asdf as fasf sextended\n" - "asfds afsdj af asdf asdf asf dsa fadsf asdf as fasf sextended\n" - ) - view.confirmChanges("xx",[], 100) - print view.askYesNoQuestion("hello", "Icecream?") |
