#! /bin/sh

PREREQ=""

prereqs()
{
       echo "$PREREQ"
}

case $1 in
# get pre-requisites
prereqs)
       prereqs
       exit 0
       ;;
esac

# Ueberschreibt das originale 99casperboot (macht nur `touch
# /run/.casper-boot`) statt einen zusaetzlichen, neuen Hook-Skriptnamen
# einzufuehren: initramfs-tools generiert beim ISO-Bau eine ORDER-Datei
# (scripts/casper-bottom/ORDER) mit der fest verdrahteten Aufruf-Reihenfolge
# aller casper-bottom-Skripte - real durch Extraktion des echten initrd.lz
# mit unmkinitramfs bestaetigt. Ein per Initrd-Cpio-Layer NEU hinzugefuegtes
# Skript taucht in dieser ORDER-Datei nicht auf und wird nie aufgerufen,
# selbst wenn die Datei im initramfs physisch vorhanden ist (erste Version
# dieses Fixes ist daran gescheitert). Das Ueberschreiben eines bereits in
# ORDER referenzierten Pfads funktioniert dagegen zuverlaessig (spaetere
# cpio-Schichten ueberschreiben Dateiinhalte am selben Pfad, siehe
# scripts/lib/initrd.sh - derselbe Mechanismus, der schon fuer das
# Kexec-Preseed in Phase 1 verifiziert wurde). 99casperboot ist laut ORDER
# das letzte casper-bottom-Skript ueberhaupt - garantiert nach 05mountpoints,
# das /cdrom nach /root/cdrom umhaengt und damit die Voraussetzung fuer den
# folgenden Kopiervorgang schafft.
if [ -d /root/cdrom/updates ]; then
	cp -a /root/cdrom/updates/. /root/
fi

# Ubiquity stuerzt im automatic-ubiquity-GTK-Modus real reproduzierbar ab
# (TypeError: Argument 1 does not allow None as a value), sobald
# enable_download_updates(False) den Netzwerkstatus als "nicht verbunden"
# meldet: ubi-prepare.py uebergibt das Ergebnis von
# self.controller.get_string('ubiquity/text/label_download_updates_na')
# ungeprueft an GtkLabel.set_label() - fehlt fuer diese Vorlage/Sprache ein
# Uebersetzungsstring, liefert get_string() None statt eines leeren Strings,
# und GTK akzeptiert kein None als Label-Text (real ueber QEMU-Testlauf
# gefunden, siehe ADR-0023-Nachtrag). Gezielter Sed-Patch statt vollstaendigem
# Datei-Ersatz, um nicht die komplette Drittanbieter-Datei mitpflegen zu
# muessen - betrifft nur die eine Zeile, "or ''" faengt jeden None-Rueckgabewert
# ab, unabhaengig von der genauen Ursache der fehlenden Uebersetzung.
ubi_prepare="/root/usr/lib/ubiquity/plugins/ubi-prepare.py"
if [ -f "$ubi_prepare" ]; then
	sed -i \
		"s/self\.controller\.get_string(template))/self.controller.get_string(template) or '')/" \
		"$ubi_prepare"
fi

touch /run/.casper-boot
