From d257a98cb80a90f116072c882753039b10a5e042 Mon Sep 17 00:00:00 2001 From: Erovia Date: Mon, 14 Oct 2019 18:35:12 +0200 Subject: [PATCH] Fix regex for parsing rules.mk files MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit I don't know why it couldn't put it together before... ¯\_(ツ)_/¯ --- lib/python/qmk/makefile.py | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/lib/python/qmk/makefile.py b/lib/python/qmk/makefile.py index ce64431f96f..dc498adc8fb 100644 --- a/lib/python/qmk/makefile.py +++ b/lib/python/qmk/makefile.py @@ -16,20 +16,15 @@ def parse_rules_mk(file_path): Returns: a dictionary with the file's content """ - # regex to match lines with comment at the end + # regex to match lines uncommented lines and get the data # group(1) = option's name # group(2) = operator (eg.: '=', '+=') # group(3) = value(s) - commented_regex = re.compile(r"^\s*(\w+)\s*([\:\+\-]?=)\s*(.*?)(?=\s*\#)") - # regex to match lines without comment at the end - # group(1) = option's name - # group(2) = operator (eg.: '=', '+=') - # group(3) = value(s) - uncommented_regex = re.compile(r"^\s*(\w+)\s*([\:\+\-]?=)\s*(.*?)(?=\s*$)") + rules_mk_regex = re.compile(r"^\s*(\w+)\s*([\?\:\+\-]?=)\s*(\S.*?)(?=\s*(\#|$))") mk_content = qmk.path.unicode_lines(file_path) parsed_file = dict() for line in mk_content: - found = commented_regex.search(line) if "#" in line else uncommented_regex.search(line) + found = rules_mk_regex.search(line) if found: parsed_file[found.group(1)] = dict(operator = found.group(2), value = found.group(3)) return parsed_file