Skip to content

Commit

Permalink
[buteo-sync-plugins-social] Split backup plugins. Contributes to JB#4…
Browse files Browse the repository at this point in the history
…8784

Split Dropbox and OneDrive plugins into separate plugins for each of
the backup, backup-query and backup-restore features.
  • Loading branch information
Bea Lam committed Mar 30, 2020
1 parent 569df6c commit cfb7407
Show file tree
Hide file tree
Showing 65 changed files with 2,714 additions and 1,686 deletions.
1 change: 1 addition & 0 deletions .gitignore
Expand Up @@ -6,6 +6,7 @@ Makefile
*.qm
*.moc
*.obj
*.pro.*
/RPMS/
*.list
*-client
Expand Down
24 changes: 24 additions & 0 deletions rpm/sociald.spec
Expand Up @@ -431,17 +431,29 @@ Requires: %{name} = %{version}-%{release}
%files onedrive-backup
#out-of-process-plugin form:
/usr/lib/buteo-plugins-qt5/oopp/onedrive-backup-client
/usr/lib/buteo-plugins-qt5/oopp/onedrive-backupquery-client
/usr/lib/buteo-plugins-qt5/oopp/onedrive-backuprestore-client
#in-process-plugin form:
#/usr/lib/buteo-plugins-qt5/libonedrive-backup-client.so
#/usr/lib/buteo-plugins-qt5/libonedrive-backupquery-client.so
#/usr/lib/buteo-plugins-qt5/libonedrive-backuprestore-client.so
%config %{_sysconfdir}/buteo/profiles/client/onedrive-backup.xml
%config %{_sysconfdir}/buteo/profiles/client/onedrive-backupquery.xml
%config %{_sysconfdir}/buteo/profiles/client/onedrive-backuprestore.xml
%config %{_sysconfdir}/buteo/profiles/sync/onedrive.Backup.xml
%config %{_sysconfdir}/buteo/profiles/sync/onedrive.BackupQuery.xml
%config %{_sysconfdir}/buteo/profiles/sync/onedrive.BackupRestore.xml

%pre onedrive-backup
USERS=$(getent group users | cut -d ":" -f 4 | tr "," "\n")
for user in $USERS; do
USERHOME=$(getent passwd ${user} | cut -d ":" -f 6)
rm -f ${USERHOME}/.cache/msyncd/sync/client/onedrive-backup.xml || :
rm -f ${USERHOME}/.cache/msyncd/sync/client/onedrive-backupquery.xml || :
rm -f ${USERHOME}/.cache/msyncd/sync/client/onedrive-backuprestore.xml || :
rm -f ${USERHOME}/.cache/msyncd/sync/onedrive.Backup.xml || :
rm -f ${USERHOME}/.cache/msyncd/sync/onedrive.BackupQuery.xml || :
rm -f ${USERHOME}/.cache/msyncd/sync/onedrive.BackupRestore.xml || :
done

%post onedrive-backup
Expand All @@ -460,17 +472,29 @@ Requires: %{name} = %{version}-%{release}
%files dropbox-backup
#out-of-process-plugin form:
/usr/lib/buteo-plugins-qt5/oopp/dropbox-backup-client
/usr/lib/buteo-plugins-qt5/oopp/dropbox-backupquery-client
/usr/lib/buteo-plugins-qt5/oopp/dropbox-backuprestore-client
#in-process-plugin form:
#/usr/lib/buteo-plugins-qt5/libdropbox-backup-client.so
#/usr/lib/buteo-plugins-qt5/libdropbox-backupquery-client.so
#/usr/lib/buteo-plugins-qt5/libdropbox-backuprestore-client.so
%config %{_sysconfdir}/buteo/profiles/client/dropbox-backup.xml
%config %{_sysconfdir}/buteo/profiles/client/dropbox-backupquery.xml
%config %{_sysconfdir}/buteo/profiles/client/dropbox-backuprestore.xml
%config %{_sysconfdir}/buteo/profiles/sync/dropbox.Backup.xml
%config %{_sysconfdir}/buteo/profiles/sync/dropbox.BackupQuery.xml
%config %{_sysconfdir}/buteo/profiles/sync/dropbox.BackupRestore.xml

