summaryrefslogtreecommitdiff
path: root/noncore/settings/aqpkg/ipkg.cpp
Side-by-side diff
Diffstat (limited to 'noncore/settings/aqpkg/ipkg.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/settings/aqpkg/ipkg.cpp139
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 );
}
}
}
}
}