summaryrefslogtreecommitdiff
path: root/python
diff options
context:
space:
mode:
authorMichael Vogt <michael.vogt@ubuntu.com>2008-01-04 21:31:32 +0100
committerMichael Vogt <michael.vogt@ubuntu.com>2008-01-04 21:31:32 +0100
commit7760b4a0ee334ff04a60086d06548d6bda6d55d9 (patch)
tree5d0f64a1940e996d51b5ae59bf93b3cf30af73ec /python
parent9561c3ddd5f14103ca96042c465586479c75c02d (diff)
downloadpython-apt-7760b4a0ee334ff04a60086d06548d6bda6d55d9.tar.gz
* use the new CacheFile::ListUpdate() code
* add example in doc/examples/update.py
Diffstat (limited to 'python')
-rw-r--r--python/cache.cc49
1 files changed, 8 insertions, 41 deletions
diff --git a/python/cache.cc b/python/cache.cc
index aa4d9ffc..2bbeb14a 100644
--- a/python/cache.cc
+++ b/python/cache.cc
@@ -24,6 +24,8 @@
#include <Python.h>
#include "progress.h"
+class pkgSourceList;
+
/*}}}*/
struct PkgListStruct
{
@@ -76,53 +78,18 @@ static PyObject *PkgCacheUpdate(PyObject *Self,PyObject *Args)
PyObject *CacheFilePy = GetOwner<pkgCache*>(Self);
pkgCacheFile *Cache = GetCpp<pkgCacheFile*>(CacheFilePy);
- PyObject *pyOpProgressInst = 0;
PyObject *pyFetchProgressInst = 0;
- if (PyArg_ParseTuple(Args, "O|O", &pyFetchProgressInst,&pyOpProgressInst) == 0)
+ PyObject *pySourcesList = 0;
+ if (PyArg_ParseTuple(Args, "OO", &pyFetchProgressInst,&pySourcesList) == 0)
return 0;
- FileFd Lock;
- if (_config->FindB("Debug::NoLocking", false) == false) {
- Lock.Fd(GetLock(_config->FindDir("Dir::State::Lists") + "lock"));
- if (_error->PendingError() == true)
- return HandleErrors();
- }
-
- pkgSourceList List;
- if(!List.ReadMainList()) {
- Py_INCREF(Py_None);
- return HandleErrors(Py_None);
- }
-
PyFetchProgress progress;
progress.setCallbackInst(pyFetchProgressInst);
+ pkgSourceList *source = GetCpp<pkgSourceList*>(pySourcesList);
+ bool res = Cache->ListUpdate(progress, *source);
- pkgAcquire Fetcher(&progress);
- if (!List.GetIndexes(&Fetcher))
- return HandleErrors();
- if (Fetcher.Run() == pkgAcquire::Failed) {
- Py_INCREF(Py_None);
- return HandleErrors(Py_None);
- }
-
-#if 0 // reopening the cache is the job of the python code now
- // doing it here is wrong and broken
- if(pyOpProgressInst != 0) {
- PyOpProgress progress;
- progress.setCallbackInst(pyOpProgressInst);
- if (Cache->Open(progress,false) == false)
- return HandleErrors();
- } else {
- OpTextProgress Prog;
- if (Cache->Open(Prog,false) == false) {
- Py_INCREF(Py_None);
- return HandleErrors(Py_None);
- }
- }
-#endif
-
- Py_INCREF(Py_None);
- return HandleErrors(Py_None);
+ PyObject *PyRes = Py_BuildValue("b", res);
+ return HandleErrors(PyRes);
}
static PyObject *PkgCacheClose(PyObject *Self,PyObject *Args)