Skip to content

Commit

Permalink
update generate-asset-list.py (#1287)
Browse files Browse the repository at this point in the history
  • Loading branch information
hantrungkien authored Aug 25, 2024
1 parent 5ed8e31 commit 452555b
Showing 1 changed file with 71 additions and 43 deletions.
114 changes: 71 additions & 43 deletions flutter-examples/tts/generate-asset-list.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,60 +11,88 @@

import os


def main():
target = "./assets"
excluded_ext = [
".gitkeep",
".onnx.json",
".py",
".sh",
"*.md",
"MODEL_CARD",
".DS_Store",
]
sep = " "
ss = []
for root, d, files in os.walk(target):
for f in files:
skip = False
for p in excluded_ext:
if f.endswith(p):
skip = True
break
target = "./assets/"
space = " "
subfolders = []
patterns_to_skip = ["1.5x", "2.x", "3.x", "4.x"]
for root, dirs, files in os.walk(target):
for d in dirs:
path = os.path.join(root, d).replace("\\", "/")
if os.listdir(path):
path = path.lstrip('./')
if any(path.endswith(pattern) for pattern in patterns_to_skip):
continue
subfolders.append("{space}- {path}/".format(space=space, path=path))

if skip:
continue
assert subfolders, "The subfolders list is empty."

t = os.path.join(root, f).replace("\\", "/")
ss.append("{sep}- {t}".format(sep=sep, t=t))
subfolders = sorted(subfolders)

loc_of_flutter = -1
loc_of_flutter_asset = -1
loc_of_end_flutter_asset = -1
loc_of_end_flutter = -1

# read pub.spec.yaml
with open("./pubspec.yaml", encoding="utf-8") as f:
lines = f.readlines()
for index, line in enumerate(lines):
if line == "flutter:\n":
loc_of_flutter = index + 1
if index == len(lines) - 1:
loc_of_end_flutter = index + 2
continue
if loc_of_flutter >= 0 and loc_of_flutter_asset < 0 and line == " assets:\n":
loc_of_flutter_asset = index + 1
continue

found_assets = False
with open("./pubspec.yaml", "w", encoding="utf-8") as f:
for line in lines:
if line == " assets:\n":
assert found_assets is False
found_assets = True
if len(ss) > 0:
f.write(line)

if not found_assets:
f.write(line)
with open("./pubspec.yaml", encoding="utf-8") as f:
lines = f.readlines()
for index, line in enumerate(lines):
if index < loc_of_flutter:
continue
if loc_of_flutter_asset >= 0:
if line.startswith(" - assets/"):
loc_of_end_flutter_asset = index + 1
continue
else:
loc_of_end_flutter = index + 1
continue
else:
if line.startswith(" ") is False:
loc_of_end_flutter = index + 1
continue
else:
loc_of_end_flutter = index + 2
break

for s in ss:
f.write("{s}\n".format(s=s))
break
assert loc_of_flutter >= 0, "The 'flutter:' section is missing in the pubspec.yaml file."

if not found_assets and ss:
f.write(" assets:\n")
for s in ss:
f.write("{s}\n".format(s=s))
with open("./pubspec.yaml", "w", encoding="utf-8") as f:
for index, line in enumerate(lines):
if loc_of_end_flutter_asset >= 0:
if index + 1 < loc_of_flutter_asset or index + 1 > loc_of_end_flutter_asset:
f.write(line)
if index + 1 == loc_of_flutter_asset:
f.write(" assets:\n")
for folder in subfolders:
f.write("{folder}\n".format(folder=folder))
else:
if index + 1 < loc_of_end_flutter or index + 1 > loc_of_end_flutter:
f.write(line)
if index + 1 == loc_of_end_flutter:
f.write(" assets:\n")
for indexOfFolder, folder in enumerate(subfolders):
f.write("{folder}\n".format(folder=folder))
if indexOfFolder == len(subfolders) - 1:
f.write("\n")
break

if loc_of_end_flutter == len(lines) + 1:
f.write("\n")
f.write(" assets:\n")
for folder in subfolders:
f.write("{folder}\n".format(folder=folder))

if __name__ == "__main__":
main()

0 comments on commit 452555b

Please sign in to comment.