From eb5106409259144159c46cd4c2470621f4d6abe9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?H=C3=A5kon=20Solbj=C3=B8rg?= Date: Tue, 2 Apr 2019 00:59:16 +0200 Subject: =?UTF-8?q?feat:=20Make=20it=20possible=20to=20configure=20the=20l?= =?UTF-8?q?abler=20from=20the=20CLI=20=F0=9F=9A=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- main.py | 27 ++++++++++++++++++++++++--- 1 file changed, 24 insertions(+), 3 deletions(-) (limited to 'main.py') diff --git a/main.py b/main.py index 90a0eb8..b4f7c53 100644 --- a/main.py +++ b/main.py @@ -5,7 +5,9 @@ from cables import make_cable_labels from gondul import fetch_gondul_switches from switches import make_switch_labels -parser = argparse.ArgumentParser("Label generator script 2000") +parser = argparse.ArgumentParser( + "Label generator script 2000", + formatter_class=argparse.ArgumentDefaultsHelpFormatter) parser.add_argument("labler", type=str, help="The label function to run. Either [c]ables or [s]witches.") parser.add_argument("--gondul-user", type=str, @@ -18,6 +20,20 @@ parser.add_argument("--gondul-switches", type=str, help="Gondul switches endpoint. Overrides env GONDUL_SWITCHES_ENDPOINT") parser.add_argument("--match-switches", type=str, default="^e(.*)", help="Regex for matching switches") +parser.add_argument("--outfile", "-o", type=str, default="cable_labels.csv", + help="Output (base) file name. Might be appended with numbers for cables.") + +cables_args = parser.add_argument_group("cables") +cables_args.add_argument("--ap", type=str, action="append", + help="Name of a switch where an AP should be connected") +cables_args.add_argument("--aps-file", type=str, + help="Path to a newline-separated file with switches where an AP should be connected") +cables_args.add_argument("--copies", "-c", type=int, default=2, + help="Number of copies per label") +cables_args.add_argument("--uplinks", "-u", type=int, default=3, + help="Number of uplinks per switch") +cables_args.add_argument("--split", "-s", type=int, default=100, + help="Split into CSV files of this size") if __name__ == "__main__": args = parser.parse_args() @@ -31,9 +47,14 @@ if __name__ == "__main__": ) if args.labler[0] == "c": - make_cable_labels(switches) + make_cable_labels(switches, + aps=args.ap, + ap_file=args.aps_file, + copies=args.copies, + outfile=args.outfile, + split_per_num=args.split) elif args.labler[0] == "s": - make_switch_labels(switches) + make_switch_labels(switches, outfile=args.outfile) else: parser.print_help() sys.exit("Invalid labler operation.") -- cgit v1.2.3