#!/bin/bash

LANG=C

_repo=$1
_branch=$2
_package=$3
_version=$4

_logfile="/var/log/rmove.log"
_search_url="http://localhost:1488/api/v1/search"

usage()
{
    echo "Usage rmove <repo> <branch> <package> <version> [woreindex]";
    echo "      branch - unstable | testing | stable | prestable";
    echo "      repo - reponame (common, yandex-precise, verstka, etc)"
    echo
    exit 1;
}

rmove()
{
    echo $(date +"%Y-%m-%d %H:%M:%S"): "Removing package in Cacus"
    cacus rmove ${_repo} ${_branch} ${_package} ${_version}

    if [ $? -eq 0 ]; then
        echo $(date +"%Y-%m-%d %H:%M:%S"): "Rmove successfully complete"
        echo "$(date +%s) $(date): $SUDO_USER : ${_branch} ${_package} ${_version} ${_fromrepo} -> ${_repo}" >> ${_logfile}
    fi
}

detect_package() {
    _url=$(echo "${_search_url}?pkg=${_package}&ver=${_version}&repo=${_repo}&env=${_branch}&strict=true&human=false" | sed 's@+@%2B@g')
    curl -f -s "${_url}" | grep '"source": "' > /dev/null

    _return=$?

    if [ ${_return} -ne 0 ]; then
        echo -e "\n$(date +"%Y-%m-%d %H:%M:%S"): ERROR: Package ${_package}=${_version} not found in ${_repo}\n"
        usage
    fi
}

if [[ ("$(id -u)" != "0") && ("$USER" != "loadbase") ]]; then
    echo -e "\n$(date +"%Y-%m-%d %H:%M:%S"): ERROR: Only root cat rmove files.\n"
    exit 1;
fi

if [ "${#}" -ne 4 ]; then
    echo -e "\n$(date +"%Y-%m-%d %H:%M:%S"): ERROR: Number of arguments are wrong.\n"
    usage
fi

if [ "x${_package}" == "x" ]; then
    echo -e "\n$(date +"%Y-%m-%d %H:%M:%S"): ERROR: Package not defined.\n";
    usage
fi

if [ "x${_version}" == "x" ]; then
    echo -e "\n$(date +"%Y-%m-%d %H:%M:%S"): ERROR: Version not defined.\n";
    usage
fi

detect_package
rmove
