Diffstat (limited to 'noncore/unsupported/oipkg/package.cpp') (more/less context) (show whitespace changes)
-rw-r--r-- | noncore/unsupported/oipkg/package.cpp | 98 |
1 files changed, 48 insertions, 50 deletions
diff --git a/noncore/unsupported/oipkg/package.cpp b/noncore/unsupported/oipkg/package.cpp index 3effb73..e020601 100644 --- a/noncore/unsupported/oipkg/package.cpp +++ b/noncore/unsupported/oipkg/package.cpp @@ -9,91 +9,90 @@ // (c) 2002 Patrick S. Vogt <tille@handhelds.org> #include "package.h" #include <qpe/process.h> #include <qpe/stringutil.h> #include <qfile.h> #include <qtextstream.h> #include <stdlib.h> #include <unistd.h> #include "debug.h" -Package::Package( QObject *parent, const char *name ) +OipkgPackage::OipkgPackage( QObject *parent, const char *name ) : QObject(parent,name) { } -Package::~Package() +OipkgPackage::~OipkgPackage() { } -Package::Package( PackageManagerSettings *s, QObject *parent, const char *name ) +OipkgPackage::OipkgPackage( PackageManagerSettings *s, QObject *parent, const char *name ) : QObject(parent,name) { - Package(parent,name); init(s); } -void Package::init( PackageManagerSettings *s ) +void OipkgPackage::init( PackageManagerSettings *s ) { settings = s; _size = ""; _section = ""; _subsection = ""; _shortDesc = ""; _desc = ""; _name = ""; _toProcess = false; _useFileName = false; _old = false; _status = ""; _dest = settings->getDestinationName(); _link = settings->createLinks(); _versions=0; _version=""; } -Package::Package( QStringList pack, PackageManagerSettings *s , QObject *parent, const char *name ) +OipkgPackage::OipkgPackage( QStringList pack, PackageManagerSettings *s , QObject *parent, const char *name ) : QObject(parent,name) { init(s); parsePackage( pack ); } -Package::Package( QString n, PackageManagerSettings *s, QObject *parent, const char *name ) +OipkgPackage::OipkgPackage( QString n, PackageManagerSettings *s, QObject *parent, const char *name ) : QObject(parent,name) { init(s); if ( !QFile::exists( n ) ) { _name = QString( n ); }else{ pvDebug(4,"remote file: "+n); parseIpkgFile( n ); _useFileName = true; _fileName = QString( n ); } } -Package::Package( Package *pi, QObject *parent, const char *name ) +OipkgPackage::OipkgPackage( OipkgPackage *pi, QObject *parent, const char *name ) : QObject(parent,name) { init(pi->settings); copyValues( pi ); } -void Package::setValue( QString n, QString t ) +void OipkgPackage::setValue( QString n, QString t ) { if ( n == "Package" ) { _name = QString( t ); }else if ( n == "Installed-Size" ) { _size = t; // }else if ( n == "Priority") // { }else if ( n == "Section") { @@ -128,211 +127,210 @@ void Package::setValue( QString n, QString t ) }else if ( n == "Status") { if ( installed() ) return; _status = t; // }else if ( n == "Essential") // { }else{ _values.insert(n,new QString(t)); } } -QString Package::name() +QString OipkgPackage::name() { if (_displayName.isEmpty() ) return _name; else return _displayName; } -QString Package::installName() +QString OipkgPackage::installName() { if (_useFileName) return _fileName; else return _name; } -QString Package::packageName() +QString OipkgPackage::packageName() { QString pn = installName(); pn = pn.right(pn.length()-pn.findRev("/")); pn = pn.left(pn.find("_")); return pn; } -bool Package::installed() +bool OipkgPackage::installed() { if (_status.contains("installed")) { if (_status.contains("not-installed")) { _toProcess = true; return false; } else return true; } else if (_versions) { - QDictIterator<Package> other( *_versions ); + QDictIterator<OipkgPackage> other( *_versions ); while ( other.current() ) { if (other.current()->status().contains("installed") && other.current()->version() == version()) return true; ++other; } } return false; } -bool Package::otherInstalled() +bool OipkgPackage::otherInstalled() { if (_versions) { - QDictIterator<Package> other( *_versions ); + QDictIterator<OipkgPackage> other( *_versions ); while ( other.current() ) { if (other.current()->installed()) return true; ++other; } } return false; } -void Package::setDesc( QString s ) +void OipkgPackage::setDesc( QString s ) { _desc = s; _shortDesc = s.left( s.find("\n") ); } -QString Package::desc() +QString OipkgPackage::desc() { return _desc; } -QString Package::shortDesc() +QString OipkgPackage::shortDesc() { return _shortDesc; } -QString Package::size() +QString OipkgPackage::size() { return _size; } -QString Package::version() +QString OipkgPackage::version() { return _version; } -QString Package::sizeUnits() +QString OipkgPackage::sizeUnits() { int i = _size.toInt(); int c = 0; QString ret; QStringList unit; unit << "B" << "KB" << "MB" << "GB" << "TB"; //prepair for the future ;) while (i > 1) { ret=QString::number(i)+" "+unit[c]; c++; i /= 1024; } return ret; } -bool Package::toProcess() +bool OipkgPackage::toProcess() { return _toProcess; } -bool Package::toRemove() +bool OipkgPackage::toRemove() { if ( _toProcess && installed() ) return true; else return false; } -bool Package::toInstall() +bool OipkgPackage::toInstall() { if ( _toProcess && !installed() ) return true; else return false; } -void Package::toggleProcess() +void OipkgPackage::toggleProcess() { _toProcess = ! _toProcess; } - -void Package::copyValues( Package* pack ) +void OipkgPackage::copyValues( OipkgPackage* pack ) { if (_size.isEmpty() && !pack->_size.isEmpty()) _size = QString( pack->_size ); if (_section.isEmpty() && !pack->_section.isEmpty()) _section = QString( pack->_section ); if (_subsection.isEmpty()&& !pack->_subsection.isEmpty()) _subsection = QString( pack->_subsection ); if (_shortDesc.isEmpty() && !pack->_shortDesc.isEmpty()) _shortDesc = QString( pack->_shortDesc ); if (_desc.isEmpty() && !pack->_desc.isEmpty()) _desc = QString( pack->_desc ); if (_name.isEmpty() && !pack->_name.isEmpty()) _name = QString( pack->_name ); if (_dest.isEmpty() && !pack->_dest.isEmpty()) _dest= QString( pack->_dest ); if (_displayName.isEmpty()&& !pack->_displayName.isEmpty()) _displayName = QString( pack->_displayName ); if (_fileName.isEmpty() && !pack->_fileName.isEmpty()) _fileName = QString( pack->_fileName ); if (_version.isEmpty() && !pack->_version.isEmpty()) _version = QString( pack->_version ); if (_values.isEmpty() && !pack->_values.isEmpty())_values = QDict<QString>( pack->_values ); if (!installed() && _status.isEmpty() && !pack->_status.isEmpty()) _status = QString( pack->_status ); } -QString Package::section() +QString OipkgPackage::section() { return _section; } -void Package::setSection( QString s) +void OipkgPackage::setSection( QString s) { int i = s.find("/"); if ( i > 0 ) { _section = s.left(i); _subsection = s.mid(i+1); }else{ _section = s; _subsection = ""; } } -QString Package::subSection() +QString OipkgPackage::subSection() { return _subsection; } -void Package::parsePackage( QStringList pack ) +void OipkgPackage::parsePackage( QStringList pack ) { if ( pack.isEmpty() ) return; int count = pack.count(); for( int i = 0; i < count; i++ ) { QString line = pack[i]; int sep = line.find( QRegExp(":[\t ]+") ); if ( sep >= 0 ) { QString tag = line.left(sep); QString value = line.mid(sep+2).simplifyWhiteSpace(); setValue( tag, value ); }else{ } } return; } -QString Package::details() +QString OipkgPackage::details() { QString status; Process ipkg_status(QStringList() << "ipkg" << "info" << name() ); QString description; if ( ipkg_status.exec("",status) ) { QStringList lines = QStringList::split('\n',status,TRUE); for (QStringList::Iterator it = lines.begin(); it!=lines.end(); ++it) { QString line = *it; if ( line == " ." ) { description.append("<p>"); @@ -353,62 +351,62 @@ QString Package::details() description.append(":</b> "); description.append(Qtopia::escapeString(line.mid(sep+2))); } else { description.append(" "); description.append(Qtopia::escapeString(line)); } } } } return description; } -void Package::processed() +void OipkgPackage::processed() { _toProcess = false; //hack, but we're not writing status anyway... if ( installed() ) _status = "install"; else _status = "installed"; } -QString Package::dest() +QString OipkgPackage::dest() { if ( installed()||(!installed() && _toProcess) ) return _dest!=""?_dest:settings->getDestinationName(); else return ""; } -void Package::setDest( QString d ) +void OipkgPackage::setDest( QString d ) { if ( d == "remote") _useFileName = true; else _dest = d; } -void Package::setOn() +void OipkgPackage::setOn() { _toProcess = true; } -bool Package::link() +bool OipkgPackage::link() { if ( _dest == "root" || (!installed() && !_toProcess) ) return false; return _link; } -void Package::setLink(bool b) +void OipkgPackage::setLink(bool b) { _link = b; } -void Package::parseIpkgFile( QString file) +void OipkgPackage::parseIpkgFile( QString file) { // 20020830 // a quick hack to make oipkg understand the new ipk format // neu: ar pf PACKAGE control.tar.gz | tar xfOz - ./control > /tmp/control if (system("ar pf "+file+" control.tar.gz | tar xfOz - ./control > /tmp/control") != 0) { //#old tar ipk format system("tar xzf "+file+" -C /tmp"); system("tar xzf /tmp/control.tar.gz -C /tmp"); } QFile f("/tmp/control"); if ( f.open(IO_ReadOnly) ) @@ -416,64 +414,64 @@ void Package::parseIpkgFile( QString file) QTextStream t( &f ); QStringList pack; while ( !t.eof() ) { pack << t.readLine(); } f.close(); parsePackage( pack ); } } -//QString Package::getPackageName() +//QString OipkgPackage::getPackageName() //{ // if ( _packageName.isEmpty() ) return _name; // else return _packageName; //} -void Package::instalFromFile(bool iff) +void OipkgPackage::instalFromFile(bool iff) { _useFileName = iff; } -void Package::setName(QString n) +void OipkgPackage::setName(QString n) { _displayName = n; } -QDict<QString>* Package::getFields() +QDict<QString>* OipkgPackage::getFields() { return &_values; } -QString Package::status() +QString OipkgPackage::status() { return _status; } -bool Package::isOld() +bool OipkgPackage::isOld() { if (!_versions) return false; - QDictIterator<Package> other( *_versions ); + QDictIterator<OipkgPackage> other( *_versions ); while ( other.current() ) { if (other.current()->version() > version() ) return true; ++other; } return false; } -bool Package::hasVersions() +bool OipkgPackage::hasVersions() { if (!_versions) return false; else return true; } -QDict<Package>* Package::getOtherVersions() +QDict<OipkgPackage>* OipkgPackage::getOtherVersions() { return _versions; } -void Package::setOtherVersions(QDict<Package> *v) +void OipkgPackage::setOtherVersions(QDict<OipkgPackage> *v) { _versions=v; } |