Diffstat (limited to 'core/launcher/packageslave.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r-- | core/launcher/packageslave.cpp | 191 |
1 files changed, 95 insertions, 96 deletions
diff --git a/core/launcher/packageslave.cpp b/core/launcher/packageslave.cpp index a11ac86..0461432 100644 --- a/core/launcher/packageslave.cpp +++ b/core/launcher/packageslave.cpp @@ -55,3 +55,3 @@ PackageHandler::PackageHandler( QObject *parent, char* name ) connect( packageChannel, SIGNAL( received(const QCString&,const QByteArray&) ), - this, SLOT( qcopMessage(const QCString&,const QByteArray&) ) ); + this, SLOT( qcopMessage(const QCString&,const QByteArray&) ) ); #endif @@ -68,3 +68,3 @@ void PackageHandler::qcopMessage( const QCString &msg, const QByteArray &data ) } else if ( msg == "removePackage(QString)" ) { - QString file; + QString file; stream >> file; @@ -72,3 +72,3 @@ void PackageHandler::qcopMessage( const QCString &msg, const QByteArray &data ) } else if ( msg == "addPackageFiles(QString,QString)" ) { - QString location, listfile; + QString location, listfile; stream >> location >> listfile; @@ -76,3 +76,3 @@ void PackageHandler::qcopMessage( const QCString &msg, const QByteArray &data ) } else if ( msg == "addPackages(QString)" ) { - QString location; + QString location; stream >> location; @@ -80,7 +80,7 @@ void PackageHandler::qcopMessage( const QCString &msg, const QByteArray &data ) } else if ( msg == "cleanupPackageFiles(QString)" ) { - QString listfile; + QString listfile; stream >> listfile; - cleanupPackageFiles( listfile ); + cleanupPackageFiles( listfile ); } else if ( msg == "cleanupPackages(QString)" ) { - QString location; + QString location; stream >> location; @@ -88,6 +88,6 @@ void PackageHandler::qcopMessage( const QCString &msg, const QByteArray &data ) } else if ( msg == "prepareInstall(QString,QString)" ) { - QString size, path; - stream >> size; - stream >> path; - prepareInstall( size, path ); + QString size, path; + stream >> size; + stream >> path; + prepareInstall( size, path ); } @@ -98,8 +98,8 @@ void PackageHandler::installPackage( const QString &package ) if ( mNoSpaceLeft ) { - mNoSpaceLeft = FALSE; - // Don't emit that for now, I still couldn't test it (Wener) - //sendReply( "installFailed(QString)", package ); - //return; + mNoSpaceLeft = FALSE; + // Don't emit that for now, I still couldn't test it (Wener) + //sendReply( "installFailed(QString)", package ); + //return; } - + currentProcess = new QProcess( QStringList() << "ipkg" << "install" << package ); // No tr @@ -136,4 +136,4 @@ void PackageHandler::sendReply( const QCString& msg, const QString& arg ) -void PackageHandler::addPackageFiles( const QString &location, - const QString &listfile ) +void PackageHandler::addPackageFiles( const QString &location, + const QString &listfile ) { @@ -146,5 +146,5 @@ void PackageHandler::addPackageFiles( const QString &location, QDir d; - //#### revise + //#### revise odebug << "Copy file at " << __FILE__ << ": " << __LINE__ << "" << oendl; - d.mkdir(("/usr/lib/ipkg/info/" + location).ascii()); + d.mkdir(("/usr/lib/ipkg/info/" + location).ascii()); system(("copy " + f.name() + " /usr/lib/ipkg/info/"+location).ascii()); @@ -152,34 +152,33 @@ void PackageHandler::addPackageFiles( const QString &location, - - if ( f.open(IO_ReadOnly) ) { - QTextStream ts(&f); - QString s; - while ( !ts.eof() ) { // until end of file... - s = ts.readLine(); // line of text excluding '\n' - // for s, do link/mkdir. - if ( s.right(1) == "/" ) { + if ( f.open(IO_ReadOnly) ) { + QTextStream ts(&f); + + QString s; + while ( !ts.eof() ) { // until end of file... + s = ts.readLine(); // line of text excluding '\n' + // for s, do link/mkdir. + if ( s.right(1) == "/" ) { odebug << "do mkdir for " << s.ascii() << "" << oendl; #ifndef Q_OS_WIN32 - mkdir( s.ascii(), 0777 ); - //possible optimization: symlink directories - //that don't exist already. -- Risky. + mkdir( s.ascii(), 0777 ); + //possible optimization: symlink directories + //that don't exist already. -- Risky. #else - d.mkdir( s.ascii()); + d.mkdir( s.ascii()); #endif - } else { + } else { #ifndef Q_OS_WIN32 odebug << "do symlink for " << s.ascii() << "" << oendl; - symlink( (location + s).ascii(), s.ascii() ); + symlink( (location + s).ascii(), s.ascii() ); #else odebug << "Copy file instead of a symlink for WIN32" << oendl; - if (!CopyFile((TCHAR*)qt_winTchar((location + s), TRUE), (TCHAR*)qt_winTchar(s, TRUE), FALSE)) - qWarning("Unable to create symlinkfor %s", - (location + s).ascii()); + if (!CopyFile((TCHAR*)qt_winTchar((location + s), TRUE), (TCHAR*)qt_winTchar(s, TRUE), FALSE)) + owarn << "Unable to create symlinkfor " << (location + s).ascii() << oendl; #endif - } - } - f.close(); - } + } + } + f.close(); + } } @@ -190,10 +189,10 @@ void PackageHandler::addPackages( const QString &location ) QDir dir(location + "/usr/lib/ipkg/info", "*.list", // No tr - QDir::Name, QDir::Files); + QDir::Name, QDir::Files); if ( !dir.exists() ) - return; - + return; + QStringList packages = dir.entryList(); for ( QStringList::Iterator it = packages.begin(); - it != packages.end(); ++it ) { - addPackageFiles( location, *it ); + it != packages.end(); ++it ) { + addPackageFiles( location, *it ); } @@ -205,31 +204,31 @@ void PackageHandler::cleanupPackageFiles( const QString &listfile ) QFile f(listfile); - - if ( f.open(IO_ReadOnly) ) { - QTextStream ts(&f); - - QString s; - while ( !ts.eof() ) { // until end of file... - s = ts.readLine(); // line of text excluding '\n' - // for s, do link/mkdir. - if ( s.right(1) == "/" ) { - //should rmdir if empty, after all files have been removed - } else { + + if ( f.open(IO_ReadOnly) ) { + QTextStream ts(&f); + + QString s; + while ( !ts.eof() ) { // until end of file... + s = ts.readLine(); // line of text excluding '\n' + // for s, do link/mkdir. + if ( s.right(1) == "/" ) { + //should rmdir if empty, after all files have been removed + } else { #ifndef Q_OS_WIN32 odebug << "remove symlink for " << s.ascii() << "" << oendl; - //check if it is a symlink first (don't remove /etc/passwd...) - char buf[10]; //we don't care about the contents - if ( ::readlink( s.ascii(),buf, 10 >= 0 ) ) - ::unlink( s.ascii() ); -#else - // ### revise + //check if it is a symlink first (don't remove /etc/passwd...) + char buf[10]; //we don't care about the contents + if ( ::readlink( s.ascii(),buf, 10 >= 0 ) ) + ::unlink( s.ascii() ); +#else + // ### revise owarn << "Unable to remove symlink " << __FILE__ << ":" << __LINE__ << "" << oendl; #endif - } - } - f.close(); + } + } + f.close(); //remove the list file - ::unlink( listfile.ascii() ); - - } + ::unlink( listfile.ascii() ); + + } } @@ -240,13 +239,13 @@ void PackageHandler::cleanupPackages( const QString &location ) QDir dir( "/usr/lib/ipkg/info/"+location, "*.list", // No tr - QDir::Name, QDir::Files); + QDir::Name, QDir::Files); if ( !dir.exists() ) - return; - + return; + QStringList packages = dir.entryList(); for ( QStringList::Iterator it = packages.begin(); - it != packages.end(); ++it ) { - cleanupPackageFiles( *it ); + it != packages.end(); ++it ) { + cleanupPackageFiles( *it ); } - - //remove the backup directory + + //remove the backup directory //### @@ -259,5 +258,5 @@ void PackageHandler::prepareInstall( const QString& size, const QString& path ) unsigned int s = size.toUInt( &ok ); - + if ( !ok ) - return; + return; @@ -267,6 +266,6 @@ void PackageHandler::prepareInstall( const QString& size, const QString& path ) if ( statfs( path.latin1(), &fs ) == 0 ) - if ( s > fs.f_bsize * fs.f_bavail ) { + if ( s > fs.f_bsize * fs.f_bavail ) { //odebug << "############### Not enough space left ###############" << oendl; - mNoSpaceLeft = TRUE; - } + mNoSpaceLeft = TRUE; + } #endif @@ -277,11 +276,11 @@ void PackageHandler::iProcessExited() if ( currentProcess->normalExit() && currentProcess->exitStatus() == 0 ) - sendReply( "installDone(QString)", currentPackage ); + sendReply( "installDone(QString)", currentPackage ); else { #ifndef QT_NO_COP - QCopEnvelope e( "QPE/Desktop", "installFailed(QString,int,QString)" ); - e << currentPackage << currentProcess->exitStatus() - << currentProcessError; + QCopEnvelope e( "QPE/Desktop", "installFailed(QString,int,QString)" ); + e << currentPackage << currentProcess->exitStatus() + << currentProcessError; #endif } - + delete currentProcess; @@ -300,5 +299,5 @@ void PackageHandler::rmProcessExited() if ( currentProcess->normalExit() && currentProcess->exitStatus() == 0 ) - sendReply( "removeDone(QString)", currentPackage ); + sendReply( "removeDone(QString)", currentPackage ); else - sendReply( "removeFailed(QString)", currentPackage ); + sendReply( "removeFailed(QString)", currentPackage ); @@ -314,8 +313,8 @@ void PackageHandler::readyReadStdout() while ( currentProcess->canReadLineStdout() ) { - QString line = currentProcess->readLineStdout(); - currentProcessError.append("OUT:"+line); - if ( line.contains( "Unpacking" ) ) // No tr - sendReply( "installStep(QString)", "one" ); // No tr - else if ( line.contains( "Configuring" ) ) // No tr - sendReply( "installStep(QString)", "two" ); // No tr + QString line = currentProcess->readLineStdout(); + currentProcessError.append("OUT:"+line); + if ( line.contains( "Unpacking" ) ) // No tr + sendReply( "installStep(QString)", "one" ); // No tr + else if ( line.contains( "Configuring" ) ) // No tr + sendReply( "installStep(QString)", "two" ); // No tr } @@ -326,4 +325,4 @@ void PackageHandler::readyReadStderr() while ( currentProcess->canReadLineStderr() ) { - QString line = currentProcess->readLineStderr(); - currentProcessError.append("ERR:"+line); + QString line = currentProcess->readLineStderr(); + currentProcessError.append("ERR:"+line); } |