From f96c9eae20b10b944fa3d2d1e06666a632a0128e Mon Sep 17 00:00:00 2001 From: David Vazgenovich Shakaryan Date: Wed, 10 Dec 2025 23:18:24 -0800 Subject: use argparse --- wg-genconf.py | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) (limited to 'wg-genconf.py') 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 -- cgit v1.2.3-70-g09d2