yhkylin-backup-tools/backup-daemon/mymountproxy.cpp

46 lines
1.2 KiB
C++
Raw Normal View History

2022-11-01 10:40:05 +08:00
#include <QtDebug>
#include <QDir>
#include "mymountproxy.h"
#include "../common/utils.h"
MyMountProxy::MyMountProxy(QObject* parent) : QObject(parent)
{
m_processMount = new MountBackupProcess(this);
}
MountResult MyMountProxy::mountBackupPartition()
{
QString backupPartitionUuid = Utils::getBackupPartitionUuid();
if (backupPartitionUuid.isEmpty()) {
qCritical("can't open /etc/.bootinfo or can't get RECOVERY_DEV_UUID");
return MountResult::CANNOT_GET_BACKUPUUID;
}
QString rootPath = Utils::getSysRootPath();
QString backPath = rootPath + BACKUP_PATH;
backPath.replace("//", "/");
Utils::mkpath(backPath);
bool res = m_processMount->Do(backupPartitionUuid);
if (res) {
QString snapshotsPath = rootPath + BACKUP_SNAPSHOTS_PATH;
snapshotsPath.replace("//", "/");
Utils::mkpath(snapshotsPath);
if (!Utils::generateExcludePathsFile()) {
qCritical("mount success, but generate some important file failed!");
return MountResult::GENERATE_IMPORT_FILE_FAIL;
}
return MountResult::MOUNTED;
}
return MountResult::NO_MOUNTED;
}
bool MyMountProxy::umountBackupPartition()
{
return m_processMount->umountBackupPartition();
}