]>
Commit | Line | Data |
---|---|---|
1 | // -*- mode: cpp; mode: fold -*- | |
2 | // Description /*{{{*/ | |
3 | // $Id: init.cc,v 1.14 1998/11/25 23:54:06 jgg Exp $ | |
4 | /* ###################################################################### | |
5 | ||
6 | Init - Initialize the package library | |
7 | ||
8 | ##################################################################### */ | |
9 | /*}}}*/ | |
10 | // Include files /*{{{*/ | |
11 | #include <apt-pkg/init.h> | |
12 | #include <apt-pkg/fileutl.h> | |
13 | #include <config.h> | |
14 | /*}}}*/ | |
15 | ||
16 | // pkgInitialize - Initialize the configuration class /*{{{*/ | |
17 | // --------------------------------------------------------------------- | |
18 | /* Directories are specified in such a way that the FindDir function will | |
19 | understand them. That is, if they don't start with a / then their parent | |
20 | is prepended, this allows a fair degree of flexability. */ | |
21 | bool pkgInitialize(Configuration &Cnf) | |
22 | { | |
23 | // General APT things | |
24 | Cnf.Set("APT::Architecture",ARCHITECTURE); | |
25 | ||
26 | // State | |
27 | Cnf.Set("Dir::State","/var/state/apt/"); | |
28 | Cnf.Set("Dir::State::lists","lists/"); | |
29 | ||
30 | /* These really should be jammed into a generic 'Local Database' engine | |
31 | which is yet to be determined. The functions in pkgcachegen should | |
32 | be the only users of these */ | |
33 | Cnf.Set("Dir::State::xstatus","xstatus"); | |
34 | Cnf.Set("Dir::State::userstatus","status.user"); | |
35 | Cnf.Set("Dir::State::status","/var/lib/dpkg/status"); | |
36 | Cnf.Set("Dir::State::cdroms","cdroms.list"); | |
37 | ||
38 | // Cache | |
39 | Cnf.Set("Dir::Cache","/var/cache/apt/"); | |
40 | Cnf.Set("Dir::Cache::archives","archives/"); | |
41 | Cnf.Set("Dir::Cache::srcpkgcache","srcpkgcache.bin"); | |
42 | Cnf.Set("Dir::Cache::pkgcache","pkgcache.bin"); | |
43 | ||
44 | // Configuration | |
45 | Cnf.Set("Dir::Etc","/etc/apt/"); | |
46 | Cnf.Set("Dir::Etc::sourcelist","sources.list"); | |
47 | Cnf.Set("Dir::Etc::main","apt.conf"); | |
48 | Cnf.Set("Dir::Bin::methods","/usr/lib/apt/methods"); | |
49 | Cnf.Set("Dir::Bin::dpkg","/usr/bin/dpkg"); | |
50 | ||
51 | // Read the main config file | |
52 | string FName = Cnf.FindFile("Dir::Etc::main"); | |
53 | bool Res = true; | |
54 | if (FileExists(FName) == true) | |
55 | Res &= ReadConfigFile(Cnf,FName); | |
56 | ||
57 | // Read an alternate config file | |
58 | const char *Cfg = getenv("APT_CONFIG"); | |
59 | if (Cfg != 0 && FileExists(Cfg) == true) | |
60 | Res &= ReadConfigFile(Cnf,Cfg); | |
61 | ||
62 | if (Res == false) | |
63 | return false; | |
64 | ||
65 | if (Cnf.FindB("Debug::pkgInitialize",false) == true) | |
66 | Cnf.Dump(); | |
67 | ||
68 | return true; | |
69 | } | |
70 | /*}}}*/ |