|
|
|
# -*- coding: utf-8 -*-
|
|
|
|
from setuphelpers import *
|
|
|
|
|
|
|
|
uninstallkey = []
|
|
|
|
variables = {}
|
|
|
|
|
|
|
|
# Read local variables file if available
|
|
|
|
if isfile(makepath(programfiles32,'wapt','private','symetric.txt')) and isfile(makepath(programfiles32,'wapt','private','variables.txt')):
|
|
|
|
print('Reading local encrypted variables file')
|
|
|
|
from cryptography.fernet import Fernet
|
|
|
|
import yaml
|
|
|
|
f = Fernet(open(makepath(programfiles32,'wapt','private','symetric.txt'),'r').read())
|
|
|
|
variables.update(yaml.safe_load(f.decrypt(open(makepath(programfiles32,'wapt','private','variables.txt'),'r').read())))
|
|
|
|
|
|
|
|
def install():
|
|
|
|
version = control['version'].split('-',1)[0]
|
|
|
|
|
|
|
|
print('Register OpenVPN as a trusted publisher')
|
|
|
|
run(r'certutil.exe -addstore trustedpublisher openvpn.p7b')
|
|
|
|
|
|
|
|
print('Installing OpenVPN client')
|
|
|
|
install_exe_if_needed('openvpn-install-%s-I603.exe' % version,'/S',key='OpenVPN',min_version='%s-I602' % version,killbefore=['openvpn','openvpn-gui'])
|
|
|
|
uninstallkey.append('TAP-Windows')
|
|
|
|
|
|
|
|
if 'openvpn_config' in variables:
|
|
|
|
print('Deploying client configuration')
|
|
|
|
open(makepath(programfiles,'OpenVPN','config','vpn.ovpn'),'w').write(variables['openvpn_config'])
|
|
|
|
|
|
|
|
def update_package():
|
|
|
|
import re, os
|
|
|
|
from waptpackage import PackageEntry
|
|
|
|
print('Updating OpenVPN package')
|
|
|
|
page = wgets('https://openvpn.net/community-downloads/')
|
|
|
|
latest_version = re.search('OpenVPN (\d+(\.\d+)*) .* released on', page).group(1)
|
|
|
|
pe = PackageEntry()
|
|
|
|
control = pe.load_control_from_wapt(os.getcwd())
|
|
|
|
current_version = control['version'].split('-',1)[0]
|
|
|
|
if Version(latest_version) > Version(current_version):
|
|
|
|
print('Updating Package from %s to %s' % (current_version, latest_version))
|
|
|
|
if not isfile('openvpn-install-%s-I603.exe' % latest_version):
|
|
|
|
url = 'https://swupdate.openvpn.org/community/releases/openvpn-install-%s-I603.exe' % latest_version
|
|
|
|
print('downloading %s' % url)
|
|
|
|
wget(url, os.getcwd())
|
|
|
|
for file in glob.glob('*.exe'):
|
|
|
|
if file != 'openvpn-install-%s-I603.exe' % latest_version:
|
|
|
|
print('Removing %s' % file)
|
|
|
|
remove_file(file)
|
|
|
|
pe.version = latest_version + '-0'
|
|
|
|
pe.save_control_to_wapt(os.getcwd())
|
|
|
|
print('Package updated to %s' % latest_version)
|
|
|
|
else:
|
|
|
|
print('No update available')
|
|
|
|
|
|
|
|
|
|
|
|
if __name__ == '__main__':
|
|
|
|
update_package()
|
|
|
|
|