summaryrefslogtreecommitdiff
authorar <ar>2004-03-17 23:00:44 (UTC)
committer ar <ar>2004-03-17 23:00:44 (UTC)
commit091236bff19166653278db76082d2735d6059000 (patch) (side-by-side diff)
tree8c33d0a125779ea6702095fba3a608a6bd766e07
parent941e088d13f2193153a75fc81dcf9ea3cd8943d4 (diff)
downloadopie-091236bff19166653278db76082d2735d6059000.zip
opie-091236bff19166653278db76082d2735d6059000.tar.gz
opie-091236bff19166653278db76082d2735d6059000.tar.bz2
- read old backup files from opie 1.0.x
busybox tar don't feature --label so i abuse Application/backup/exclude file to identifie an backup as a new one. exclude will create by this backup application. see revision 1.28
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
@@ -254,3 +254,3 @@ void BackupAndRestore::backup()
- QString commandLine = QString( "cd %1 && (tar -X %1 -cz %2 -f %3 ) 2> %4" ).arg( QDir::homeDirPath() )
+ QString commandLine = QString( "cd %1 && (tar -X %1 -cz %2 Applications/backup/exclude -f %3 ) 2> %4" ).arg( QDir::homeDirPath() )
.arg( getExcludeFile() )
@@ -423,3 +423,20 @@ void BackupAndRestore::restore()
- QString commandLine = QString( "cd %1 && tar -zxf %2 2> %3" ).arg( QDir::homeDirPath() )
+ //check if backup file come from opie 1.0.x
+
+ QString commandLine = QString( "tar -tzf %1 | grep Applications/backup/exclude" ).arg( restoreFile.latin1() );
+
+ int r = system( commandLine );
+
+ QString startDir;
+
+ if( r != 0 ) //Applications/backup/exclude not found - old backup file
+ {
+ startDir = QString( "/" );
+ } else
+ {
+ startDir = QDir::homeDirPath();
+ }
+
+ //unpack backup file
+ commandLine = QString( "cd %1 && tar -zxf %2 2> %3" ).arg( startDir )
.arg( restoreFile.latin1() )
@@ -429,4 +446,5 @@ void BackupAndRestore::restore()
- int r = system( commandLine );
+ r = system( commandLine );
+ //error handling
if(r != 0)
@@ -480,3 +498,2 @@ void BackupAndRestore::restore()
-
/**