Diffstat (limited to 'noncore/settings/aqpkg/ipkg.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r-- | noncore/settings/aqpkg/ipkg.cpp | 139 |
1 files changed, 35 insertions, 104 deletions
diff --git a/noncore/settings/aqpkg/ipkg.cpp b/noncore/settings/aqpkg/ipkg.cpp index 3df569b..43eaaae 100644 --- a/noncore/settings/aqpkg/ipkg.cpp +++ b/noncore/settings/aqpkg/ipkg.cpp @@ -1,9 +1,9 @@ /* This file is part of the OPIE Project - + =. Copyright (c) 2002 Andy Qua <andy.qua@blueyonder.co.uk> .=l. Dan Williams <drw@handhelds.org> .>+-= _;:, .> :=|. This file is free software; you can .> <`_, > . <= redistribute it and/or modify it under :`=1 )Y*s>-.-- : the terms of the GNU General Public @@ -108,13 +108,13 @@ void Ipkg :: runIpkg() // If destDir == / turn off make links as package is being insalled // to root already. if ( destDir == "/" ) flags ^= MAKE_LINKS; } } - + #ifdef X86 commands << "-f"; commands << IPKG_CONF; #endif @@ -124,29 +124,29 @@ void Ipkg :: runIpkg() commands << option; if ( package != "" ) commands << package; if ( package != "" ) - emit outputText( QString( "Dealing with package " ) + package ); + emit outputText( tr( "Dealing with package %1" ).arg( package) ); qApp->processEvents(); // If we are removing, reinstalling or upgrading packages and make links option is selected // create the links if ( option == "remove" || option == "reinstall" || option == "upgrade" ) { createLinks = false; if ( flags & MAKE_LINKS ) { - emit outputText( QString( "Removing symbolic links...\n" ) ); + emit outputText( tr( "Removing symbolic links...\n" ) ); linkPackage( Utils::getPackageNameFromIpkFilename( package ), destination, destDir ); emit outputText( QString( " " ) ); } } - + // Execute command dependantPackages = new QList<QString>; dependantPackages->setAutoDelete( true ); executeIpkgCommand( commands, option ); @@ -159,32 +159,32 @@ void Ipkg :: createSymLinks() // If we are not removing packages and make links option is selected // create the links createLinks = true; if ( flags & MAKE_LINKS ) { emit outputText( " " ); - emit outputText( QString( "Creating symbolic links for " )+ package ); + emit outputText( tr( "Creating symbolic links for %1." ).arg( package) ); linkPackage( Utils::getPackageNameFromIpkFilename( package ), destination, destDir ); // link dependant packages that were installed with this release QString *pkg; for ( pkg = dependantPackages->first(); pkg != 0; pkg = dependantPackages->next() ) { if ( *pkg == package ) continue; emit outputText( " " ); - emit outputText( QString( "Creating symbolic links for " )+ (*pkg) ); + emit outputText( tr( "Creating symbolic links for %1" ).arg( *pkg ) ); linkPackage( Utils::getPackageNameFromIpkFilename( *pkg ), destination, destDir ); } } } delete dependantPackages; - emit outputText( "Finished" ); + emit outputText( tr("Finished") ); emit outputText( "" ); } void Ipkg :: removeStatusEntry() { QString statusFile = destDir; @@ -192,33 +192,33 @@ void Ipkg :: removeStatusEntry() statusFile.append( "/" ); statusFile.append( "usr/lib/ipkg/status" ); QString outStatusFile = statusFile; outStatusFile.append( ".tmp" ); emit outputText( "" ); - emit outputText( "Removing status entry..." ); - QString tempstr = "status file - "; + emit outputText( tr("Removing status entry...") ); + QString tempstr = tr("status file - "); tempstr.append( statusFile ); emit outputText( tempstr ); - tempstr = "package - "; + tempstr = tr("package - "); tempstr.append( package ); emit outputText( tempstr ); - + ifstream in( statusFile ); ofstream out( outStatusFile ); if ( !in.is_open() ) { - tempstr = "Couldn't open status file - "; + tempstr = tr("Couldn't open status file - "); tempstr.append( statusFile ); emit outputText( tempstr ); return; } if ( !out.is_open() ) { - tempstr = "Couldn't create tempory status file - "; + tempstr = tr("Couldn't create tempory status file - "); tempstr.append( outStatusFile ); emit outputText( tempstr ); return; } char line[1001]; @@ -253,30 +253,30 @@ void Ipkg :: removeStatusEntry() } while ( !in.eof() && QString( line ).stripWhiteSpace() != "" ); } lines.push_back( QString( line ) ); out << line << endl; - // Improve UI responsiveness + // Improve UI responsiveness i++; if ( ( i % 50 ) == 0 ) qApp->processEvents(); } while ( !in.eof() ); // Write lines out vector<QString>::iterator it; for ( it = lines.begin() ; it != lines.end() ; ++it ) { out << (const char *)(*it) << endl; - - // Improve UI responsiveness + + // Improve UI responsiveness i++; if ( ( i % 50 ) == 0 ) qApp->processEvents(); } - + in.close(); out.close(); // Remove old status file and put tmp stats file in its place remove( statusFile ); rename( outStatusFile, statusFile ); @@ -287,13 +287,13 @@ int Ipkg :: executeIpkgCommand( QStringList &cmd, const QString /*option*/ ) // If one is already running - should never be but just to be safe if ( proc ) { delete proc; proc = 0; } - + // OK we're gonna use OProcess to run this thing proc = new OProcess(); aborted = false; // Connect up our slots @@ -302,23 +302,23 @@ int Ipkg :: executeIpkgCommand( QStringList &cmd, const QString /*option*/ ) connect(proc, SIGNAL(receivedStdout(OProcess *, char *, int)), this, SLOT(commandStdout(OProcess *, char *, int))); connect(proc, SIGNAL(receivedStderr(OProcess *, char *, int)), this, SLOT(commandStderr(OProcess *, char *, int))); - + for ( QStringList::Iterator it = cmd.begin(); it != cmd.end(); ++it ) { *proc << (*it).latin1(); } // Start the process going finished = false; if(!proc->start(OProcess::NotifyOnExit, OProcess::All)) { - emit outputText( QString( "Couldn't start ipkg process" ) ); + emit outputText( tr("Couldn't start ipkg process" ) ); } } void Ipkg::commandStdout(OProcess*, char *buffer, int buflen) { QString lineStr = buffer; @@ -343,13 +343,13 @@ void Ipkg::commandStdout(OProcess*, char *buffer, int buflen) else if ( option == "remove" && !( flags & FORCE_DEPENDS ) && lineStr.find( "is depended upon by packages:" ) != -1 ) { // Ipkg should send this to STDERR, but doesn't - so trap here error = true; } - + buffer[0] = '\0'; } void Ipkg::commandStderr(OProcess*, char *buffer, int buflen) { QString lineStr = buffer; @@ -365,13 +365,13 @@ void Ipkg::processFinished() { // Finally, if we are removing a package, remove its entry from the <destdir>/usr/lib/ipkg/status file // to workaround an ipkg bug which stops reinstall to a different location if ( !error && option == "remove" ) removeStatusEntry(); - + delete proc; proc = 0; finished = true; emit ipkgFinished(); } @@ -383,83 +383,17 @@ void Ipkg :: abort() { proc->kill(); aborted = true; } } -/* -int Ipkg :: executeIpkgCommand( QString &cmd, const QString option ) -{ - FILE *fp = NULL; - char line[130]; - QString lineStr, lineStrOld; - int ret = false; - - fp = popen( (const char *) cmd, "r"); - if ( fp == NULL ) - { - QString text; - text.sprintf( "Couldn't execute %s! See stdout for error code", (const char *)cmd ); - emit outputText( text ); - } - else - { - while ( fgets( line, sizeof line, fp) != NULL ) - { - lineStr = line; - lineStr=lineStr.left( lineStr.length()-1 ); - - if ( lineStr != lineStrOld ) - { - //See if we're finished - if ( option == "install" || option == "reinstall" ) - { - // Need to keep track of any dependant packages that get installed - // so that we can create links to them as necessary - if ( lineStr.startsWith( "Installing " ) ) - { - int start = lineStr.find( " " ) + 1; - int end = lineStr.find( " ", start ); - QString *package = new QString( lineStr.mid( start, end-start ) ); - dependantPackages->append( package ); - } - } - - if ( option == "update" ) - { - if (lineStr.contains("Updated list")) - ret = true; - } - else if ( option == "download" ) - { - if (lineStr.contains("Downloaded")) - ret = true; - } - else - { - if (lineStr.contains("Done")) - ret = true; - } - - emit outputText( lineStr ); - } - lineStrOld = lineStr; - qApp->processEvents(); - } - pclose(fp); - } - - return ret; -} -*/ - void Ipkg :: linkPackage( const QString &packFileName, const QString &dest, const QString &destDir ) { if ( dest == "root" || dest == "/" ) return; - + qApp->processEvents(); QStringList *fileList = getList( packFileName, destDir ); qApp->processEvents(); processFileList( fileList, destDir ); delete fileList; } @@ -473,20 +407,20 @@ QStringList* Ipkg :: getList( const QString &packageFilename, const QString &des QFile f( packageFileDir ); if ( !f.open(IO_ReadOnly) ) { // Couldn't open from dest, try from / f.close(); - + packageFileDir = "/usr/lib/ipkg/info/"; packageFileDir.append( packageFilename ); packageFileDir.append( ".list" ); f.setName( packageFileDir ); if ( ! f.open(IO_ReadOnly) ) { - QString tempstr = "Could not open :"; + QString tempstr = tr("Could not open :"); tempstr.append( packageFileDir ); emit outputText( tempstr ); return (QStringList*)0; } } QStringList *fileList = new QStringList(); @@ -525,18 +459,18 @@ void Ipkg :: processFileList( const QStringList *fileList, const QString &destDi void Ipkg :: processLinkDir( const QString &file, const QString &destDir, const QString &baseDir ) { QString sourceFile = baseDir; sourceFile.append( file ); - + QString linkFile = destDir; if ( file.startsWith( "/" ) && destDir.right( 1 ) == "/" ) { linkFile.append( file.mid( 1 ) ); - } + } else { linkFile.append( file ); } QString text; if ( createLinks ) @@ -545,29 +479,28 @@ void Ipkg :: processLinkDir( const QString &file, const QString &destDir, const // we need to create it if ( file.right(1) == "/" ) { QFileInfo f( linkFile ); if ( !f.exists() ) { - QString tempstr = "Creating directory "; + QString tempstr = tr("Creating directory "); tempstr.append( linkFile ); emit outputText( tempstr ); QDir d; d.mkdir( linkFile, true ); } // else // emit outputText( QString( "Directory " ) + linkFile + " already exists" ); - + } else { int rc = symlink( sourceFile, linkFile ); - text = (rc == 0 ? "Linked " : "Failed to link "); - text.append( sourceFile ); - text.append( " to " ); - text.append( linkFile ); + text = ( rc == 0 ? tr( "Linked %1 to %2" ) : tr( "Failed to link %1 to %2" ) ). + arg( sourceFile ). + arg( linkFile ); emit outputText( text ); } } else { QFileInfo f( linkFile ); @@ -575,24 +508,22 @@ void Ipkg :: processLinkDir( const QString &file, const QString &destDir, const { if ( f.isFile() ) { QFile f( linkFile ); bool rc = f.remove(); - text = (rc ? "Removed " : "Failed to remove "); - text.append( linkFile ); + text = ( rc ? tr( "Removed %1" ) : tr( "Failed to remove %1" ) ).arg( linkFile ); emit outputText( text ); } else if ( f.isDir() ) { QDir d; bool rc = d.rmdir( linkFile, true ); if ( rc ) { - text = (rc ? "Removed " : "Failed to remove "); - text.append( linkFile ); + text = ( rc ? tr( "Removed " ) : tr( "Failed to remove " ) ).arg( linkFile ); emit outputText( text ); } } } } } |