#!/bin/sh -eu

METHOD="${METHOD:-cdrom}"
HOST="${HOST:-}"
PREFIX="${PREFIX:-}"
image_prefix=
destdir="/tmp/metadata"
curl_args="-s -S --retry 5 --retry-delay 2"

[ ! -d "$destdir" ] || rm -rf -- "$destdir"
mkdir -p -- "$destdir"
cd "$destdir"
touch -- basesystem.manifest alterator-apt.profile

get_remote_metadata() {
	local n
	for n in *; do
		[ "$n" != "*" ] &&
			curl $curl_args -o "$n" "$image_prefix/Metadata/$n" ||
			return 1
	done
	[ -z "$AUTOINSTALL" ] ||
		curl $curl_args -o "autoinstall.scm" "$image_prefix/Metadata/autoinstall.scm"
}

get_local_metadata() {
	local n
	for n in *; do
		[ "$n" != "*" ] || return 1
		[ ! -f "$image_prefix/Metadata/$n" ] ||
			cp -aft . -- "$image_prefix/Metadata/$n" ||
			return 1
	done
	[ -z "$AUTOINSTALL" ] ||
		cp -aft . -- "$image_prefix/Metadata/autoinstall.scm"

}

[ "$PREFIX" != "/" ] || PREFIX=

rc=0
case "$METHOD" in
	http|ftp)
		    image_prefix="$METHOD://$HOST$PREFIX"
		    get_remote_metadata || rc=$?
		    ;;
	cdrom|disk|nfs)
		    image_prefix="/image"
		    get_local_metadata  || rc=$?
		    ;;
esac

sed -i -r -e "s#^(.*)#$image_prefix/ALTLinux/RPMS.base/\1#" basesystem.manifest
exit $rc
