summaryrefslogtreecommitdiff
Unidiff
Diffstat (more/less context) (show whitespace changes)
-rw-r--r--noncore/settings/backup/backuprestore.cpp25
1 files changed, 21 insertions, 4 deletions
diff --git a/noncore/settings/backup/backuprestore.cpp b/noncore/settings/backup/backuprestore.cpp
index 87b7966..58e5c71 100644
--- a/noncore/settings/backup/backuprestore.cpp
+++ b/noncore/settings/backup/backuprestore.cpp
@@ -252,7 +252,7 @@ void BackupAndRestore::backup()
252 qDebug( "Storing file: %s", outputFile.latin1() ); 252 qDebug( "Storing file: %s", outputFile.latin1() );
253 outputFile += EXTENSION; 253 outputFile += EXTENSION;
254 254
255 QString commandLine = QString( "cd %1 && (tar -X %1 -cz %2 -f %3 ) 2> %4" ).arg( QDir::homeDirPath() ) 255 QString commandLine = QString( "cd %1 && (tar -X %1 -cz %2 Applications/backup/exclude -f %3 ) 2> %4" ).arg( QDir::homeDirPath() )
256 .arg( getExcludeFile() ) 256 .arg( getExcludeFile() )
257 .arg( backupFiles ) 257 .arg( backupFiles )
258 .arg( outputFile.latin1() ) 258 .arg( outputFile.latin1() )
@@ -421,14 +421,32 @@ void BackupAndRestore::restore()
421 421
422 qDebug( restoreFile ); 422 qDebug( restoreFile );
423 423
424 QString commandLine = QString( "cd %1 && tar -zxf %2 2> %3" ).arg( QDir::homeDirPath() ) 424 //check if backup file come from opie 1.0.x
425
426 QString commandLine = QString( "tar -tzf %1 | grep Applications/backup/exclude" ).arg( restoreFile.latin1() );
427
428 int r = system( commandLine );
429
430 QString startDir;
431
432 if( r != 0 ) //Applications/backup/exclude not found - old backup file
433 {
434 startDir = QString( "/" );
435 } else
436 {
437 startDir = QDir::homeDirPath();
438 }
439
440 //unpack backup file
441 commandLine = QString( "cd %1 && tar -zxf %2 2> %3" ).arg( startDir )
425 .arg( restoreFile.latin1() ) 442 .arg( restoreFile.latin1() )
426 .arg( tempFileName.latin1() ); 443 .arg( tempFileName.latin1() );
427 444
428 qDebug( commandLine ); 445 qDebug( commandLine );
429 446
430 int r = system( commandLine ); 447 r = system( commandLine );
431 448
449 //error handling
432 if(r != 0) 450 if(r != 0)
433 { 451 {
434 QString errorMsg= tr( "Error from System:\n" ) + (QString)strerror( errno ); 452 QString errorMsg= tr( "Error from System:\n" ) + (QString)strerror( errno );
@@ -478,7 +496,6 @@ void BackupAndRestore::restore()
478 setCaption(tr("Backup and Restore")); 496 setCaption(tr("Backup and Restore"));
479} 497}
480 498
481
482/** 499/**
483 * Check for exclude in Applications/backup 500 * Check for exclude in Applications/backup
484 * If it does not exist, the function will create the file with *.bck as content 501 * If it does not exist, the function will create the file with *.bck as content