pyvpn/pyVPN.py

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)