Created a scaffold for Linux installation
This commit is contained in:
parent
a71ca29b2f
commit
efdd47a63d
4 changed files with 16 additions and 5 deletions
|
|
@ -62,7 +62,7 @@ void UpdateController::checkForUpdates()
|
||||||
|
|
||||||
for (auto asset : assets) {
|
for (auto asset : assets) {
|
||||||
QJsonObject assetObject = asset.toObject();
|
QJsonObject assetObject = asset.toObject();
|
||||||
if (assetObject.value("name").toString().contains(".dmg")) {
|
if (assetObject.value("name").toString().contains(".tar.gz")) {
|
||||||
m_downloadUrl = assetObject.value("browser_download_url").toString();
|
m_downloadUrl = assetObject.value("browser_download_url").toString();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -112,10 +112,11 @@ void UpdateController::runInstaller()
|
||||||
QFutureWatcher<int> watcher;
|
QFutureWatcher<int> watcher;
|
||||||
QFuture<int> future = QtConcurrent::run([this]() {
|
QFuture<int> future = QtConcurrent::run([this]() {
|
||||||
QString t = installerPath;
|
QString t = installerPath;
|
||||||
QRemoteObjectPendingReply<int> ipcReply = IpcClient::Interface()->mountDmg(t, true);
|
QRemoteObjectPendingReply<int> ipcReply = IpcClient::Interface()->installApp(t);
|
||||||
ipcReply.waitForFinished();
|
// QRemoteObjectPendingReply<int> ipcReply = IpcClient::Interface()->mountDmg(t, true);
|
||||||
QProcess::execute("/Volumes/AmneziaVPN/AmneziaVPN.app/Contents/MacOS/AmneziaVPN");
|
// ipcReply.waitForFinished();
|
||||||
ipcReply = IpcClient::Interface()->mountDmg(t, false);
|
// QProcess::execute("/Volumes/AmneziaVPN/AmneziaVPN.app/Contents/MacOS/AmneziaVPN");
|
||||||
|
// ipcReply = IpcClient::Interface()->mountDmg(t, false);
|
||||||
ipcReply.waitForFinished();
|
ipcReply.waitForFinished();
|
||||||
return ipcReply.returnValue();
|
return ipcReply.returnValue();
|
||||||
});
|
});
|
||||||
|
|
|
||||||
|
|
@ -34,5 +34,6 @@ class IpcInterface
|
||||||
SLOT( bool updateResolvers(const QString& ifname, const QList<QHostAddress>& resolvers) );
|
SLOT( bool updateResolvers(const QString& ifname, const QList<QHostAddress>& resolvers) );
|
||||||
|
|
||||||
SLOT( int mountDmg(const QString &path, bool mount) );
|
SLOT( int mountDmg(const QString &path, bool mount) );
|
||||||
|
SLOT (int installApp(const QString &path));
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -377,3 +377,11 @@ int IpcServer::mountDmg(const QString &path, bool mount)
|
||||||
#endif
|
#endif
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int IpcServer::installApp(const QString &path)
|
||||||
|
{
|
||||||
|
#if defined(Q_OS_LINUX) && !defined(Q_OS_ANDROID)
|
||||||
|
return QProcess::execute(QString("sudo dpkg -i %1").arg(path));
|
||||||
|
#endif
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
|
||||||
|
|
@ -39,6 +39,7 @@ public:
|
||||||
virtual bool disableKillSwitch() override;
|
virtual bool disableKillSwitch() override;
|
||||||
virtual bool updateResolvers(const QString& ifname, const QList<QHostAddress>& resolvers) override;
|
virtual bool updateResolvers(const QString& ifname, const QList<QHostAddress>& resolvers) override;
|
||||||
virtual int mountDmg(const QString &path, bool mount) override;
|
virtual int mountDmg(const QString &path, bool mount) override;
|
||||||
|
virtual int installApp(const QString &path) override;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
int m_localpid = 0;
|
int m_localpid = 0;
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue