Scripts fix for macos

This commit is contained in:
pokamest 2021-01-08 15:43:45 +03:00 committed by Admin
parent 82241701a9
commit f45fb442de
2 changed files with 39 additions and 26 deletions

View file

@ -32,7 +32,7 @@ QString OpenVpnConfigurator::getEasyRsaShPath()
//return "\"" + easyRsaShPath + "\"";
return "\"/Program Files (x86)/AmneziaVPN/easyrsa/easyrsa\"";
#else
return QDir::toNativeSeparators(QApplication::applicationDirPath()) + "/easyrsa/easyrsa";
return QDir::toNativeSeparators(QApplication::applicationDirPath()) + "/easyrsa";
#endif
}
@ -40,69 +40,82 @@ QProcessEnvironment OpenVpnConfigurator::prepareEnv()
{
QProcessEnvironment env = QProcessEnvironment::systemEnvironment();
QString pathEnvVar = env.value("PATH");
#ifdef Q_OS_WIN
pathEnvVar.prepend(QDir::toNativeSeparators(QApplication::applicationDirPath()) + "\\easyrsa\\bin;");
pathEnvVar.prepend(QDir::toNativeSeparators(QApplication::applicationDirPath()) + "\\openvpn\\i386;");
pathEnvVar.prepend(QDir::toNativeSeparators(QApplication::applicationDirPath()) + "\\openvpn\\x64;");
#else
pathEnvVar.prepend(QDir::toNativeSeparators(QApplication::applicationDirPath()) + "/Contents/MacOS");
#endif
env.insert("PATH", pathEnvVar);
return env;
}
void OpenVpnConfigurator::initPKI(const QString &path)
ErrorCode OpenVpnConfigurator::initPKI(const QString &path)
{
#ifdef Q_OS_WIN
QProcess p;
p.setProcessChannelMode(QProcess::MergedChannels);
p.setProcessEnvironment(prepareEnv());
//QString command = QString("sh.exe");
QString command = QString("cmd.exe");
#ifdef Q_OS_WIN
//p.setProgram("sh.exe");
//p.setNativeArguments(getEasyRsaShPath() + " init-pki");
p.setProgram("cmd.exe");
p.setNativeArguments(QString("/C \"sh.exe %1\"").arg(getEasyRsaShPath() + " init-pki"));
//qDebug().noquote() << p.nativeArguments();
#else
p.setProgram(getEasyRsaShPath());
p.setArguments(QStringList() << "init-pki");
#endif
p.setWorkingDirectory(path);
p.start(command);
p.waitForFinished();
qDebug().noquote() << p.readAll();
// QObject::connect(&p, &QProcess::channelReadyRead, [&](){
// qDebug().noquote() << p.readAll();
// });
#endif
p.start();
p.waitForFinished();
if (p.exitCode() == 0) return ErrorCode::NoError;
else return ErrorCode::EasyRsaError;
}
QString OpenVpnConfigurator::genReq(const QString &path, const QString &clientId)
ErrorCode OpenVpnConfigurator::genReq(const QString &path, const QString &clientId)
{
#ifdef Q_OS_WIN
QProcess p;
p.setProcessChannelMode(QProcess::MergedChannels);
p.setProcessEnvironment(prepareEnv());
//QString command = QString("sh.exe");
QString command = QString("cmd.exe");
#ifdef Q_OS_WIN
//p.setProgram("sh.exe");
//p.setNativeArguments(getEasyRsaShPath() + " gen-req " + clientId + " nopass");
p.setNativeArguments(QString("/C \"sh.exe %1\"").arg(getEasyRsaShPath() + " gen-req " + clientId + " nopass"));
//qDebug().noquote() << p.nativeArguments();
p.setProgram("cmd.exe");
p.setNativeArguments(QString("/C \"sh.exe %1\"").arg(getEasyRsaShPath() + " gen-req " + clientId + " nopass"));
#else
p.setArguments(QStringList() << "gen-req" << clientId << "nopass");
p.setProgram(getEasyRsaShPath());
#endif
p.setWorkingDirectory(path);
QObject::connect(&p, &QProcess::channelReadyRead, [&](){
QString data = p.readAll();
qDebug().noquote() << data;
//qDebug().noquote() << data;
if (data.contains("Common Name (eg: your user, host, or server name)")) {
p.write("\n");
}
});
p.start(command);
p.start();
p.waitForFinished();
// qDebug().noquote() << p.readAll();
return "";
#endif
if (p.exitCode() == 0) return ErrorCode::NoError;
else return ErrorCode::EasyRsaError;
}
@ -119,7 +132,7 @@ OpenVpnConfigurator::ConnectionData OpenVpnConfigurator::createCertRequest()
QString path = dir.path();
initPKI(path);
genReq(path, connData.clientId);
ErrorCode errorCode = genReq(path, connData.clientId);
QFile req(path + "/pki/reqs/" + connData.clientId + ".req");

View file

@ -29,8 +29,8 @@ private:
static QString getEasyRsaShPath();
static QProcessEnvironment prepareEnv();
static void initPKI(const QString &path);
static QString genReq(const QString &path, const QString &clientId);
static ErrorCode initPKI(const QString &path);
static ErrorCode genReq(const QString &path, const QString &clientId);
static ConnectionData createCertRequest();