gn2bp: ensure there are not multiple occurences of arg
As we do not deal with this yet...
Test: none
Change-Id: Iae1668a4cf7441d06265c6146b8a3819df6b299c
diff --git a/tools/gn2bp/gen_android_bp b/tools/gn2bp/gen_android_bp
index 5bc7bcb..6b1df3b 100755
--- a/tools/gn2bp/gen_android_bp
+++ b/tools/gn2bp/gen_android_bp
@@ -29,6 +29,7 @@
import collections
import json
import logging as log
+import operator
import os
import re
import sys
@@ -619,11 +620,19 @@
def _has_arg(self, arg):
return arg in self.target.args
+ # Whether an arg has multiple occurences (see argparse action='append')
+ def _is_append_arg(self, arg):
+ return operator.countOf(arg, self.target.args) > 1
+
def _has_arg_value(self, arg):
+ # TODO: we'll probably need a set of helper functions to deal with append
+ # args as well.
+ assert(not self._is_append_arg(arg))
i = self.target.args.index(arg)
return not self.target.args[i + 1].startswith('--')
def _get_arg_value(self, arg):
+ assert(self._has_arg_value(arg))
i = self.target.args.index(arg)
return self.target.args[i + 1]
@@ -633,6 +642,7 @@
self.target.args[i + 1] = value
def _delete_arg(self, arg):
+ assert(not self._is_append_arg(arg))
hasValue = self._has_arg_value(arg)
i = self.target.index(arg)
self.target.args.pop(i)