]> mj.ucw.cz Git - pynsc.git/blobdiff - nsconfig/cli.py
Rename test.py -> example.py
[pynsc.git] / nsconfig / cli.py
index 46f04fdacff66b77508bc71297f3a047b08f62e0..4712c0830466e716428025ddca56be289397603c 100644 (file)
@@ -1,3 +1,6 @@
+# PyNSC: Command-line interface
+# (c) 2024 Martin Mareš <mj@ucw.cz>
+
 import argparse
 from argparse import Namespace
 from pathlib import Path
@@ -6,8 +9,8 @@ from texttable import Texttable
 from nsconfig.core import Nsc, NscZonePrimary, NscZoneSecondary, NscZoneAlias
 
 
-def do_test(nsc: Nsc) -> None:
-    test_dir = Path('test')
+def do_test(nsc: Nsc, args: Namespace) -> None:
+    test_dir = Path(args.output)
     test_dir.mkdir(exist_ok=True)
     for z in nsc.get_zones():
         print(f'Zone:        {z.name}')
@@ -88,6 +91,7 @@ def main(nsc: Nsc) -> None:
     subparsers = parser.add_subparsers(help='action to perform', dest='action', required=True, metavar='ACTION')
 
     test_parser = subparsers.add_parser('test', help='test new configuration', description='Test new configuration')
+    test_parser.add_argument('-o', '--output', metavar='DIR', default='test', help='directory to dump configuration to (default: "test")')
 
     status_parser = subparsers.add_parser('status', help='list status of zones', description='List status of zones')
     status_parser.add_argument('-a', '--all', default=False, action='store_true', help='show non-primary zones')
@@ -100,7 +104,7 @@ def main(nsc: Nsc) -> None:
     nsc.process()
 
     if args.action == 'test':
-        do_test(nsc)
+        do_test(nsc, args)
     elif args.action == 'status':
         do_status(nsc, args)
     elif args.action == 'update':