%pre dropbox-backup
USERS=$(getent group users | cut -d ":" -f 4 | tr "," "\n")
for user in $USERS; do
USERHOME=$(getent passwd ${user} | cut -d ":" -f 6)
rm -f ${USERHOME}/.cache/msyncd/sync/client/dropbox-backup.xml || :
rm -f ${USERHOME}/.cache/msyncd/sync/client/dropbox-backupquery.xml || :
rm -f ${USERHOME}/.cache/msyncd/sync/client/dropbox-backuprestore.xml || :
rm -f ${USERHOME}/.cache/msyncd/sync/dropbox.Backup.xml || :
rm -f ${USERHOME}/.cache/msyncd/sync/dropbox.BackupQuery.xml || :
rm -f ${USERHOME}/.cache/msyncd/sync/dropbox.BackupRestore.xml || :
done

%post dropbox-backup
Expand Down
33 changes: 0 additions & 33 deletions src/common/backuprestoreoptions.cpp
Expand Up @@ -42,20 +42,6 @@ bool BackupRestoreOptions::copyToProfile(Buteo::SyncProfile *syncProfile)
return false;
}

QString operationValue;
switch (operation) {
case DirectoryListing:
operationValue = "dir-listing";
break;
case Upload:
operationValue = "upload";
break;
case Download:
operationValue = "download";
break;
};

clientProfile->setKey("sfos-operation", operationValue);
clientProfile->setKey("sfos-dir-local", localDirPath);
clientProfile->setKey("sfos-dir-remote", remoteDirPath);
clientProfile->setKey("sfos-filename", fileName);
Expand All @@ -77,35 +63,16 @@ BackupRestoreOptions BackupRestoreOptions::fromProfile(Buteo::SyncProfile *syncP
}

BackupRestoreOptions options;
QString operation = clientProfile->key("sfos-operation");
options.localDirPath = clientProfile->key("sfos-dir-local");
options.remoteDirPath = clientProfile->key("sfos-dir-remote");
options.fileName = clientProfile->key("sfos-filename");

if (operation == "dir-listing") {
options.operation = BackupRestoreOptions::DirectoryListing;
} else if (operation == "upload") {
options.operation = BackupRestoreOptions::Upload;
} else if (operation == "download") {
options.operation = BackupRestoreOptions::Download;
} else {
qWarning() << "Backup/restore options for sync profile" << syncProfile->name()
<< "has invalid operation type:" << operation;
return BackupRestoreOptions();
}

if (options.localDirPath.isEmpty()) {
qWarning() << "Backup/restore options for sync profile" << syncProfile->name()
<< "do not specify a local directory!";
return BackupRestoreOptions();
}

if (options.operation == BackupRestoreOptions::DirectoryListing && options.fileName.isEmpty()) {
qWarning() << "Backup/restore options for sync profile" << syncProfile->name()
<< "do not specify a file name for directory listing!";
return BackupRestoreOptions();
}

if (ok) {
*ok = true;
}
Expand Down
7 changes: 0 additions & 7 deletions src/common/backuprestoreoptions_p.h
Expand Up @@ -31,13 +31,6 @@ namespace Buteo {
class BackupRestoreOptions
{
public:
enum Operation {
DirectoryListing,
Upload,
Download
};

Operation operation = DirectoryListing;
QString localDirPath;
QString remoteDirPath;
QString fileName;
Expand Down
2 changes: 1 addition & 1 deletion src/common/socialdnetworkaccessmanager_p.h
Expand Up @@ -37,4 +37,4 @@ class SocialdNetworkAccessManager : public QNetworkAccessManager
QIODevice *outgoingData = 0);
};

