56 lines
1.2 KiB
Python
56 lines
1.2 KiB
Python
#!/usr/bin/env python3
|
|
|
|
import os
|
|
import sys
|
|
import pexpect
|
|
import os.path
|
|
import base64
|
|
|
|
# This script can probably use some improvement
|
|
|
|
process = os.environ['PYVPN_PROCESS_PATH']
|
|
|
|
operatingDir = "/root"
|
|
|
|
fScript = pexpect.spawn("/bin/bash" + process)
|
|
|
|
if len(sys.argv) > 2:
|
|
|
|
if sys.argv[2] == "--create-client":
|
|
|
|
clientName = sys.argv[3]
|
|
configFilePath = operatingDir + "/" + clientName + ".ovpn"
|
|
|
|
fScript.expect(r'/(?:Select\ an\ option\ \[1\-4\]\:)/')
|
|
fScript.sendline('1')
|
|
fScript.expect(r'(?:Client\ name\:)')
|
|
fScript.sendline(clientName)
|
|
fScript.kill(0)
|
|
|
|
if os.path.exists(configFilePath):
|
|
|
|
file = open(configFilePath, 'r')
|
|
|
|
finalResult = base64.b64encode(file.read())
|
|
|
|
sys.stdout.write(finalResult)
|
|
sys.stdout.flush()
|
|
sys.exit(0)
|
|
|
|
else:
|
|
sys.stdout.write("Error! OpenVPN did not create the Configuration file.")
|
|
sys.stdout.flush()
|
|
sys.stdout.exit(1)
|
|
|
|
|
|
|
|
else:
|
|
sys.stdout.write("Error! Missing options!")
|
|
sys.stdout.flush()
|
|
sys.stdout.exit(2)
|
|
|
|
else:
|
|
sys.stdout.write("Error! Missing client name!")
|
|
sys.stdout.flush()
|
|
sys.stdout.exit(3)
|