home *** CD-ROM | disk | FTP | other *** search
/ Mac Easy 2010 May / Mac Life Ubuntu.iso / casper / filesystem.squashfs / usr / share / doc / python-apt / examples / action.py < prev    next >
Encoding:
Python Source  |  2009-03-30  |  3.4 KB  |  112 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. iter = cache["base-config"]
  25. print "example package iter: %s" % iter
  26.  
  27. # get depcache
  28. print "\n\n depcache"
  29. depcache = apt_pkg.GetDepCache(cache, progress)
  30. depcache.ReadPinFile()
  31. print "got a depcache: %s " % depcache
  32. print "Marked for install: %s " % depcache.InstCount
  33.  
  34. print "\n\n Reinit"
  35. depcache.Init(progress)
  36.  
  37. #sys.exit()
  38.  
  39. # get a canidate version
  40. ver= depcache.GetCandidateVer(iter)
  41. print "Candidate version: %s " % ver
  42.  
  43. print "\n\nQuerry interface"
  44. print "%s.IsUpgradable(): %s" % (iter.Name, depcache.IsUpgradable(iter))
  45.  
  46. print "\nMarking interface"
  47. print "Marking '%s' for install" % iter.Name
  48. depcache.MarkInstall(iter)
  49. print "Install count: %s " % depcache.InstCount
  50. print "%s.MarkedInstall(): %s" % (iter.Name, depcache.MarkedInstall(iter))
  51. print "%s.MarkedUpgrade(): %s" % (iter.Name, depcache.MarkedUpgrade(iter))
  52. print "%s.MarkedDelete(): %s" % (iter.Name, depcache.MarkedDelete(iter))
  53.  
  54. print "Marking %s for delete" % iter.Name
  55. depcache.MarkDelete(iter)
  56. print "DelCount: %s " % depcache.DelCount
  57. print "%s.MarkedDelete(): %s" % (iter.Name, depcache.MarkedDelete(iter))
  58.  
  59. iter = cache["3dchess"]
  60. print "\nMarking '%s' for install" % iter.Name
  61. depcache.MarkInstall(iter)
  62. print "Install count: %s " % depcache.InstCount
  63. print "%s.MarkedInstall(): %s" % (iter.Name, depcache.MarkedInstall(iter))
  64. print "%s.MarkedUpgrade(): %s" % (iter.Name, depcache.MarkedUpgrade(iter))
  65. print "%s.MarkedDelete(): %s" % (iter.Name, depcache.MarkedDelete(iter))
  66.  
  67. print "Marking %s for keep" % iter.Name
  68. depcache.MarkKeep(iter)
  69. print "Install: %s " % depcache.InstCount
  70.  
  71. iter = cache["3dwm-server"]
  72. print "\nMarking '%s' for install" % iter.Name
  73. depcache.MarkInstall(iter)
  74. print "Install: %s " % depcache.InstCount
  75. print "Broken count: %s" % depcache.BrokenCount
  76. print "FixBroken() "
  77. depcache.FixBroken()
  78. print "Broken count: %s" % depcache.BrokenCount
  79.  
  80. print "\nPerforming Upgrade"
  81. depcache.Upgrade()
  82. print "Keep: %s " % depcache.KeepCount
  83. print "Install: %s " % depcache.InstCount
  84. print "Delete: %s " % depcache.DelCount
  85. print "UsrSize: %s " % apt_pkg.SizeToStr(depcache.UsrSize)
  86. print "DebSize: %s " % apt_pkg.SizeToStr(depcache.DebSize)
  87.  
  88. for pkg in cache.Packages:
  89.     if pkg.CurrentVer is not None and not depcache.MarkedInstall(pkg) \
  90.         and depcache.IsUpgradable(pkg):
  91.         print "Upgrade didn't upgrade (kept): %s" % pkg.Name
  92.  
  93. print "\nPerforming DistUpgrade"
  94. depcache.Upgrade(True)
  95. print "Keep: %s " % depcache.KeepCount
  96. print "Install: %s " % depcache.InstCount
  97. print "Delete: %s " % depcache.DelCount
  98. print "UsrSize: %s " % apt_pkg.SizeToStr(depcache.UsrSize)
  99. print "DebSize: %s " % apt_pkg.SizeToStr(depcache.DebSize)
  100.  
  101. # overview about what would happen
  102. for pkg in cache.Packages:
  103.     if depcache.MarkedInstall(pkg):
  104.         if pkg.CurrentVer is not None:
  105.             print "Marked upgrade: %s " % pkg.Name
  106.         else:
  107.             print "Marked install: %s" % pkg.Name
  108.     elif depcache.MarkedDelete(pkg):
  109.         print "Marked delete: %s" % pkg.Name
  110.     elif depcache.MarkedKeep(pkg):
  111.         print "Marked keep: %s" % pkg.Name
  112.