summaryrefslogtreecommitdiff
path: root/noncore/settings/packagemanager/oipkg.cpp
Unidiff
Diffstat (limited to 'noncore/settings/packagemanager/oipkg.cpp') (more/less context) (show whitespace changes)
-rw-r--r--noncore/settings/packagemanager/oipkg.cpp14
1 files changed, 13 insertions, 1 deletions
diff --git a/noncore/settings/packagemanager/oipkg.cpp b/noncore/settings/packagemanager/oipkg.cpp
index 3d2c621..417ee95 100644
--- a/noncore/settings/packagemanager/oipkg.cpp
+++ b/noncore/settings/packagemanager/oipkg.cpp
@@ -222,50 +222,58 @@ void OIpkg::setConfigItems( OConfItemList *configList )
222 m_ipkgArgs.noaction = false; 222 m_ipkgArgs.noaction = false;
223 m_ipkgArgs.force_defaults = true; 223 m_ipkgArgs.force_defaults = true;
224} 224}
225 225
226void OIpkg::saveSettings() 226void OIpkg::saveSettings()
227{ 227{
228 // Save Ipkg execution options to application configuration file 228 // Save Ipkg execution options to application configuration file
229 if ( m_config ) 229 if ( m_config )
230 { 230 {
231 m_config->setGroup( "Ipkg" ); 231 m_config->setGroup( "Ipkg" );
232 m_config->writeEntry( "ExecOptions", m_ipkgExecOptions ); 232 m_config->writeEntry( "ExecOptions", m_ipkgExecOptions );
233 m_config->writeEntry( "Verbosity", m_ipkgExecVerbosity ); 233 m_config->writeEntry( "Verbosity", m_ipkgExecVerbosity );
234 } 234 }
235} 235}
236 236
237OPackageList *OIpkg::availablePackages( const QString &server ) 237OPackageList *OIpkg::availablePackages( const QString &server )
238{ 238{
239 // Load Ipkg configuration info if not already cached 239 // Load Ipkg configuration info if not already cached
240 if ( !m_confInfo ) 240 if ( !m_confInfo )
241 loadConfiguration(); 241 loadConfiguration();
242 242
243 // Build new server list (caller is responsible for deleting) 243 // Build new server list (caller is responsible for deleting)
244 OPackageList *pl = new OPackageList; 244 OPackageList *pl = new OPackageList;
245 245
246 // Get directory where server lists are located
247 QString listsDir;
248 OConfItem *confItem = findConfItem( OConfItem::Other, "lists_dir" );
249 if ( confItem )
250 listsDir = confItem->value();
251 else
252 listsDir = IPKG_PKG_PATH;
253
246 // Open package list file 254 // Open package list file
247 QFile f( IPKG_PKG_PATH + "/" + server ); 255 QFile f( listsDir + "/" + server );
248 if ( !f.open( IO_ReadOnly ) ) 256 if ( !f.open( IO_ReadOnly ) )
249 return NULL; 257 return NULL;
250 QTextStream t( &f ); 258 QTextStream t( &f );
251 259
252 // Process all information in package list file 260 // Process all information in package list file
253 OPackage *package = NULL; 261 OPackage *package = NULL;
254 QString line = t.readLine(); 262 QString line = t.readLine();
255 while ( !t.eof() ) 263 while ( !t.eof() )
256 { 264 {
257 // Determine key/value pair 265 // Determine key/value pair
258 int pos = line.find( ':', 0 ); 266 int pos = line.find( ':', 0 );
259 QString key; 267 QString key;
260 if ( pos > -1 ) 268 if ( pos > -1 )
261 key = line.mid( 0, pos ); 269 key = line.mid( 0, pos );
262 else 270 else
263 key = QString::null; 271 key = QString::null;
264 QString value = line.mid( pos+2, line.length()-pos ); 272 QString value = line.mid( pos+2, line.length()-pos );
265 273
266 // Allocate new package and insert into list 274 // Allocate new package and insert into list
267 if ( package == NULL && !key.isEmpty() ) 275 if ( package == NULL && !key.isEmpty() )
268 { 276 {
269 package = new OPackage( value ); 277 package = new OPackage( value );
270 package->setSource( server ); 278 package->setSource( server );
271 pl->append( package ); 279 pl->append( package );
@@ -586,48 +594,52 @@ void OIpkg::loadConfiguration()
586 // value = value 594 // value = value
587 // features = name (from configuration file) 595 // features = name (from configuration file)
588 596
589 QString typeStr = line.left( pos - 1 ); 597 QString typeStr = line.left( pos - 1 );
590 OConfItem::Type type; 598 OConfItem::Type type;
591 QString features; 599 QString features;
592 if ( typeStr == "src" ) 600 if ( typeStr == "src" )
593 type = OConfItem::Source; 601 type = OConfItem::Source;
594 else if ( typeStr == "src/gz" ) 602 else if ( typeStr == "src/gz" )
595 { 603 {
596 type = OConfItem::Source; 604 type = OConfItem::Source;
597 features = "Compressed"; 605 features = "Compressed";
598 } 606 }
599 else if ( typeStr == "dest" ) 607 else if ( typeStr == "dest" )
600 type = OConfItem::Destination; 608 type = OConfItem::Destination;
601 else if ( typeStr == "option" ) 609 else if ( typeStr == "option" )
602 type = OConfItem::Option; 610 type = OConfItem::Option;
603 else if ( typeStr == "arch" ) 611 else if ( typeStr == "arch" )
604 type = OConfItem::Arch; 612 type = OConfItem::Arch;
605 else if ( typeStr == "lists_dir" ) 613 else if ( typeStr == "lists_dir" )
606 { 614 {
607 type = OConfItem::Other; 615 type = OConfItem::Other;
608 features = name; 616 features = name;
609 name = typeStr; 617 name = typeStr;
618
619 // Default value when not defined
620 if ( value == QString::null || value == "" )
621 value = IPKG_PKG_PATH;
610 } 622 }
611 else 623 else
612 recognizedOption = false; 624 recognizedOption = false;
613 625
614 // Add to list 626 // Add to list
615 if ( recognizedOption ) 627 if ( recognizedOption )
616 m_confInfo->append( new OConfItem( type, name, value, features, active ) ); 628 m_confInfo->append( new OConfItem( type, name, value, features, active ) );
617 } 629 }
618 } 630 }
619 631
620 f.close(); 632 f.close();
621 } 633 }
622 } 634 }
623 635
624 // Load Ipkg execution options from application configuration file 636 // Load Ipkg execution options from application configuration file
625 if ( m_config ) 637 if ( m_config )
626 { 638 {
627 m_config->setGroup( "Ipkg" ); 639 m_config->setGroup( "Ipkg" );
628 m_ipkgExecOptions = m_config->readNumEntry( "ExecOptions", m_ipkgExecOptions ); 640 m_ipkgExecOptions = m_config->readNumEntry( "ExecOptions", m_ipkgExecOptions );
629 m_ipkgExecVerbosity = m_config->readNumEntry( "Verbosity", m_ipkgExecVerbosity ); 641 m_ipkgExecVerbosity = m_config->readNumEntry( "Verbosity", m_ipkgExecVerbosity );
630 } 642 }
631} 643}
632 644
633OConfItemList *OIpkg::filterConfItems( OConfItem::Type typefilter ) 645OConfItemList *OIpkg::filterConfItems( OConfItem::Type typefilter )