-rw-r--r-- | noncore/settings/aqpkg/server.cpp | 13 | ||||
-rw-r--r-- | noncore/settings/aqpkg/server.h | 3 |
2 files changed, 11 insertions, 5 deletions
diff --git a/noncore/settings/aqpkg/server.cpp b/noncore/settings/aqpkg/server.cpp index 0069a60..7d103a2 100644 --- a/noncore/settings/aqpkg/server.cpp +++ b/noncore/settings/aqpkg/server.cpp | |||
@@ -73,17 +73,17 @@ void Server :: readStatusFile( vector<Destination> &destList ) | |||
73 | 73 | ||
74 | if ( path == "/" ) | 74 | if ( path == "/" ) |
75 | { | 75 | { |
76 | rootRead = true; | 76 | rootRead = true; |
77 | installingToRoot = true; | 77 | installingToRoot = true; |
78 | } | 78 | } |
79 | 79 | ||
80 | packageFile = path + "usr/lib/ipkg/status"; | 80 | packageFile = path + "usr/lib/ipkg/status"; |
81 | readPackageFile( 0, false, installingToRoot ); | 81 | readPackageFile( 0, false, installingToRoot, dit ); |
82 | } | 82 | } |
83 | 83 | ||
84 | // Ensure that the root status file is read | 84 | // Ensure that the root status file is read |
85 | if ( !rootRead ) | 85 | if ( !rootRead ) |
86 | { | 86 | { |
87 | cout << "Reading status file " << "/usr/lib/ipkg/status" << endl; | 87 | cout << "Reading status file " << "/usr/lib/ipkg/status" << endl; |
88 | packageFile = "/usr/lib/ipkg/status"; | 88 | packageFile = "/usr/lib/ipkg/status"; |
89 | readPackageFile( 0, false, true ); | 89 | readPackageFile( 0, false, true ); |
@@ -134,17 +134,17 @@ void Server :: readLocalIpks( Server *local ) | |||
134 | packageList.back().setPackageStoredLocally( true ); | 134 | packageList.back().setPackageStoredLocally( true ); |
135 | } | 135 | } |
136 | #endif | 136 | #endif |
137 | 137 | ||
138 | // build local packages | 138 | // build local packages |
139 | buildLocalPackages( local ); | 139 | buildLocalPackages( local ); |
140 | } | 140 | } |
141 | 141 | ||
142 | void Server :: readPackageFile( Server *local, bool clearAll, bool installingToRoot ) | 142 | void Server :: readPackageFile( Server *local, bool clearAll, bool installingToRoot, Destination *dest ) |
143 | { | 143 | { |
144 | ifstream in( packageFile ); | 144 | ifstream in( packageFile ); |
145 | if ( !in.is_open() ) | 145 | if ( !in.is_open() ) |
146 | return; | 146 | return; |
147 | 147 | ||
148 | char line[1001]; | 148 | char line[1001]; |
149 | char k[21]; | 149 | char k[21]; |
150 | char v[1001]; | 150 | char v[1001]; |
@@ -163,30 +163,37 @@ void Server :: readPackageFile( Server *local, bool clearAll, bool installingToR | |||
163 | continue; | 163 | continue; |
164 | 164 | ||
165 | k[0] = '\0'; | 165 | k[0] = '\0'; |
166 | v[0] = '\0'; | 166 | v[0] = '\0'; |
167 | 167 | ||
168 | sscanf( line, "%[^:]: %[^\n]", k, v ); | 168 | sscanf( line, "%[^:]: %[^\n]", k, v ); |
169 | key = k; | 169 | key = k; |
170 | value = v; | 170 | value = v; |
171 | key.stripWhiteSpace(); | 171 | key = key.stripWhiteSpace(); |
172 | value = value.stripWhiteSpace(); | ||
172 | if ( key == "Package" && newPackage ) | 173 | if ( key == "Package" && newPackage ) |
173 | { | 174 | { |
174 | newPackage = false; | 175 | newPackage = false; |
175 | 176 | ||
176 | currPackage = getPackage( value ); | 177 | currPackage = getPackage( value ); |
177 | if ( !currPackage ) | 178 | if ( !currPackage ) |
178 | { | 179 | { |
179 | packageList.push_back( Package( value ) ); | 180 | packageList.push_back( Package( value ) ); |
180 | currPackage = &(packageList.back()); | 181 | currPackage = &(packageList.back()); |
182 | currPackage->setInstalledTo( dest ); | ||
181 | 183 | ||
182 | if ( installingToRoot ) | 184 | if ( installingToRoot ) |
183 | currPackage->setInstalledToRoot( true ); | 185 | currPackage->setInstalledToRoot( true ); |
184 | } | 186 | } |
187 | else | ||
188 | { | ||
189 | if (currPackage->getStatus().find( "deinstall" ) != -1 ) | ||
190 | currPackage->setInstalledTo( dest ); | ||
191 | } | ||
185 | } | 192 | } |
186 | else if ( key == "Version" ) | 193 | else if ( key == "Version" ) |
187 | { | 194 | { |
188 | if ( currPackage ) | 195 | if ( currPackage ) |
189 | currPackage->setVersion( value ); | 196 | currPackage->setVersion( value ); |
190 | } | 197 | } |
191 | else if ( key == "Status" ) | 198 | else if ( key == "Status" ) |
192 | { | 199 | { |
diff --git a/noncore/settings/aqpkg/server.h b/noncore/settings/aqpkg/server.h index 5f83f75..e9f434c 100644 --- a/noncore/settings/aqpkg/server.h +++ b/noncore/settings/aqpkg/server.h | |||
@@ -32,17 +32,17 @@ public: | |||
32 | Server( const char *name, const char *url ); | 32 | Server( const char *name, const char *url ); |
33 | Server( const char *name, const char *url, const char *file ); | 33 | Server( const char *name, const char *url, const char *file ); |
34 | ~Server(); | 34 | ~Server(); |
35 | 35 | ||
36 | void cleanUp(); | 36 | void cleanUp(); |
37 | 37 | ||
38 | void readStatusFile( vector<Destination> &v ); | 38 | void readStatusFile( vector<Destination> &v ); |
39 | void readLocalIpks( Server *local ); | 39 | void readLocalIpks( Server *local ); |
40 | void readPackageFile( Server *local = 0, bool clearAll = true, bool installedToRoot= false ); | 40 | void readPackageFile( Server *local = 0, bool clearAll = true, bool installedToRoot= false, Destination *dest = 0 ); |
41 | void buildLocalPackages( Server *local ); | 41 | void buildLocalPackages( Server *local ); |
42 | Package *getPackage( const char *name ); | 42 | Package *getPackage( const char *name ); |
43 | Package *getPackage( QString &name ); | 43 | Package *getPackage( QString &name ); |
44 | QString toString(); | 44 | QString toString(); |
45 | vector<Package> &getPackageList(); | 45 | vector<Package> &getPackageList(); |
46 | bool isServerActive() { return active; } | 46 | bool isServerActive() { return active; } |
47 | 47 | ||
48 | void setServerName( const QString &name ) { serverName = name; } | 48 | void setServerName( const QString &name ) { serverName = name; } |
@@ -54,13 +54,12 @@ public: | |||
54 | protected: | 54 | protected: |
55 | 55 | ||
56 | private: | 56 | private: |
57 | QString serverName; | 57 | QString serverName; |
58 | QString serverUrl; | 58 | QString serverUrl; |
59 | QString packageFile; | 59 | QString packageFile; |
60 | bool active; | 60 | bool active; |
61 | 61 | ||
62 | |||
63 | vector<Package> packageList; | 62 | vector<Package> packageList; |
64 | }; | 63 | }; |
65 | 64 | ||
66 | #endif | 65 | #endif |