#!/usr/bin/env bash
#
# Needs to be run from Mageia 4 or greater for kernel support for docker.
#
# Mageia 4 does not have docker available in official repos, so please
# install and run the docker binary manually.
#
# Tested working versions are for Mageia 2 onwards (inc. cauldron).
#
set -e

rootfsDir="$1"
shift

optTemp=$(getopt --options '+v:,m:' --longoptions 'version:,mirror:' --name mageia-urpmi -- "$@")
eval set -- "$optTemp"
unset optTemp

installversion=
mirror=
while true; do
	case "$1" in
		-v|--version) installversion="$2" ; shift 2 ;;
		-m|--mirror) mirror="$2" ; shift 2 ;;
		--) shift ; break ;;
	esac
done

if [ -z $installversion ]; then
	# Attempt to match host version
	if [ -r /etc/mageia-release ]; then
		installversion="$(sed 's/^[^0-9\]*\([0-9.]\+\).*$/\1/' /etc/mageia-release)"
	else
		echo "Error: no version supplied and unable to detect host mageia version"
		exit 1
	fi
fi

if [ -z $mirror ]; then
	# No mirror provided, default to mirrorlist
	mirror="--mirrorlist https://mirrors.mageia.org/api/mageia.$installversion.x86_64.list"
fi

(
	set -x
	urpmi.addmedia --distrib \
		$mirror \
		--urpmi-root "$rootfsDir"
	urpmi basesystem-minimal urpmi \
		--auto \
		--no-suggests \
		--urpmi-root "$rootfsDir" \
		--root "$rootfsDir"
)

"$(dirname "$BASH_SOURCE")/.febootstrap-minimize" "$rootfsDir"

if [ -d "$rootfsDir/etc/sysconfig" ]; then
	# allow networking init scripts inside the container to work without extra steps
	echo 'NETWORKING=yes' > "$rootfsDir/etc/sysconfig/network"
fi