#!/bin/sh

DOCKER_NAME=${DOCKER_NAME:-odroid/odroid-stamper}
DOCKER_TAG=${DOCKER_TAG:-"latest"}

USER_ID=${USER_ID:-$(id -u)}
GROUP_ID=${GROUP_ID:-$(id -g)}

CODENAME=${CODENAME:-resolute}
FLAVOUR=${FLAVOUR:-server}
PASSWORD=${PASSWORD:-odroid}
USERNAME=${USERNAME:-odroid}
OTHERS=""

usage() {
	echo "Usage: $(basename $0) [--help] [options]"
	echo
	echo "options:"
	echo "  --board     Target ODROID board name"
	echo "  --codename  Specifies the target Debian/Ubuntu"
        echo "              release series (default: ${CODENAME})"
	echo "  --kernel    Linux kernel package name (ex: 6.1.0-odroid-arm64)"
	echo "  --flavour   Target OS image type (default: ${FLAVOUR})"
	echo "  --username  Default user account (default: ${USERNAME})"
	echo "  --password  Default password for the user account"
	echo "              (default: ${PASSWORD})"
	echo "  --compress  Compress the final OS image using 'xz'"
	echo "  --localversion    A string to add at the end of final image file name"
	exit 1
}

for opt in "$@"; do
	case $opt in
		--board=*)		BOARD="${opt#*=}";;
		--codename=*)		CODENAME="${opt#*=}";;
		--kernel=*)		KERNEL="${opt#*=}";;
		--flavour=*)		FLAVOUR="${opt#*=}";;
		--username=*)		USERNAME="${opt#*=}";;
		--password=*)		PASSWORD="${opt#*=}";;
		--localversion=*)	OTHERS="${OTHERS},--localversion=${opt#*=}";;
		--compress)		OTHERS="${OTHERS},--compress";;
		--help)			usage;;
	esac
	echo OTHERS=${OTHERS}
done

docker pull ${DOCKER_NAME}:${DOCKER_TAG}
docker run --rm --privileged -it \
	-v $PWD:/home/ubuntu \
        -v ${HOME}/.ssh:/home/ubuntu/.ssh \
	-v /var/cache:/var/cache \
	-e USER_ID=${USER_ID} \
	-e GROUP_ID=${GROUP_ID} \
	-e KERNEL=${KERNEL} \
	-e BOARD=${BOARD} \
	-e CODENAME=${CODENAME} \
	-e FLAVOUR=${FLAVOUR} \
	-e USERNAME=${USERNAME} \
	-e PASSWORD=${PASSWORD} \
	-e OTHERS=${OTHERS} \
	${DOCKER_NAME}:${DOCKER_TAG}
