from pathlib import Path
from typing import Iterable
+import git
import typer
import yaml
from pydantic_ai import Agent
print("Done removing all removable paths")
+@app.command()
+def list_outdated(lang: str) -> list[Path]:
+ dir_path = Path(__file__).absolute().parent.parent
+ repo = git.Repo(dir_path)
+
+ outdated_paths: list[Path] = []
+ en_lang_paths = list(iter_en_paths_to_translate())
+ for path in en_lang_paths:
+ lang_path = generate_lang_path(lang=lang, path=path)
+ if not lang_path.exists():
+ outdated_paths.append(path)
+ continue
+ en_commit_datetime = list(repo.iter_commits(paths=path, max_count=1))[
+ 0
+ ].committed_datetime
+ lang_commit_datetime = list(repo.iter_commits(paths=lang_path, max_count=1))[
+ 0
+ ].committed_datetime
+ if lang_commit_datetime < en_commit_datetime:
+ outdated_paths.append(path)
+ print(outdated_paths)
+ return outdated_paths
+
+
+@app.command()
+def update_outdated(lang: str) -> None:
+ outdated_paths = list_outdated(lang)
+ for path in outdated_paths:
+ print(f"Updating lang: {lang} path: {path}")
+ translate_page(lang=lang, path=path)
+ print(f"Done updating: {path}")
+ print("Done updating all outdated paths")
+
+
if __name__ == "__main__":
app()