#!/bin/bash
#
# postinst script for linuxmuster-tools7
# GPL v3
#

set -e

# Hide root warning for pip
export PIP_ROOT_USER_ACTION=ignore
export PIP_BREAK_SYSTEM_PACKAGES=1

msg()
{
    message=$1
    echo
    # Bold and orange font for linuxmuster.net
    echo -e "\e[1m\e[38;5;214m$message\e[39m\e[0m"
    echo
}


create_linuxmuster_venv()
{
    msg "Setting up virtual env in /opt"
    /usr/bin/python3 -m venv /opt/linuxmuster --system-site-packages
}

migrate_to_venv()
{
    # Checking if the linuxmuster's venv  is already installed
    if [ -f /opt/linuxmuster/bin/activate ] ; then
      return
    fi

    create_linuxmuster_venv
}


case "$1" in
    install|configure)
        msg "Install Python requirements"

        migrate_to_venv
        . /opt/linuxmuster/bin/activate
        
        PYTHON3=/opt/linuxmuster/bin/python3
        
        $PYTHON3 -m pip install -r /usr/lib/python3/dist-packages/linuxmusterTools/requirements.txt

        msg "Checking post-hooks directories"
        mkdir -p /etc/linuxmuster/tools/hooks/group-manager
        chown root:root /etc/linuxmuster/tools/hooks/group-manager -R
        chmod 600 /etc/linuxmuster/tools/hooks/group-manager -R

        if [ -f /etc/linuxmuster/webui/config.yml ] ; then
            msg "Checking students group in LDAP"
            $PYTHON3 /usr/lib/python3/dist-packages/linuxmusterTools/install-scripts/create_students_groups.py
        fi

        # Print directory
        mkdir -p /var/lib/lmntools/print
        mkdir -p /var/lib/lmntools/templates

        # For temp ldif 
        mkdir -p /tmp/lmntool
        chmod 600 /tmp/lmntool

        # Removing deprecated scripts (lmntools v7.3.15)
        rm -f /usr/local/sbin/lmntools-class
        rm -f /usr/local/sbin/lmntools-student
        #rm -f /usr/local/sbin/lmntools-managementgroup

        msg "Checking sophomorix hook scripts"
        # TODO: Multischool !
        # TODO: check replacement

        mkdir -p /etc/linuxmuster/sophomorix/default-school/hooks/sophomorix-add.d
        mkdir -p /etc/linuxmuster/sophomorix/default-school/hooks/sophomorix-update.d
        mkdir -p /etc/linuxmuster/sophomorix/default-school/hooks/sophomorix-kill.d


        cp -a /usr/lib/python3/dist-packages/linuxmusterTools/install-scripts/sophomorix-hooks/sophomorix-add.d/00-update-schoolclasses-groups.py /etc/linuxmuster/sophomorix/default-school/hooks/sophomorix-add.d
        cp -a /usr/lib/python3/dist-packages/linuxmusterTools/install-scripts/sophomorix-hooks/sophomorix-update.d/00-update-schoolclasses-groups.py /etc/linuxmuster/sophomorix/default-school/hooks/sophomorix-update.d
        cp -a /usr/lib/python3/dist-packages/linuxmusterTools/install-scripts/sophomorix-hooks/sophomorix-kill.d/00-update-schoolclasses-groups.py /etc/linuxmuster/sophomorix/default-school/hooks/sophomorix-kill.d

        chmod +x /etc/linuxmuster/sophomorix/default-school/hooks/sophomorix-add.d/00-update-schoolclasses-groups.py
        chmod +x /etc/linuxmuster/sophomorix/default-school/hooks/sophomorix-update.d/00-update-schoolclasses-groups.py
        chmod +x /etc/linuxmuster/sophomorix/default-school/hooks/sophomorix-kill.d/00-update-schoolclasses-groups.py

        msg "You should restart manually linuxmuster-webui and linuxmuster-api"
        #msg "Restarting services"

        #/bin/systemctl daemon-reload
        #/bin/systemctl is-enabled linuxmuster-webui.service && /bin/systemctl restart linuxmuster-webui.service
        #/bin/systemctl is-enabled linuxmuster-api.service && /bin/systemctl restart linuxmuster-api.service

    ;;

    *)
    ;;

esac

exit 0
