|
|
@ -2,6 +2,7 @@ from functools import lru_cache |
|
|
|
from pathlib import Path |
|
|
|
from typing import Iterable |
|
|
|
|
|
|
|
import git |
|
|
|
import typer |
|
|
|
import yaml |
|
|
|
from pydantic_ai import Agent |
|
|
@ -243,5 +244,39 @@ def remove_all_removable() -> None: |
|
|
|
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() |
|
|
|