diff options
Diffstat (limited to 'doc/examples/acquire.py')
| -rw-r--r-- | doc/examples/acquire.py | 92 |
1 files changed, 92 insertions, 0 deletions
diff --git a/doc/examples/acquire.py b/doc/examples/acquire.py new file mode 100644 index 00000000..a0790c98 --- /dev/null +++ b/doc/examples/acquire.py @@ -0,0 +1,92 @@ +import apt +import apt_pkg +import os +import sys +import tempfile + +def get_file(fetcher, uri, destFile): + cwd = os.getcwd() + # create a temp dir + dir = tempfile.mkdtemp() + os.chdir(dir) + # get the file + af = apt_pkg.GetPkgAcqFile(fetcher, + uri=uri, + descr="sample descr") + res = fetcher.Run() + if res != fetcher.ResultContinue: + os.rmdir(dir) + os.chdir(cwd) + return False + filename = os.path.basename(uri) + os.rename(dir+"/"+filename,destFile) + # cleanup + os.rmdir(dir) + os.chdir(cwd) + return True + +apt_pkg.init() + +#apt_pkg.Config.Set("Debug::pkgDPkgPM","1"); +#apt_pkg.Config.Set("Debug::pkgPackageManager","1"); +#apt_pkg.Config.Set("Debug::pkgDPkgProgressReporting","1"); + +cache = apt_pkg.GetCache() +depcache = apt_pkg.GetDepCache(cache) + +recs = apt_pkg.GetPkgRecords(cache) +list = apt_pkg.GetPkgSourceList() +list.ReadMainList() + +# show the amount fetch needed for a dist-upgrade +depcache.Upgrade(True) +progress = apt.progress.TextFetchProgress() +fetcher = apt_pkg.GetAcquire(progress) +pm = apt_pkg.GetPackageManager(depcache) +pm.GetArchives(fetcher,list,recs) +print "%s (%s)" % (apt_pkg.SizeToStr(fetcher.FetchNeeded), fetcher.FetchNeeded) + +for pkg in cache.Packages: + depcache.MarkKeep(pkg) + +try: + os.mkdir("/tmp/pyapt-test") + os.mkdir("/tmp/pyapt-test/partial") +except OSError: + pass +apt_pkg.Config.Set("Dir::Cache::archives","/tmp/pyapt-test") + +pkg = cache["3ddesktop"] +depcache.MarkInstall(pkg) + +progress = apt.progress.TextFetchProgress() +fetcher = apt_pkg.GetAcquire(progress) +#fetcher = apt_pkg.GetAcquire() +pm = apt_pkg.GetPackageManager(depcache) + +print pm +print fetcher + +get_file(fetcher, "ftp://ftp.debian.org/debian/dists/README", "/tmp/lala") +sys.exit(1) + +pm.GetArchives(fetcher,list,recs) + +for item in fetcher.Items: + print item + if item.Status == item.StatError: + print "Some error ocured: '%s'" % item.ErrorText + if item.Complete == False: + print "No error, still nothing downloaded (%s)" % item.ErrorText + print + + +res = fetcher.Run() +print "fetcher.Run() returned: %s" % res + +print "now runing pm.DoInstall()" +res = pm.DoInstall(1) +print "pm.DoInstall() returned: %s"% res + + + |
