From c36f49c6a238cf100b5d0dbbe2b40d96f19eddb4 Mon Sep 17 00:00:00 2001
From: Tristan Krause <tristan.krause@stud.htwk-leipzig.de>
Date: Wed, 31 Jul 2019 10:42:49 +0200
Subject: [PATCH] Installscript

---
 install | 42 +++++++++++++++++++++++++++++++++---------
 1 file changed, 33 insertions(+), 9 deletions(-)

diff --git a/install b/install
index 62b7e65..5c19522 100755
--- a/install
+++ b/install
@@ -26,7 +26,7 @@ function hr2
 function title
 {
     echo ""
-    echo -e "*** $1 ***" >> "$log"
+    echo -e "\n*** $1 ***" >> "$log"
     hr1
     echo " $1"
     hr1
@@ -35,7 +35,7 @@ function title
 function msg
 {
     echo ""
-    echo -e "* $1 *" >> "$log"
+    echo -e "\n* $1 *" >> "$log"
     hr2
     echo " $1"
     hr2
@@ -47,9 +47,14 @@ function out
 }
 
 
-# aktiviere logging
-exec 2>&1 | tee -a "$log"
+###########################
+# Beginn der Installation #
+###########################
 
+# Überprüfe, ob ausführender Nutzer root ist.
+# Wenn ja überspringe diesen IF-Block.
+# Sonst: fordere Anmeldung eines Nutzers mit Sudorechten an und
+# rufe dieses Script automatisch nocheinmal mit den richtigen Parametern auf.
 if [ "$EUID" -ne 0 ]; then
 	current_user="`whoami`"
 	
@@ -71,10 +76,13 @@ fi
 
 title "Installation B15F"
 
-# Abbruch bei Fehlern
+
+# Abbruch dieses Scripts, wenn ein Befehl fehlschlägt
 set -e
+# Abbruch dieses Scripts, wenn ein Befehl in einer Pipe fehlschlägt
 set -o pipefail
 
+
 msg "Installiere Abhängigkeiten"
 
 out "Aktualisiere apt..."
@@ -93,34 +101,50 @@ udevadm trigger| tee -a "$log"
 
 msg "Lade Projekt-Daten"
 
+# Überprüfe, ob repo bereits existiert.
+# Wenn Ja -> Aktualisierung mittels pull
 if [ -d "$path" ]; then
     out "Aktualisiere Repository..."
     cd "$path"
-    su $user -c "git checkout master"
+    su $user -c "git reset --hard"
+    su $user -c "git checkout --force master"
     su $user -c "git pull"
     su $user -c "git pull --prune"
+    
+# Wenn Nein -> Runterladen mittels clone
 else
     out "Klone Repository..."
     su $user -c "git clone -q \"$repo\" \"$path\"" | tee -a "$log"
     cd "$path"
 fi
 
+
+# Entferne Installationsscript im b15f Verzeichnis, damit Nutzer
+# getwungen ist immer das neueste per Hand herunterzuladen
+rm "$path/install"
+
+
+# Wenn die Datei $mcu_cfg nicht exístiert, frage Nutzer nach MCU von diesem
+# Arbeitsplatz und erzeuge sie neu.
 if [ ! -f "$mcu_cfg" ]; then
-    msg "Wichtiger Hinweis"
+    msg "Wichtiger Hinweis: atmega1284p ist nicht gleich atmega1284"
     out "Bitte geben Sie die MCU für diesen Arbeitsplatz an:"
     read -e -p " MCU = " -i "atmega1284p" mcu
     echo "$mcu" > "$mcu_cfg"
 fi
 
+# Lies die MCU aus der Datei $mcu_cfg aus
 out "Prüfe $mcu_cfg"
 mcu=`cat "$mcu_cfg"`
-# Prüfe, ob MCU unbekannt
+
+# Prüfe, ob MCU unbekannt (falsch Eingabe)
 if [[ ! " ${known_mcus[@]} " =~ " ${mcu} " ]]; then
     mcus="${known_mcus[@]}"
-    title "Fehler: $mcu_cfg enhält keine der folgenden MCUs: ${mcus}. Bitte korrigieren und Installation neu starten."
+    title "Fehler: $mcu_cfg enhält keine der folgenden MCUs: ${mcus}. Bitte per Hand korrigieren und Installation neu starten."
     exit 1
 fi
 
+# Eersetze die MCU im makefile durch konfigurierte MCU
 sed -i "s@\\s*MCU\\s*=\\s*atmega1284.*@MCU        = ${mcu} # set by ${mcu_cfg}@g" "$path/firmware/"?akefile
 
 msg "Kompiliere Firmware"