summaryrefslogtreecommitdiff
path: root/noncore/unsupported/oipkg/pmipkg.cpp
Unidiff
Diffstat (limited to 'noncore/unsupported/oipkg/pmipkg.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/unsupported/oipkg/pmipkg.cpp21
1 files changed, 11 insertions, 10 deletions
diff --git a/noncore/unsupported/oipkg/pmipkg.cpp b/noncore/unsupported/oipkg/pmipkg.cpp
index 2559a51..be9d6da 100644
--- a/noncore/unsupported/oipkg/pmipkg.cpp
+++ b/noncore/unsupported/oipkg/pmipkg.cpp
@@ -21,25 +21,24 @@
21#include <qlayout.h> 21#include <qlayout.h>
22 22
23#include <stdlib.h> 23#include <stdlib.h>
24#include <unistd.h> 24#include <unistd.h>
25 25
26#include "mainwindow.h" 26#include "mainwindow.h"
27 27
28 28
29PmIpkg::PmIpkg( PackageManagerSettings* s, QWidget* p, const char * name, WFlags f ) 29PmIpkg::PmIpkg( PackageManagerSettings* s, QWidget* p, const char * name, WFlags f )
30 : QObject ( p ) 30 : QObject ( p )
31{ 31{
32 settings = s; 32 settings = s;
33 runwindowopen = false;
34 runwindow = new RunWindow( p, name, true, f ); 33 runwindow = new RunWindow( p, name, true, f );
35} 34}
36 35
37PmIpkg::~PmIpkg() 36PmIpkg::~PmIpkg()
38{ 37{
39} 38}
40 39
41//#define PROC 40//#define PROC
42#define SYSTEM 41#define SYSTEM
43int PmIpkg::runIpkg(const QString& args, const QString& dest ) 42int PmIpkg::runIpkg(const QString& args, const QString& dest )
44{ 43{
45 pvDebug(2,"PmIpkg::runIpkg "+args); 44 pvDebug(2,"PmIpkg::runIpkg "+args);
@@ -64,25 +63,25 @@ int PmIpkg::runIpkg(const QString& args, const QString& dest )
64 cmd += " -force-depends "; 63 cmd += " -force-depends ";
65 if (_force_reinstall->isChecked()) 64 if (_force_reinstall->isChecked())
66 cmd += " -force-reinstall "; 65 cmd += " -force-reinstall ";
67 if (_force_remove->isChecked()) 66 if (_force_remove->isChecked())
68 cmd += " -force-removal-of-essential-packages "; 67 cmd += " -force-removal-of-essential-packages ";
69 } 68 }
70 69
71 out( "<hr><br>Starting to "+ args+"<br>\n"); 70 out( "<hr><br>Starting to "+ args+"<br>\n");
72 cmd += args; 71 cmd += args;
73 int r = 0; 72 int r = 0;
74#ifdef PROC 73#ifdef PROC
75 QString o = "start"; 74 QString o = "start";
76 Process *ipkg = new Process( "ls");//cmd ); 75 Process *ipkg = new Process( cmd );
77 out( "running:<br>\n"+ipkg->arguments().join(" ")+"<br>\n" ); 76 out( "running:<br>\n"+ipkg->arguments().join(" ")+"<br>\n" );
78 QString description; 77 QString description;
79 ipkg->exec("",o); 78 ipkg->exec("",o);
80// out( o ); 79// out( o );
81#endif 80#endif
82#ifdef SYSTEM 81#ifdef SYSTEM
83 out( "running:<br>\n"+cmd+"<br>\n" ); 82 out( "running:<br>\n"+cmd+"<br>\n" );
84 QString redirect = "/tmp/oipkg.pipe"; 83 QString redirect = "/tmp/oipkg.pipe";
85 cmd += " 2>&1 | tee "+redirect+" 2>&1"; 84 cmd += " 2>&1 | tee "+redirect+" 2>&1";
86 pvDebug(2, "running >"+cmd+"<"); 85 pvDebug(2, "running >"+cmd+"<");
87 r = system(cmd.latin1()); 86 r = system(cmd.latin1());
88 QFile f( redirect ); 87 QFile f( redirect );
@@ -151,44 +150,44 @@ void PmIpkg::processFileList( QStringList *fileList, QString d )
151 if (!fileList) return; 150 if (!fileList) return;
152 for (uint i=0; i < fileList->count(); i++) 151 for (uint i=0; i < fileList->count(); i++)
153 { 152 {
154 QString dest = settings->getDestinationUrlByName( d ); 153 QString dest = settings->getDestinationUrlByName( d );
155 dest = dest==""?d:dest; 154 dest = dest==""?d:dest;
156 processLinkDir( (*fileList)[i], dest ); 155 processLinkDir( (*fileList)[i], dest );
157 } 156 }
158} 157}
159 158
160 159
161void PmIpkg::processLinkDir( QString file, QString dest ) 160void PmIpkg::processLinkDir( QString file, QString dest )
162{ 161{
163 pvDebug( 7,"PmIpkg::processLinkDir "+file+" to "+ dest); 162 pvDebug( 4,"PmIpkg::processLinkDir "+file+" to "+ dest);
164 if (linkOpp==createLink) pvDebug( 2,"opp: createLink"); 163 if (linkOpp==createLink) pvDebug( 4,"opp: createLink");
165 if (linkOpp==removeLink) pvDebug( 2,"opp:removeLink"); 164 if (linkOpp==removeLink) pvDebug( 4,"opp: removeLink");
166 if ( dest == "???" || dest == "" ) return; 165 if ( dest == "???" || dest == "" ) return;
167 QString destFile = file; 166 QString destFile = file;
168 file = dest+"/"+file; 167 file = dest+"/"+file;
169 if (file == dest) return; 168 if (file == dest) return;
170 QFileInfo fileInfo( file ); 169 QFileInfo fileInfo( file );
171 if ( fileInfo.isDir() ) 170 if ( fileInfo.isDir() )
172 { 171 {
172 pvDebug(4, "process dir "+file);
173 QDir destDir( destFile ); 173 QDir destDir( destFile );
174 if (linkOpp==createLink) destDir.mkdir( destFile, true ); 174 if (linkOpp==createLink) destDir.mkdir( destFile, true );
175 QDir d( file ); 175 QDir d( file );
176 d.setFilter( QDir::Files | QDir::Hidden | QDir::NoSymLinks ); 176 d.setFilter( QDir::Files | QDir::Hidden | QDir::NoSymLinks );
177 const QFileInfoList *list = d.entryInfoList(); 177 const QFileInfoList *list = d.entryInfoList();
178 QFileInfoListIterator it( *list ); 178 QFileInfoListIterator it( *list );
179 QFileInfo *fi; 179 QFileInfo *fi;
180 while ( (fi=it.current()) ) 180 while ( (fi=it.current()) )
181 { 181 {
182 pvDebug(4, "process dir "+fi->absFilePath());
183 processLinkDir( fi->absFilePath(), dest ); 182 processLinkDir( fi->absFilePath(), dest );
184 ++it; 183 ++it;
185 } 184 }
186// if (linkOpp==removeLink) 185// if (linkOpp==removeLink)
187// { 186// {
188 // pvDebug(2,"remove destDir "+ destFile ); 187 // pvDebug(2,"remove destDir "+ destFile );
189 // destDir.remove( destFile, true ); 188 // destDir.remove( destFile, true );
190// } 189// }
191 } else 190 } else
192 if ( fileInfo.isFile() ) 191 if ( fileInfo.isFile() )
193 { 192 {
194 const char *instFile = strdup( (file).ascii() ); 193 const char *instFile = strdup( (file).ascii() );
@@ -217,32 +216,33 @@ void PmIpkg::loadList( PackageList pl )
217 if ( pack && (pack->name() != "") && pack) 216 if ( pack && (pack->name() != "") && pack)
218 { 217 {
219 if ( pack->toInstall() ) 218 if ( pack->toInstall() )
220 to_install.append( pack ); 219 to_install.append( pack );
221 if ( pack->toRemove() ) 220 if ( pack->toRemove() )
222 to_remove.append( pack ); 221 to_remove.append( pack );
223 } 222 }
224 } 223 }
225} 224}
226 225
227void PmIpkg::commit( PackageList pl ) 226void PmIpkg::commit( PackageList pl )
228 { 227 {
229 sizecount = 0; 228 int sizecount = 0;
230 QString rem="<b>"+tr("To remove:")+"</b><br>\n"; 229// QString rem="<b>"+tr("To remove:")+"</b><br>\n";
231 QString inst="<b>"+tr("To install:")+"</b><br>\n"; 230// QString inst="<b>"+tr("To install:")+"</b><br>\n";
232 loadList(pl); 231 loadList(pl);
233 for (uint i=0; i < to_remove.count(); i++) 232 for (uint i=0; i < to_remove.count(); i++)
234 sizecount += 1; 233 sizecount += 1;
235 for (uint i=0; i < to_install.count(); i++) 234 for (uint i=0; i < to_install.count(); i++)
236 sizecount += to_install.at(i)->size().toInt(); 235 sizecount += to_install.at(i)->size().toInt();
236 runwindow->progress->setTotalSteps(sizecount);
237 startDialog(); 237 startDialog();
238} 238}
239 239
240void PmIpkg::startDialog() 240void PmIpkg::startDialog()
241{ 241{
242 installDialog = new QDialog(0,0,true); 242 installDialog = new QDialog(0,0,true);
243 QGridLayout *RunWindowLayout = new QGridLayout( installDialog ); 243 QGridLayout *RunWindowLayout = new QGridLayout( installDialog );
244 RunWindowLayout->setSpacing( 2 ); 244 RunWindowLayout->setSpacing( 2 );
245 RunWindowLayout->setMargin( 2 ); 245 RunWindowLayout->setMargin( 2 );
246 246
247 PackageListView *plv = new PackageListView(installDialog, "install",settings); 247 PackageListView *plv = new PackageListView(installDialog, "install",settings);
248 plv->setSizePolicy(QSizePolicy(QSizePolicy::Expanding,QSizePolicy::Expanding, plv->sizePolicy().mayShrinkVertically()) ); 248 plv->setSizePolicy(QSizePolicy(QSizePolicy::Expanding,QSizePolicy::Expanding, plv->sizePolicy().mayShrinkVertically()) );
@@ -312,25 +312,25 @@ void PmIpkg::remove()
312 if ( it->link() )fileList = getList( it->name(), it->dest() ); 312 if ( it->link() )fileList = getList( it->name(), it->dest() );
313 if ( runIpkg("remove " + it->name(), it->dest() ) == 0) 313 if ( runIpkg("remove " + it->name(), it->dest() ) == 0)
314 { 314 {
315 runwindow->progress->setProgress( 1 + runwindow->progress->progress() ); 315 runwindow->progress->setProgress( 1 + runwindow->progress->progress() );
316 linkOpp = removeLink; 316 linkOpp = removeLink;
317 if ( it->link() ) 317 if ( it->link() )
318 { 318 {
319 out( "<br>removing links<br>" ); 319 out( "<br>removing links<br>" );
320 out( "for package "+it->name()+" in "+it->dest()+"<br>" ); 320 out( "for package "+it->name()+" in "+it->dest()+"<br>" );
321 processFileList( fileList, it->dest() ); 321 processFileList( fileList, it->dest() );
322 } 322 }
323 it->processed(); 323 it->processed();
324 324 // to_install.take( it );
325 out("<br><hr>"); 325 out("<br><hr>");
326 }else{ 326 }else{
327 out("<b>"+tr("Error while removing")+"</b><hr>"+it->name()); 327 out("<b>"+tr("Error while removing")+"</b><hr>"+it->name());
328 } 328 }
329 if ( it->link() )delete fileList; 329 if ( it->link() )delete fileList;
330 } 330 }
331 out("<br>"); 331 out("<br>");
332} 332}
333 333
334 334
335void PmIpkg::install() 335void PmIpkg::install()
336{ 336{
@@ -341,24 +341,25 @@ void PmIpkg::install()
341 341
342 if ( runIpkg("install " + it->installName(), it->dest() ) == 0 ) 342 if ( runIpkg("install " + it->installName(), it->dest() ) == 0 )
343 { 343 {
344 runwindow->progress->setProgress( it->size().toInt() + runwindow->progress->progress()); 344 runwindow->progress->setProgress( it->size().toInt() + runwindow->progress->progress());
345 linkOpp = createLink; 345 linkOpp = createLink;
346 if ( it->link() ) 346 if ( it->link() )
347 { 347 {
348 out( "<br>creating links<br>" ); 348 out( "<br>creating links<br>" );
349 out( "for package "+it->name()+" in "+it->dest()+"<br>" ); 349 out( "for package "+it->name()+" in "+it->dest()+"<br>" );
350 makeLinks( it ); 350 makeLinks( it );
351 } 351 }
352 it->processed(); 352 it->processed();
353 // to_install.take( it->name() );
353 out("<br><hr>"); 354 out("<br><hr>");
354 }else{ 355 }else{
355 out("<b>"+tr("Error while installing")+"</b><hr>"+it->name()); 356 out("<b>"+tr("Error while installing")+"</b><hr>"+it->name());
356 } 357 }
357 } 358 }
358 out("<br>"); 359 out("<br>");
359} 360}
360 361
361void PmIpkg::createLinks( const QString &dest ) 362void PmIpkg::createLinks( const QString &dest )
362{ 363{
363 pvDebug(2,"PmIpkg::createLinks "+dest); 364 pvDebug(2,"PmIpkg::createLinks "+dest);
364 linkOpp=createLink; 365 linkOpp=createLink;