diff --git a/data/devices/data-parse-test.py b/data/devices/data-parse-test.py index 1ca29d5c..f0a7fc90 100755 --- a/data/devices/data-parse-test.py +++ b/data/devices/data-parse-test.py @@ -27,6 +27,7 @@ import argparse import configparser +import re def assertIn(element, l): @@ -190,6 +191,15 @@ def check_section_driver(driver, section): assert('Unsupported driver section {}'.format(driver)) +def validate_data_file_name(path): + # Matching any of the characters in the regular expression will throw an + # error. Currently only tests the square brackets [], parentheses, and curly + # braces. + illegal_characters_regex = '([\[\]\{\}\(\)])' + found_characters = re.findall(illegal_characters_regex, path) + if found_characters: + raise AssertionError("data file name '{}' contains illegal characters: '{}'".format(path, ''.join(found_characters))) + def parse_data_file(path): print('Parsing file {}'.format(path)) data = configparser.ConfigParser(strict=True) @@ -216,4 +226,5 @@ if __name__ == "__main__": parser.add_argument('file', nargs='+') args = parser.parse_args() for path in args.file: + validate_data_file_name(path) parse_data_file(path) diff --git a/data/devices/logitech-g9x-[Call-of-Duty-MW3-Edition].device b/data/devices/logitech-g9x-Call-of-Duty-MW3-Edition.device similarity index 100% rename from data/devices/logitech-g9x-[Call-of-Duty-MW3-Edition].device rename to data/devices/logitech-g9x-Call-of-Duty-MW3-Edition.device diff --git a/data/devices/logitech-g9x-[Original].device b/data/devices/logitech-g9x-Original.device similarity index 100% rename from data/devices/logitech-g9x-[Original].device rename to data/devices/logitech-g9x-Original.device diff --git a/meson.build b/meson.build index 57d733a6..b19cd566 100644 --- a/meson.build +++ b/meson.build @@ -322,8 +322,8 @@ data_files = files( 'data/devices/logitech-g900.device', 'data/devices/logitech-g903-hero.device', 'data/devices/logitech-g903.device', - 'data/devices/logitech-g9x-[Call-of-Duty-MW3-Edition].device', - 'data/devices/logitech-g9x-[Original].device', + 'data/devices/logitech-g9x-Call-of-Duty-MW3-Edition.device', + 'data/devices/logitech-g9x-Original.device', 'data/devices/logitech-Marathon-M705.device', 'data/devices/logitech-MX-Anywhere2.device', 'data/devices/logitech-MX-Anywhere2S.device',