X-Git-Url: https://git.saurik.com/apt.git/blobdiff_plain/3856756b3469c194ad4f56bf83497f25c42e8253..de6a3945e1211f6edf2069e11f6fbe522d6776d5:/test/scratch.cc?ds=sidebyside diff --git a/test/scratch.cc b/test/scratch.cc index d3ca58a77..d638c7097 100644 --- a/test/scratch.cc +++ b/test/scratch.cc @@ -1,31 +1,105 @@ -#include -#include +#include +#include +#include +#include +#include +#include +#include +#include -#include -#include +using namespace std; int main(int argc,char *argv[]) { - URI U(argv[1]); - cout << U.Access << endl; - cout << U.User << endl; - cout << U.Password << endl; - cout << U.Host << endl; - cout << U.Path << endl; - cout << U.Port << endl; + pkgInitConfig(*_config); + pkgInitSystem(*_config,_system); + +// cout << flNoLink(argv[1]) << endl; + +// #if 0 +/* DynamicMMap *FileMap = new DynamicMMap(MMap::Public); + pkgFLCache *FList = new pkgFLCache(*FileMap); + + char *Name = "/tmp/test"; + pkgFLCache::PkgIterator Pkg(*FList,0); + pkgFLCache::NodeIterator Node = FList->GetNode(Name,Name+strlen(Name),Pkg.Offset(),true,false); + cout << (pkgFLCache::Node *)Node << endl; + Node = FList->GetNode(Name,Name+strlen(Name),Pkg.Offset(),true,false); + cout << (pkgFLCache::Node *)Node << endl; +*/ +// #if 0 + _config->Set("Dir::State::status","/tmp/testing/status"); + + debDpkgDB Db; + + { + OpTextProgress Prog; -/* - FileFd F(argv[1],FileFd::ReadOnly); - pkgTagFile Reader(F); + if (Db.ReadyPkgCache(Prog) == false) + cerr << "Error!" << endl; + Prog.Done(); + + if (Db.ReadyFileList(Prog) == false) + cerr << "Error!" << endl; + } - pkgTagSection Sect; - while (Reader.Step(Sect) == true) + if (_error->PendingError() == true) { - Sect.FindS("Package"); - Sect.FindS("Section"); - Sect.FindS("Version"); - Sect.FindI("Size"); - };*/ + _error->DumpErrors(); + return 0; + } - return 0; +/* Db.GetFLCache().BeginDiverLoad(); + pkgFLCache::PkgIterator Pkg(Db.GetFLCache(),0); + if (Db.GetFLCache().AddDiversion(Pkg,"/usr/include/linux/kerneld.h","/usr/bin/nslookup") == false) + cerr << "Error!" << endl; + + const char *Tmp = "/usr/include/linux/kerneld.h"; + pkgFLCache::NodeIterator Nde = Db.GetFLCache().GetNode(Tmp,Tmp+strlen(Tmp),0,false,false); + map_ptrloc Loc = Nde->File; + + for (; Nde.end() == false && Nde->File == Loc; Nde++) + cout << Nde->Flags << ',' << Nde->Pointer << ',' << Nde.File() << endl; + Db.GetFLCache().FinishDiverLoad();*/ + +/* unsigned int I = 0; + pkgFLCache &Fl = Db.GetFLCache(); + while (I < Fl.HeaderP->HashSize) + { + cout << I << endl; + pkgFLCache::NodeIterator Node(Fl,Fl.NodeP + Fl.HeaderP->FileHash + I++); + if (Node->Pointer == 0) + continue; + for (; Node.end() == false; Node++) + { + cout << Node.DirN() << '/' << Node.File(); + if (Node->Flags == pkgFLCache::Node::Diversion) + cout << " (div)"; + if (Node->Flags == pkgFLCache::Node::ConfFile) + cout << " (conf)"; + cout << endl; + } + }*/ + + for (int I = 1; I < argc; I++) + { + FileFd F(argv[I],FileFd::ReadOnly); + debDebFile Deb(F); + + if (Deb.ExtractControl(Db) == false) + cerr << "Error!" << endl; + cout << argv[I] << endl; + + pkgCache::VerIterator Ver = Deb.MergeControl(Db); + if (Ver.end() == true) + cerr << "Failed" << endl; + else + cout << Ver.ParentPkg().Name() << ' ' << Ver.VerStr() << endl; + + pkgExtract Extract(Db.GetFLCache(),Ver); + Deb.ExtractArchive(Extract); + } +// #endif +//#endif + _error->DumpErrors(); }