author | tille <tille> | 2002-04-27 21:02:53 (UTC) |
---|---|---|
committer | tille <tille> | 2002-04-27 21:02:53 (UTC) |
commit | 69e271e44d23befc74a96a98708ddb6ec754a4b6 (patch) (side-by-side diff) | |
tree | 6f8300d8858d2c7659eb90066b58b302a2863e43 /noncore/unsupported/oipkg/package.cpp | |
parent | acdc33336307e48ac7089b146006fe7b36e321a5 (diff) | |
download | opie-69e271e44d23befc74a96a98708ddb6ec754a4b6.zip opie-69e271e44d23befc74a96a98708ddb6ec754a4b6.tar.gz opie-69e271e44d23befc74a96a98708ddb6ec754a4b6.tar.bz2 |
setDocument working and some changes in install gui
Diffstat (limited to 'noncore/unsupported/oipkg/package.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r-- | noncore/unsupported/oipkg/package.cpp | 56 |
1 files changed, 45 insertions, 11 deletions
diff --git a/noncore/unsupported/oipkg/package.cpp b/noncore/unsupported/oipkg/package.cpp index 9f602b5..5f0e5fa 100644 --- a/noncore/unsupported/oipkg/package.cpp +++ b/noncore/unsupported/oipkg/package.cpp @@ -1,8 +1,12 @@ #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() @@ -24,30 +28,35 @@ void Package::init( PackageManagerSettings *s ) _desc = ""; _name = ""; _toProcess = false; _status = ""; - _dest = ""; + _dest = settings->getDestinationName(); + _link = settings->createLinks(); } Package::Package( QStringList pack, PackageManagerSettings *s ) { init(s); parsePackage( pack ); - _toProcess = false; } Package::Package( QString n, PackageManagerSettings *s ) { init(s); - _name = QString( n ); - _toProcess = false; + if ( !QFile::exists( n ) ) + { + _name = QString( n ); + }else{ + parseIpkgFile( n ); + _toProcess = true; + _packageName = QString( n ); + } } Package::Package( Package *pi ) { init(pi->settings); copyValues( pi ); - _toProcess = false; } void Package::setValue( QString n, QString t ) @@ -210,14 +219,14 @@ void Package::parsePackage( QStringList pack ) { 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{ - } + { + QString tag = line.left(sep); + QString value = line.mid(sep+2).simplifyWhiteSpace(); + setValue( tag, value ); + }else{ + } } return; } @@ -294,4 +303,29 @@ bool Package::link() void Package::setLink(bool b) { _link = b; } + +void Package::parseIpkgFile( QString file) +{ + system("tar xzf "+file+" -C /tmp"); + system("tar xzf /tmp/control.tar.gz -C /tmp"); + QFile f("/tmp/control"); + if ( f.open(IO_ReadOnly) ) + { + QTextStream t( &f ); + QStringList pack; + while ( !t.eof() ) + { + pack << t.readLine(); + } + f.close(); + parsePackage( pack ); + } + +} + +QString Package::getPackageName() +{ + if ( _packageName.isEmpty() ) return _name; + else return _packageName; +} |