From 866a6950c7c87a3310931e47db0f5b34284979c6 Mon Sep 17 00:00:00 2001 From: Attila Farkas <x394097@fi.muni.cz> Date: Thu, 26 Mar 2020 11:45:36 +0100 Subject: [PATCH] parsing input arguments with argparse --- modules/input_argument_parser.py | 29 ++++++++++++----------------- 1 file changed, 12 insertions(+), 17 deletions(-) diff --git a/modules/input_argument_parser.py b/modules/input_argument_parser.py index 4156878..4d00ae0 100644 --- a/modules/input_argument_parser.py +++ b/modules/input_argument_parser.py @@ -1,5 +1,7 @@ """ This module contains functions to parse input arguments. """ +import argparse + def parse_input_args(argv, flags): """ Parses the given input arguments for input file name and flags. @@ -7,27 +9,20 @@ def parse_input_args(argv, flags): :param argv: input arguments (list of strings) :param flags: dictionary to write the parsed flags :returns: name of the input file - :raise AttributeError: invalid number of args or unknown flag """ input_file_name = None + parser = argparse.ArgumentParser() - # TODO implement parsing args using an external module + parser.add_argument("definition_file", help="path to the input yaml definition") + parser.add_argument("--ansible_local", help="uses ansible_local for provisioning instead of ansible", action="store_true") + parser.add_argument("--verbose_vagrant", help="sets verbose output for vagrant", action="store_true") + parser.add_argument("--border_router", help="creates a border router with connection to all routers", action="store_true") + args = parser.parse_args() - if len(argv) == 3: - if str(argv[1]) == "-l": - flags["ansible_local"] = True - input_file_name = str(argv[2]) - elif str(argv[2]) == "-l": - flags["ansible_local"] = True - input_file_name = str(argv[1]) - else: - print("Error: Expecting a yml file and optionally a flag -l.") - raise AttributeError - elif len(argv) == 2: - input_file_name = str(argv[1]) - else: - print("Error: Expecting a yml file and optionally a flag -l.") - raise AttributeError + input_file_name = args.definition_file + flags["ansible_local"] = args.ansible_local + flags["verbose_vagrant"] = args.verbose_vagrant + flags["border_router"] = args.border_router return input_file_name -- GitLab