#!/bin/sh

msg() {
	printf %s\\n "${0##*/}: $*" >&2
}

fatal() {
	msg "$*"
	exit 1
}

cmdline_has_arg()
{
    grep -Fwqs "$1" /proc/cmdline
}

cmdline_get_arg()
{
    local args
    for args in $(cat /proc/cmdline); do
	case "$args" in
	    $1=*) echo "${args#*=}"; break;;
	esac
    done
}

#stage1 variables
stage1_variables=/run/stage1/vars
[ ! -s "$stage1_variables"  ] || . "$stage1_variables"

readonly METHOD="${METHOD:-cdrom}"
readonly HOST="${HOST:-}"
readonly LOGIN="${LOGIN:-}"
readonly PASSWORD="${PASSWORD:-}"
PREFIX="${PREFIX:-}"

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

AUTH_DATA="$LOGIN"
[ -z "$PASSWORD" ] || AUTH_DATA="${LOGIN}:${PASSWORD}"
[ -z "$AUTH_DATA" ] || AUTH_DATA="${AUTH_DATA}@"
readonly AUTH_DATA

#stage2 variables
readonly destdir="/mnt/destination"
readonly datadir="/usr/share/install2"
readonly install2_bindir="/usr/libexec/install2"
readonly initinstall_dir="$datadir/initinstall.d"
readonly postinstall_dir="$datadir/postinstall.d"
readonly image_dir="/image"
image_url=
stagename="$(cmdline_get_arg stagename)"
readonly stagename="${stagename:-altinst}"

# install2-init is running?
INSTALL2_INIT=
if [ "$(cmdline_get_arg "init")" = /usr/libexec/install2/install2-init ]; then
	INSTALL2_INIT=1
else
	if [ ! -L "/sbin/init" ]; then
		INSTALL2_INIT=1
	fi
fi
readonly INSTALL2_INIT

# needed when init1 is systemd or sysvinit
readonly install_variables="$datadir/variables"
. "$install_variables"

case "$METHOD" in
    ftp|http)
	image_url="$METHOD://$AUTH_DATA$HOST/$PREFIX"
	if [ -d "$image_dir/ALTLinux" ]; then
		# The whole ISO has been copied to tmpfs
		# rpms are available in /image/ALTLinux
		image_url="$image_dir"
	fi
	;;
	cdrom|disk|nfs|cifs)
	image_url="$image_dir/$PREFIX"
	# If booted from iso file, the $image_dir/$PREFIX directory will be missing
	[ -d "$image_url" ] || image_url="$image_dir"
	;;
    *)
	fatal "Unsupported method:$METHOD"
    esac

readonly image_url
