summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Vazgenovich Shakaryan <dvshakaryan@gmail.com>2025-12-10 23:18:24 -0800
committerDavid Vazgenovich Shakaryan <dvshakaryan@gmail.com>2025-12-10 23:18:24 -0800
commitf96c9eae20b10b944fa3d2d1e06666a632a0128e (patch)
tree0ad3e99fc8f4dd4aa54abe32b832274cf4dd560c
parent2157a8d75726c9d28a62c298df279e4ed917f16f (diff)
downloadwg-genconf-f96c9eae20b10b944fa3d2d1e06666a632a0128e.tar.gz
wg-genconf-f96c9eae20b10b944fa3d2d1e06666a632a0128e.tar.xz
use argparse
-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