#!/bin/sh

# board/cv/sd_produktion_create.sh

# Die notwendigen Images in board/cv/../../../output_produktion/images und board/cv/../../../output_standard/images werden auf die 1. Partition der SD-Karte kopiert. Allen Dateien aus output_standard/images wird das Praefix "STANDARD_" vorangehaengt. Die 2. Partition der SD-Karte wird geleert. Das Rootfs in output_produktion/images wird auf die 2. Partition der SD-karte geschrieben. Anschließend werden alle Dateien "*~" aus der 2. Partition der SD-Karte gelöscht (evtl. Sicherheitskopien editierter init-Skripte, die dann auch ausgeführt würden, wenn man sie nicht löscht). In 2. Partition wird /etc/network/interfaces generiert mit der statischen IP die als Argument übergeben wurde. In 2. Partition wird dann noch /scripts/produktion.d/ip.txt und /scripts/produktion.d/port.txt dynamisch aus den entsprechenden Argumenten erstellt. Diese Dateien werden in /scripts/produktion.sh benoetigt um Status-Nachrichten an den Produktions-PC zu senden an dem die Erstinstallation ueberwacht wird.


usage() {
	echo "usage: $1 [ <options> ] <stat. IP-Adr. im Device (fuer Update mit Config-Tool)> "
	echo "           <stat. IP-Adr. des PCs in der Produktion auf dem der Produktionsassistent laeuft>"
	echo "           <Port des Produktionsassistenten>"
	echo "           [ <path/to/output.tar.gz> ]"
	echo "1) $1 <Device IP> <PC IP> <PC port>"
	echo "     Verwendet Dateien in ${td}."
	echo "2) $1 <Device IP> <PC IP> <PC port> <path/to/output.tar.gz>"
	echo "     Verwendet Deploy-Archiv."
	echo "3) $1 -h | --help"
	echo "     Gibt diesen Text aus."
}

name=$0
p="$(dirname $0)"

cd ${p}
pwd


if [ "$1" = "-h" -o "$1" = "--help" ]
then
	usage $name
	exit 3
fi


IP=$1

if [ "${IP}" = "" ]
then
	usage $name
	exit 3
fi

PC_IP=$2

if [ "${PC_IP}" = "" ]
then
	usage $name
	exit 3
fi

PC_PORT=$3

if [ "${PC_PORT}" = "" ]
then
	usage $name
	exit 3
fi

if [ "$6" != "" ]
then
	usage $name
	exit 3
fi

# Wenn noetig: unmounten
if ~/scripts/sd_umount.sh >/dev/null # keine irritierenden Fehlermeldungen, da umount hier scheitern darf
then
	echo "SD-Karte war bereits gemountet, wurde unmountet."
fi

# Wenn noetig: partitionieren

if ! ~/scripts/sd_mount.sh
then
	echo "SD-Karte konnte nicht gemountet werden. Versuche SD-Karte zu partitionieren und formatieren..."
	if ! ~/scripts/sd_partitionAndFormat.sh
	then
		echo "SD-Karte konnte nicht partitioniert bzw. formatiert werden. Breche ab."
		exit 1
	fi

	if ! ~/scripts/sd_mount.sh
	then
		echo "SD-Karte konnte nach Partitionierung und Formatierung nicht gemountet werden! Breche ab."
		exit 2
	fi
fi
echo "  DONE."


if ! sudo sd_produktion_create.d/sudo_me.sh $@
then
	exit 1 # Fehlerausgaben schon in sudo_me.sh
fi


if ! ~/scripts/sd_umount.sh
then
	echo "  ~/scripts/sd_umount.sh fehlgeschlagen. Breche ab..."
	exit 4
fi

printf "\n\n*** $0 ist fertig! ***\n\n"

