#! /bin/sh


PKG_VERSION=zeronews-linux-prod-4.0.0-rc.tar
HOST="https://download.v2.zeronews.cc"

checkOS() {
  . /etc/os-release
  OS="${ID}"
  if [ ${OS} = manjaro ] || [ ${OS} = kylin ] || [ ${OS} = opensuse* ] || [ ${OS} = "rocky" ] || [ ${OS} = "opencloudos" ] || [ ${OS} = "fedora" ] || [ ${OS} = "openEuler" ] || [ ${OS} = "rhel" ] || [ ${OS} = "debian" ] || [ ${OS} = "raspbian" ] || [ ${OS} = "ubuntu" ] || [ ${OS} = "centos" ]; then
    echo "System check pass"
  else
    echo "ZeroNews Client does not support this Linux System"
    exit 1
  fi
}


remove_zeronews() {

  ps -ef|grep zeronews |grep -v grep|awk '{print $2}'|xargs kill -9

  rm -rf /usr/bin/zeronews-rc  >/dev/null 2>&1
  rm -rf /etc/zeronews-rc  >/dev/null 2>&1

  echo "ZeroNews Client is delete"

}

zeronews_download() {
  rm -rf /tmp/zeronews_tmp
  mkdir /tmp/zeronews_tmp
  cd /tmp/zeronews_tmp
  if command -v curl >/dev/null 2>&1; then
    curl -SLk  $1 -o zeronews.tar

  else
    . /etc/os-release
    if [ "${ID}" = "debian" ] || [ "${ID}" = "raspbian" ] || [ "${ID}" = "ubuntu" ]; then
      apt install -y curl
    else
      yum install -y curl
    fi
    curl -SLk  $1 -o zeronews.tar
  fi

}

zeronews_pkg_url() {
  TYPE=$(uname -m)

  download_url=""
  if $(echo $TYPE |grep -Eqi "x86_64"); then
    download_url="${HOST}/linux/x86_x64/$PKG_VERSION"

  elif $(echo $TYPE |grep -Eqi "arm"); then
    download_url="${HOST}/linux/arm/$PKG_VERSION"

  elif $(echo $TYPE |grep -Eqi "aarch64"); then
    download_url="${HOST}/linux/arm64/$PKG_VERSION"
  fi

  if [ -n $download_url ]; then
    zeronews_download $download_url
  fi

}

install_zeronews() {
  echo "Install ZeroNews Client"

  zeronews_pkg_url

  zeronews service uninstall > /dev/null 2>&1

  cd /tmp/zeronews_tmp
  tar -xf zeronews.tar

  rm -rf /usr/bin/zeronews-rc  >/dev/null 2>&1

  cp -a zeronews/zeronews-rc   /usr/bin/

  /usr/bin/zeronews-rc service install
  rm -rf /tmp/zeronews_tmp
  echo "ZeroNews Client Install Success"

}

menu() {
  checkOS
  case $1 in
    install)
      install_zeronews $1
      ;;
    remove)
      remove_zeronews
      ;;
    --help|-h)
      echo ""
      echo "Welecome to use ZeroNews Client Install Scripts"
      echo ""
      echo "Usage:"
      echo "  install.sh [command]"
      echo ""
      echo "Available Commands:"
      echo "  install    install ZeroNews Client"
      echo "  remove     delete ZeroNews Client"
      echo ""
      echo "Flags:"
      echo "-h, --help   help for ZeroNews Client"
      ;;
  esac
}

menu $1