summaryrefslogtreecommitdiff
path: root/noncore
Side-by-side diff
Diffstat (limited to 'noncore') (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/unsupported/oipkg/TODO1
-rw-r--r--noncore/unsupported/oipkg/pmipkg.cpp36
2 files changed, 33 insertions, 4 deletions
diff --git a/noncore/unsupported/oipkg/TODO b/noncore/unsupported/oipkg/TODO
index d81e873..c53ca93 100644
--- a/noncore/unsupported/oipkg/TODO
+++ b/noncore/unsupported/oipkg/TODO
@@ -1,10 +1,11 @@
* search
* Settings Class
* make oipkg determine dest of "to remove" apps
* tr() ;)
* Dialog to display ipkg output live
* parse "to install" and "to remove" from status
* install local file
* install to dest with click on packet
+* qcop
* error handling
* manage links
diff --git a/noncore/unsupported/oipkg/pmipkg.cpp b/noncore/unsupported/oipkg/pmipkg.cpp
index 681f2d4..94ca824 100644
--- a/noncore/unsupported/oipkg/pmipkg.cpp
+++ b/noncore/unsupported/oipkg/pmipkg.cpp
@@ -1,37 +1,41 @@
#include "pmipkg.h"
#include "pkdesc.h"
#include "pkfind.h"
#include "pksettings.h"
#include "package.h"
#include "packagelistitem.h"
#include <qpe/process.h>
#include <qpe/resource.h>
+#include <qpe/config.h>
#include <qpe/stringutil.h>
#include <qpe/qcopenvelope_qws.h>
#include <qdir.h>
#include <qfile.h>
#include <qmultilineedit.h>
#include <qstring.h>
#include <qtextstream.h>
#include <qtextview.h>
#include <stdlib.h>
#include <unistd.h>
#include "mainwindow.h"
#include "runwindow.h"
+#define PARSE_FILELIST
+// #define IPKG_FILELIST
+
PmIpkg::PmIpkg( PackageManagerSettings* s, QWidget* p, const char * name, WFlags f )
// : RunWindow ( p, name, f )
: QObject ( p )
{
settings = s;
runwindow = new RunWindow ( p, name, f );
linkDest = new QCopChannel( "QPE/MakeLinks", this );
connect( linkDest, SIGNAL(received(const QCString &, const QByteArray &)),
this, SLOT(linkDestination( const QString &, const QByteArray&)) );
}
PmIpkg::~PmIpkg()
@@ -43,78 +47,102 @@ PmIpkg::~PmIpkg()
int PmIpkg::runIpkg(const QString& args)
{
pvDebug(2,"PmIpkg::runIpkg "+args);
#ifdef PROC
QStringList cmd = "/usr/bin/ipkg ";
#endif
#ifdef SYSTEM
QString cmd = "/usr/bin/ipkg ";
#endif
cmd += " -dest "+settings->getDestinationName();
cmd += " -force-defaults ";
- out( "Starting to "+ args+"<br>\n");
+ out( "<hr><br>Starting to "+ args+"<br>\n");
cmd += args;
out( "running:<br>\n"+cmd+"<br>\n" );
int r = 0;
#ifdef PROC
QString o = "start";
Process ipkg( cmd );
QString description;
ipkg.exec("",o);
out( o );
#endif
#ifdef SYSTEM
QString redirect = "/tmp/oipkg.pipe";
cmd += " | tee "+redirect+" 2>&1";
+ pvDebug(2, "running >"+cmd+"<");
r = system(cmd.latin1());
QFile f( redirect );
while ( ! f.open(IO_ReadOnly) ) {};
// if ( f.open(IO_ReadOnly) ) {};
{
QTextStream t( &f );
QString fp;
while ( !t.eof() )
{
out( t.readLine() +"<br>" );
}
}
f.close();
out( "Finished!<br>");
#endif
return r;
}
-void PmIpkg::makeLinks(QString file)
+void PmIpkg::makeLinks(QString pack)
{
+ pvDebug( 2, "PmIpkg::makeLinks "+ pack);
out( "<br>creating links<br>" );
QString dest = settings->getDestinationUrl();
- out("for package "+file+" in "+dest+"<br>");
- system(("ipkg -d "+dest+" files "+file+"> /tmp/oipkg.pipe 2>&1").latin1());
+ out("for package "+pack+" in "+dest+"<br>");
+#ifdef IPKG_FILELIST
+ system(("ipkg -d "+dest+" files "+pack+"> /tmp/oipkg.pipe 2>&1").latin1());
QFile f( "/tmp/oipkg.pipe" );
while ( ! f.open(IO_ReadOnly) ) {};
+#endif
+#ifdef PARSE_FILELIST
+ {
+ Config cfg( "oipkg", Config::User );
+ cfg.setGroup( "Common" );
+ QString statusDir = cfg.readEntry( "statusDir", "" );
+ }
+ QString fn = dest+"/"+statusDir+"/info/"+pack+".list";
+ QFile f( fn );
+ if ( ! f.open(IO_ReadOnly) )
+ {
+ out( "<b>Panik!</b> Could not open:<br>"+fn );
+ };
+#endif
QTextStream t( &f );
QString fp;
while ( !t.eof() )
{
fp = t.readLine();
processLinkDir( fp, dest );
}
f.close();
}
void PmIpkg::processLinkDir( QString file, QString dest )
{
+
+#ifdef PARSE_FILELIST
+ QString destFile = file;
+ file = dest+"/"+file;
+#endif
+#ifdef IPKG_FILELIST
QString destFile = file.right( file.length() - dest.length() );
+#endif
QFileInfo fileInfo( file );
if ( fileInfo.isDir() )
{
QDir destDir( destFile );
destDir.mkdir( destFile, true );
QDir d( file );
d.setFilter( QDir::Files | QDir::Hidden | QDir::NoSymLinks );
const QFileInfoList *list = d.entryInfoList();
QFileInfoListIterator it( *list );
QFileInfo *fi;
while ( (fi=it.current()) )
{