[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    KDE/kdepim/akonadi/tray
From:       Tom Albers <tomalbers () kde ! nl>
Date:       2008-05-31 17:00:27
Message-ID: 1212253227.638823.6798.nullmailer () svn ! kde ! org
[Download RAW message or body]

SVN commit 814899 by toma:

Add the .config/akonadi to the backup and restore.


 M  +24 -12    backup.cpp  
 M  +23 -9     restore.cpp  


--- trunk/KDE/kdepim/akonadi/tray/backup.cpp #814898:814899
@@ -24,6 +24,7 @@
 #include <KTempDir>
 #include <KUrl>
 
+#include <QDir>
 #include <kio/netaccess.h>
 
 #include <akonadi/private/xdgbasedirs_p.h>
@@ -58,16 +59,17 @@
         return;
     }
 
+    const QString sep( QDir::separator() );
     /* first create the temp folder. */
     KTempDir *tempDir = new KTempDir( KStandardDirs::locateLocal( "tmp", "akonadi" ) \
);  tempDir->setAutoRemove( false );
-    KIO::NetAccess::mkdir( tempDir->name() + "config", this );
+    KIO::NetAccess::mkdir( tempDir->name() + "kdeconfig", this );
+    KIO::NetAccess::mkdir( tempDir->name() + "akonadiconfig", this );
     KIO::NetAccess::mkdir( tempDir->name() + "db", this );
-    kDebug() << "Temp dir: "<< tempDir->name();
 
     QStringList filesToBackup;
 
-    /* Copy over the configuration files. */
+    /* Copy over the KDE config files. */
     AgentManager *manager = AgentManager::self();
     AgentInstance::List list = manager->instances();
     foreach( const AgentInstance &agent, list ) {
@@ -75,14 +77,26 @@
         const QString configFileName = KStandardDirs::locateLocal( "config", \
                agentFileName );
         bool exists = KIO::NetAccess::exists( configFileName, \
KIO::NetAccess::DestinationSide, this );  if ( exists ) {
-            KIO::NetAccess::file_copy( configFileName, tempDir->name() + "config/" + \
                agentFileName, this );
-            filesToBackup << "config/" + agentFileName;
+            KIO::NetAccess::file_copy( configFileName, 
+			    tempDir->name() + "kdeconfig" + sep + agentFileName, this );
+            filesToBackup << "kdeconfig" + sep + agentFileName;
         }
     }
 
+    /* Copy over the Akonadi config files */
+    const QString config = XdgBaseDirs::findResourceDir( "config", "akonadi" );
+    QDir dir( config );
+    const QStringList configlist = dir.entryList( QDir::Files );
+    foreach( const QString& item, configlist ) {
+	KIO::NetAccess::file_copy( config + sep + item, 
+			tempDir->name() + "akonadiconfig" + sep + item, this );
+        filesToBackup << "akonadiconfig/" + item;
+    }
+	      
+
     /* Dump the database */
     const QString socket = XdgBaseDirs::findResourceDir( "data",
-                           "akonadi/db_misc/" ) + "mysql.socket";
+                           "akonadi" + sep + "db_misc" + sep) + "mysql.socket";
     if ( socket.isEmpty() )
         kFatal() << "No socket found";
 
@@ -93,31 +107,29 @@
     params << "--result-file=" + tempDir->name() + "db/database.sql";
     params << "--socket=" + socket << "akonadi";
     proc->setProgram( KStandardDirs::findExe( "mysqldump" ), params );
-    kDebug() << "Executing: " << proc->program();
     int result = proc->execute();
     delete proc;
-    kDebug() << result;
     if ( result != 0 ) {
+    	kWarning() << "Executed: " << proc->program() << "Result: " << result;
         tempDir->unlink();
         delete tempDir;
         emit completed( false );
         return;
     }
-    filesToBackup << "db/database.sql";
+    filesToBackup << "db" + sep + "database.sql";
 
     /* Make a nice tar file. */
     proc = new KProcess( this );
     params.clear();
     params << "-C" << tempDir->name();
