# Wireguard functions for Wire-Py import os import subprocess from tkinter import filedialog import tkinter as tk from tkinter import messagebox def active(): # Shows the active tunnel a = os.popen('nmcli con show --active | grep -iPo "(.*)(wireguard)"').read().split() if not a: a = '' return a else: a = a[0] return a a = active() def tl_list(): wg_s = os.popen('nmcli con show | grep -iPo "(.*)(wireguard)"').read().split() tl = wg_s[::3] # tl = Tunnelliste # Hiermit wird jedes 4. Element der Liste gezeigt return tl def wg_import_select(): try: filepath = filedialog.askopenfilename(initialdir=os.environ['HOME'], title="Select Wireguard config File", filetypes=[("WG config files", "*.conf")]) file = open(filepath, 'r') read = file.read() file.close() pathsplit = filepath.split("/") pathsplit1 = pathsplit[-1] if "PrivateKey = " in read and "PublicKey = " in read: if len(pathsplit1) > 17: pathsplit = pathsplit1[len(pathsplit1) - 17:] os.rename(filepath, os.environ['HOME'] + '/tester/' + str(pathsplit)) os.system('nmcli connection down ' + str(a)) os.system('nmcli connection import type wireguard file ' + os.environ['HOME'] + '/tester/' + str(pathsplit)) os.system('nmcli con mod ' + str(pathsplit[:-5]) + ' connection.autoconnect no') else: subprocess.call('cp ' + str(filepath) + ' ' + os.environ['HOME'] + '/tester/', shell=True) os.system('nmcli connection down ' + str(a)) os.system('nmcli connection import type wireguard file ' + str(filepath)) os.system('nmcli con mod ' + str(pathsplit1[:-5]) + ' connection.autoconnect no') if "PrivateKey = " not in read: messagebox.showwarning(title="conf error", message=" Oh... no valid Wireguard File!\nPlease select a " "valid Wireguard File ") except EOFError: pass except TypeError: pass def tl_list(): wg_s = os.popen('nmcli con show | grep -iPo "(.*)(wireguard)"').read().split() tl = wg_s[::3] # tl = Tunnelliste # Hiermit wird jedes 4. Element der Liste gezeigt return tl def wg_export(): try: wg_exp = os.popen('nmcli con show | grep -iPo "(.*)(wireguard)"').read().split() wg_exp = wg_exp[1] return wg_exp except IndexError: pass