45 lines
1.3 KiB
Python
45 lines
1.3 KiB
Python
"""Download official Graphviz win64 portable into md2gost/vendor/graphviz (for exe builds)."""
|
|
|
|
from __future__ import annotations
|
|
|
|
import sys
|
|
from pathlib import Path
|
|
|
|
ROOT = Path(__file__).resolve().parents[1]
|
|
if str(ROOT) not in sys.path:
|
|
sys.path.insert(0, str(ROOT))
|
|
|
|
from md2gost.dfd import ( # noqa: E402
|
|
GRAPHVIZ_VERSION,
|
|
GRAPHVIZ_ZIP_URL,
|
|
fetch_graphviz,
|
|
resolve_graphviz_engine,
|
|
strip_graphviz_tcl_libs,
|
|
vendor_graphviz_root,
|
|
)
|
|
|
|
|
|
def main() -> int:
|
|
dest = vendor_graphviz_root()
|
|
print(f"Graphviz {GRAPHVIZ_VERSION}: {GRAPHVIZ_ZIP_URL}")
|
|
print(f"Куда: {dest}")
|
|
if resolve_graphviz_engine(False) and (dest / "bin").is_dir():
|
|
n = strip_graphviz_tcl_libs(dest)
|
|
hit = resolve_graphviz_engine(False)
|
|
extra = f", снял Tcl/Tk DLL Graphviz: {n}" if n else ""
|
|
print(f"Уже есть: {hit}{extra}")
|
|
return 0
|
|
if fetch_graphviz(dest):
|
|
hit = resolve_graphviz_engine(False)
|
|
print(f"Готово: {hit or dest}")
|
|
return 0
|
|
print(
|
|
"Не удалось скачать Graphviz "
|
|
"(exe соберётся; DFD пойдёт через kroki.io или системный PATH)."
|
|
)
|
|
return 0
|
|
|
|
|
|
if __name__ == "__main__":
|
|
raise SystemExit(main())
|