summaryrefslogtreecommitdiff
authorandyq <andyq>2002-10-16 16:27:00 (UTC)
committer andyq <andyq>2002-10-16 16:27:00 (UTC)
commitea11ae7dc31e23578d13f30315a3697cbce99c05 (patch) (unidiff)
tree38391e8c5d681a2bad804ec32aececd62befa19c
parentdf5c9a60e2ee3484f424b4d6aa2f158a9aade93b (diff)
downloadopie-ea11ae7dc31e23578d13f30315a3697cbce99c05.zip
opie-ea11ae7dc31e23578d13f30315a3697cbce99c05.tar.gz
opie-ea11ae7dc31e23578d13f30315a3697cbce99c05.tar.bz2
Fixed bug with reading ipkg.conf (ignored src lines that were commented out
with # src Also, now writes a nice comment out to the ipkg.conf file
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/settings/aqpkg/datamgr.cpp53
1 files changed, 45 insertions, 8 deletions
diff --git a/noncore/settings/aqpkg/datamgr.cpp b/noncore/settings/aqpkg/datamgr.cpp
index b9ce227..b6e6e37 100644
--- a/noncore/settings/aqpkg/datamgr.cpp
+++ b/noncore/settings/aqpkg/datamgr.cpp
@@ -80,20 +80,35 @@ void DataManager :: loadServers()
80 { 80 {
81 cout << "Couldn't open " << ipkg_conf << "! err = " << fp << endl; 81 cout << "Couldn't open " << ipkg_conf << "! err = " << fp << endl;
82 return; 82 return;
83 } 83 }
84 else 84 else
85 { 85 {
86 {
87 cout << "Before ipkg.conf read" << endl;
88 vector<Server>::iterator it;
89 for ( it = serverList.begin() ; it != serverList.end() ; ++it )
90 cout << "servername - " << it->getServerName() << endl;
91 }
92
86 while ( fgets( line, sizeof line, fp) != NULL ) 93 while ( fgets( line, sizeof line, fp) != NULL )
87 { 94 {
88 lineStr = line; 95 lineStr = line;
89 if ( lineStr.startsWith( "src" ) || lineStr.startsWith( "#src" ) ) 96 if ( lineStr.startsWith( "src" ) || lineStr.startsWith( "#src" ) || lineStr.startsWith( "# src" ) )
90 { 97 {
91 char alias[20]; 98 char alias[20];
92 char url[100]; 99 char url[100];
93 sscanf( lineStr, "%*[^ ] %s %s", alias, url ); 100
101
102 // Looks a little wierd but read up to the r of src (throwing it away),
103 // then read up to the next space and throw that away, the alias
104 // is next.
105 // Should Handle #src, # src, src, and combinations of
106 sscanf( lineStr, "%*[^r]%*[^ ] %s %s", alias, url );
107 cout << "Adding alias " << alias << " to list" << endl;
108 cout << lineStr << endl;
94 Server s( alias, url ); 109 Server s( alias, url );
95 serverList.push_back( s ); 110 serverList.push_back( s );
96 111
97 if ( lineStr.startsWith( "src" ) ) 112 if ( lineStr.startsWith( "src" ) )
98 setActiveServer( alias ); 113 setActiveServer( alias );
99 } 114 }
@@ -103,22 +118,29 @@ void DataManager :: loadServers()
103 char path[50]; 118 char path[50];
104 sscanf( lineStr, "%*[^ ] %s %s", alias, path ); 119 sscanf( lineStr, "%*[^ ] %s %s", alias, path );
105 Destination d( alias, path ); 120 Destination d( alias, path );
106 destList.push_back( d ); 121 destList.push_back( d );
107 } 122 }
108 } 123 }
124 {
125 cout << "After ipkg.conf read" << endl;
126 vector<Server>::iterator it;
127 for ( it = serverList.begin() ; it != serverList.end() ; ++it )
128 cout << "servername - " << it->getServerName() << endl;
129 }
130
109 } 131 }
110 fclose( fp ); 132 fclose( fp );
111 133
112 // Go through the server destination list and add root, cf and card if they 134 // Go through the server destination list and add root, cf and card if they
113 // don't already exist 135 // don't already exist
114 /* AQ - commented out as if you don't have a CF or SD card in then 136/* AQ - commented out as if you don't have a CF or SD card in then
115 * this causes IPKG to try to create directories on non existant devices 137 * this causes IPKG to try to create directories on non existant devices
116 * (which of course fails), gives a nasty error message and can cause ipkg 138 * (which of course fails), gives a nasty error message and can cause ipkg
117 * to seg fault. 139 * to seg fault.
118 * 140 *
119 vector<Destination>::iterator dit; 141 vector<Destination>::iterator dit;
120 bool foundRoot = false; 142 bool foundRoot = false;
121 bool foundCF = false; 143 bool foundCF = false;
122 bool foundCard = false; 144 bool foundCard = false;
123 for ( dit = destList.begin() ; dit != destList.end() ; ++dit ) 145 for ( dit = destList.begin() ; dit != destList.end() ; ++dit )
124 { 146 {
@@ -167,13 +189,26 @@ void DataManager :: reloadServerData( const char *serverName )
167 189
168void DataManager :: writeOutIpkgConf() 190void DataManager :: writeOutIpkgConf()
169{ 191{
170 QString ipkg_conf = IPKG_CONF; 192 QString ipkg_conf = IPKG_CONF;
171 ofstream out( ipkg_conf ); 193 ofstream out( ipkg_conf );
172 194
173 out << "# Written by NetworkPackageManager Package Manager" << endl; 195 out << "# Written by AQPkg" << endl;
196 out << "# Must have one or more source entries of the form:" << endl;
197 out << "#" << endl;
198 out << "# src <src-name> <source-url>" << endl;
199 out << "#" << endl;
200 out << "# and one or more destination entries of the form:" << endl;
201 out << "#" << endl;
202 out << "# dest <dest-name> <target-path>" << endl;
203 out << "#" << endl;
204 out << "# where <src-name> and <dest-names> are identifiers that" << endl;
205 out << "# should match [a-zA-Z0-9._-]+, <source-url> should be a" << endl;
206 out << "# URL that points to a directory containing a Familiar" << endl;
207 out << "# Packages file, and <target-path> should be a directory" << endl;
208 out << "# that exists on the target system." << endl << endl;
174 209
175 // Write out servers 210 // Write out servers
176 vector<Server>::iterator it = serverList.begin(); 211 vector<Server>::iterator it = serverList.begin();
177 while ( it != serverList.end() ) 212 while ( it != serverList.end() )
178 { 213 {
179 QString alias = it->getServerName(); 214 QString alias = it->getServerName();
@@ -187,12 +222,14 @@ void DataManager :: writeOutIpkgConf()
187 out << "src " << alias << " " << url << endl; 222 out << "src " << alias << " " << url << endl;
188 } 223 }
189 224
190 it++; 225 it++;
191 } 226 }
192 227
228 out << endl;
229
193 // Write out destinations 230 // Write out destinations
194 vector<Destination>::iterator it2 = destList.begin(); 231 vector<Destination>::iterator it2 = destList.begin();
195 while ( it2 != destList.end() ) 232 while ( it2 != destList.end() )
196 { 233 {
197 out << "dest " << it2->getDestinationName() << " " << it2->getDestinationPath() << endl; 234 out << "dest " << it2->getDestinationName() << " " << it2->getDestinationPath() << endl;
198 it2++; 235 it2++;