#!/usr/bin/env python3
# SPDX-License-Identifier: LGPL-2.1-or-later

"""Check dependencies needed for rasterization"""

import sys
import os

err = []

try:
    import gi
except ImportError:
    err.append("missing dependency python gobject introspection (python3-gi)")
try:
    gi.require_version("Pango", "1.0")
    from gi.repository import Pango
except NameError:
    pass
except ValueError:
    err.append("missing pango gobject introspection library")
try:
    gi.require_version("PangoCairo", "1.0")
    from gi.repository import PangoCairo
except NameError:
    pass
except ValueError:
    err.append("missing pangocairo gobject introspection library")

try:
    gi.require_version("cairo", "1.0")
    from gi.repository import cairo
except NameError:
    pass
except ValueError:
    err.append("missing cairo gobject introspection library")

try:
    import cairo
except NameError:
    pass
except ImportError:
    err.append("missing dependency python cairo (python3-cairo)")

# check that LINUGAS lists every language with a .po file
try:
    linguas_fn = sys.argv[1]
except IndexError:
    linguas_fn = open("po/LINGUAS")
with open(linguas_fn) as f:
    langs = f.read().splitlines()
for root, dirs, files in os.walk("po"):
    for file in files:
        if not file.endswith(".po"):
            continue
        l = file.split(".po")
        if len(l) > 1 and not l[0] in langs:
            err = 1
            err.append("missing translations for %s" % l[0])
for msg in err:
    print(f"Error: {msg}", file=sys.stderr)
sys.exit(len(err))
