From ed62216cdfdced47c454555f7f43d8770efc6b35 Mon Sep 17 00:00:00 2001
From: Vitaly Lipatov <lav@etersoft.ru>
Date: Fri, 16 Oct 2020 21:03:45 +0300
Subject: [PATCH] epm-addrepo: add support for basealt and yandex repo sites

---
 bin/epm-addrepo | 72 ++++++++++++++++++++++++++++++-------------------
 1 file changed, 44 insertions(+), 28 deletions(-)

diff --git a/bin/epm-addrepo b/bin/epm-addrepo
index 8bf0d505..f434c704 100644
--- a/bin/epm-addrepo
+++ b/bin/epm-addrepo
@@ -40,51 +40,67 @@ __epm_addrepo_rhel()
 	return 0
 }
 
+__epm_addrepo_etersoft_addon()
+{
+	epm install --skip-installed apt-conf-etersoft-common apt-conf-etersoft-hold || fatal
+	# TODO: ignore only error code 22 (skipped) || fatal
+
+	local pb="$DISTRVERSION/branch"
+	[ "$DISTRVERSION" = "Sisyphus" ] && pb="$DISTRVERSION"
+
+	# FIXME
+	[ -n "$DISTRVERSION" ] || fatal "Empty DISTRVERSION"
+
+	# TODO: use apt-repo add ?
+	echo "" | sudocmd tee -a /etc/apt/sources.list
+	echo "# added with eepm addrepo etersoft" | sudocmd tee -a /etc/apt/sources.list
+	echo "rpm [etersoft] $ETERSOFTPUBURL/Etersoft LINUX@Etersoft/$pb/$DISTRARCH addon" | sudocmd tee -a /etc/apt/sources.list
+	if [ "$DISTRARCH" = "x86_64" ] ; then
+		echo "rpm [etersoft] $ETERSOFTPUBURL/Etersoft LINUX@Etersoft/$pb/x86_64-i586 addon" | sudocmd tee -a /etc/apt/sources.list
+	fi
+	echo "rpm [etersoft] $ETERSOFTPUBURL/Etersoft LINUX@Etersoft/$pb/noarch addon" | sudocmd tee -a /etc/apt/sources.list
+}
+
 __epm_addrepo_altlinux()
 {
 	local repo="$@"
+	local branch="$(echo "$DISTRVERSION" | tr "[:upper:]" "[:lower:]")"
+	[ -n "$branch" ] || fatal "Empty DISTRVERSION"
 	case "$1" in
 		etersoft)
 			info "add Etersoft's addon repo"
-			load_helper epm-query
-			epm install --skip-installed apt-conf-etersoft-common apt-conf-etersoft-hold
-			# TODO: ignore only error code 22 (skipped) || fatal
-			local branch="$DISTRVERSION/branch"
-			[ "$DISTRVERSION" = "Sisyphus" ] && branch="$DISTRVERSION"
-			# FIXME
-			[ -n "$DISTRVERSION" ] || fatal "Empty DISTRVERSION"
-			# TODO: func?
-			local arch=$(uname -m)
-			[ "$arch" = "i686" ] && arch="i586"
-			# TODO: use apt-repo add ?
-			echo "" | sudocmd tee -a /etc/apt/sources.list
-			echo "# added with eepm addrepo etersoft" | sudocmd tee -a /etc/apt/sources.list
-			echo "rpm [etersoft] $ETERSOFTPUBURL/Etersoft LINUX@Etersoft/$branch/$arch addon" | sudocmd tee -a /etc/apt/sources.list
-			if [ "$arch" = "x86_64" ] ; then
-				echo "rpm [etersoft] $ETERSOFTPUBURL/Etersoft LINUX@Etersoft/$branch/$arch-i586 addon" | sudocmd tee -a /etc/apt/sources.list
-			fi
-			echo "rpm [etersoft] $ETERSOFTPUBURL/Etersoft LINUX@Etersoft/$branch/noarch addon" | sudocmd tee -a /etc/apt/sources.list
-			repo="$DISTRVERSION"
+			assure_exists apt-repo
+			__epm_addrepo_etersoft_addon
+			a='' apt-repo add $branch
+			epm repofix etersoft
+			return 0
+			;;
+		basealt|altlinux)
+			# TODO: setrepo?
+			assure_exists apt-repo
+			a='' apt-repo add $branch
+			return 0
+			;;
+		yandex)
+			assure_exists apt-repo
+			a='' apt-repo add $branch
+			epm repofix yandex
 			return 0
 			;;
 		autoimports)
-			[ -n "$DISTRVERSION" ] || fatal "Empty DISTRVERSION"
-			repo="$repo.$(echo "$DISTRVERSION" | tr "[:upper:]" "[:lower:]")"
+			repo="autoimports.$branch"
 			;;
 		archive)
-			[ -n "$DISTRVERSION" ] || fatal "Empty DISTRVERSION"
 			datestr="$2"
 			echo "$datestr" | grep -Eq "^20[0-2][0-9]/[01][0-9]/[0-3][0-9]$" || fatal "use follow date format: 2017/12/31"
-			# TODO: func?
-			local arch=$(uname -m)
-			[ "$arch" = "i686" ] && arch="i586"
+
 			echo "" | sudocmd tee -a /etc/apt/sources.list
 			local distrversion="$(echo "$DISTRVERSION" | tr "[:upper:]" "[:lower:]")"
 			local rpmsign='[alt]'
 			[ "$distrversion" != "sisyphus" ] && rpmsign="[$distrversion]"
-			echo "rpm $rpmsign $ALTLINUXPUBURL archive/$distrversion/date/$datestr/$arch classic" | sudocmd tee -a /etc/apt/sources.list
-			if [ "$arch" = "x86_64" ] ; then
-				echo "rpm $rpmsign $ALTLINUXPUBURL archive/$distrversion/date/$datestr/$arch-i586 classic" | sudocmd tee -a /etc/apt/sources.list
+			echo "rpm $rpmsign $ALTLINUXPUBURL archive/$distrversion/date/$datestr/$DISTRARCH classic" | sudocmd tee -a /etc/apt/sources.list
+			if [ "$DISTRARCH" = "x86_64" ] ; then
+				echo "rpm $rpmsign $ALTLINUXPUBURL archive/$distrversion/date/$datestr/x86_64-i586 classic" | sudocmd tee -a /etc/apt/sources.list
 			fi
 			echo "rpm $rpmsign $ALTLINUXPUBURL archive/$distrversion/date/$datestr/noarch classic" | sudocmd tee -a /etc/apt/sources.list
 			return 0
-- 
2.24.1