#!/bin/sh
# 2004-2008 (c) Etersoft www.etersoft.ru
# Author: Vitaly Lipatov <lav@etersoft.ru>
# Public domain
# $Id: rpmgp,v 1.17 2008/01/10 00:18:13 lav Exp $
#
#   src.rpm-   ALT Linux     .
#        
#      apt-get source 
# -c - checkonline
# -n - do not install

. /etc/rpm/etersoft-build-functions

REPOSITORY="files/SRPMS obsolete orphaned"

if [ "$1" = "-h" ]; then
	echog "rpmgp [-c -n] name - download src.rpm from ALT Linux to RPM/SRPMS and install it"
	echog " name - installed package name or src.rpm"
	echog " -c check for exist the package in ALT Linux repository"
	echog " -b install packages, needed for build via apt-get"
	echog " -l lists packages, needed for build (in local pkg system notation)"
	echog " -n do not install in RPM after download, download in current dir"
	exit 0
fi


TRYINST="1"
if [ "$1" = "-n" ] ; then
	shift
	TRYINST=""
fi

test -z "$1" && fatal "Please run with spec/package name"

# install binary packages
if [ "$1" = "-b" ] ; then
	shift
	parse_cmd_pre "$@"
	pack_src_rpm $LISTRPMARGS
	echog "Running apt-get for install needed packages for $LISTBUILT"
	cd $RPMDIR/SRPMS
	# FIXME: ALT Specific
	$SUDO apt-get build-dep $LISTBUILT
	cd -
	exit 0
fi

# lists packages for build
if [ "$1" = "-l" ] ; then
	shift
	print_target_buildreq $1
	exit 0
fi

# Check online
if [ "$1" = "-c" ] ; then
	shift
	CHECKONLINE=1
	if [ -f $1 ] ; then
		build_rpms_name "$1"
		SRCRPM=$NAMESRPMIN
	else
		echo $1 | grep rpm 2>/dev/null && SRCRPM=$1 ||
		SRCRPM=`rpm -q $1 --queryformat "%{SOURCERPM}\n" | tail -n 1` 
	fi
	RET="MISSED"
	for i in $REPOSITORY ; do
		echog "Checking in repository $i ..."
		rsync -n --progress $RSYNCSISYPHUS/$i/$SRCRPM  >/dev/null 2>&1 && { RET=$i; break; }
	done
	echog "Repository     Filename"
	printf "%-12s %30s\n" $RET $SRCRPM
	exit 0
fi

echo
echo "########################################"
if [ -z "${1/*src.rpm/}" ]
then
	# it is src.rpm package
	SRCRPM=$1
else
	if [ -z "${1/*rpm/}" ] ; then
		# it is rpm package (locale placed?)
		SRCRPM=`rpm -qp $1 --queryformat "%{SOURCERPM}\n"`
	else
		SRCRPM=`rpm -q $1 --queryformat "%{SOURCERPM}\n"`
	fi
fi
test -z "$SRCRPM" && fatal "Cannon find package for $1"
echog "Try to download $SRCRPM"

test -z ${TRYINST} || { mkdir -p $RPMDIR/SRPMS && cd $RPMDIR/SRPMS ; }
echog "Downloading in $(pwd)"

for i in $REPOSITORY
do
	echo "--------Check in $i-----------"
	rsync -va --partial --checksum --copy-links \
		--delete-after --progress $RSYNCSISYPHUS/$i/$SRCRPM ./$SRCRPM && break
done

test -z ${TRYINST} && exit 0
echo
echog "Installing..."
rpm -iv $SRCRPM

