87 lines
1.9 KiB
Python
Executable File
87 lines
1.9 KiB
Python
Executable File
#!/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()
|