summaryrefslogtreecommitdiff
path: root/wg-genconf.py
diff options
context:
space:
mode:
Diffstat (limited to 'wg-genconf.py')
-rwxr-xr-xwg-genconf.py15
1 files changed, 9 insertions, 6 deletions
diff --git a/wg-genconf.py b/wg-genconf.py
index 3a8269b..10a57d5 100755
--- a/wg-genconf.py
+++ b/wg-genconf.py
@@ -2,6 +2,7 @@
#
# Copyright 2025 David Vazgenovich Shakaryan
+import argparse
import collections
import copy
import functools
@@ -318,18 +319,20 @@ def get_privkey(if_):
if_.get('privkey-path', '~/.wg-genconf/${network}.privkey'))))
def main():
- conf_file = sys.argv[1]
- peer_name = sys.argv[2]
+ parser = argparse.ArgumentParser()
+ parser.add_argument('-c', '--config', default='~/.wg-genconf/config.toml')
+ parser.add_argument('peer_name')
+ args = parser.parse_args()
- with open(conf_file, 'rb') as f:
+ with open(os.path.expanduser(args.config), 'rb') as f:
config = tomllib.load(f)
networks = load_networks(config)
- if not config['peer'].get(peer_name):
- sys.exit(f"peer '{peer_name}' not configured")
+ if not config['peer'].get(args.peer_name):
+ sys.exit(f"peer '{args.peer_name}' not configured")
for network in networks:
- peer = network.peers[peer_name]
+ peer = network.peers[args.peer_name]
for if_ in peer.interfaces.values():
# file=false allows associating peers without creating interface
# config files, useful when an auto-peer interface is being