limboai/gdextension/update_icons.py

87 lines
1.9 KiB
Python
Raw Normal View History

#!/usr/bin/python
"""
Usage: update_icons.py [--silent]
Update icon declarations in limboai.gdextension file.
Options:
-s, --silent Don't print anything.
-h, --help Print this message.
Dependencies: python3.
Use of this source code is governed by an MIT-style
license that can be found in the LICENSE file or at
https://opensource.org/licenses/MIT.
"""
import os
import glob
import sys
import getopt
def usage():
print(__doc__.strip())
def get_script_dir():
return os.path.dirname(os.path.realpath(__file__))
def main():
silent = False
try:
opts, args = getopt.getopt(sys.argv[1:], "s", ["silent"])
except getopt.GetoptError as e:
print(
"%s: %s!\n"
% (
os.path.basename(__file__),
e.msg,
)
)
usage()
sys.exit(2)
for opt, arg in opts:
if opt in ("-h", "--help"):
usage()
sys.exit(0)
elif opt in ("-s", "--silent"):
silent = True
config_dir = get_script_dir()
config_path = os.path.join(config_dir, "limboai.gdextension")
content = ""
f = open(config_path, "r")
for line in f:
if line.startswith("[icons]"):
break
content += line
f.close()
content += "[icons]\n\n"
icon_files = []
icons_dir = os.path.join(config_dir, "../icons/")
for icon_file in glob.glob(icons_dir + "/*.svg"):
icon_file = os.path.basename(icon_file)
icon_files.append(icon_file)
icon_files.sort()
for icon_file in icon_files:
content += os.path.splitext(icon_file)[0] + ' = "res://addons/limboai/icons/' + icon_file + '"\n'
f = open(config_path, "w")
f.write(content)
f.close()
if not silent:
print(content)
print("======= Icon declarations updated =======")
if __name__ == "__main__":
main()