Skip to content
Merged
Changes from 5 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
49 changes: 46 additions & 3 deletions .github/scripts/check_icon_pr.py
Original file line number Diff line number Diff line change
Expand Up @@ -62,6 +62,24 @@ 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("- Property \"name\" value must be type string.")
except KeyError:
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\" property. 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 property key: \"altnames\".")

try:
for tag in icon["tags"]:
if type(tag) != str:
Expand Down Expand Up @@ -105,12 +123,37 @@ 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))
message = "Error found in \"devicon.json\" for \"{}\" entry: \n{}".format(icon["name"], "\n".join(err_msgs))
return message
return ""

Expand Down