-    params << "-cjvf";
+    params << "-cjf";
     params << filename.path() << filesToBackup;
     proc->setWorkingDirectory( tempDir->name() );
     proc->setProgram( KStandardDirs::findExe( "tar" ), params );
-    kDebug() << "Executing: " << proc->program();
     result = proc->execute();
     delete proc;
-    kDebug() << result;
     if ( result != 0 ) {
+    	kWarning() << "Executed: " << proc->program() << "Result: " << result;
         tempDir->unlink();
         delete tempDir;
         emit completed( false );
--- trunk/KDE/kdepim/akonadi/tray/restore.cpp #814898:814899
@@ -59,6 +59,8 @@
         return;
     }
 
+    const QString sep = QDir::separator();
+
     /* first create the temp folder. */
     KTempDir *tempDir = new KTempDir( KStandardDirs::locateLocal( "tmp", "akonadi" ) \
);  tempDir->setAutoRemove( false );
@@ -68,23 +70,22 @@
     KProcess *proc = new KProcess( this );
     QStringList params;
     params << "-C" << tempDir->name();
-    params << "-xjvf";
+    params << "-xjf";
     params << filename.path();
     proc->setWorkingDirectory( tempDir->name() );
     proc->setProgram( KStandardDirs::findExe( "tar" ), params );
-    kDebug() << "Executing: " << proc->program();
     int result = proc->execute();
     delete proc;
-    kDebug() << result;
     if ( result != 0 ) {
+	kWarning() << "Executed:" << proc->program() << " Result: " << result;
         tempDir->unlink();
         delete tempDir;
         emit completed( false );
         return;
     }
 
-    /* Copy over the configuration files. */
-    QDir dir( tempDir->name() + "config/" );
+    /* Copy over the KDE configuration files. */
+    QDir dir( tempDir->name() + "kdeconfig" + sep );
     dir.setFilter( QDir::Files | QDir::Hidden | QDir::NoSymLinks );
     QFileInfoList list = dir.entryInfoList();
     for ( int i = 0; i < list.size(); ++i ) {
@@ -96,22 +97,35 @@
         KIO::NetAccess::file_copy( source, dest, this );
     }
 
+    /* Copy over the Akonadi configuration files. */
+    const QString akonadiconfigfolder = XdgBaseDirs::findResourceDir( "config", \
"akonadi" ); +    dir.setPath( tempDir->name() + "akonadiconfig" + sep );
+    dir.setFilter( QDir::Files | QDir::Hidden | QDir::NoSymLinks );
+    list = dir.entryInfoList();
+    for ( int i = 0; i < list.size(); ++i ) {
+        QFileInfo fileInfo = list.at( i );
+        const QString source = fileInfo.absoluteFilePath();
+        const QString dest = akonadiconfigfolder + sep + fileInfo.fileName();
+
+        kDebug() << "Restoring: " << source << "to:" << dest;
+        KIO::NetAccess::file_copy( source, dest, this );
+    }
+
     /* Restore the database */
     const QString socket = XdgBaseDirs::findResourceDir( "data",
-                           "akonadi/db_misc/" ) + "mysql.socket";
+                           "akonadi" + sep + "db_misc" + sep ) + "mysql.socket";
     if ( socket.isEmpty() )
         kFatal() << "No socket found";
 
     proc = new KProcess( this );
     params.clear();
     params << "--socket=" + socket << "akonadi";
-    proc->setStandardInputFile( tempDir->name() + "db/database.sql" );
+    proc->setStandardInputFile( tempDir->name() + "db" + sep + "database.sql" );
     proc->setProgram( KStandardDirs::findExe( "mysql" ), params );
-    kDebug() << "Executing: " << proc->program();
     result = proc->execute();
     delete proc;
-    kDebug() << result;
     if ( result != 0 ) {
+	kWarning() << "Executed:" << proc->program() << " Result: " << result;
         tempDir->unlink();
         delete tempDir;
         emit completed( false );


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic