home *** CD-ROM | disk | FTP | other *** search
/ PC Welt 2006 November (DVD) / PCWELT_11_2006.ISO / casper / filesystem.squashfs / usr / share / doc / python-apt / examples / action.py < prev    next >
Encoding:
Python Source  |  2006-03-02  |  3.4 KB  |  123 lines

  1. #!/usr/bin/python
  2. # example how to deal with the depcache
  3.  
  4. import apt_pkg
  5. import sys
  6. import copy
  7. from apt.progress import OpTextProgress
  8. from progress import TextFetchProgress
  9.  
  10. # init
  11. apt_pkg.init()
  12.  
  13. progress = OpTextProgress()
  14. cache = apt_pkg.GetCache(progress)
  15. print "Available packages: %s " % cache.PackageCount
  16.  
  17. print "Fetching"
  18. progress = TextFetchProgress()
  19. cache.Update(progress)
  20.  
  21. print "Exiting"
  22. sys.exit(0)
  23.  
  24.  
  25.  
  26.  
  27.  
  28.  
  29.  
  30.  
  31.  
  32.  
  33. iter = cache["base-config"]
  34. print "example package iter: %s" % iter
  35.  
  36. # get depcache
  37. print "\n\n depcache"
  38. depcache = apt_pkg.GetDepCache(cache, progress)
  39. depcache.ReadPinFile()
  40. print "got a depcache: %s " % depcache
  41. print "Marked for install: %s " % depcache.InstCount
  42.  
  43. print "\n\n Reinit"
  44. depcache.Init(progress)
  45.  
  46. #sys.exit()
  47.  
  48.  
  49. # get a canidate version
  50. ver= depcache.GetCandidateVer(iter)
  51. print "Candidate version: %s " % ver
  52.  
  53. print "\n\nQuerry interface"
  54. print "%s.IsUpgradable(): %s" % (iter.Name, depcache.IsUpgradable(iter))
  55.  
  56. print "\nMarking interface"
  57. print "Marking '%s' for install" % iter.Name
  58. depcache.MarkInstall(iter)
  59. print "Install count: %s " % depcache.InstCount
  60. print "%s.MarkedInstall(): %s" % (iter.Name, depcache.MarkedInstall(iter))
  61. print "%s.MarkedUpgrade(): %s" % (iter.Name, depcache.MarkedUpgrade(iter))
  62. print "%s.MarkedDelete(): %s" % (iter.Name, depcache.MarkedDelete(iter))
  63.  
  64. print "Marking %s for delete" % iter.Name
  65. depcache.MarkDelete(iter)
  66. print "DelCount: %s " % depcache.DelCount
  67. print "%s.MarkedDelete(): %s" % (iter.Name, depcache.MarkedDelete(iter))
  68.  
  69.  
  70. iter = cache["3dchess"]
  71. print "\nMarking '%s' for install" % iter.Name
  72. depcache.MarkInstall(iter)
  73. print "Install count: %s " % depcache.InstCount
  74. print "%s.MarkedInstall(): %s" % (iter.Name, depcache.MarkedInstall(iter))
  75. print "%s.MarkedUpgrade(): %s" % (iter.Name, depcache.MarkedUpgrade(iter))
  76. print "%s.MarkedDelete(): %s" % (iter.Name, depcache.MarkedDelete(iter))
  77.  
  78. print "Marking %s for keep" % iter.Name
  79. depcache.MarkKeep(iter)
  80. print "Install: %s " % depcache.InstCount
  81.  
  82. iter = cache["3dwm-server"]
  83. print "\nMarking '%s' for install" % iter.Name
  84. depcache.MarkInstall(iter)
  85. print "Install: %s " % depcache.InstCount
  86. print "Broken count: %s" % depcache.BrokenCount
  87. print "FixBroken() "
  88. depcache.FixBroken()
  89. print "Broken count: %s" % depcache.BrokenCount
  90.  
  91. print "\nPerforming Upgrade"
  92. depcache.Upgrade()
  93. print "Keep: %s " % depcache.KeepCount
  94. print "Install: %s " % depcache.InstCount
  95. print "Delete: %s " % depcache.DelCount
  96. print "UsrSize: %s " % apt_pkg.SizeToStr(depcache.UsrSize)
  97. print "DebSize: %s " % apt_pkg.SizeToStr(depcache.DebSize)
  98.  
  99. for pkg in cache.Packages:
  100.     if pkg.CurrentVer != None and not depcache.MarkedInstall(pkg) and depcache.IsUpgradable(pkg):
  101.         print "Upgrade didn't upgrade (kept): %s" % pkg.Name
  102.  
  103.  
  104. print "\nPerforming DistUpgrade"
  105. depcache.Upgrade(True)
  106. print "Keep: %s " % depcache.KeepCount
  107. print "Install: %s " % depcache.InstCount
  108. print "Delete: %s " % depcache.DelCount
  109. print "UsrSize: %s " % apt_pkg.SizeToStr(depcache.UsrSize)
  110. print "DebSize: %s " % apt_pkg.SizeToStr(depcache.DebSize)
  111.  
  112. # overview about what would happen
  113. for pkg in cache.Packages:
  114.     if depcache.MarkedInstall(pkg):
  115.         if pkg.CurrentVer != None:
  116.             print "Marked upgrade: %s " % pkg.Name
  117.         else:
  118.             print "Marked install: %s" % pkg.Name
  119.     elif depcache.MarkedDelete(pkg):
  120.         print "Marked delete: %s" % pkg.Name
  121.     elif depcache.MarkedKeep(pkg):
  122.         print "Marked keep: %s" % pkg.Name
  123.