From bcf815e8afe8a097a51125793c851082ff9a2d0d Mon Sep 17 00:00:00 2001 From: Snailedlt <43886029+Snailedlt@users.noreply.github.com> Date: Sat, 1 Oct 2022 17:21:08 +0200 Subject: [PATCH 1/5] add check for 'name' attribute --- .github/scripts/check_icon_pr.py | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/.github/scripts/check_icon_pr.py b/.github/scripts/check_icon_pr.py index 40c6fe13c..fdfae312e 100644 --- a/.github/scripts/check_icon_pr.py +++ b/.github/scripts/check_icon_pr.py @@ -62,6 +62,13 @@ def check_devicon_object(icon: dict): :return a string containing the error messages if any. """ err_msgs = [] + + try: + if type(icon["name"]) != str: + err_msgs.append("- 'name' must be a string") + except KeyError: + err_msgs.append("- missing key: 'name'.") + try: for tag in icon["tags"]: if type(tag) != str: From caa97fff5e0ea75acc1c08506d26761301feb9dc Mon Sep 17 00:00:00 2001 From: Snailedlt <43886029+Snailedlt@users.noreply.github.com> Date: Sat, 1 Oct 2022 17:21:40 +0200 Subject: [PATCH 2/5] add check for 'altnames' attribute --- .github/scripts/check_icon_pr.py | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/.github/scripts/check_icon_pr.py b/.github/scripts/check_icon_pr.py index fdfae312e..b40196e79 100644 --- a/.github/scripts/check_icon_pr.py +++ b/.github/scripts/check_icon_pr.py @@ -69,6 +69,17 @@ def check_devicon_object(icon: dict): except KeyError: err_msgs.append("- missing key: 'name'.") + try: + for altname in icon["altnames"]: + if type(altname) != str: + raise TypeError() + if altname == icon["name"]: + err_msgs.append(f"- 'altnames' should not contain the same name as 'name'. please remove {altname} from 'altnames'") + except TypeError: + err_msgs.append("- 'altnames' must be an array of strings, not: " + str(icon["altnames"])) + except KeyError: + err_msgs.append("- missing key: 'altnames'.") + try: for tag in icon["tags"]: if type(tag) != str: From c80894873a55349171c17eae4db4abadaa36e10d Mon Sep 17 00:00:00 2001 From: Snailedlt <43886029+Snailedlt@users.noreply.github.com> Date: Sun, 2 Oct 2022 01:03:58 +0200 Subject: [PATCH 3/5] add extra check for content of aliases field in devicon.json --- .github/scripts/check_icon_pr.py | 29 +++++++++++++++++++++++++++-- 1 file changed, 27 insertions(+), 2 deletions(-) diff --git a/.github/scripts/check_icon_pr.py b/.github/scripts/check_icon_pr.py index b40196e79..886782f05 100644 --- a/.github/scripts/check_icon_pr.py +++ b/.github/scripts/check_icon_pr.py @@ -123,10 +123,35 @@ def check_devicon_object(icon: dict): try: if type(icon["aliases"]) != list: - err_msgs.append("- 'aliases' must be an array.") + err_msgs.append("- 'aliases' must be an array of objects.") except KeyError: err_msgs.append("- missing key: 'aliases'.") - + + try: + for alias_objects in icon["aliases"]: + if type(alias_objects) != dict: + raise TypeError() + except TypeError: + err_msgs.append("- 'aliases' must be an array of objects, not: " + str(icon["aliases"])) + + try: + for alias_objects in icon["aliases"]: + if type(alias_objects["base"]) != str: + err_msgs.append("- must contain at least 1 base in aliases.") + if not util.is_svg_version_valid(alias_objects['base']): + err_msgs.append(f"- Invalid base name in aliases['base']: '{alias_objects['base']}'. Must match regexp: (original|plain|line)(-wordmark)?") + except KeyError: + err_msgs.append("- missing key: 'base' in 'aliases'.") + + try: + for alias_objects in icon["aliases"]: + if type(alias_objects["alias"]) != str: + err_msgs.append("- must contain at least 1 alias in aliases.") + if not util.is_svg_version_valid(alias_objects['alias']): + err_msgs.append(f"- Invalid alias name in aliases['alias']: '{alias_objects['alias']}'. Must match regexp: (original|plain|line)(-wordmark)?") + except KeyError: + err_msgs.append("- missing key: 'alias' in 'aliases'.") + if len(err_msgs) > 0: message = "Error found in 'devicon.json' for '{}' entry: \n{}".format(icon["name"], "\n".join(err_msgs)) return message From 879049199eaba2c871222f0e1ddae456dbb392e3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B8rgen=20Kalsnes=20Hagen?= <43886029+Snailedlt@users.noreply.github.com> Date: Mon, 9 Jan 2023 19:22:08 +0100 Subject: [PATCH 4/5] Change from single quotes to escaped double quotes MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Apply suggestions from code review. Thanks @lunatic-fox Co-authored-by: Josélio Júnior <76992016+lunatic-fox@users.noreply.github.com> --- .github/scripts/check_icon_pr.py | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/.github/scripts/check_icon_pr.py b/.github/scripts/check_icon_pr.py index 886782f05..a45645d7e 100644 --- a/.github/scripts/check_icon_pr.py +++ b/.github/scripts/check_icon_pr.py @@ -65,20 +65,20 @@ def check_devicon_object(icon: dict): try: if type(icon["name"]) != str: - err_msgs.append("- 'name' must be a string") + err_msgs.append("- Property \"name\" value must be type string.") except KeyError: - err_msgs.append("- missing key: 'name'.") + err_msgs.append("- Missing property key: \"name\".") try: for altname in icon["altnames"]: if type(altname) != str: raise TypeError() if altname == icon["name"]: - err_msgs.append(f"- 'altnames' should not contain the same name as 'name'. please remove {altname} from 'altnames'") + err_msgs.append(f"- \"altnames\" should not contain the same name as \"name\" property. Please remove \"{altname}\" from \"altnames\"") except TypeError: - err_msgs.append("- 'altnames' must be an array of strings, not: " + str(icon["altnames"])) + err_msgs.append("- \"altnames\" must be an array of strings, not: " + str(icon["altnames"])) except KeyError: - err_msgs.append("- missing key: 'altnames'.") + err_msgs.append("- Missing property key: \"altnames\".") try: for tag in icon["tags"]: @@ -123,7 +123,7 @@ def check_devicon_object(icon: dict): try: if type(icon["aliases"]) != list: - err_msgs.append("- 'aliases' must be an array of objects.") + err_msgs.append("- \"aliases\" must be an array of objects.") except KeyError: err_msgs.append("- missing key: 'aliases'.") From 848998028e769ac7d9c233c84e4e9490ce286a7e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B8rgen=20Kalsnes=20Hagen?= <43886029+Snailedlt@users.noreply.github.com> Date: Wed, 1 Feb 2023 09:52:24 +0100 Subject: [PATCH 5/5] Replace ' with \" Apply suggestions from code review Co-authored-by: David Leal --- .github/scripts/check_icon_pr.py | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/.github/scripts/check_icon_pr.py b/.github/scripts/check_icon_pr.py index a45645d7e..1105c3497 100644 --- a/.github/scripts/check_icon_pr.py +++ b/.github/scripts/check_icon_pr.py @@ -132,28 +132,28 @@ def check_devicon_object(icon: dict): if type(alias_objects) != dict: raise TypeError() except TypeError: - err_msgs.append("- 'aliases' must be an array of objects, not: " + str(icon["aliases"])) + err_msgs.append("- \"aliases\" must be an array of objects, not: " + str(icon["aliases"])) try: for alias_objects in icon["aliases"]: if type(alias_objects["base"]) != str: err_msgs.append("- must contain at least 1 base in aliases.") if not util.is_svg_version_valid(alias_objects['base']): - err_msgs.append(f"- Invalid base name in aliases['base']: '{alias_objects['base']}'. Must match regexp: (original|plain|line)(-wordmark)?") + err_msgs.append(f"- Invalid base name in aliases[\"base\"]: \"{alias_objects['base']}\". Must match regexp: (original|plain|line)(-wordmark)?") except KeyError: - err_msgs.append("- missing key: 'base' in 'aliases'.") + err_msgs.append("- missing key: \"base\" in \"aliases\".") try: for alias_objects in icon["aliases"]: if type(alias_objects["alias"]) != str: err_msgs.append("- must contain at least 1 alias in aliases.") if not util.is_svg_version_valid(alias_objects['alias']): - err_msgs.append(f"- Invalid alias name in aliases['alias']: '{alias_objects['alias']}'. Must match regexp: (original|plain|line)(-wordmark)?") + err_msgs.append(f"- Invalid alias name in aliases['alias']: \"{alias_objects['alias']}\". Must match regexp: (original|plain|line)(-wordmark)?") except KeyError: - err_msgs.append("- missing key: 'alias' in 'aliases'.") + err_msgs.append("- missing key: \"alias\" in \"aliases\".") if len(err_msgs) > 0: - message = "Error found in 'devicon.json' for '{}' entry: \n{}".format(icon["name"], "\n".join(err_msgs)) + message = "Error found in \"devicon.json\" for \"{}\" entry: \n{}".format(icon["name"], "\n".join(err_msgs)) return message return ""