#!/bin/bash
# This script is used for testing install.sh and that it works for
# each of component of our apt and yum repos
set -e

test_install_script(){
	# these are equivalent to main, testing, experimental components
	# in the repos, but its the url that will do the conversion
	components=( experimental test get )

	for component in "${components[@]}"; do
		# change url to specific component for testing
		local test_url=https://${component}.docker.com
		local script=$(mktemp /tmp/install-XXXXXXXXXX.sh)
		sed "s,url='https://get.docker.com/',url='${test_url}/'," hack/install.sh > "${script}"

		chmod +x "${script}"

		# test for each Dockerfile in contrib/builder
		for dir in contrib/builder/*/*/; do
			local from="$(awk 'toupper($1) == "FROM" { print $2; exit }' "$dir/Dockerfile")"

			echo "running install.sh for ${component} with ${from}"
			docker run --rm -i -v ${script}:/install.sh ${from} /install.sh
		done
	done
}

test_install_script
