#!/bin/sh -e

#generate requires-only package from file list

export LC_ALL=C

if [ -z "$1" ] || [ -z "$2" ] || [ -z "$3" ];
then
         echo "usage: mkfakepkg name version filelist"
         exit 1
fi


name=$1
version=$2
filelist=$3
arch=$(arch)

tname1=$(mktemp -d $TMP/$name.XXXX)
tname2=$(mktemp -d $TMP/$name.XXXX)

Exit()
{
        RETVAL=$?
        trap '' EXIT
        rm -rf $tname1 $tname2
        exit $RETVAL
}

### Build package from files

for f in $(cat $filelist); do
	dname=$tname1/$name$(dirname $f)
	mkdir -p $dname
	cp -a $f $dname
done

pushd $tname1
echo "tar: $name" > .gear-rules

cat > $name.spec <<_EOF_
Name: $name
Version: $version
Release: alt1

Summary: $name
License: Unknown
Group: System/Configuration/Other
Source: %name-%version.tar

%description
$name

%prep
%setup

%install
cp -Ra . %buildroot/

%files
_EOF_

find $name -type f | sed "s/^$name//" >> $name.spec

echo "%changelog
* $(date +'%a %b %d %Y') Fakepackage Bot <fakebot@altlinux.org> $version-alt1
- fake package build" >> $name.spec


git init
git config user.name "No Body"
git config user.email "<nobody@altlinux.org>"
git add .
gear-commit -a --no-edit

gear --commit --rpmbuild -- rpmbuild -ba --define="_rpmdir $tname1"
popd

#now, build empty requires-only package from pre-built package


pushd $tname2

cat > $name.spec <<_EOF_
Name: requires-only-$name-$arch
Version: $version
Release: alt1

Summary: $name
License: Unknown
Group: System/Configuration/Other
ExclusiveArch: $arch
_EOF_

rpm -qp --requires $tname1/$arch/$name-$version-alt1.$arch.rpm | xargs -i echo 'Requires: {}' >> $name.spec


cat >> $name.spec <<_EOF_
%description
$name

%files

%changelog
* $(date +'%a %b %d %Y') Fakepackage Bot <fakebot@altlinux.org> $version-alt1
- fake package build
_EOF_

git init
git config user.name "No Body"
git config user.email "<nobody@altlinux.org>"
git add .
gear-commit -a --no-edit

gear --commit --rpmbuild -- rpmbuild -ba
popd
