From 14e03f9af0e8b4cc3c22d7b80c79e2fb04fe7b81 Mon Sep 17 00:00:00 2001 From: Joona Hoikkala Date: Thu, 12 Nov 2015 16:34:15 +0200 Subject: [PATCH] Parse possible multiple domain definitions to a list --- letsencrypt/cli.py | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/letsencrypt/cli.py b/letsencrypt/cli.py index 999555741..141309174 100644 --- a/letsencrypt/cli.py +++ b/letsencrypt/cli.py @@ -668,8 +668,32 @@ class HelpfulArgumentParser(object): parsed_args = self.parser.parse_args(self.args) parsed_args.func = self.VERBS[self.verb] + parsed_args.domains = self._parse_domains(parsed_args.domains) return parsed_args + def _parse_domains(self, domains): + """Helper function for parse_args() that parses domains from a + (possibly) comma separated list and returns list of unique domains. + + :param domains: List of domain flags + :type domains: `list` of `string` + + :returns: List of unique domains + :rtype: `list` of `string` + + """ + + uniqd = None + + if domains: + dlist = [] + for domain in domains: + dlist.extend([d.strip() for d in domain.split(",")]) + # Make sure we don't have duplicates + uniqd = [d for i,d in enumerate(dlist) if d not in dlist[:i]] + + return uniqd + def determine_verb(self): """Determines the verb/subcommand provided by the user.