#!/bin/bash
function removeDataTalk() {
        sudo docker container stop $(sudo docker container ls -q --filter name=datatalkruntime) 2> /dev/null
        sudo docker ps -a | grep "datatalkruntime" | awk '{print $1}' | xargs sudo docker rm 2> /dev/null
        sudo docker images -a | grep "datatalkruntime" | awk '{print $3}' | xargs sudo docker rmi 2> /dev/null
}

function checkDocker() {
        required_version="26.0.0"
        current_version=`sudo docker --version 2> /dev/null|cut -d" " -f3 `
        if [ ! -z "$current_version" ]; then
           if [[ ! "$(printf '%s\n' "$required_version" "$current_version" | sort -V | head -n 1)" != "$current_version" ]]; then
              echo "Docker version $required_version is less than $required_version"
          fi
        else
           read -p "Docker not installed, install now? (Y/N)? " -n 1 -r
           echo
           if [[ $REPLY =~ ^[Yy]$ ]]
              then
              echo "Install Docker"
              # Add Docker's official GPG key:
              sudo apt-get update
              sudo apt-get install ca-certificates curl gnupg
              sudo install -m 0755 -d /etc/apt/keyrings
              sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
              sudo chmod a+r /etc/apt/keyrings/docker.gpg
              # Add the repository to Apt sources:
             sudo  echo \
                "deb [arch="$(dpkg --print-architecture)" signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
                "$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | \
              sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
              sudo apt-get update
              sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
           fi
        fi

}

checkDocker

if [ -z "$1" ];then
    wget --user=sc --password=12ServisControl34! http://nsa.myscada.org:88/Runtime/last_versionDT.txt &> /dev/null
    version=`cat last_versionDT.txt`
    version2=`echo $version | cut -d"_" -f2`
    version3=`echo $version | cut -d"_" -f3`
    version4=`echo $version | cut -d"_" -f4`
    version_strip=$version2\_$version3\_$version4
    echo "Version: "$version
    #echo "Strip: "$version_strip
    rm last_versionDT.txt

    if [[ "$(sudo docker images -q datatalkruntime:$version_strip\_x64 2> /dev/null)" == "" ]]; then
        read -p "New version available.Update? (Y/N)? " -n 1 -r
        echo
        if [[ $REPLY =~ ^[Yy]$ ]]
            then
              removeDataTalk
        else
            exit
        fi
    else
      echo "Version is actual."
      exit
    fi
    wget --quiet --show-progress -O- --user=sc --password=12ServisControl34! http://nsa.myscada.org:88/Runtime/$version\_x64.tar.gz|sudo docker load
    #wget --user=sc --password=12ServisControl34! http://nsa.myscada.org:88/Runtime/$version\_x64.tar.gz
    #gzip -d $version\_x64.tar.gz
    #docker load < ./$version\_x64.tar
    #rm $version\_x64.tar
    
else
    version=`basename $1 | sed 's/\.tar//g'`
    version2=`echo $version | cut -d"_" -f2`
    version3=`echo $version | cut -d"_" -f3`
    version4=`echo $version | cut -d"_" -f4`
    version_strip=$version2\_$version3\_$version4

    echo "File: "$version
    echo "Version: "$version_strip
    read -p "Install new version ? (Y/N)? " -n 1 -r
    echo
    if [[ $REPLY =~ ^[Yy]$ ]]
        then
           removeDataTalk
    else
        exit
    fi
    sudo docker load < $1
fi

mkdir -p /opt/DataTalk/conf
sudo echo "{\"version\":\"10\",\"http_port\":80,\"https_port\":443,\"install_path\":\"/opt/DataTalk/\",\"runtime_path\":\"/opt/DataTalk/\",\"project_path\":\"/opt/DataTalk/\",\"manager_passwd\":\"\",\"dev\":true,\"cloud_enable\":false,\"hwid\":\"\"}" > /opt/DataTalk/conf/settings.json

sudo docker container create -p 222:22 -p 80:80 -p 443:443 -p 1883:1883 -p 27017:27017 -p 8883:8883 -v /opt/DataTalk:/data --name datatalkruntime_$version_strip\_x64 datatalkruntime:$version_strip\_x64
sudo docker ps -a | grep "myprox64" | awk '{print $1}' | xargs sudo docker stop
sudo docker ps -a | grep "myprox64" | awk '{print $1}' | xargs sudo docker update --restart=no 2> /dev/null
sudo docker start datatalkruntime_$version_strip\_x64
#sudo docker update --restart unless-stopped datatalkruntime_$version_strip\_x64
sudo docker update --restart always datatalkruntime_$version_strip\_x64

