From 19fb3bc6a6fc6328dfa90dac3e4066d931eaf129 Mon Sep 17 00:00:00 2001 From: Michael Vogt Date: Fri, 8 Apr 2005 15:09:41 +0000 Subject: * InstallProgress has overridable fork interface now, added example for the use of a vte terminal --- doc/examples/gui-inst.py | 68 +++++++++++++++++++++++++++++ doc/examples/inst.py | 110 ++++------------------------------------------- doc/examples/progress.py | 1 - 3 files changed, 76 insertions(+), 103 deletions(-) create mode 100644 doc/examples/gui-inst.py (limited to 'doc/examples') diff --git a/doc/examples/gui-inst.py b/doc/examples/gui-inst.py new file mode 100644 index 00000000..ededab5f --- /dev/null +++ b/doc/examples/gui-inst.py @@ -0,0 +1,68 @@ +#!/usr/bin/python +# example how to install in a custom terminal widget + +import apt_pkg +import sys, os +import copy + +import pygtk +pygtk.require('2.0') +import gtk +import vte +import time + +from progress import OpProgress, FetchProgress, InstallProgress + +class TermInstallProgress(InstallProgress): + def UpdateInterface(self): + while gtk.events_pending(): + gtk.main_iteration() + def FinishUpdate(self): + sys.stdin.readline() + +# init +apt_pkg.init() + +progress = OpProgress() +cache = apt_pkg.GetCache(progress) +print "Available packages: %s " % cache.PackageCount + +# get depcache +depcache = apt_pkg.GetDepCache(cache) +depcache.ReadPinFile() +depcache.Init(progress) + +# do something +fprogress = FetchProgress() +iprogress = TermInstallProgress() + + +window = gtk.Window(gtk.WINDOW_TOPLEVEL) +window.show() +term = vte.Terminal() +term.show() +window.add(term) +# can be used to set a custom fork method (like vte.Terminal.forkpty) +# see also gnome bug: #169201 +iprogress.fork = term.forkpty + +# show the interface +while gtk.events_pending(): + gtk.main_iteration() + + +iter = cache["3dchess"] +print "\n%s"%iter + +# install or remove, the importend thing is to keep us busy :) +if iter.CurrentVer == None: + depcache.MarkInstall(iter) +else: + depcache.MarkDelete(iter) +depcache.Commit(fprogress, iprogress) + +print "Exiting" +sys.exit(0) + + + diff --git a/doc/examples/inst.py b/doc/examples/inst.py index 3269900f..e4c96983 100644 --- a/doc/examples/inst.py +++ b/doc/examples/inst.py @@ -2,7 +2,7 @@ # example how to deal with the depcache import apt_pkg -import sys +import sys, os import copy from progress import OpProgress, FetchProgress, InstallProgress @@ -23,7 +23,11 @@ depcache.Init(progress) # do something fprogress = FetchProgress() iprogress = InstallProgress() -iter = cache["base-config"] + +# can be used to set a custom fork method (like vte.Terminal.forkpty) +#iprogress.fork = os.fork + +iter = cache["3dchess"] print "\n%s"%iter # install or remove, the importend thing is to keep us busy :) @@ -31,7 +35,8 @@ if iter.CurrentVer == None: depcache.MarkInstall(iter) else: depcache.MarkDelete(iter) -depcache.Commit(fprogress, iprogress) +res = depcache.Commit(fprogress, iprogress) +print res print "Exiting" sys.exit(0) @@ -39,102 +44,3 @@ sys.exit(0) - - - - - - - - - -iter = cache["base-config"] -print "example package iter: %s" % iter - -# get depcache -print "\n\n depcache" -depcache = apt_pkg.GetDepCache(cache, progress) -depcache.ReadPinFile() -print "got a depcache: %s " % depcache -print "Marked for install: %s " % depcache.InstCount - -print "\n\n Reinit" -depcache.Init(progress) - -#sys.exit() - - -# get a canidate version -ver= depcache.GetCandidateVer(iter) -print "Candidate version: %s " % ver - -print "\n\nQuerry interface" -print "%s.IsUpgradable(): %s" % (iter.Name, depcache.IsUpgradable(iter)) - -print "\nMarking interface" -print "Marking '%s' for install" % iter.Name -depcache.MarkInstall(iter) -print "Install count: %s " % depcache.InstCount -print "%s.MarkedInstall(): %s" % (iter.Name, depcache.MarkedInstall(iter)) -print "%s.MarkedUpgrade(): %s" % (iter.Name, depcache.MarkedUpgrade(iter)) -print "%s.MarkedDelete(): %s" % (iter.Name, depcache.MarkedDelete(iter)) - -print "Marking %s for delete" % iter.Name -depcache.MarkDelete(iter) -print "DelCount: %s " % depcache.DelCount -print "%s.MarkedDelete(): %s" % (iter.Name, depcache.MarkedDelete(iter)) - - -iter = cache["3dchess"] -print "\nMarking '%s' for install" % iter.Name -depcache.MarkInstall(iter) -print "Install count: %s " % depcache.InstCount -print "%s.MarkedInstall(): %s" % (iter.Name, depcache.MarkedInstall(iter)) -print "%s.MarkedUpgrade(): %s" % (iter.Name, depcache.MarkedUpgrade(iter)) -print "%s.MarkedDelete(): %s" % (iter.Name, depcache.MarkedDelete(iter)) - -print "Marking %s for keep" % iter.Name -depcache.MarkKeep(iter) -print "Install: %s " % depcache.InstCount - -iter = cache["3dwm-server"] -print "\nMarking '%s' for install" % iter.Name -depcache.MarkInstall(iter) -print "Install: %s " % depcache.InstCount -print "Broken count: %s" % depcache.BrokenCount -print "FixBroken() " -depcache.FixBroken() -print "Broken count: %s" % depcache.BrokenCount - -print "\nPerforming Upgrade" -depcache.Upgrade() -print "Keep: %s " % depcache.KeepCount -print "Install: %s " % depcache.InstCount -print "Delete: %s " % depcache.DelCount -print "UsrSize: %s " % apt_pkg.SizeToStr(depcache.UsrSize) -print "DebSize: %s " % apt_pkg.SizeToStr(depcache.DebSize) - -for pkg in cache.Packages: - if pkg.CurrentVer != None and not depcache.MarkedInstall(pkg) and depcache.IsUpgradable(pkg): - print "Upgrade didn't upgrade (kept): %s" % pkg.Name - - -print "\nPerforming DistUpgrade" -depcache.Upgrade(True) -print "Keep: %s " % depcache.KeepCount -print "Install: %s " % depcache.InstCount -print "Delete: %s " % depcache.DelCount -print "UsrSize: %s " % apt_pkg.SizeToStr(depcache.UsrSize) -print "DebSize: %s " % apt_pkg.SizeToStr(depcache.DebSize) - -# overview about what would happen -for pkg in cache.Packages: - if depcache.MarkedInstall(pkg): - if pkg.CurrentVer != None: - print "Marked upgrade: %s " % pkg.Name - else: - print "Marked install: %s" % pkg.Name - elif depcache.MarkedDelete(pkg): - print "Marked delete: %s" % pkg.Name - elif depcache.MarkedKeep(pkg): - print "Marked keep: %s" % pkg.Name diff --git a/doc/examples/progress.py b/doc/examples/progress.py index 0dec95d1..c37de70d 100644 --- a/doc/examples/progress.py +++ b/doc/examples/progress.py @@ -48,4 +48,3 @@ class InstallProgress: def UpdateInterface(self): # usefull to e.g. redraw a GUI time.sleep(0.1) - -- cgit v1.2.3