#! /bin/sh


PKG_VERSION=zeronews-linux-test-4.0.2.tar
HOST="https://agentv2.testenv.waitoin.com:8443"

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


remove_zeronews() {

  /usr/bin/zeronews reset >/dev/null 2>&1
  echo 'Uninstall ZeroNews Client Service'
  /usr/bin/zeronews service uninstall > /dev/null 2>&1
  echo 'Delete ZeroNews Client'
  rm -rf /usr/bin/zeronews  >/dev/null 2>&1
  echo 'Delete ZeroNews Config Dir'
  rm -rf /etc/zeronews  >/dev/null 2>&1

  echo "ZeroNews Client is deleted"

}

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=""
  case "$TYPE" in
    x86_64)
      download_url="${HOST}/linux/x86_x64/$PKG_VERSION"
      ;;
    aarch64)
      download_url="${HOST}/linux/arm64/$PKG_VERSION"
      ;;
    arm*)
      download_url="${HOST}/linux/arm/$PKG_VERSION"
      ;;
  esac

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

}

install_zeronews() {
  tokenid="$1"

  echo "Install ZeroNews Client"

  zeronews_pkg_url

  systemctl stop zeronews-client > /dev/null 2>&1

  cd /tmp/zeronews_tmp
  tar -xf zeronews.tar

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

  /usr/bin/zeronews service install

  if [ -n "$tokenid" ]; then
    /usr/bin/zeronews reset >/dev/null 2>&1
    /usr/bin/zeronews authtoken "$tokenid"
    /usr/bin/zeronews service uninstall > /dev/null 2>&1
    /usr/bin/zeronews service install
    # /usr/bin/zeronews service start
  fi

  rm -rf /tmp/zeronews_tmp
  echo "ZeroNews Client Install Success"

}

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

menu "$1" "$2"