#!/bin/bash
#
# Autor: Tobias Müller
# Beschreibung: Dieses Skript installiert den "Internet_over_USB" Service.
#		Der Service wird automatisch bei jedem Neustart des
#		BeagleBone Black ausgeführt und ermöglicht den Aufbau einer
#		Internetverbindung über den USB-Host-Anschluss des BeagleBone
#		Black. Das Install-Sktipt muss mit Root-Rechten gestartet
#		werden.
#
#		Sollte sich der Speicherort der "Internet_over_USB.service"
#		Datei ändern, muss dieses Skript erneut gestartet werden.
#		Dabei muss sich das "install.sh" Skript im selben Ordner
#		befinden, wie die "Internet_over_USB.service" Datei.

# Bash-Fenster leeren
clear

# Kontrolle ob Skript mit Root-Rechten gestartet wurde, ansonsten wird
# das Skript mit einem Hinweis beendet
if [ $(id -u) != 0 ]; then
   echo ""
   echo "Das Skript muss mit Root-Rechten gestartet werden!"
   echo ""
   exit -1

fi

# Willkommenstext mit Abfrage, ob die Installation gestartet werden soll
echo ""
echo "Willkommen zur Installation des \"Internet_over_USB\"-Services."
echo "Möchten Sie die Installation starten (ja/nein)?"
read answer

while [ "$answer" != "ja" ]; do

   if [ "$answer" == "nein" ]; then
      echo ""
      echo "Beende das Installations-Skript."
      echo ""
      unset answer
      exit 0

   else
      echo ""
      echo "Ich habe Sie nicht verstanden."
      echo "Möchten Sie die Installation starten (ja/nein)?"
      read answer

   fi

done

# Servicename
service_name="Internet_over_USB.service"

# Aktueller Pfad
service_path="`pwd`"

# Kontrolle, ob Service-Datei im selben Verzeichnis wie "install.sh"-Skript
if [ -e "$service_path/$service_name" ]; then
   echo ""
   echo "Die \"Internet_over_USB.service\"-Datei wurde gefunden."

else
   echo ""
   echo "Die \"Internet_over_USB.service\"-Datei wurde nicht gefunden."
   echo "Beende das Installations-Skript."
   echo ""
   unset answer
   unset service_path
   unset service_name
   exit -1

fi

# systemd Speicherort für Bibliotheken
systemd_lib="/lib/systemd/system"

# systemd Speicherort Ausführdateien
systemd_run="/etc/systemd/system/multi-user.target.wants"

# Erstelle/Update symbolischen Link von der Systemd-Bibliothek zur Service-Datei
if [ -e "$systemd_lib/$servie_name" ]; then
   echo ""
   echo "Update der symbolischen Verknüpfung von der Service-Datei:"
   echo "\"$service_path/$service_name\","
   echo "zur Systemd-Bibliothek:"
   echo "\"$systemd_lib/$service_name\"."
   ln -sfn "$service_path/$service_name" "$systemd_lib/$service_name"

else
   echo ""
   echo "Erstelle eine symbolische Verknüpfung von der Service-Datei:"
   echo "\"$service_path/$service_name\","
   echo "zur Systemd-Bibliothek:"
   echo "\"$systemd_lib/$service_name\"."
   ln -s "$service_path/$service_name" "$systemd_lib/$service_name"

fi

# Erstelle/Update symbolischen Link vom Systemd-Speicherort für Konfigurations- und 
# Informationsdateien zur Service-Datei
if [ -e "$systemd_lib/$servie_name" ]; then
   echo ""
   echo "Update der symbolischen Verknüpfung von der Service-Datei:"
   echo "\"$service_path/$service_name\","
   echo "zum Systemd-Speicherort für Konfigurations- und Informationsdateien:"
   echo "\"$systemd_run/$service_name\"."
   ln -sfn "$service_path/$service_name" "$systemd_run/$service_name"

else
   echo ""
   echo "Erstelle eine symbolische Verknüpfung von der Service-Datei:"
   echo "\"$service_path/$service_name\","
   echo "zum Systemd-Speicherort für Konfigurations- und Informationsdateien:"
   echo "\"$systemd_run/$service_name\"."
   ln -s "$service_path/$service_name" "$systemd_run/$service_name"

fi

# Systemd-Daemon-Prozess neustarten
echo ""
echo "Starte den Systemd-Deamon-Prozess neu."
systemctl daemon-reload

# Aktiviere den Autostart für den "Internet_over_USB"-Service
echo "Aktiviere den Autostart für den \"Internet_over_USB\"-Service."
systemctl enable Internet_over_USB

# Starte den "Internet_over_USB"-Service
echo ""
echo "Möchten Sie den BeagleBone Black neustarten, um den Service:"
echo "\"Internet_over_USB\", zu aktivieren (ja/nein)?"
read answer

while [ "$answer" != "nein" ]; do

   if [ "$answer" == "ja" ]; then
      # Installationsabschluss
      echo ""
      echo "Die Serviceinstallation ist abgeschlossen."
      echo "Beende das Installations-Skript."
      echo ""
      echo "Starte den BeagleBone Black neu."
      echo ""

      # Variablen löschen
      unset systemd_lib
      unset systemd_run
      unset service_name
      unset service_path
      unset answer

      # Warte 5s
      sleep 5

      # Starte BeagleBone neu
      reboot

   else
      echo ""
      echo "Ich habe Sie nicht verstanden."
      echo "Möchten Sie die Installation starten (ja/nein)?"
      read answer

   fi

done

# Installationsabschluss
echo ""
echo "Die Serviceinstallation ist abgeschlossen."
echo "Beende das Installations-Skript."
echo ""

# Variablen löschen
unset systemd_lib
unset systemd_run
unset service_name
unset service_path
unset answer

# Beende Installer
exit 0