#! /bin/bash
#
# install script fuer MAussk und mausdaemon am Ubuntu-Linux-Client
# 13.4.2023
# für linuxmuster.net 7
#
# Parameter für eine lokale Installation in /opt/maus_sk:  
# install-ubuntu-client --lokal
#
# Parameter für Setzen des vnc-Passwort:  
# install-ubuntu-client --vnc
#
##################################################################

pfad="$PWD/"
pfad2=$( dirname "$PWD" )/mausdienst/

if [[ ! -d "$pfad" || ! -d "$pfad2" ]];then
  echo "#########################################"
  echo "# Fehler!!!                             #"
  echo "# Netzwerkpfade sind nicht erreichbar:  #"
  if [ ! -d "$pfad" ]; then
  echo "   $pfad"
  fi
  if [ ! -d "$pfad2" ]; then
  echo "   $pfad2"
  fi
  echo "#                                       #"
  echo "# ... Script wird beendet               #"
  echo "#########################################"
  exit 1
fi

etcpfad="/etc/linuxmuster-client/maus/"
sbinpfad="/usr/sbin/"
initpfad="/etc/init.d/"
Xsessionpfad="/etc/X11/Xsession.d/"
optpfad="/opt/"
loginpfad="/etc/linuxmuster-linuxclient7/onLogin.d/"
loginpfad_root="/etc/linuxmuster-linuxclient7/onLoginAsRoot.d/"
logoutpfad_root="/etc/linuxmuster-linuxclient7/onLogoutAsRoot.d/"
onsessionpfad="/etc/linuxmuster-linuxclient7/onSessionStarted.d/"

admin="global-admin"
linuxadmin="linuxadmin"

##################################################################

if [ "$(id -u)" != "0" ]; then
   echo "###################################"
   echo "# This script must be run as root #"
   echo "###################################"
   exit 1
fi

echo "### Installation maus und mausdaemon wird gestartet (proxy=false) ###"

apt-get -y -o Acquire::http::proxy=false install wakeonlan screen xtrlock imagemagick
apt-get -y -o Acquire::http::proxy=false install remmina net-tools
apt-get -y -o Acquire::http::proxy=false install libcanberra-gtk-module libcanberra-gtk3-module
apt-get -y -o Acquire::http::proxy=false install xdotool appmenu-gtk2-module appmenu-gtk3-module

mkdir -p $etcpfad

echo "Dateien zum  mausdaemon werden zum Client kopiert ..."

if [ -e "$etcpfad"mausdaemon.cfg ]; then
   echo "###############################################################################"
   echo "# ACHTUNG!                                                                    #"
   echo "# Die Konfigurationsdatei mausdaemon.cfg existiert schon sie wird beibehalten.#"
   echo "# Eine neue Konfigurationsdatei liegt nun unter mausdaemon.cfg.neu.           #"
   echo "# Ggf. die bisherige Konfigurationsdatei entsprechend anpassen.               #"
   echo "###############################################################################"
   cp "$pfad2"mausdaemon.cfg "$etcpfad"mausdaemon.cfg.neu
else
   cp "$pfad2"mausdaemon.cfg $etcpfad
fi

echo "Prozesse mausdaemon stop ..."
killall -e -9 mausdaemon
sleep 2

cp "$pfad2"mausdaemon $sbinpfad
cp "$pfad2"mausdaemon.sh $initpfad
cp "$pfad2"internetdaemon.sh $sbinpfad
cp "$pfad2"internetdaemon /etc/cron.d/
cp "$pfad2"sperren.sh $etcpfad
cp "$pfad2"freigeben.sh $etcpfad
cp "$pfad2"nachricht.sh $etcpfad
cp "$pfad2"50xhost-maussk $Xsessionpfad
cp "$pfad2"befehl.sh $etcpfad
cp "$pfad2"url.sh $etcpfad
cp "$pfad2"internet_on.sh $etcpfad
cp "$pfad2"internet_off.sh $etcpfad
cp "$pfad2"closed.xbm $etcpfad
cp "$pfad2"closed.jpg $etcpfad
cp "$pfad2"md.md5 $etcpfad
cp "$pfad"maus_sk.ico /usr/share/icons/

cp "$pfad2"01_maussk_env.sh $loginpfad
cp "$pfad2"01_maussk_rm.sh $loginpfad_root
cp "$pfad2"01_maussk_rm.sh $logoutpfad_root

if [ -e "$onsessionpfad"01_maussk_vnc.sh ]; then
   cp "$pfad2"01_maussk_vnc.sh "$onsessionpfad"01_maussk_vnc.sh.neu
else
   cp "$pfad2"01_maussk_vnc.sh $onsessionpfad
fi

touch "$etcpfad"X11_last_user_display

echo "Zugriffsrechte werden gesetzt ..."

chmod 644 "$Xsessionpfad"50xhost-maussk
chown -R root:root $etcpfad
chmod -R 755 $etcpfad
chmod 666 "$etcpfad"X11_last_user_display
chmod 644 "$etcpfad"mausdaemon.cfg
chmod 644 "$etcpfad"md.md5
chmod 644 /usr/share/icons/maus_sk.ico

