#!/bin/sh

MPD_MUSIC=/var/lib/mpd/music
MPD_CONF=/etc/mpd.conf
USBMOUNT=/etc/usbmount
MOUNT_MPD=$USBMOUNT/mount.d/10_link_to_mpd
UMOUNT_MPD=$USBMOUNT/umount.d/10_unlink_to_mpd
SYSTEMD_UDEVD=/etc/systemd/system/systemd-udevd.service
DIS_PRIV=""

sudo usermod -aG floppy pi

for i in perl mpd usbmount exfat-fuse exfat-utils; do
  dpkg -s $i >/dev/null 2>&1
  if [ $? -eq 0 ]; then
    echo "$i ist bereits installiert!"
  else
    sudo apt -y install $i
  fi
done

if [ -f /etc/debian_version ]; then
  version=`cut -b1-2 /etc/debian_version`
  if [ "$version" = "10" ]; then # buster
    DIS_PRIV="PrivateMounts=no"
  fi
  if [ "$version" = "9." ]; then # stretch
    DIS_PRIV="MountFlags=shared"
  fi
fi

if [ ! -z "$DIS_PRIV" ];then
  cat <<EOF | sudo tee $SYSTEMD_UDEVD >/dev/null
.include /lib/systemd/system/systemd-udevd.service
[Service]
$DIS_PRIV
EOF
fi

sudo systemctl daemon-reload

sudo perl -pi -e 's;^FILESYSTEMS.*;FILESYSTEMS=\"vfat ext2 ext3 ext4 exfat hfsplus ntfs fuseblk\";' $USBMOUNT/usbmount.conf
sudo perl -pi -e 's;^FS_MOUNTOPTIONS.*;FS_MOUNTOPTIONS=\"-fstype=vfat,gid=floppy,umask=002 -fstype=exfat,gid=floppy,umask=002 -fstype=ntfs,gid=floppy,umask=002\";' $USBMOUNT/usbmount.conf

cat <<EOF | sudo tee $UMOUNT_MPD >/dev/null
#!/bin/sh
if [ -L "$MPD_MUSIC/\`basename \$UM_MOUNTPOINT\`" ]; then
  rm -f "$MPD_MUSIC/\`basename \$UM_MOUNTPOINT\`"
  mpc -q update
fi
exit 0
EOF
sudo chmod a+x $UMOUNT_MPD

cat <<EOF | sudo tee $MOUNT_MPD >/dev/null
#!/bin/sh
if [ -d \$UM_MOUNTPOINT ]; then
  ln -sf "\$UM_MOUNTPOINT" "$MPD_MUSIC/\`basename \$UM_MOUNTPOINT\`"
  mpc -q update
fi
exit 0
EOF
sudo chmod a+x $MOUNT_MPD

if grep -qe '^[[:space:]]*follow_outside_symlinks.*' $MPD_CONF; then
  sudo perl -pi -e 's;^[[:space:]]*follow_outside_symlinks.*;follow_outside_symlinks "yes";' $MPD_CONF
else
  if grep -qe '^[# 	]*#[# 	]*follow_outside_symlinks.*' $MPD_CONF; then
    sudo perl -pi -e 's;^[# 	]*#[# 	]*follow_outside_symlinks.*;follow_outside_symlinks "yes";' $MPD_CONF
  else
    sudo sh -c 'echo follow_outside_symlinks \"yes\">>'$MPD_CONF
  fi
fi

if [ ! -z "$DIS_PRIV" ];then
  echo
  echo "#################"
  echo "# PLEASE REBOOT #"
  echo "#################"
  echo
  echo "Bitte Neustarten, damit die"
  echo "Änderungen aktiviert werden"
  echo
else
  sudo service mpd restart
fi

