summaryrefslogtreecommitdiff
path: root/examples/python
diff options
context:
space:
mode:
Diffstat (limited to 'examples/python')
-rwxr-xr-xexamples/python/gi/nm-wg-set27
1 files changed, 21 insertions, 6 deletions
diff --git a/examples/python/gi/nm-wg-set b/examples/python/gi/nm-wg-set
index 85376eada3..d295af2fdb 100755
--- a/examples/python/gi/nm-wg-set
+++ b/examples/python/gi/nm-wg-set
@@ -103,6 +103,11 @@ def connection_to_str(conn):
return '"%s" (%s%s)' % (conn.get_id(), conn.get_uuid(), extra)
+def connections_wg(connections):
+ l = list([c for c in connections if connection_is_wireguard(c)])
+ l.sort(key = connection_to_str)
+ return l
+
def connections_find(connections, con_spec, con_id):
connections = list(sorted(connections, key=connection_to_str))
l = []
@@ -123,8 +128,19 @@ def connections_find(connections, con_spec, con_id):
if con_id == c.get_uuid():
if c not in l:
l.append(c)
+ l.sort(key = connection_to_str)
return l
+
+def print_hint(nm_client):
+ print('Maybe you want to create a profile first with')
+ print(' nmcli connection add type wireguard ifname wg0 $MORE_ARGS')
+ connections = connections_wg(nm_client.get_connections())
+ if connections:
+ print('Or edit one of the following WireGuard profiles:')
+ for c in connections:
+ print (' - %s' % (connection_to_str(c)))
+
###############################################################################
def argv_get_one(argv, idx, type_ctor=None, topic=None):
@@ -379,6 +395,8 @@ def do_set(nm_client, conn, argv):
if __name__ == '__main__':
+ nm_client = NM.Client.new(None)
+
argv = sys.argv
del argv[0]
@@ -387,22 +405,19 @@ if __name__ == '__main__':
if argv[0] in [ 'id', 'uuid', 'interface' ]:
con_spec = argv[0]
del argv[0]
+
if len(argv) < 1:
print('Requires an existing NetworkManager connection profile as first argument')
print('Select it based on the connection ID, UUID, or interface-name (optionally qualify the selection with [id|uuid|interface])')
- print('Maybe you want to create one first with')
- print(' nmcli connection add type wireguard ifname wg0 $MORE_ARGS')
+ print_hint(nm_client)
sys.exit(1)
con_id = argv[0]
del argv[0]
- nm_client = NM.Client.new(None)
-
connections = connections_find(nm_client.get_connections(), con_spec, con_id)
if len(connections) == 0:
print('No matching connection %s\"%s\" found.' % ((con_spec+' ' if con_spec else ''), con_id))
- print('Maybe you want to create one first with')
- print(' nmcli connection add type wireguard ifname wg0 $MORE_ARGS')
+ print_hint(nm_client)
sys.exit(1)
if len(connections) > 1:
print("Connection %s\"%s\" is not unique (%s)" % ((con_spec+' ' if con_spec else ''), con_id, ', '.join(['['+connection_to_str(c)+']' for c in connections])))