Scripts fix for macos
This commit is contained in:
parent
82241701a9
commit
f45fb442de
2 changed files with 39 additions and 26 deletions
|
|
@ -32,7 +32,7 @@ QString OpenVpnConfigurator::getEasyRsaShPath()
|
||||||
//return "\"" + easyRsaShPath + "\"";
|
//return "\"" + easyRsaShPath + "\"";
|
||||||
return "\"/Program Files (x86)/AmneziaVPN/easyrsa/easyrsa\"";
|
return "\"/Program Files (x86)/AmneziaVPN/easyrsa/easyrsa\"";
|
||||||
#else
|
#else
|
||||||
return QDir::toNativeSeparators(QApplication::applicationDirPath()) + "/easyrsa/easyrsa";
|
return QDir::toNativeSeparators(QApplication::applicationDirPath()) + "/easyrsa";
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -40,69 +40,82 @@ QProcessEnvironment OpenVpnConfigurator::prepareEnv()
|
||||||
{
|
{
|
||||||
QProcessEnvironment env = QProcessEnvironment::systemEnvironment();
|
QProcessEnvironment env = QProcessEnvironment::systemEnvironment();
|
||||||
QString pathEnvVar = env.value("PATH");
|
QString pathEnvVar = env.value("PATH");
|
||||||
|
|
||||||
|
#ifdef Q_OS_WIN
|
||||||
pathEnvVar.prepend(QDir::toNativeSeparators(QApplication::applicationDirPath()) + "\\easyrsa\\bin;");
|
pathEnvVar.prepend(QDir::toNativeSeparators(QApplication::applicationDirPath()) + "\\easyrsa\\bin;");
|
||||||
pathEnvVar.prepend(QDir::toNativeSeparators(QApplication::applicationDirPath()) + "\\openvpn\\i386;");
|
pathEnvVar.prepend(QDir::toNativeSeparators(QApplication::applicationDirPath()) + "\\openvpn\\i386;");
|
||||||
pathEnvVar.prepend(QDir::toNativeSeparators(QApplication::applicationDirPath()) + "\\openvpn\\x64;");
|
pathEnvVar.prepend(QDir::toNativeSeparators(QApplication::applicationDirPath()) + "\\openvpn\\x64;");
|
||||||
|
#else
|
||||||
|
pathEnvVar.prepend(QDir::toNativeSeparators(QApplication::applicationDirPath()) + "/Contents/MacOS");
|
||||||
|
#endif
|
||||||
|
|
||||||
env.insert("PATH", pathEnvVar);
|
env.insert("PATH", pathEnvVar);
|
||||||
return env;
|
return env;
|
||||||
}
|
}
|
||||||
|
|
||||||
void OpenVpnConfigurator::initPKI(const QString &path)
|
ErrorCode OpenVpnConfigurator::initPKI(const QString &path)
|
||||||
{
|
{
|
||||||
#ifdef Q_OS_WIN
|
|
||||||
QProcess p;
|
QProcess p;
|
||||||
p.setProcessChannelMode(QProcess::MergedChannels);
|
p.setProcessChannelMode(QProcess::MergedChannels);
|
||||||
p.setProcessEnvironment(prepareEnv());
|
p.setProcessEnvironment(prepareEnv());
|
||||||
|
|
||||||
//QString command = QString("sh.exe");
|
#ifdef Q_OS_WIN
|
||||||
QString command = QString("cmd.exe");
|
//p.setProgram("sh.exe");
|
||||||
|
|
||||||
//p.setNativeArguments(getEasyRsaShPath() + " init-pki");
|
//p.setNativeArguments(getEasyRsaShPath() + " init-pki");
|
||||||
|
|
||||||
|
p.setProgram("cmd.exe");
|
||||||
p.setNativeArguments(QString("/C \"sh.exe %1\"").arg(getEasyRsaShPath() + " init-pki"));
|
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.setWorkingDirectory(path);
|
||||||
|
|
||||||
p.start(command);
|
// QObject::connect(&p, &QProcess::channelReadyRead, [&](){
|
||||||
p.waitForFinished();
|
// qDebug().noquote() << p.readAll();
|
||||||
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;
|
QProcess p;
|
||||||
p.setProcessChannelMode(QProcess::MergedChannels);
|
p.setProcessChannelMode(QProcess::MergedChannels);
|
||||||
p.setProcessEnvironment(prepareEnv());
|
p.setProcessEnvironment(prepareEnv());
|
||||||
|
|
||||||
//QString command = QString("sh.exe");
|
#ifdef Q_OS_WIN
|
||||||
QString command = QString("cmd.exe");
|
//p.setProgram("sh.exe");
|
||||||
|
|
||||||
//p.setNativeArguments(getEasyRsaShPath() + " gen-req " + clientId + " nopass");
|
//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);
|
p.setWorkingDirectory(path);
|
||||||
|
|
||||||
QObject::connect(&p, &QProcess::channelReadyRead, [&](){
|
QObject::connect(&p, &QProcess::channelReadyRead, [&](){
|
||||||
QString data = p.readAll();
|
QString data = p.readAll();
|
||||||
qDebug().noquote() << data;
|
//qDebug().noquote() << data;
|
||||||
|
|
||||||
if (data.contains("Common Name (eg: your user, host, or server name)")) {
|
if (data.contains("Common Name (eg: your user, host, or server name)")) {
|
||||||
p.write("\n");
|
p.write("\n");
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
p.start(command);
|
p.start();
|
||||||
p.waitForFinished();
|
p.waitForFinished();
|
||||||
// qDebug().noquote() << p.readAll();
|
|
||||||
|
|
||||||
return "";
|
if (p.exitCode() == 0) return ErrorCode::NoError;
|
||||||
#endif
|
else return ErrorCode::EasyRsaError;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -119,7 +132,7 @@ OpenVpnConfigurator::ConnectionData OpenVpnConfigurator::createCertRequest()
|
||||||
QString path = dir.path();
|
QString path = dir.path();
|
||||||
|
|
||||||
initPKI(path);
|
initPKI(path);
|
||||||
genReq(path, connData.clientId);
|
ErrorCode errorCode = genReq(path, connData.clientId);
|
||||||
|
|
||||||
|
|
||||||
QFile req(path + "/pki/reqs/" + connData.clientId + ".req");
|
QFile req(path + "/pki/reqs/" + connData.clientId + ".req");
|
||||||
|
|
|
||||||
|
|
@ -29,8 +29,8 @@ private:
|
||||||
static QString getEasyRsaShPath();
|
static QString getEasyRsaShPath();
|
||||||
|
|
||||||
static QProcessEnvironment prepareEnv();
|
static QProcessEnvironment prepareEnv();
|
||||||
static void initPKI(const QString &path);
|
static ErrorCode initPKI(const QString &path);
|
||||||
static QString genReq(const QString &path, const QString &clientId);
|
static ErrorCode genReq(const QString &path, const QString &clientId);
|
||||||
|
|
||||||
static ConnectionData createCertRequest();
|
static ConnectionData createCertRequest();
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue