#!/bin/sh -e

CONFIG=/etc/alterator-setup/config
[ ! -s "$CONFIG" ] || . "$CONFIG"

export ALTERATOR_DESTDIR="/"
ALTERATOR_INSTALL2=
ALTERATOR_INSTALL2_FILE=/usr/share/install2/installer-steps
ALTERATOR_VNC_SERVER=/usr/bin/x11vnc
ALTERATOR_VNC_OPTS="-usepw -rfbauth /root/.vnc/passwd"

alterator_setup_cleanup()
{
	  [ -L "$ALTERATOR_INSTALL2_FILE" ] && rm -f "$ALTERATOR_INSTALL2_FILE"
	  [ -n "$ALTERATOR_INSTALL2" ] && rm -rf "${ALTERATOR_INSTALL2_FILE%/*}"
}

trap alterator_setup_cleanup EXIT HUP INT QUIT TERM

if [ ! -d "${ALTERATOR_INSTALL2_FILE%/*}" ]; then
	  mkdir "${ALTERATOR_INSTALL2_FILE%/*}"
	  ALTERATOR_INSTALL2=1
fi

if [ -n "${ALTERATOR_SETUP_VNC-}" ]; then
	  mkdir -p /root/.vnc
	  vnc_passwd="$(pwqgen random=24)"
	  "$ALTERATOR_VNC_SERVER" -storepasswd "$vnc_passwd" /root/.vnc/passwd
	  default_dev="$(route | awk '/^default/{print $8}')"
	  default_ipv4="$(ip a s "$default_dev" | awk '/^[ ]*inet /{print $2}')"
	  default_ipv6="$(ip a s "$default_dev" | awk '/^[ ]*inet6 /{print $2}')"
	  cat << EOF
ALTERATOR SETUP === VNC access enabled
ALTERATOR SETUP === VNC Password="$vnc_passwd"
ALTERATOR SETUP === Default network device: "$default_dev"
ALTERATOR SETUP === IPv4: "$default_ipv4"
ALTERATOR SETUP === IPv6: "$default_ipv6"
EOF
	  set -- ${ALTERATOR_VNC_OPTS-}
	  "${ALTERATOR_VNC_SERVER-}" "$@" &
# add vnc step before setup-finish
grep '^vnc$' "$ALTERATOR_SETUP_STEPS" -q ||
	sed -i '0,/^setup-finish$/s/^setup-finish$/vnc\n&/' "$ALTERATOR_SETUP_STEPS"
else
# remove vnc step
sed -i '/^vnc$/d' "$ALTERATOR_SETUP_STEPS"
fi

ln -s "$ALTERATOR_SETUP_STEPS" "$ALTERATOR_INSTALL2_FILE"
alterator-wizard -f "$ALTERATOR_SETUP_STEPS"
