Skip to content

Commit a2d9a02

Browse files
committed
Restore file from accidental revertion
Previous commits reverted the keyword_uri_map_generator.py file by mistake to a previous version.
1 parent 83efb8d commit a2d9a02

File tree

1 file changed

+30
-3
lines changed

1 file changed

+30
-3
lines changed

scripts/python/src/fodt/keyword_uri_map_generator.py

+30-3
Original file line numberDiff line numberDiff line change
@@ -161,17 +161,34 @@ def add_alias(kw_uri_map: dict[str, str], keyword: str, alias: str) -> None:
161161
uri = kw_uri_map[keyword]
162162
kw_uri_map[alias] = uri
163163

164+
def display_map_diff(orig_kw_uri_map: dict[str, str], kw_uri_map: dict[str, str]) -> None:
165+
# First check keys
166+
for kw in sorted(orig_kw_uri_map.keys()):
167+
if kw not in kw_uri_map:
168+
logging.error(f"Keyword {kw} not found in new map.")
169+
else:
170+
if orig_kw_uri_map[kw] != kw_uri_map[kw]:
171+
logging.error(f"URI for keyword {kw} has changed. Old: {orig_kw_uri_map[kw]}, New: {kw_uri_map[kw]}")
172+
for kw in sorted(kw_uri_map.keys()):
173+
if kw not in orig_kw_uri_map:
174+
logging.error(f"Keyword {kw} not found in old map.")
175+
return
176+
164177
# fodt-gen-kw-uri-map
165178
# -------------------
166179
#
167180
# SHELL USAGE:
168181
#
169-
# fodt-gen-kw-uri-map --maindir=<main_dir> --keyword_dir=<keyword_dir>
182+
# fodt-gen-kw-uri-map --maindir=<main_dir> \
183+
# --keyword_dir=<keyword_dir> \
184+
# --check-changed
170185
#
171186
# DESCRIPTION:
172187
#
173188
# Generates a map: KW_NAME -> URI for all keywords. The map is saved to the file
174-
# "meta/kw_uri_map.txt" in the main directory.
189+
# "meta/kw_uri_map.txt" in the main directory. If the --check-changed option is
190+
# given, the script will only check if the files have changed and not write the
191+
# output file. It will return a non-zero exit code if any files have changed.
175192
#
176193
# EXAMPLE:
177194
#
@@ -182,11 +199,21 @@ def add_alias(kw_uri_map: dict[str, str], keyword: str, alias: str) -> None:
182199
@click.command()
183200
@ClickOptions.maindir()
184201
@ClickOptions.keyword_dir
185-
def gen_kw_uri_map_cli(maindir: str|None, keyword_dir: str|None) -> None:
202+
@click.option('--check-changed', is_flag=True, help='Check if files have changed')
203+
def gen_kw_uri_map_cli(maindir: str|None, keyword_dir: str|None, check_changed: bool) -> None:
186204
logging.basicConfig(level=logging.INFO)
187205
keyword_dir = helpers.get_keyword_dir(keyword_dir)
188206
maindir = helpers.get_maindir(maindir)
189207
kw_uri_map = get_kw_uri_map(maindir, keyword_dir)
208+
if check_changed:
209+
orig_kw_uri_map = helpers.load_kw_uri_map(maindir)
210+
if orig_kw_uri_map != kw_uri_map:
211+
logging.error("Files have changed.")
212+
display_map_diff(orig_kw_uri_map, kw_uri_map)
213+
exit(1)
214+
else:
215+
logging.info("Files have not changed.")
216+
exit(0)
190217
with open(maindir / Directories.meta / FileNames.kw_uri_map, "w", encoding='utf8') as f:
191218
for kw in sorted(kw_uri_map.keys()):
192219
f.write(f"{kw} {kw_uri_map[kw]}\n")

0 commit comments

Comments
 (0)