#!/bin/bash
# Script created by Rainer Rössler (roesslerrr-at-web.de)
# License: Free Software (License GPLv3)

# Dieses Script erstellt Links nach den Einstellungen unter 
# /etc/linuxmuster-client/shares/links.conf
# dabei werden die Einträge vor dem Doppelpunkt als Ziel = Quelle angenommen 
# und Einträge nach dem Doppelpunkt als symbolischer Link 
# HOMEDIR bezeichnet das lokale Heimatverzeichnis

# Konfiguration einlesen für
# Basics zu linuxmuster-clients
. /etc/linuxmuster-client/linuxmuster-client.conf || exit 1 
# Verzeichnis für Einstellungen im Heimatverzeichnis auf dem Server
#. /etc/linuxmuster-client/profile/home-preference.conf || exit 1
# Verzeichnisnamen über Links
. /etc/linuxmuster-client/shares/linkfoldername.conf || exit 1

# Die Variable $HOMEDIR wird übergreifend gesetzt
# daher auskommentiert - zu Testzwecken gesetzt
#HOMEDIR="`pwd`"

# Links einlesen
# HOMEDIR soll dabei mit dem lokalen Heimatverzeichnis ersetzt werden
if [ -f /etc/linuxmuster-client/shares/links.conf ]
then
 LINKS=`cat /etc/linuxmuster-client/shares/links.conf | grep ^[^#\] | sed -e "s#HOMEDIR#$HOMEDIR#g"`
else
 LINKS=""
fi

# Dieses Script soll nur einmal ausgeführt werden.
# Nur nachdem das Serverhome des Benutzers gemountet wurde,
# sind $USER und $VOLUME identisch, in allen anderen Fällen
# bricht das Script ab - zu Testzwecken auskommentiert.
#if [ $USER != $VOLUME ]; then
#    return 0
#fi


# Um in den Schleifen Inhalte mit Leerzeichen verarbeiten zu können,
# die durch das Leerzeichen nicht als getrennte Inhalte interpretiert werden
# wird folgende Option IFS=$'\012' gesetzt
IFS=$'\012'


# Links nach Variable LINKS erzeugen

for NACHEINANDER in $LINKS; do
 
 SERVER=`echo $NACHEINANDER | cut -d ":" -f 1`
 
 LOKAL=`echo $NACHEINANDER | cut -d ":" -f 2-99`
 
 # Wenn Ziel auf Server NICHT vorhanden, 
 # (weder als Verzeichnis -d noch als Datei -f)
 # wird der Link nicht erzeugt.
 # Eine alte Datei mit dem Namens des Links wird entfernt

 if [ -L `echo $LOKAL` ]
 then
  rm $LOKAL
 fi
    
 if [ -d `echo $LOKAL` ]
 then
  mv $LOKAL $LOKAL-entfernt
 fi
  
 if [ -f `echo $LOKAL` ]
 then 
  mv $LOKAL $LOKAL-entfernt
 fi
    
 if [ -e `echo $SERVER` ]
 then 
  ln -s $SERVER $LOKAL

 fi
  
done

# Das Script wird nicht mit einem "exit 0" beendet, da es in das Script
# /usr/sbin/linuxmuster-pam-mount includiert ist und dadurch ein exit
# das Hauptscript beenden würde.
