#!/usr/bin/env python3
# SPDX-License-Identifier: GPL-3.0-or-later
# Copyright (C) 2026 Ondrej Holba
"""Archa NAS: upravená udeb user-setup – vlastní text u hesla roota (CZ/EN).
Instalace Archa nevytváří běžného uživatele (správce webu se zakládá v průvodci), takže
původní text Debianu „…použij uživatele z dalšího kroku…“ by mátl. Běží na LXC 108 před sestavením ISO.
Použití: udeb_root_text.py <user-setup-udeb_X.udeb> <výstupní soubor .udeb>
Verze zůstává stejná – balíček se v hotovém ISO jen vymění (post_iso.sh přepočítá indexy)."""
import os, subprocess, sys, tempfile

EN = """Description: Root password:
 Password for the system administrator (root). You will only need it to sign in
 on the NAS screen when something needs to be repaired (SSH as root works
 only with a key, not with this password).
 .
 Do not leave it empty – the installer creates no other system account.
 The account for everyday NAS administration is created after the installation
 in the setup wizard in your web browser.
 .
 Note: what you type here will be hidden (unless you select to show it)."""
CS = """Description-cs.UTF-8: Heslo uživatele root:
 Heslo správce systému (root). Budeš ho potřebovat jen pro přihlášení na obrazovce
 NASu, když bude potřeba něco opravit (přes SSH se root přihlásí jen klíčem,
 ne tímto heslem).
 .
 Nenechávej ho prázdné – jiný účet v systému instalace nevytváří.
 Účet pro běžnou správu NASu založíš po instalaci v průvodci v prohlížeči.
 .
 Heslo se při psaní nezobrazuje (pokud si ho nenecháš zobrazit)."""

src, out = sys.argv[1], sys.argv[2]
w = tempfile.mkdtemp()
subprocess.run(["dpkg-deb", "-R", src, w], check=True)
p = os.path.join(w, "DEBIAN", "templates")
stanzas = open(p, encoding="utf-8").read().split("\n\n")
for i, st in enumerate(stanzas):
    if st.startswith("Template: passwd/root-password\n"):
        head = [l for l in st.splitlines() if l.startswith(("Template:", "Type:"))]
        stanzas[i] = "\n".join(head + [EN, CS])        # ostatní jazyky → angličtina
open(p, "w", encoding="utf-8").write("\n\n".join(stanzas))
subprocess.run(["dpkg-deb", "-Zxz", "-b", w, out], check=True, stdout=subprocess.DEVNULL)
print(out)
