- move common code in apt-cache/shell to cmdline
[apt.git] / cmdline / cmdline.h
1 // -*- mode: c++; mode: fold -*-
2 #include <apt-pkg/pkgcache.h>
3 #include <apt-pkg/cachefile.h>
4 #include <apt-pkg/algorithms.h>
5 #include <apt-pkg/version.h>
6 #include <apt-pkg/strutl.h>
7 #include <apt-pkg/cmndline.h>
8 #include <apt-pkg/clean.h>
9 #include <apt-pkg/pkgrecords.h>
10 #include <apt-pkg/srcrecords.h>
11
12 #include <fstream>
13 #include <stdio.h>
14
15 using std::ostream;
16 using std::ofstream;
17
18 static ostream c0out(0);
19 static ostream c1out(0);
20 static ostream c2out(0);
21 static ofstream devnull("/dev/null");
22 static unsigned int ScreenWidth = 80;
23
24 bool YnPrompt();
25 bool AnalPrompt(const char *Text);
26 void SigWinch(int);
27
28 const char *op2str(int op);
29
30 class cmdCacheFile : public pkgCacheFile
31 {
32    static pkgCache *SortCache;
33    static int NameComp(const void *a,const void *b);
34
35    public:
36    pkgCache::Package **List;
37    void Sort();
38
39    cmdCacheFile() : List(0) {};
40 };
41
42 class LogCleaner : public pkgArchiveCleaner
43 {
44    protected:
45    virtual void Erase(const char *File,string Pkg,string Ver,struct stat &St);
46
47    public:
48    virtual ~LogCleaner() {};
49 };
50
51 bool ShowList(ostream &out,string Title,string List,string VersionsList);
52 void Stats(ostream &out,pkgDepCache &Dep,pkgDepCache::State *State=NULL);
53 void ShowBroken(ostream &out,cmdCacheFile &Cache,bool Now, 
54                 pkgDepCache::State *State=NULL);
55 void ShowNew(ostream &out,cmdCacheFile &Cache, pkgDepCache::State *State=NULL);
56 void ShowDel(ostream &out,cmdCacheFile &Cache, pkgDepCache::State *State=NULL);
57 void ShowKept(ostream &out,cmdCacheFile &Cache, pkgDepCache::State *State=NULL);
58 void ShowUpgraded(ostream &out,cmdCacheFile &Cache, 
59                   pkgDepCache::State *State=NULL);
60 bool ShowDowngraded(ostream &out,cmdCacheFile &Cache, 
61                     pkgDepCache::State *State=NULL);
62 bool ShowHold(ostream &out,cmdCacheFile &Cache, pkgDepCache::State *State=NULL);
63 bool ShowEssential(ostream &out,cmdCacheFile &Cache, pkgDepCache::State *State=NULL);
64
65 bool cmdDoClean(CommandLine &CmdL);
66 bool cmdDoList(CommandLine &CmdL, cmdCacheFile &Cache);
67
68 pkgSrcRecords::Parser *FindSrc(const char *Name,pkgRecords &Recs,
69                                pkgSrcRecords &SrcRecs,string &Src,
70                                pkgDepCache &Cache);
71
72
73 // apt-cache stuff
74 int LocalityCompare(const void *a, const void *b);
75 void LocalitySort(pkgCache::VerFile **begin, unsigned long Count,size_t Size);
76
77 bool cmdUnMet(CommandLine &CmdL, pkgCache &Cache);
78 bool cmdDumpPackage(CommandLine &CmdL, pkgCache &Cache);
79 bool cmdDisplayRecord(pkgCache::VerIterator V, pkgCache &Cache);
80 bool cmdDepends(CommandLine &CmdL, pkgCache &Cache);
81 bool cmdRDepends(CommandLine &CmdL, pkgCache &Cache);
82 bool cmdWhatDepends(CommandLine &CmdL, pkgCache &Cache);
83 bool cmdWhatProvides(CommandLine &CmdL, pkgCache &Cache);
84 bool cmdShowPackage(CommandLine &CmdL, pkgCache &Cache);
85
86 bool cmdSearch(CommandLine &CmdL, pkgCache &Cache);
87 bool cmdSearchFile(CommandLine &CmdL, pkgCache &Cache);
88
89
90 // vim:sts=3:sw=3