Skip to content
Snippets Groups Projects
chroot_wrap.sh 1.84 KiB
Newer Older
alexandr.kravchenko's avatar
alexandr.kravchenko committed
#!/bin/bash

alexandr.kravchenko's avatar
alexandr.kravchenko committed
CHROOT_PREFIX="builder"
CHROOTS_PATH=$1
alexandr.kravchenko's avatar
alexandr.kravchenko committed
PKG_FORMAT=$3
SRC_PATH=$4
JOB=$5

cd $SRC_PATH
echo "workdir is $(pwd)"
. prod_build/general/pre-build.sh
export_variables "./prod_build/general/conf/*"

IFS=' '
echo "$PLATFORM_CANDIDATES"
echo $IMPLEMENTED
for platform in $PLATFORM_CANDIDATES; do
	[[ $(echo $IMPLEMENTED | grep $platform) != "" ]] && PLATFORMS="$PLATFORMS$platform " || echo "Platform $platform is not implemented in this project yet. Sorry"
done
alexandr.kravchenko's avatar
alexandr.kravchenko committed
echo "Platforms are $PLATFORMS"

for platform in $PLATFORMS; do
	echo "Working with $platform now"
	export_variables "./prod_build/$platform/conf/*"
alexandr.kravchenko's avatar
alexandr.kravchenko committed
	IFS=' '
	PKG_TYPE=$(echo $PKG_FORMAT | cut -d ' ' -f1)
	#Check if chroots are present
	echo $HOST_DISTR_VERSIONS
	echo $HOST_ARCH_VERSIONS
	[ -e prod_build/$platform/scripts/pre-build.sh ] && prod_build/$platform/scripts/pre-build.sh $CHROOT_PREFIX || exit $? #For actions before build not in chroot and in chroot (version update, install missing dependencies(under schroot))
alexandr.kravchenko's avatar
alexandr.kravchenko committed
	for distr in $HOST_DISTR_VERSIONS; do
		for arch in $HOST_ARCH_VERSIONS; do
			if [ -e $CHROOTS_PATH/$CHROOT_PREFIX-$distr-$arch ]; then
				schroot -c $CHROOT_PREFIX-$distr-$arch -- launcher.sh prod_build/$platform/scripts/$JOB.sh $PKG_TYPE || errcode=$?
alexandr.kravchenko's avatar
alexandr.kravchenko committed
#				echo "schroot stub $PKG_TYPE"
			else
				echo "chroot $CHROOT_PREFIX-$distr-$arch not found. You should install it first"
			fi
		done
	done
	echo "workdir before postinstall is $(pwd)"
alexandr.kravchenko's avatar
alexandr.kravchenko committed
	[ -e prod_build/$platform/scripts/post-build.sh ] && prod_build/$platform/scripts/post-build.sh #For post-build actions not in chroot (global publish)
	PKG_FORMAT=$(echo $PKG_FORMAT | cut -d ' ' -f2-)
	unexport_variables "./prod_build/$platform/conf/*"
alexandr.kravchenko's avatar
alexandr.kravchenko committed
done
#[ $(mount | grep "/run/schroot/mount") ] && sudo umount -l /run/schroot/mount && sudo rm -r /run/schroot/mount/* #Removing mountpoint odds.

cd $wd