#!/bin/bash

PRJNAME="space-client"

# Set repo address
if [ -z "$CUSTOM_REPO_ADDR" ]; then
    REPO_ADDR="http://space-harbor.space.team"
else
    if [[ "$CUSTOM_REPO_ADDR" =~ ^(https?|file):\/\/.*$ ]]; then
        REPO_ADDR="$CUSTOM_REPO_ADDR"
        echo "Your repo address is: $REPO_ADDR"
    else
      echo "Error: your repo address is not valid!"
      exit 1
    fi
fi

# Set repo name
if [[ $1 == "dev" || $2 == "dev" ]]; then
    REPO_NAME="$PRJNAME-dev"
elif [[ $1 == "electron" || $2 == "electron" ]]; then
    REPO_NAME="$PRJNAME-electron"
elif [[ $1 == "stage" || $2 == "stage" ]]; then
    REPO_NAME="$PRJNAME-stage"
else
    if [ -z "$CUSTOM_REPO_ADDR" ]; then
        REPO_ADDR="https://update.spacevm-service.ru"
    fi
    REPO_NAME="$PRJNAME"
fi

REPO_URL="$REPO_ADDR/$REPO_NAME/linux"
APT_REPO_KEY_URL="$REPO_ADDR/space-repo-key.gpg"

# Set package name
APT_PACKAGE_NAME="space-client"
YUM_PACKAGE_NAME="space-client"
LOUDPLAY_VERSION="1.29.13"

# Set OS
if [ -f "/etc/alteros-release" ]; then
  REL=$(rpm -E '%{rhel}' 2>/dev/null || true)
  if [ "$REL" = "7" ]; then 
    DISTR="alteros7"
  elif [ "$REL" = "9" ]; then 
    DISTR="alteros9"
  fi
elif [ -f "/etc/redos-release" ]; then
  major_ver=$(rpm -E %{redos})
  DISTR="redos${major_ver}"
elif [ -f "/usr/bin/lsb_release" ]; then
  DISTR=$(lsb_release -cs)
fi

if [ -z "$DISTR" ]; then
    echo "ERROR: Unknown distribution"
    exit 1
else
    echo "Your distribution is: $DISTR"
fi

case $DISTR in
    "1.7_x86-64"|"1.8_x86-64")
        # with loudplay-client for astra17 only
        apt-key del 4BD0CAA7
        apt-get update && apt-get install apt-transport-https wget lsb-release gnupg ca-certificates -y
        mkdir -p /usr/share/keyrings
        wget --no-check-certificate -O /usr/share/keyrings/space-repo-key.gpg $APT_REPO_KEY_URL
        echo "deb [arch=amd64 signed-by=/usr/share/keyrings/space-repo-key.gpg] $REPO_URL/apt $DISTR main" | tee /etc/apt/sources.list.d/space-client.list
        INSTALL_PACKAGES="$APT_PACKAGE_NAME loudplay-client=$LOUDPLAY_VERSION"
        apt-get update && apt-get install $INSTALL_PACKAGES -y
        RESULT="$?"
        ;;
    "Autolycus")
        apt-get update && apt-get install apt-https -y
        echo "rpm $REPO_URL/apt-rpm/x86_64 space-client" | tee /etc/apt/sources.list.d/space-client.list
        apt-get update
        apt-get install $APT_PACKAGE_NAME -y
        RESULT="$?"
        ;;
    "redos7")
        tee /etc/yum.repos.d/space-client.repo <<EOF
[space-client]
name=Space Client repository
baseurl=$REPO_URL/yum/redos7.3/\$basearch
gpgcheck=1
gpgkey=$REPO_URL/yum/RPM-GPG-KEY-space-client
enabled=1
EOF

        dnf install -y loudplay-client-$LOUDPLAY_VERSION
        ln -sf /usr/bin/loudplay-client /usr/bin/streaming
        chmod 755 /usr/share/loudplay-client/bin/streaming
        chmod 755 /usr/bin/streaming
        dnf install --best --refresh $YUM_PACKAGE_NAME -y
        RESULT="$?"
        ;;
    "redos8")
        tee /etc/yum.repos.d/space-client.repo <<EOF
[space-client]
name=Space Client repository
baseurl=$REPO_URL/yum/redos8/\$basearch
gpgcheck=1
gpgkey=$REPO_URL/yum/RPM-GPG-KEY-space-client
enabled=1
EOF

        dnf install -y loudplay-client-$LOUDPLAY_VERSION
        ln -sf /usr/bin/loudplay-client /usr/bin/streaming
        chmod 755 /usr/share/loudplay-client/bin/streaming
        chmod 755 /usr/bin/streaming

        INSTALL_PACKAGES="$YUM_PACKAGE_NAME"
        dnf install --best --refresh $INSTALL_PACKAGES -y
        RESULT="$?"
        ;;
    "alteros7")
        tee /etc/yum.repos.d/AlterOS-Experimental.repo <<EOF
[experimental]
name=AlterOS-\$releasever - experimental
baseurl=http://repo.alter-os.ru/alteros/\$releasever/experimental/\$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-AlterOS-7
enabled=1
EOF
        tee /etc/yum.repos.d/space-client.repo <<EOF
[space-client]
name=Space Client repository
baseurl=$REPO_URL/yum/alteros7/\$basearch
gpgcheck=1
gpgkey=$REPO_URL/yum/RPM-GPG-KEY-space-client
enabled=1
EOF

        # remove old freerdp
        if [[ $(rpm -qa | grep freerdp-libs) == "freerdp-libs-1.0.2-15.el7.alteros.x86_64" ]]; then
            yum erase -y freerdp-libs
        fi

        # install space-client
        yum install -y $YUM_PACKAGE_NAME
        RESULT="$?"
        ;;
    "alteros9")
    tee /etc/yum.repos.d/space-client.repo <<EOF
[space-client]
name=Space Client repository
baseurl=$REPO_URL/yum/alteros9/\$basearch
gpgcheck=1
gpgkey=$REPO_URL/yum/RPM-GPG-KEY-space-client
enabled=1
EOF

    yum install -y --best --refresh $YUM_PACKAGE_NAME
    RESULT="$?"
    ;;
    *)
        echo "ERROR: Empty OS" ;;
esac

if [[ $RESULT != 0 ]]; then
  echo "ERROR: Space Client installation was failed!"
fi