#endif
#endif
7 changes: 6 additions & 1 deletion src/common/socialnetworksyncadaptor.cpp
Expand Up @@ -56,7 +56,10 @@ namespace {
<< QStringLiteral("Posts")
<< QStringLiteral("Messages")
<< QStringLiteral("Emails")
<< QStringLiteral("Signon");
<< QStringLiteral("Signon")
<< QStringLiteral("Backup")
<< QStringLiteral("BackupQuery")
<< QStringLiteral("BackupRestore");
}
}

Expand Down Expand Up @@ -425,6 +428,8 @@ QString SocialNetworkSyncAdaptor::dataTypeName(SocialNetworkSyncAdaptor::DataTyp
case SocialNetworkSyncAdaptor::Emails: return QStringLiteral("Emails");
case SocialNetworkSyncAdaptor::Signon: return QStringLiteral("Signon");
case SocialNetworkSyncAdaptor::Backup: return QStringLiteral("Backup");
case SocialNetworkSyncAdaptor::BackupQuery: return QStringLiteral("BackupQuery");
case SocialNetworkSyncAdaptor::BackupRestore: return QStringLiteral("BackupRestore");
default: break;
}

Expand Down
4 changes: 3 additions & 1 deletion src/common/socialnetworksyncadaptor.h
Expand Up @@ -74,7 +74,9 @@ class SocialNetworkSyncAdaptor : public QObject
Messages, // "Messages"
Emails, // "Emails"
Signon, // "Signon" -- for refreshing AccessTokens etc.
Backup // "Backup" -- for storing backup/restore blobs
Backup, // "Backup"
BackupQuery, // "BackupQuery"
BackupRestore // "BackupRestore"
};
static QStringList validDataTypes();
static QString dataTypeName(DataType t);
Expand Down
1 change: 1 addition & 0 deletions src/dropbox/dropbox-backup/dropbox-backup.pro
Expand Up @@ -4,6 +4,7 @@ DEFINES += "CLASSNAME=DropboxBackupPlugin"
DEFINES += CLASSNAME_H=\\\"dropboxbackupplugin.h\\\"
include($$PWD/../../common.pri)
include($$PWD/../dropbox-common.pri)
include($$PWD/../dropbox-backupoperation.pri)
include($$PWD/dropbox-backup.pri)

dropbox_backup_sync_profile.path = /etc/buteo/profiles/sync
Expand Down
6 changes: 2 additions & 4 deletions src/dropbox/dropbox-backup/dropboxbackupplugin.cpp
@@ -1,8 +1,6 @@
/****************************************************************************
**
** Copyright (C) 2015-2019 Jolla Ltd.
** Copyright (C) 2019 Open Mobile Platform LLC
** Contact: Chris Adams <chris.adams@jolla.com>
** Copyright (c) 2020 Open Mobile Platform LLC.
**
** This program/library is free software; you can redistribute it and/or
** modify it under the terms of the GNU Lesser General Public License
Expand Down Expand Up @@ -51,5 +49,5 @@ DropboxBackupPlugin::~DropboxBackupPlugin()

SocialNetworkSyncAdaptor *DropboxBackupPlugin::createSocialNetworkSyncAdaptor()
{
return new DropboxBackupSyncAdaptor(profile().name(), this);
return new DropboxBackupSyncAdaptor(this);
}
3 changes: 1 addition & 2 deletions src/dropbox/dropbox-backup/dropboxbackupplugin.h
@@ -1,7 +1,6 @@
/****************************************************************************
**
** Copyright (C) 2015 Jolla Ltd.
** Contact: Chris Adams <chris.adams@jolla.com>
** Copyright (c) 2020 Open Mobile Platform LLC.
**
** This program/library is free software; you can redistribute it and/or
** modify it under the terms of the GNU Lesser General Public License
Expand Down

0 comments on commit cfb7407

Please sign in to comment.