chown root:root "$sbinpfad"mausdaemon "$initpfad"mausdaemon.sh
chown root:root "$loginpfad"01_maussk_env.sh "$loginpfad_root"01_maussk_rm.sh "$logoutpfad_root"01_maussk_rm.sh
chmod 755 "$sbinpfad"mausdaemon "$initpfad"mausdaemon.sh
chmod 755 "$loginpfad"01_maussk_env.sh "$loginpfad_root"01_maussk_rm.sh "$logoutpfad_root"01_maussk_rm.sh 
chmod 755 "$onsessionpfad"01_maussk_vnc.sh
if [ -e "$onsessionpfad"01_maussk_vnc.sh.neu ]; then
  chmod 755 "$onsessionpfad"01_maussk_vnc.sh.neu
fi

if [ -e "$etcpfad"mausdaemon.cfg.neu ]; then
  chmod 644 "$etcpfad"mausdaemon.cfg.neu
fi

if [ -e /usr/share/applications/mini_sk.desktop ]; then
  rm /usr/share/applications/mini_sk.desktop
fi
if [ -e /usr/share/applications/maus.desktop ]; then
  rm /usr/share/applications/maus.desktop
fi


if [ "$1" == "--lokal" ] || [ "$2" == "--lokal" ]; then
  echo "Programm zur MAusSK wird lokal zum Client nach $optpfad kopiert ..."
  cp "$pfad"maus_sk.o.desktop /usr/share/applications/maus_sk.desktop
  chmod 755 /usr/share/applications/maus_sk.desktop
  mkdir -p "$optpfad"maus_sk
  cp "$pfad"maus_sk "$optpfad"maus_sk/
  cp "$pfad"maus_sk.cfg "$optpfad"maus_sk/
  cp "$pfad"version "$optpfad"maus_sk/
  cp "$pfad"startremmina.sh "$optpfad"maus_sk/
  if [ -e "$pfad"maus_sk.cfg.neu ]; then
    cp "$pfad"maus_sk.cfg.neu "$optpfad"maus_sk/
  fi
  if [ -e "$pfad"layout.ini ]; then
    cp "$pfad"layout.ini "$optpfad"maus_sk/
  fi
  chown -R root:root "$optpfad"maus_sk
  chmod -R 755 "$optpfad"maus_sk
  chmod 755 "$optpfad"maus_sk/maus_sk
else
  echo "Links zur MAusSK werden gesetzt (maus_sk.desktop) ..."
  cp "$pfad"maus_sk.desktop /usr/share/applications/
  chmod 755 /usr/share/applications/maus_sk.desktop
fi

rootpw=$(passwd --status root | awk ' { print $2 }')

if [ ! "$rootpw" == "P" ]; then
  echo "#########################################################"
  echo "# Warnung!                                              #"
  echo "# Das Passwort von root ist nicht gesetzt.              #"
  echo "# Geben Sie root ein Passwort, ansonsten                #"
  echo "# funktioniert die Bildschirmsperre nicht!              #"
  echo "#########################################################"
fi

if [[ -e "$initpfad"mausdaemon.sh && -e "$etcpfad"mausdaemon.cfg && -d "$pfad" ]]; then
  echo "Boot-Script wird aktiviert ..."

  /usr/sbin/update-rc.d mausdaemon.sh defaults

  "$initpfad"mausdaemon.sh start
  echo "#########################################################"
  echo "# Lokale Installation mausdaemon und MAusSK ist beendet.#"
  echo "# Bitte einen Reboot dieses Clients durchführen.        #"
  echo "# ggf. auch ein neues Image des Clients erstellen       #"
  echo "#########################################################"
else
  echo "#################################################"
  echo "# Fehler!                                       #"
  echo "# Mehrere Dateien konnten nicht kopiert werden. #"
  echo "# Die Installation von MAusSK ist unvollständig.#"
  if [ ! -d "$pfad" ]; then
  echo "# Der Netzwerk-Pfad                             #"
  echo "    $pfad"
  echo "# existiert nicht, Environment falsch?          #"
  echo "#################################################"
  fi
fi

if ! [ -e /usr/bin/screen ]; then
  echo "### Programm screen wurde nicht installiert - Keine Internetzugriff? ###"
fi
if ! [ -e /usr/bin/xdotool ]; then
  echo "### Programm xdotool wurde nicht installiert - Keine Internetzugriff? ###"
fi
if ! [ -e /usr/bin/xtrlock ]; then
  echo "### Programm xtrlock wurde nicht installiert - Keine Internetzugriff? ###"
fi
if ! [ -e /usr/bin/remmina ]; then
  echo "### Programm remmina wurde nicht installiert - Keine Internetzugriff? ###"
fi
if ! [ -e /usr/bin/import ]; then
  echo "### Programm import (von imagemagick) wurde nicht installiert - Keine Internetzugriff? ###"
fi
if ! [ -e /usr/bin/wakeonlan ]; then
  echo "### Programm wakeonlan wurde nicht installiert - Keine Internetzugriff? ###"
fi

if [ "$1" == "--vnc" ] || [ "$2" == "--vnc" ]; then
    if [ -e /usr/bin/x11vnc ]; then
        echo "-----------------------------------------------------------"
        echo "Bitte geben Sie nun das VNC-Passwort fuer den Client ein:"
        echo "-----------------------------------------------------------"
        /usr/bin/x11vnc --storepasswd /etc/x11vnc.pass
        if [ -e /etc/x11vnc.pass ]; then
		chmod 644 /etc/x11vnc.pass
        fi
    else
	echo "### Fehler!!! Das Programm x11vnc ist nicht installiert! ###"
    fi
fi

exit 0
