#!/bin/sh -e

Nginx() {
    if [ ! -f "/usr/sbin/nginx" ]; then
        apt-get -y -qq install nginx
        rm -rf /etc/nginx/sites-enabled/default
    fi
    if [ -f "/etc/nginx/sites-enabled/flussonic" ]; then
        rm -rf /etc/nginx/sites-available/flussonic
        rm -rf /etc/nginx/sites-enabled/flussonic
    fi
    echo 'server {
        listen 127.0.0.1:135;
        root /usr/share/nginx/html;
        index index.html index.htm;
        server_name localhost;
        location / {
                try_files $uri $uri/ =404;
        }
}' > /etc/nginx/sites-available/flussonic
    ln -s /etc/nginx/sites-available/flussonic /etc/nginx/sites-enabled/
    service nginx restart
}

Copy() {
    
    if [ -f "/etc/flussonic/flussonic.conf" ]; then
    echo "Previous Flusssonic Config Found, Taking Backup..."
    cp /etc/flussonic/flussonic.conf /root
    sudo mv /etc/flussonic/flussonic.conf /root/flussonic.conf_backup
    fi  
}

Paste() {
    
    if [ -f "/root/flussonic.conf_backup" ]; then
    echo "Backup Flusssonic Config Found, Restoring Backup..."
    sudo mv /root/flussonic.conf_backup /etc/flussonic/flussonic.conf
    fi  
}

Remove() {

    if ! dpkg -s flussonic >/dev/null 2>&1; then
        echo "No old Flussonic Found..."
    else
        apt -y purge flussonic
    fi
    if [ -d "/etc/flussonic" ]; then
        sudo rm -rf /etc/flussonic
    fi
    if [ -d "/opt/flussonic" ]; then
        sudo rm -rf /opt/flussonic
    fi  
    sudo apt-get -y autoremove
    systemctl is-active --quiet flussonic && systemctl stop flussonic || echo "No running flussonic found"

    if [ -f "/etc/systemd/system/multi-user.target.wants/flussonic.service" ]; then
        echo "found service"
        sudo systemctl disable flussonic
    fi

    sudo systemctl daemon-reload
    sudo systemctl reset-failed

    sudo rm -f /etc/apt/sources.list.d/flussonic.list
    sudo rm -f /etc/apt/sources.list.d/erlyvideo.list

}


Flussonic() {
    if grep -q retroview.flussonic111.com /etc/hosts; then
        echo "Retroview Check OK"
    else
        echo "127.0.0.1    retroview.flussonic111.com">> /etc/hosts
        echo "Retroview Fixed"
    fi
    if grep -q apt.flussonic.com /etc/hosts; then
        echo "Flussonic apt Check OK"
    else
        echo "127.0.0.1    apt.flussonic.com">> /etc/hosts
        echo "Flussonic apt Fixed"
    fi
    if grep -q license4.erlyvideo.org /etc/hosts; then
        echo "Licence url Check OK"
    else
        echo "127.0.0.1    license4.erlyvideo.org">> /etc/hosts
        echo "Licence url Fixed"
    fi
    if grep -q flussonic.infomyr.com /etc/hosts; then
        echo "Asshole file Check OK"
    else
        echo "127.0.0.1    flussonic.infomyr.com">> /etc/hosts
        echo "Asshole file Fixed"
    fi

    dpkg -i flussonic_20.12_amd64.deb \
    flussonic-erlang_22.3.7_all.deb \
    flussonic-transcoder-base_20.05_all.deb \
    flussonic-transcoder_20.05_all.deb 
}

Nvenc() {
    apt-get install nvidia-driver-550-open --no-install-recommends
    ulimit -n 4096
    echo "NVENC nvidia-550-open latest drivers installed!"
}

unlock() {
    wget https://github.com/keylase/nvidia-patch/archive/refs/heads/master.zip
    unzip master.zip
    bash ./patch.sh
    echo "Nvidia driver patched, limiter removed for all consumer hardware!"
}

finish() {
    /etc/init.d/flussonic restart
    echo "Flussonic 20.12 installed! Default Port is 80, Enjoy ;)"
}


Nginx
Copy
Remove
Flussonic
Paste
Nvenc
unlock
finish
