diff --git a/src/cli/Merge.cpp b/src/cli/Merge.cpp index 738f0ee4..c69dcd60 100644 --- a/src/cli/Merge.cpp +++ b/src/cli/Merge.cpp @@ -22,12 +22,10 @@ #include #include #include -#include #include #include #include "core/Database.h" -#include "format/KeePass2Writer.h" #include "gui/UnlockDatabaseDialog.h" int Merge::execute(int argc, char** argv) @@ -95,26 +93,13 @@ int Merge::execute(int argc, char** argv) } db1->merge(db2); - - QSaveFile saveFile(args.at(0)); - if (!saveFile.open(QIODevice::WriteOnly)) { - qCritical("Unable to open file %s for writing.", qPrintable(args.at(0))); - return EXIT_FAILURE; - } - - KeePass2Writer writer; - writer.writeDatabase(&saveFile, db1); - - if (writer.hasError()) { - qCritical("Error while updating the database:\n%s\n", qPrintable(writer.errorString())); - return EXIT_FAILURE; - } - - if (!saveFile.commit()) { - qCritical("Error while updating the database:\n%s\n", qPrintable(writer.errorString())); + QString errorMessage = db1->saveToFile(args.at(0)); + if (!errorMessage.isEmpty()) { + qCritical("Unable to save database to file : %s", qPrintable(errorMessage)); return EXIT_FAILURE; } out << "Successfully merged the database files.\n"; return EXIT_SUCCESS; + }