#!/bin/bash
# 2003-2008 Etersoft www.etersoft.ru
# Author: Vitaly Lipatov <lav@etersoft.ru>
# Public domain

load_mod git

is_alt()
{
	test -f /etc/altlinux-release
	return $?
}

# Internal
set_target_type()
{
	# check for M51 and so on
	if echo $1 | grep "^M[0-9][0-9]$" >/dev/null ; then
		MENV=$1
		return 0
	fi
	case "$1" in
		("DD" | "SS" | "EE")
			MENV="$1"
			return 0;
			;;
	esac
	return 1;
}

get_type_by_git_branch_name()
{
        if [ "$1" = "p5" ] ; then
                echo "M50"
                return
        fi

        # like 5.1
        if echo $1 | grep -q "^[0-9].[0-9]$" ; then
                get_altdistr_mod $1
                return
        fi

        # like M50
        if echo $1 | grep -q "^M[0-9][0-9]$" ; then
                get_altdistr_mod ${1/^M/}
                return
        fi
}

get_type_by_current_branch()
{
        local BRANCH=$(get_current_branch)
        get_type_by_git_branch_name $BRANCH
}

# set BYNARYREPO var by MENV in arg (M50 or 5.0)
set_binaryrepo()
{
	BINARYREPO="sisyphus"
	if [ -n "$BINARYREPONAME" ] ; then
		BINARYREPO="$BINARYREPONAME"
		MENVARG="-$(get_altdistr_mod $BINARYREPO)"
		return
	fi
	test -z "$1" && return
	BINARYREPO="`get_altdistr_version $1`"
}

# M50 -> 5.0
get_altdistr_version()
{
	echo "$1" | sed -e "s|M50|p5|g" | sed -e "s|M\([0-9]\)\([0-9]\)|\1\.\2|g" | sed -e "s|SS|sisyphus|g" | sed -e "s|DD|daedalus|g" | sed -e "s|Sisyphus|sisyphus|g"
}

# 5.0 -> M50
get_altdistr_mod()
{
	echo "$1" | sed -e "s|\([0-9]\)\.\([0-9]\)|M\1\2|g" | sed -e "s|Sisyphus|SS|g" | sed -e "s|sisyphus|SS|g" | sed -e "s|p5|M50|g"
}

# TODO: include in sisyphus_check
# Проверяем, соответствует ли релиз пакетов указанному в MENV
function pkg_release_check()
{
	local STREL=$RELEASEPREFIX
	[ -z "$KORINFTARGETRELEASE" ] || STREL=$KORINFTARGETRELEASE

	if [ "$MENV" = "SS" ] || [ "$MENV" = "DD" ] ; then
		for i in $@ ; do
			if [ -z "${i/*$STREL[0-9].M[0-9][0-9]*/}" ] ; then
				# Значит не тот релиз
				fatal "Incorrect release in $i package: was prepared for Sisyphus"
			fi
		done
		return
	fi
	for i in $@ ; do
		if [ -n "${i/*$STREL[0-9].$MENV*/}" ] ; then
			# Значит не тот релиз
			fatal "Incorrect release in $i package: was prepared for $MENV"
		fi
	done
}
