author | ar <ar> | 2004-03-06 22:30:09 (UTC) |
---|---|---|
committer | ar <ar> | 2004-03-06 22:30:09 (UTC) |
commit | 5bc69a9731634c55b9a01b9de6909201f422893b (patch) (unidiff) | |
tree | 94eb378dfc4da7f9ecb2052ca0ffffdb8721ff8f /noncore | |
parent | b5466f18b49d5f99237fdd6b39e0f61609557698 (diff) | |
download | opie-5bc69a9731634c55b9a01b9de6909201f422893b.zip opie-5bc69a9731634c55b9a01b9de6909201f422893b.tar.gz opie-5bc69a9731634c55b9a01b9de6909201f422893b.tar.bz2 |
fix to work together with busybox tar
-rw-r--r-- | noncore/settings/backup/backuprestore.cpp | 34 | ||||
-rw-r--r-- | noncore/settings/backup/backuprestore.h | 1 |
2 files changed, 33 insertions, 2 deletions
diff --git a/noncore/settings/backup/backuprestore.cpp b/noncore/settings/backup/backuprestore.cpp index 6b83bc9..164055e 100644 --- a/noncore/settings/backup/backuprestore.cpp +++ b/noncore/settings/backup/backuprestore.cpp | |||
@@ -249,13 +249,14 @@ void BackupAndRestore::backup() | |||
249 | // We execute tar and compressing its output with gzip.. | 249 | // We execute tar and compressing its output with gzip.. |
250 | // The error output will be written into a temp-file which could be provided | 250 | // The error output will be written into a temp-file which could be provided |
251 | // for debugging.. | 251 | // for debugging.. |
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( "(tar -C %1 -z --exclude=*.bck -c %2 > %3 ) 2> %4" ).arg( QDir::homeDirPath() ) | 255 | QString commandLine = QString( "cd %1 && (tar -X %1 -cz %2 -f %3 ) 2> %4" ).arg( QDir::homeDirPath() ) |
256 | .arg( getExcludeFile() ) | ||
256 | .arg( backupFiles ) | 257 | .arg( backupFiles ) |
257 | .arg( outputFile.latin1() ) | 258 | .arg( outputFile.latin1() ) |
258 | .arg( tempFileName.latin1() ); | 259 | .arg( tempFileName.latin1() ); |
259 | 260 | ||
260 | qDebug( commandLine ); | 261 | qDebug( commandLine ); |
261 | 262 | ||
@@ -417,13 +418,13 @@ void BackupAndRestore::restore() | |||
417 | QString restoreFile = backupLocations[restoreSource->currentText()]; | 418 | QString restoreFile = backupLocations[restoreSource->currentText()]; |
418 | 419 | ||
419 | restoreFile += "/" + restoreItem->text(0); | 420 | restoreFile += "/" + restoreItem->text(0); |
420 | 421 | ||
421 | qDebug( restoreFile ); | 422 | qDebug( restoreFile ); |
422 | 423 | ||
423 | QString commandLine = QString( "tar -C %1 -zxf %2 2> %3" ).arg( QDir::homeDirPath() ) | 424 | QString commandLine = QString( "cd %1 && tar -zxf %2 2> %3" ).arg( QDir::homeDirPath() ) |
424 | .arg( restoreFile.latin1() ) | 425 | .arg( restoreFile.latin1() ) |
425 | .arg( tempFileName.latin1() ); | 426 | .arg( tempFileName.latin1() ); |
426 | 427 | ||
427 | qDebug( commandLine ); | 428 | qDebug( commandLine ); |
428 | 429 | ||
429 | int r = system( commandLine ); | 430 | int r = system( commandLine ); |
@@ -474,8 +475,37 @@ void BackupAndRestore::restore() | |||
474 | config.setGroup( "LastLocation" ); | 475 | config.setGroup( "LastLocation" ); |
475 | config.writeEntry( "LastRestoreLocation", restoreSource->currentText() ); | 476 | config.writeEntry( "LastRestoreLocation", restoreSource->currentText() ); |
476 | 477 | ||
477 | setCaption(tr("Backup and Restore")); | 478 | setCaption(tr("Backup and Restore")); |
478 | } | 479 | } |
479 | 480 | ||
481 | |||
482 | /** | ||
483 | * Check for exclude in Applications/backup | ||
484 | * If it does not exist, the function will create the file with *.bck as content | ||
485 | * The exclude_files is read by tar and will provide to exclude special files out from backup. | ||
486 | * e.g. alle *.bck files (backup-files) will not be backed up by default | ||
487 | */ | ||
488 | |||
489 | QString BackupAndRestore::getExcludeFile() | ||
490 | { | ||
491 | QString excludeFileName = Global::applicationFileName( "backup", "exclude" ); | ||
492 | if ( !QFile::exists( excludeFileName ) ) | ||
493 | { | ||
494 | QFile excludeFile( excludeFileName); | ||
495 | if ( excludeFile.open( IO_WriteOnly ) == true ) | ||
496 | { | ||
497 | QTextStream writeStream( &excludeFile ); | ||
498 | writeStream << "*.bck" << "\n"; | ||
499 | excludeFile.close(); | ||
500 | } | ||
501 | else | ||
502 | { | ||
503 | return QString::null; | ||
504 | } | ||
505 | } | ||
506 | |||
507 | return excludeFileName; | ||
508 | } | ||
509 | |||
480 | // backuprestore.cpp | 510 | // backuprestore.cpp |
481 | 511 | ||
diff --git a/noncore/settings/backup/backuprestore.h b/noncore/settings/backup/backuprestore.h index fdc2bf2..0d88f8d 100644 --- a/noncore/settings/backup/backuprestore.h +++ b/noncore/settings/backup/backuprestore.h | |||
@@ -28,12 +28,13 @@ private slots: | |||
28 | void rescanFolder(QString directory); | 28 | void rescanFolder(QString directory); |
29 | void fileListUpdate(); | 29 | void fileListUpdate(); |
30 | 30 | ||
31 | private: | 31 | private: |
32 | void scanForApplicationSettings(); | 32 | void scanForApplicationSettings(); |
33 | int getBackupFiles(QString &backupFiles, QListViewItem *parent); | 33 | int getBackupFiles(QString &backupFiles, QListViewItem *parent); |
34 | QString getExcludeFile(); | ||
34 | QMap<QString, QString> backupLocations; | 35 | QMap<QString, QString> backupLocations; |
35 | QList<QListViewItem> getAllItems(QListViewItem *item, QList<QListViewItem> &list); | 36 | QList<QListViewItem> getAllItems(QListViewItem *item, QList<QListViewItem> &list); |
36 | 37 | ||
37 | QListViewItem *systemSettings; | 38 | QListViewItem *systemSettings; |
38 | QListViewItem *applicationSettings; | 39 | QListViewItem *applicationSettings; |
39 | QListViewItem *documents; | 40 | QListViewItem *documents; |